halkyon/deploy/backup
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 999a3ce0b0
All checks were successful
CI / check (push) Successful in 9m0s
CI / deploy (push) Successful in 7s
feat(deploy): hourly off-site backups with restic
learn.halkyon.eu dumps its database every hour (people's files are in it
too) and restic stores the dump encrypted in a Hetzner Storage Box,
keeping 24 hourly, 7 daily, 4 weekly and 3 monthly snapshots. The box's
own snapshots, removable only in Hetzner's Console, protect the backups
from a taken-over server. A systemd timer runs it as deploy; once a day
it also prunes and checks the repository. Failures go to the journal.

Hourly, because a restore costs people who started after the backup
what their device held: the app no longer finds its session and starts
anew. deploy/backups.md describes the setup, the restore and what a
restore loses; both were rehearsed on the local Compose stack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-03 16:45:40 +02:00
..
halkyon-backup.service feat(deploy): hourly off-site backups with restic 2026-10-03 16:45:40 +02:00
halkyon-backup.timer feat(deploy): hourly off-site backups with restic 2026-10-03 16:45:40 +02:00