package config import ( "log" "os" "strconv" "github.com/joho/godotenv" ) type Config struct { DBHost string DBPort string DBUser string DBPass string DBName string RedisHost string RedisPort string RedisPass string RedisDB int JWTSecret string AppPort string AppURL string PluginRoot string } var AppConfig *Config func LoadConfig() { err := godotenv.Load() if err != nil { log.Println("No .env file found, using environment variables") } AppConfig = &Config{ DBHost: getEnv("DB_HOST", "localhost"), DBPort: getEnv("DB_PORT", "3306"), DBUser: getEnv("DB_USER", "root"), DBPass: getEnv("DB_PASS", ""), DBName: getEnv("DB_NAME", "xboard"), RedisHost: getEnv("REDIS_HOST", "localhost"), RedisPort: getEnv("REDIS_PORT", "6379"), RedisPass: getEnv("REDIS_PASS", ""), RedisDB: getEnvInt("REDIS_DB", 0), JWTSecret: getEnv("JWT_SECRET", "secret"), AppPort: getEnv("APP_PORT", "8080"), AppURL: getEnv("APP_URL", ""), PluginRoot: getEnv("PLUGIN_ROOT", "reference\\LDNET-GA-Theme\\plugin"), } } func getEnv(key, defaultValue string) string { if value, exists := os.LookupEnv(key); exists { return value } return defaultValue } func getEnvInt(key string, defaultValue int) int { raw := getEnv(key, "") if raw == "" { return defaultValue } value, err := strconv.Atoi(raw) if err != nil { return defaultValue } return value }