Rework the VHS demo so the README screenshots actually entice a download.
Demo data / tooling:
- seed.yaml: real, reachable service URLs (detail now shows nextcloud.com,
not example.com); Auth Portal -> non-resolving home.arpa host so it reads
as a believable, reliably-DOWN monitor
- backfill: transient outages for Nextcloud/Jellyfin/Immich aligned with their
state changes (uptime % now matches); log timestamps derived from now so the
Logs view reads chronologically; real SSL warning; three probe nodes across
regions; seeded alert send health
- demo.tape: shorter warm-up, added Nodes + theme captures, ordered so every
shot stays inside the 60s node-freshness window (consistent probe count)
- vhs/crop: new tool to trim the empty terminal border around each screenshot
- setup.sh: build backfill up front for deterministic timing; UPTOP_DEMO=1
Supporting code:
- persist alert send health (new alert_health table, load on startup,
best-effort save on send) so health/last-sent survive restarts
- latency Min/Avg/Max ignore failed checks (no more "Min 0ms")
- correct "probe"/"probes" pluralization
- stable status dot instead of an animated spinner under UPTOP_DEMO
Screenshots capture 4 views: monitors dashboard (hero), detail panel,
alerts tab, and logs tab. Includes VHS tape, demo seed config, and
setup script for reproducible captures.
Also fixes latencySparkline to color DOWN checks red instead of green
— previously failed checks with 0ms latency rendered as green bars.