33 lines
707 B
Go
33 lines
707 B
Go
package config
|
|
|
|
import "os"
|
|
|
|
type Config struct {
|
|
Addr string
|
|
DBDSN string
|
|
JWTSecret string
|
|
AdminPassword string
|
|
UploadPath string
|
|
BaseURL string
|
|
AppEnv string
|
|
}
|
|
|
|
func Load() *Config {
|
|
return &Config{
|
|
Addr: env("ADDR", ":9080"),
|
|
DBDSN: env("DB_DSN", ""),
|
|
JWTSecret: env("JWT_SECRET", "change-me-in-production"),
|
|
AdminPassword: env("ADMIN_PASSWORD", "admin123"),
|
|
UploadPath: env("UPLOAD_PATH", "./uploads"),
|
|
BaseURL: env("BASE_URL", "http://localhost:9080"),
|
|
AppEnv: env("APP_ENV", "development"),
|
|
}
|
|
}
|
|
|
|
func env(key, fallback string) string {
|
|
if v := os.Getenv(key); v != "" {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|