A month ago I posted about the admin panel running my portfolio. What I didn't go into is what happens if the box hosting it falls over. ๐พ
So I built the first piece of that answer: an automated backup pipeline from my Raspberry Pi to the Hetzner VPS using restic. ๐น Dedicated restic-user account on the VPS, SFTP only, locked authorized_keys ๐น SSH config alias so cron logs stay clean ๐น SQLite pre-hook to dump Uptime Kuma's state consistently before each snapshot ๐น GFS retention: 7 daily, 4 weekly, 6 monthly ๐น Discord webhook alerting on failure
๐งช Then I deliberately broke the script. The whole point of alerting is to know when something fails, and the only way to confirm that works is to trigger it on purpose. Discord lit up, I fixed it, let it run unattended for a few days, then verified the snapshots restored cleanly.
A backup script you haven't watched fail isn't a backup system. It's a hope.
