package config import "os" type Config struct { Port string AppURL string AutheliaURL string AutheliaInternalURL string StripeSecretKey string StripeWebhookSecret string StripePriceID string LDAPUrl string LDAPAdminDN string LDAPAdminPassword string LDAPBaseDN string LLDAPHttpURL string DockerHost string TraefikDomain string TraefikNetwork string TemplatePath string CustomerDomain string } func Load() *Config { return &Config{ Port: envOrDefault("PORT", "8080"), AppURL: envOrDefault("APP_URL", "http://app.bc.a250.ca"), AutheliaURL: envOrDefault("AUTHELIA_URL", "http://login.bc.a250.ca"), AutheliaInternalURL: envOrDefault("AUTHELIA_INTERNAL_URL", "http://authelia_dev_main:9091"), StripeSecretKey: envOrDefault("STRIPE_SECRET_KEY", ""), StripeWebhookSecret: envOrDefault("STRIPE_WEBHOOK_SECRET", ""), StripePriceID: envOrDefault("STRIPE_PRICE_ID", ""), LDAPUrl: envOrDefault("LLDAP_URL", "ldap://lldap_lldap:3890"), LDAPAdminDN: envOrDefault("LLDAP_ADMIN_DN", "uid=admin,ou=people,dc=a250,dc=ca"), LDAPAdminPassword: envOrDefault("LLDAP_ADMIN_PASSWORD", ""), LDAPBaseDN: envOrDefault("LLDAP_BASE_DN", "dc=a250,dc=ca"), LLDAPHttpURL: envOrDefault("LLDAP_HTTP_URL", "http://lldap:17170"), DockerHost: envOrDefault("DOCKER_HOST", "unix:///var/run/docker.sock"), TraefikDomain: envOrDefault("TRAEFIK_DOMAIN", "bc.a250.ca"), TraefikNetwork: envOrDefault("TRAEFIK_NETWORK", "authelia_dev"), TemplatePath: envOrDefault("TEMPLATE_PATH", "/app/templates"), CustomerDomain: envOrDefault("CUSTOMER_DOMAIN", "app.a250.ca"), } } func envOrDefault(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }