2021-01-08 21:37:38 +00:00
package common
import (
"log"
"github.com/kelseyhightower/envconfig"
)
// Config keeps info about configuration of this daemon
type Config struct {
2021-10-02 18:00:35 +00:00
Token string ` envconfig:"TOKEN" required:"true" `
AppsPath string ` envconfig:"APPS_PATH" default:"/srv" ` // Where applications are located
AppsBindIPHTTP string ` envconfig:"APPS_BIND_IP_HTTP" default:"0.0.0.0" ` // On what IP apps' HTTP port gonna be bound
AppsBindIPSSH string ` envconfig:"APPS_BIND_IP_SSH" default:"0.0.0.0" ` // On what IP apps' SSH ports gonna be bound
NATSURL string ` envconfig:"NATS_URL" required:"true" `
NATSAlias string ` envconfig:"NATS_ALIAS" required:"true" ` // name/alias of the instance, ex. node-18
DatabasePath string ` envconfig:"DATABASE_PATH" default:"/var/lib/node-api/rosti.db" `
SnapshotsPath string ` envconfig:"SNAPSHOTS_PATH" default:"/mnt/apps/snapshots" ` // snapshots path
SnapshotsS3AccessKey string ` envconfig:"SNAPSHOTS_S3_ACCESS_KEY" required:"false" `
SnapshotsS3SecretKey string ` envconfig:"SNAPSHOTS_S3_SECRET_KEY" required:"false" `
SnapshotsS3Endpoint string ` envconfig:"SNAPSHOTS_S3_ENDPOINT" required:"false" `
SnapshotsS3SSL bool ` envconfig:"SNAPSHOTS_S3_SSL" required:"false" default:"true" `
SnapshotsS3Bucket string ` envconfig:"SNAPSHOTS_S3_BUCKET" required:"false" default:"snapshots" `
2021-11-01 00:05:59 +00:00
SnapshotsIndexLabel string ` envconfig:"SNAPSHOTS_INDEX_LABEL" required:"false" default:"owner" ` // Label that will be part of the object name and it will be used as index to quick listing
2021-01-08 21:37:38 +00:00
}
// GetConfig return configuration created based on environment variables
func GetConfig ( ) * Config {
var config Config
err := envconfig . Process ( "" , & config )
if err != nil {
log . Fatal ( err . Error ( ) )
}
return & config
}