PORT environment variable always takes priority over database settings. Lock UI, when defined

This commit is contained in:
2025-12-01 14:26:19 +01:00
parent 272e112ac9
commit ac0f634236
9 changed files with 103 additions and 11 deletions

View File

@@ -485,17 +485,15 @@ func setDefaultsLocked() {
if currentSettings.Language == "" {
currentSettings.Language = "en"
}
if currentSettings.Port == 0 {
// Check for PORT environment variable first
if portEnv := os.Getenv("PORT"); portEnv != "" {
if port, err := strconv.Atoi(portEnv); err == nil && port > 0 && port <= 65535 {
currentSettings.Port = port
} else {
currentSettings.Port = 8080
}
} else {
// Check for PORT environment variable first - it always takes priority
if portEnv := os.Getenv("PORT"); portEnv != "" {
if port, err := strconv.Atoi(portEnv); err == nil && port > 0 && port <= 65535 {
currentSettings.Port = port
} else if currentSettings.Port == 0 {
currentSettings.Port = 8080
}
} else if currentSettings.Port == 0 {
currentSettings.Port = 8080
}
if currentSettings.CallbackURL == "" {
currentSettings.CallbackURL = fmt.Sprintf("http://127.0.0.1:%d", currentSettings.Port)
@@ -1112,6 +1110,18 @@ func SetDefaultServer(id string) (Fail2banServer, error) {
}
// GetSettings returns a copy of the current settings
// GetPortFromEnv returns the PORT environment variable value if set, and whether it's set
func GetPortFromEnv() (int, bool) {
portEnv := os.Getenv("PORT")
if portEnv == "" {
return 0, false
}
if port, err := strconv.Atoi(portEnv); err == nil && port > 0 && port <= 65535 {
return port, true
}
return 0, false
}
func GetSettings() AppSettings {
settingsLock.RLock()
defer settingsLock.RUnlock()

View File

@@ -93,6 +93,11 @@
"settings.title": "Einstellungen",
"settings.general": "Allgemeine Einstellungen",
"settings.language": "Sprache",
"settings.server_port": "Server-Port",
"settings.server_port_placeholder": "z.B. 8080",
"settings.port_env_set": "Port wird über die PORT-Umgebungsvariable gesetzt:",
"settings.port_env_hint": "Um den Port über die Weboberfläche zu ändern, entfernen Sie die PORT-Umgebungsvariable und starten Sie den Container neu.",
"settings.port_restart_hint": "⚠️ Port-Änderungen erfordern einen Neustart des Containers, um wirksam zu werden.",
"settings.enable_debug": "Debug-Protokoll aktivieren",
"settings.alert": "Alarm-Einstellungen",
"settings.callback_url": "Fail2ban Callback-URL",

View File

@@ -93,6 +93,11 @@
"settings.title": "Istellige",
"settings.general": "Allgemeini Istellige",
"settings.language": "Sprach",
"settings.server_port": "Server-Port",
"settings.server_port_placeholder": "z.B. 8080",
"settings.port_env_set": "Port wird über d PORT-Umgebigsvariable gsetzt:",
"settings.port_env_hint": "Um de Port über d Weboberflächi z ändere, entferne d PORT-Umgebigsvariable und start de Container neu.",
"settings.port_restart_hint": "⚠️ Port-Änderige erfordere ä Neustart vom Container, zum wirksam z werde.",
"settings.enable_debug": "Debug-Modus aktivierä",
"settings.alert": "Alarm-Istellige",
"settings.callback_url": "Fail2ban Callback-URL",

View File

@@ -93,6 +93,11 @@
"settings.title": "Settings",
"settings.general": "General Settings",
"settings.language": "Language",
"settings.server_port": "Server Port",
"settings.server_port_placeholder": "e.g., 8080",
"settings.port_env_set": "Port is set via PORT environment variable:",
"settings.port_env_hint": "To change the port via Web UI, remove the PORT environment variable and restart the container.",
"settings.port_restart_hint": "⚠️ Port changes require a container restart to take effect.",
"settings.enable_debug": "Enable Debug Log",
"settings.alert": "Alert Settings",
"settings.callback_url": "Fail2ban Callback URL",

View File

@@ -93,6 +93,11 @@
"settings.title": "Configuración",
"settings.general": "Configuración general",
"settings.language": "Idioma",
"settings.server_port": "Puerto del servidor",
"settings.server_port_placeholder": "ej. 8080",
"settings.port_env_set": "El puerto está configurado mediante la variable de entorno PORT:",
"settings.port_env_hint": "Para cambiar el puerto mediante la interfaz web, elimine la variable de entorno PORT y reinicie el contenedor.",
"settings.port_restart_hint": "⚠️ Los cambios de puerto requieren un reinicio del contenedor para surtir efecto.",
"settings.enable_debug": "Habilitar el modo de depuración",
"settings.alert": "Configuración de alertas",
"settings.callback_url": "URL de retorno de Fail2ban",

View File

@@ -93,6 +93,11 @@
"settings.title": "Paramètres",
"settings.general": "Paramètres généraux",
"settings.language": "Langue",
"settings.server_port": "Port du serveur",
"settings.server_port_placeholder": "p. ex. 8080",
"settings.port_env_set": "Le port est défini via la variable d'environnement PORT :",
"settings.port_env_hint": "Pour modifier le port via l'interface Web, supprimez la variable d'environnement PORT et redémarrez le conteneur.",
"settings.port_restart_hint": "⚠️ Les modifications du port nécessitent un redémarrage du conteneur pour prendre effet.",
"settings.enable_debug": "Activer le mode débogage",
"settings.alert": "Paramètres d'alerte",
"settings.callback_url": "URL de rappel Fail2ban",

View File

@@ -93,6 +93,11 @@
"settings.title": "Impostazioni",
"settings.general": "Impostazioni generali",
"settings.language": "Lingua",
"settings.server_port": "Porta del server",
"settings.server_port_placeholder": "es. 8080",
"settings.port_env_set": "La porta è impostata tramite la variabile d'ambiente PORT:",
"settings.port_env_hint": "Per modificare la porta tramite l'interfaccia Web, rimuovere la variabile d'ambiente PORT e riavviare il contenitore.",
"settings.port_restart_hint": "⚠️ Le modifiche alla porta richiedono un riavvio del contenitore per avere effetto.",
"settings.enable_debug": "Abilita debug",
"settings.alert": "Impostazioni di allarme",
"settings.callback_url": "URL di callback Fail2ban",