feat: service status indicators (Caddy, Authelia, Launcher)
This commit is contained in:
parent
60669b47a3
commit
af85ea31e7
1 changed files with 16 additions and 1 deletions
17
main.go
17
main.go
|
|
@ -283,11 +283,22 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||||
|
|
||||||
|
// Check service statuses
|
||||||
autheliaUp := false
|
autheliaUp := false
|
||||||
if resp, err := http.Get("http://127.0.0.1:9091/api/health"); err == nil {
|
if resp, err := http.Get("http://127.0.0.1:9091/api/health"); err == nil {
|
||||||
autheliaUp = resp.StatusCode == 200
|
autheliaUp = resp.StatusCode == 200
|
||||||
resp.Body.Close()
|
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")
|
userLang := os.Getenv("LANG")
|
||||||
if userLang == "" {
|
if userLang == "" {
|
||||||
|
|
@ -302,6 +313,8 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
"Domain": domain,
|
"Domain": domain,
|
||||||
"AdminEmail": adminEmail,
|
"AdminEmail": adminEmail,
|
||||||
"AutheliaUp": autheliaUp,
|
"AutheliaUp": autheliaUp,
|
||||||
|
"CaddyUp": caddyUp,
|
||||||
|
"LauncherUp": launcherUp,
|
||||||
"Lang": userLang,
|
"Lang": userLang,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -943,7 +956,9 @@ const adminHTML = `<!DOCTYPE html>
|
||||||
<div class="info-grid">
|
<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">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">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>
|
</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>
|
<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>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue