Add server-side health checks for service online status

- update-health.js: pings every service URL from script.js (single
  source of truth) in parallel every minute via cron and writes
  health.json; any HTTP response below 500 counts as online, 5xx as
  error, timeouts/DNS failures as offline; TLS validity ignored
- Card badges now show real state instead of a static Online label:
  grey Checking, green Online (with latency tooltip), amber Error
  (HTTP code), red Offline (reason); refreshed every 30 s
- Entrypoint runs a first sweep at boot; nginx serves /health.json
  with no-cache; README documents the behavior
This commit is contained in:
2026-09-04 14:15:08 +02:00
parent e766fcd95c
commit 012eee6c45
7 changed files with 194 additions and 7 deletions
+13
View File
@@ -301,11 +301,24 @@ main#app {
width: 8px;
height: 8px;
border-radius: 50%;
flex: none;
background: var(--muted-2); /* unknown / checking */
}
.status.online .dot {
background: var(--online);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--online) 18%, transparent);
animation: pulse 2.4s ease-in-out infinite;
}
.status.offline .dot {
background: var(--error_color, #e0554a);
}
.status.error .dot {
background: var(--warning_color, #f2a944);
}
@keyframes pulse {
0%,
100% {