Files
2026-04-18 10:21:51 +03:00

53 lines
1.3 KiB
Go

package config
import (
"log"
"os"
"strings"
)
type Config struct {
ServerPort string
JWTSecret string
DBUser string
DBPassword string
DBHost string
DBPort string
DBName string
DefaultAdminEmail string
DefaultAdminPassword string
}
func Load() Config {
cfg := Config{
ServerPort: getEnv("SERVER_PORT", "8080"),
JWTSecret: getEnv("JWT_SECRET", "change-me-in-production"),
DBUser: getEnv("DB_USER", "root"),
DBPassword: getEnv("DB_PASSWORD", ""),
DBHost: getEnv("DB_HOST", "127.0.0.1"),
DBPort: getEnv("DB_PORT", "3306"),
DBName: getEnv("DB_NAME", "social_raiting"),
DefaultAdminEmail: getEnv("DEFAULT_ADMIN_EMAIL", "admin@example.com"),
DefaultAdminPassword: getEnv("DEFAULT_ADMIN_PASSWORD", "change-admin-password"),
}
if cfg.JWTSecret == "change-me-in-production" {
log.Println("warning: JWT_SECRET is using the default development value")
}
if cfg.DefaultAdminPassword == "change-admin-password" {
log.Println("warning: DEFAULT_ADMIN_PASSWORD is using the default development value")
}
return cfg
}
func getEnv(key, fallback string) string {
value := strings.TrimSpace(os.Getenv(key))
if value == "" {
return fallback
}
return value
}