30s systemd timer heals four real failure classes: container down (docker start -> start.sh fallback), rogue host process on :3001, Caddyfile wiped by foreign generators (known-good snapshot + size/site-block/marker gates), caddy down/not serving. Telegram alerts with 15-min per-class cooldown; stamp only burned on successful send. Adversarial review B- (both blockers fixed: snapshot poisoning via multi-gate integrity + refresh lockout, deployment). Live kill-tested twice: full recovery in one cycle, alerts delivered, cooldown verified.
11 lines
152 B
SYSTEMD
11 lines
152 B
SYSTEMD
[Unit]
|
|
Description=Run DashCaddy watchdog every 30 seconds
|
|
|
|
[Timer]
|
|
OnBootSec=2min
|
|
OnUnitActiveSec=30s
|
|
AccuracySec=5s
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|