Skip to main content
Nightly restic backups — encrypted, deduplicated, incremental. Retention: 7 daily, 4 weekly, 3 monthly.

Schedule

All times are local. Runs via crontab on each machine.
TimeMachineWhat
2:45ami3Stalwart email export (JMAP export of root@augustin.ai to stalwart/data/export/)
3:00ami3Full i3 backup (to Pentium HDD + Backblaze B2)
4:00amPentiumFull Pentium backup (to i3 SSD + Backblaze B2)

Destinations

SourceDestination 1Destination 2
i3sftp:pentium:/home/user/backups/restic-i3b2:augustin-restic:i3
Pentiumsftp:i3:/home/user/backups/restic-pentiumb2: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_dumpallmatrix/matrix-db-dump.sql
    • Miniflux: docker exec miniflux-db pg_dumpallreader/miniflux-db-dump.sql
  • Stalwart email export (JMAP) → stalwart/data/export/
  • Tarball of all .env files → env-backup.tar.gz
Excluded: postgres data dirs, node_modules, .git, chromium config. Media is not backed up (re-downloadable).

Scripts

  • scripts/backup-i3.sh — dumps databases, collects .env files, runs restic to both destinations, prunes
  • scripts/backup-pentium.sh — collects .env files, runs restic to both destinations, prunes
  • stalwart/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