A real status page — public lab health, plus a page per service — and a stack of community-built features.
The throwaway /public page is reborn in the app's own design system, a new Daily Brief gives you one calm daily readout, alerts gain three new channels, and uptime checks now watch your TLS certs. Much of this release came from the community.
Added
- A proper status page — overview + a page per monitored service.
/publicis rebuilt in the app's own design system: lab system health plus a live list of the services you monitor, each with heartbeat, 24h uptime and latency. Click any service for its own status page (/public/<id>) — current state and hold time, uptime over 24h / 7d / 30d / 90d, a day-by-day history bar, a response-time chart, a reconstructed incident list, and TLS-cert days-remaining. New per-check "public" toggle (off by default); the page stays gated behindPUBLIC_STATUSand only ever exposes the service name + host — never the raw target or credentials. New endpoints:GET /api/public-statusandGET /api/public-status/<id>. (public-status groundwork by @siva23367, #197) - Daily Brief — an opt-in once-a-day HTML health digest. One scheduled email/Discord/ntfy/Telegram summary of the lab's last 24h — overall health, anything that alerted, the headline numbers — so you get a calm daily readout instead of watching the dashboard. Off by default; choose the channel and send-time. (#170)
- Email (SMTP), Slack and generic-webhook alert channels alongside Discord, ntfy and Telegram — all honouring the existing severity + disk-threshold rules. (contributed by @Jishnu-Prasad888, #191)
- Per-service notification rules — choose which services can page you, so noisy or low-priority checks stay quiet. (contributed by @Mr-Neutr0n, #24)
- TLS-certificate expiry tracking on uptime checks — HTTPS checks read days-remaining and warn before a cert lapses, surfaced on the dashboard and status pages. (contributed by @1HazyOne707, #163)
- Brand logos for ~60+ famous services on the Containers and Services tables — embedded Simple Icons (MIT), no runtime external requests.
- Installed-models registry on the AI Models tab — every model pulled to disk on this host's ollama, with size, params · quantization, and a live-VRAM Loaded badge. Read-only, graceful-degrade when ollama is off.
- Copy buttons on the System & Hardware cards — OS / kernel / CPU / host values one click to clipboard.
Changed
- Alerts form labels wired to the locale files so translated dashboards pick up the email/Slack/webhook copy.
- Overview engine gauges:
%rides inline on the number's baseline, and the GPU gauge shows live power draw (W).
Fixed
- GPU undetected where nvidia isn't Docker's default runtime (stock Ubuntu/Debian/Mint) — new
docker-compose.gpu.ymloverride + corrected Setup remedy with--force-recreate(#203). - AMD / Intel GPUs now show in the per-host tab instead of a misleading "no NVIDIA GPU" empty state (#206).
- Overview gauges stay centred (number +
%) in the ring at every size (#211).
🙌 Thanks to this release's contributors
This one is heavily community-built:
- @Jishnu-Prasad888 — the new email / Slack / generic-webhook alert channels (#191)
- @siva23367 — groundwork for the public status page (#197)
- @1HazyOne707 — TLS-certificate expiry tracking on uptime checks (#198)
- @Mr-Neutr0n — per-service notification rules (#151)
Thank you. 🧡
Still pure Python + Flask — no new runtime dependencies. docker compose pull && docker compose up -d to upgrade.
🤖 Release notes assembled with Claude Code