feat: service status indicators (Caddy, Authelia, Launcher)

This commit is contained in:
Claus Lohmar 2026-07-10 10:41:33 +01:00
parent 60669b47a3
commit af85ea31e7

17
main.go
View file

@ -283,11 +283,22 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html; charset=utf-8")
// Check service statuses
autheliaUp := false
if resp, err := http.Get("http://127.0.0.1:9091/api/health"); err == nil {
autheliaUp = resp.StatusCode == 200
resp.Body.Close()
}
caddyUp := false
if resp, err := http.Get("http://127.0.0.1:80/"); err == nil {
caddyUp = true
resp.Body.Close()
}
launcherUp := false
if resp, err := http.Get("http://127.0.0.1:9000/health"); err == nil {
launcherUp = resp.StatusCode == 200
resp.Body.Close()
}
userLang := os.Getenv("LANG")
if userLang == "" {
@ -302,6 +313,8 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
"Domain": domain,
"AdminEmail": adminEmail,
"AutheliaUp": autheliaUp,
"CaddyUp": caddyUp,
"LauncherUp": launcherUp,
"Lang": userLang,
})
@ -943,7 +956,9 @@ const adminHTML = `<!DOCTYPE html>
<div class="info-grid">
<div class="info-item"><div class="label">Domain</div><div class="value">{{.Domain}}</div></div>
<div class="info-item"><div class="label">Admin Email</div><div class="value">{{.AdminEmail}}</div></div>
<div class="info-item"><div class="label">Authelia</div><div class="value">{{if .AutheliaUp}}<span class="status-dot status-up"></span>Running{{else}}<span class="status-dot status-down"></span>Unreachable{{end}}</div></div>
<div class="info-item"><div class="label">Caddy</div><div class="value">{{if .CaddyUp}}<span class="status-dot status-up"></span>Running{{else}}<span class="status-dot status-down"></span>Down{{end}}</div></div>
<div class="info-item"><div class="label">Authelia</div><div class="value">{{if .AutheliaUp}}<span class="status-dot status-up"></span>Running{{else}}<span class="status-dot status-down"></span>Down{{end}}</div></div>
<div class="info-item"><div class="label">Launcher</div><div class="value">{{if .LauncherUp}}<span class="status-dot status-up"></span>Running{{else}}<span class="status-dot status-down"></span>Down{{end}}</div></div>
</div>
</div>
<div class="actions"><button type="submit" class="btn btn-primary">Save Settings</button><span id="savemsg" style="display:none;color:#48bb78;font-size:0.9rem;">Saved</span></div>