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>
This commit is contained in:
parent
fbed29c5c7
commit
999a3ce0b0
1 changed files with 270 additions and 1 deletions
|
|
@ -73,7 +73,8 @@ licences require offering the source of what the instance runs to the people who
|
|||
|
||||
learn.halkyon.eu itself deploys from `main` once CI is green: `deploy/redeploy.sh`, run by
|
||||
the CI runner described in `deploy/runner/`, deploys only commits signed by a key in
|
||||
`deploy/allowed-signers`.
|
||||
`deploy/allowed-signers`. It backs up its database every hour, off-site and encrypted;
|
||||
[`deploy/backups.md`](deploy/backups.md) says how to set that up and how to restore.
|
||||
|
||||
## More
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue