package config import "os" type Config struct { Port string AppURL string AutheliaURL string StripeSecretKey string StripeWebhookSecret string StripePriceID string LDAPUrl string LDAPAdminDN string LDAPAdminPassword string LDAPBaseDN string DockerHost string TraefikDomain string TraefikNetwork string TemplatePath 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"), 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"), 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"), } } func envOrDefault(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }