feat(env): Added production and development environment
All checks were successful
Build and Publish Docker Image / deploy (push) Successful in 1m44s

This commit is contained in:
2026-05-04 00:33:18 +03:00
parent fbeff3f6c0
commit bcdcce8fbd
7 changed files with 42 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import (
func Load() (*Config, error) {
cfg := &Config{
DataDir: "./data",
Environment: AppEnvironmentDevelopment,
AdminUsername: "admin",
AdminEnabled: AdminEnabledAuto,
AllowAdminSettingsOverride: true,
@@ -49,6 +50,14 @@ func Load() (*Config, error) {
if err := cfg.applyStringEnv(SettingDataDir, "WARPBOX_DATA_DIR", &cfg.DataDir); err != nil {
return nil, err
}
if raw := strings.TrimSpace(os.Getenv("WARPBOX_ENV")); raw != "" {
env := AppEnvironment(strings.ToLower(raw))
if env != AppEnvironmentDevelopment && env != AppEnvironmentProduction {
return nil, fmt.Errorf("WARPBOX_ENV must be development or production")
}
cfg.Environment = env
cfg.setValue(SettingEnvironment, string(env), SourceEnv)
}
if err := cfg.applyStringEnv("", "WARPBOX_ADMIN_PASSWORD", &cfg.AdminPassword); err != nil {
return nil, err
}
@@ -194,6 +203,7 @@ func (cfg *Config) EnsureDirectories() error {
}
func (cfg *Config) captureDefaults() {
cfg.captureDefaultValue(SettingDataDir, cfg.DataDir)
cfg.captureDefaultValue(SettingEnvironment, string(cfg.Environment))
cfg.captureDefaultValue(SettingGuestUploadsEnabled, formatBool(cfg.GuestUploadsEnabled))
cfg.captureDefaultValue(SettingAPIEnabled, formatBool(cfg.APIEnabled))
cfg.captureDefaultValue(SettingZipDownloadsEnabled, formatBool(cfg.ZipDownloadsEnabled))