Restore from backup¶
Recording of what the nightly restic set holds is in backups.md. Always restore to a scratch directory first and verify content before replacing live data.
0. Preconditions¶
- Target host reachable (mesh or LAN).
- Password file / key for the repository available locally on the source
host that owns the plan (Backrest UI, or the
restic-backup@unit env on pi-home). - Enough free space on the target scratch dir.
1. Locate the snapshot¶
On pi-home (local repos) or against the mounted NFS repo from vps-apps:
Search the listing for the host, plan branch (data/config) and timeframe.
For the off-site copy, same command against gdrive:backups/<host>/<branch>.
2. Restore to scratch¶
Outcome: a directory tree mirroring the backed-up roots.
3. Promote into service¶
- vps-apps data: stop the app's compose project, move tree into
/opt/homelab-data/<app>/, fix ownership (container UID),compose up -d. - pi-home data: stop the service unit (
systemctl stop <unit>), restore into the userdata root, fix ownership/permissions, start the unit. - Config: restore the tracked file(s) or unit drop-ins, redeploy from the repo.
4. Verify¶
- Service answers on its documented port (see
nodes.md). - First log lines clean (
journalctl -u <unit>/docker compose logs). - Fresh backup succeeds after restore; delete scratch.