Project: pal-e-backup
pal-e-backup
Vision
Off-site backup and disaster recovery for the entire Pal-E platform. If the PC dies, everything can be rebuilt from cloud backups — databases, git repos, identity, secrets, object storage. One unified pipeline, one cloud destination, managed as IaC.
User Stories
| Role | Key | Story | Success Metric |
|---|---|---|---|
| Platform owner | <code>sleep-at-night</code> | I want to know that a disk failure won't destroy my platform | Full restore from cloud backups tested and documented |
| Platform owner | <code>backup-confidence</code> | I want to be alerted if any backup fails | Alert fires within 1 hour of a missed backup |
| Platform owner | <code>restore-speed</code> | I want to restore the full platform in under 2 hours | Restore time documented from DR test |
Plan
Active:
plan-pal-e-backup — Off-Site Platform Backup7 phases: foundation (S3 + repo), database backups, Forgejo backup, MinIO mirror, identity/secrets, monitoring/verification, disaster recovery test.
Board
board-pal-e-backup — Pal-E Backup Board. Continuous kanban.Status
- Current backup coverage: pal-e-docs DB and woodpecker DB have CNPG WAL archiving to local MinIO. Terraform state backed up to local MinIO daily. Everything else has zero backup.
- Off-site backup: None. All backups are on the same disk as the data they protect.
- Backup verification:
cnpg-backup-verifyCronJob exists but is currently failing.
Milestones
None yet. First milestone will be defined when Phase 7 (DR test) completes — "Platform Protected."
Architecture
Backup Flow. Five CronJobs run daily in the k3s cluster. Each targets a specific data category, compresses/encrypts as appropriate, and uploads to a single external S3 bucket organized by directory. A verification job checks freshness and alerts on failure.
Repos
| Repo | Platform | Role | Status |
|---|---|---|---|
| pal-e-backup | Forgejo | Terraform + backup scripts + CronJob manifests | planned |
Inbox
No untriaged items.