fix(settings): add program restart logic when SSL settings change

This commit is contained in:
Jacky 2025-05-05 04:06:22 +00:00
parent 1f45b5d7e4
commit 3d886fded6
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D

View file

@ -4,6 +4,7 @@ import (
"fmt"
"net/http"
"code.pfad.fr/risefront"
"github.com/0xJacky/Nginx-UI/internal/cert"
"github.com/0xJacky/Nginx-UI/internal/cron"
"github.com/0xJacky/Nginx-UI/internal/nginx"
@ -86,8 +87,15 @@ func SaveSettings(c *gin.Context) {
// Validate SSL certificates if HTTPS is enabled
needReloadCert := false
needRestartProgram := false
if json.Server.EnableHTTPS != cSettings.ServerSettings.EnableHTTPS {
needReloadCert = true
needRestartProgram = true
}
if json.Server.SSLCert != cSettings.ServerSettings.SSLCert ||
json.Server.SSLKey != cSettings.ServerSettings.SSLKey {
needReloadCert = true
}
if json.Server.EnableHTTPS {
@ -114,11 +122,17 @@ func SaveSettings(c *gin.Context) {
return
}
GetSettings(c)
if needReloadCert {
go func() {
cert.ReloadServerTLSCertificate()
}()
}
GetSettings(c)
if needRestartProgram {
go func() {
risefront.Restart()
}()
}
}