package config import ( "os" "github.com/joho/godotenv" ) type Config struct { DBHost string DBPort string DBUser string DBPassword string DBName string Port string UseEmbedded bool JWTSecret string AdminUser string AdminPassword string MailDataDir string PostqueuePath string PostsuperPath string DovecotQuotaCmd string JournalctlPath string RspamdAPI string } func Load() *Config { godotenv.Load("backend/.env") return &Config{ DBHost: getEnv("DB_HOST", "localhost"), DBPort: getEnv("DB_PORT", "3306"), DBUser: getEnv("DB_USER", "mailadmin"), DBPassword: getEnv("DB_PASSWORD", ""), DBName: getEnv("DB_NAME", "mailserver"), Port: getEnv("PORT", "8080"), UseEmbedded: getEnv("USE_EMBEDDED", "true") == "true", JWTSecret: getEnv("JWT_SECRET", "change-this-secret"), AdminUser: getEnv("ADMIN_USER", ""), AdminPassword: getEnv("ADMIN_PASSWORD", ""), MailDataDir: getEnv("MAIL_DATA_DIR", "/var/vmail"), PostqueuePath: getEnv("POSTQUEUE_PATH", "/usr/sbin/postqueue"), PostsuperPath: getEnv("POSTSUPER_PATH", "/usr/sbin/postsuper"), DovecotQuotaCmd: getEnv("DOVECOT_QUOTA_CMD", "/usr/bin/doveadm"), JournalctlPath: getEnv("JOURNALCTL_PATH", "/usr/bin/journalctl"), RspamdAPI: getEnv("RSPAMD_API", "http://127.0.0.1:11334"), } } func getEnv(key, defaultValue string) string { if value := os.Getenv(key); value != "" { return value } return defaultValue }