package config import ( "log" "os" "github.com/joho/godotenv" ) type Config struct { DatabaseURL string JWTSecret string EncryptionKey string GithubClientID string GithubSecret string } func Load() *Config { err := godotenv.Load() if err != nil { log.Println("No .env file found, using environment variables") } return &Config{ DatabaseURL: getEnv("DATABASE_URL", ""), JWTSecret: getEnv("JWT_SECRET", ""), EncryptionKey: getEnv("ENCRYPTION_KEY", ""), GithubClientID: getEnv("GITHUB_CLIENT_ID", ""), GithubSecret: getEnv("GITHUB_SECRET", ""), } } func getEnv(key, fallback string) string { if value, ok := os.LookupEnv(key); ok { return value } if fallback == "" { log.Fatalf("FATAL: Environment variable %s is not set.", key) } return fallback }