Backups¶
Two producers × two plans × two destinations. Verify, don't assume: plan
windows live in Backrest (vps-apps) and the restic-backup@ timers
(pi-home); this page records what the timers show.
| source | driver | plans | local copy | off-site copy |
|---|---|---|---|---|
| vps-apps | Backrest (:9898) |
two daily flows — data, then config | pushed to /mnt/pi-hdd/backups/vps-apps/<branch> over wg-direct |
mirrored to gdrive:backups/vps-apps/<branch> |
| pi-home | native restic-backup@data / @config timers |
data 00:00 UTC · config 00:30 UTC | local repos under /mnt/pi-hdd/backups/pi-home/<branch> |
mirrored to gdrive:backups/pi-home/<branch> |
| All 8 repositories (2 hosts × data/config × 2 destinations) are periodically | ||||
| verified. Restic deduplicates unchanged data, so nightly snapshots stay | ||||
| cheap. |
Locations¶
| node | config root (tracked) | data root |
|---|---|---|
| vps-apps | /opt/homelab/vps-apps/<app>/ |
/opt/homelab-data/<app>/ |
| vps-net | /root/ |
Docker volumes root_netbird_* |
| pi-home | systemd units + /etc |
dietpi userdata tree |
Excluded by design¶
/mnt/pi-hdd/share/{open,temp}— scratch drop, disposable.- Container logs, builder cache, anything
docker-pruneremoves.
Nothing else is excluded: every data-holding application joins the restic set.
Hard rules¶
- Opencloud data stays on vps-apps local disk — the ocis data provider panics on NFS; never move it to a network filesystem.
- A new service with state requires a backup plan in the same change.
- Never prune or
down -vwithout approval — volumes are data.
Recovery¶
Procedures: runbooks/restore.md (restic), runbooks/rebuild.md
(node-from-scratch), runbooks/netbird-down.md (control-plane loss).