03cbe283df
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
32 lines
1.0 KiB
Bash
Executable File
32 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# VHS screenshot setup: seed monitors, backfill history, start server.
|
|
set -e
|
|
DB="${1:?usage: setup.sh <db-path>}"
|
|
|
|
rm -f "$DB" "$DB-shm" "$DB-wal"
|
|
|
|
echo "==> Seeding monitors and alerts..."
|
|
UPTOP_DB_DSN="$DB" ./uptop apply -f vhs/seed.yaml 2>&1
|
|
|
|
echo "==> Backfilling check history..."
|
|
# Build first so the backfill's `now` (node last_seen, heartbeat timing) isn't racing
|
|
# a cold compile — keeps the capture window deterministic.
|
|
go build -o /tmp/uptop-backfill ./vhs/backfill/
|
|
BACKFILL_OUT=$(/tmp/uptop-backfill "$DB")
|
|
echo "$BACKFILL_OUT"
|
|
|
|
PUSH_TOKEN=$(echo "$BACKFILL_OUT" | grep '^PUSH_TOKEN=' | cut -d= -f2)
|
|
if [ -n "$PUSH_TOKEN" ]; then
|
|
echo "==> Sending push heartbeat in 10s (background)..."
|
|
(sleep 10 && curl -s "http://localhost:18099/api/push" -H "Authorization: Bearer $PUSH_TOKEN" > /dev/null 2>&1) &
|
|
fi
|
|
|
|
echo "==> Starting uptop server..."
|
|
exec env \
|
|
UPTOP_DB_DSN="$DB" \
|
|
UPTOP_PORT=23299 \
|
|
UPTOP_HTTP_PORT=18099 \
|
|
UPTOP_ALLOW_PRIVATE_TARGETS=true \
|
|
UPTOP_DEMO=1 \
|
|
./uptop serve 2>/dev/null
|