Offsite backups: weekly restic prune subcommand + RUNBOOK backup section #27

Merged
ClaudiuSchuster merged 1 commit from oss-oo/offsite-backup into main 2026-09-23 00:01:40 +00:00

P0 resilience. Extends scripts/backup.sh with a prune subcommand (weekly cron: restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune + restic check --read-data-subset=10m) and env-gated restic_ready() for the nightly offsite branch. RUNBOOK backup section rewritten: three-layer model (local artifacts, restic → Hetzner Storage Box via SFTP port 23, backup-only Ed25519 key + ssh-config alias, quarterly restore drill with exact commands). Concrete box identifiers stay server-side (/etc/oss-oo-backup.env) — repo is public.

E2E gate: green (full forge round-trip + MCP + registrar on local stack).
Live proof (already executed on the server with the pre-PR script): first offsite restic snapshot f4b10f61 (1.289 GiB → Storage Box HEL1), restore drill restored in 2:06, scratch-DB import 0 errors, counts match live (130 tables / 18 repos / 8 users).

P0 resilience. Extends `scripts/backup.sh` with a `prune` subcommand (weekly cron: `restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune` + `restic check --read-data-subset=10m`) and env-gated `restic_ready()` for the nightly offsite branch. RUNBOOK backup section rewritten: three-layer model (local artifacts, restic → Hetzner Storage Box via SFTP port 23, backup-only Ed25519 key + ssh-config alias, quarterly restore drill with exact commands). Concrete box identifiers stay server-side (/etc/oss-oo-backup.env) — repo is public. E2E gate: green (full forge round-trip + MCP + registrar on local stack). Live proof (already executed on the server with the pre-PR script): first offsite restic snapshot `f4b10f61` (1.289 GiB → Storage Box HEL1), restore drill restored in 2:06, scratch-DB import 0 errors, counts match live (130 tables / 18 repos / 8 users).
Offsite backups: weekly restic prune subcommand + RUNBOOK backup section
All checks were successful
ci / ci (pull_request) Successful in 3s
bb9ae60aca
backup.sh gains a 'prune' subcommand for the weekly root cron:
restic forget (7 daily / 4 weekly / 6 monthly) + subset repo check.
The nightly restic branch is now env-gated via restic_ready() with
explicit skip reasons. RUNBOOK documents the full three-layer backup
model (local artifacts, restic -> Storage Box over SFTP port 23 with
a dedicated backup-only Ed25519 key and ssh-config alias, quarterly
restore drill) while keeping concrete box identifiers server-side
only — this repo is public. E2E gate green.
ClaudiuSchuster force-pushed oss-oo/offsite-backup from 19ef8c40a0
All checks were successful
ci / ci (pull_request) Successful in 3s
to 065b52b936
All checks were successful
ci / ci (pull_request) Successful in 3s
2026-09-23 00:01:27 +00:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
OSS-OO/laboratory!27
No description provided.