Schedule
All times are local. Runs via crontab on each machine.| Time | Machine | What |
|---|---|---|
| 2:45am | i3 | Stalwart email export (JMAP export of root@augustin.ai to stalwart/data/export/) |
| 3:00am | i3 | Full i3 backup (to Pentium HDD + Backblaze B2) |
| 4:00am | Pentium | Full Pentium backup (to i3 SSD + Backblaze B2) |
Destinations
| Source | Destination 1 | Destination 2 |
|---|---|---|
| i3 | sftp:pentium:/home/user/backups/restic-i3 | b2:augustin-restic:i3 |
| Pentium | sftp:i3:/home/user/backups/restic-pentium | b2:augustin-restic:pentium |
What’s Backed Up
- All of
/home/user/apps(config, data, compose files) - Database dumps created before backup runs:
- Matrix/Synapse:
docker exec matrix-db pg_dumpall→matrix/matrix-db-dump.sql - Miniflux:
docker exec miniflux-db pg_dumpall→reader/miniflux-db-dump.sql
- Matrix/Synapse:
- Stalwart email export (JMAP) →
stalwart/data/export/ - Tarball of all
.envfiles →env-backup.tar.gz
Scripts
scripts/backup-i3.sh— dumps databases, collects .env files, runs restic to both destinations, prunesscripts/backup-pentium.sh— collects .env files, runs restic to both destinations, prunesstalwart/backup-email.sh— exports Stalwart email account via JMAP CLI
Bootstrap Secrets
Stored in Apple Passwords — everything needed to restore from scratch:- Restic repository password
- Backblaze B2 credentials
- GitHub SSH key