ワンクリックで
backup-recovery
Configure and manage restic backups including scheduling, verification, and disaster recovery.
メニュー
Configure and manage restic backups including scheduling, verification, and disaster recovery.
Write Prometheus alerting rules and configure Alertmanager routing for home lab notifications.
Write and run Ansible playbooks for multi-node home lab provisioning and configuration management.
Let's Encrypt, self-signed certs, renewal automation, NPM cert integration
Full Pi disaster recovery -- backup verification, restore workflows, SD card imaging, and migration checklists
Manage AdGuard Home DNS filtering, blocklists, local DNS records, and query log analysis.
Manage multi-file Docker Compose deployments on a Raspberry Pi home lab server.
| name | backup-recovery |
| description | Configure and manage restic backups including scheduling, verification, and disaster recovery. |
| tools | ["homelab_backupStatus","homelab_backupRun","homelab_backupList","homelab_backupDiff"] |
| standards-version | 1.10.0 |
Configure and operate restic-based backups for a Raspberry Pi 5 home lab. Covers repository initialization, backup scripts, systemd timer scheduling, snapshot verification, restore procedures, and retention policy management.
homelab_sshTest)Optional:
Verify connectivity -- call homelab_sshTest.
Check backup status -- call homelab_backupStatus to retrieve the last
backup timestamp, snapshot count, repository size, and any errors from the
most recent run.
Branch based on task:
Setting up a new backup:
restic init --repo <path>/var/lib/docker/volumes//opt/homelab/docker//etc/ (selective)--keep-daily 7 --keep-weekly 4 --keep-monthly 6Verifying backups:
homelab_backupStatus to check last runrestic check to verify repository integrityrestic diff between latest snapshots to review changesRunning a manual backup:
homelab_backupRun to trigger an immediate backuphomelab_serviceLogs on the backup servicehomelab_backupStatusRestoring data:
homelab_serviceRestart or
homelab_composeDown to avoid file conflictsrestic restore <snapshot-id> --target <path>homelab_serviceHealth to confirm the service is healthyReport -- summarize backup status, any issues found, and recommendations.
Backup scope -- critical paths to include:
/opt/homelab/docker/ # All compose files and configs
/var/lib/docker/volumes/ # Persistent container data
vaultwarden_data/ # Password vault (critical)
grafana_data/ # Dashboards and settings
adguard_data/ # DNS config and query logs
npm_data/ # Proxy hosts and SSL certs
uptime-kuma_data/ # Monitor configurations
syncthing_data/ # Sync state (not synced files)
prometheus_data/ # Metrics TSDB
Backup exclusions:
/var/lib/docker/overlay2/ -- image layers, reproducible from registry*.log, *.tmp, cache/ directoriesSystemd timer setup:
/etc/systemd/system/restic-backup.timer/etc/systemd/system/restic-backup.service/etc/restic-env (repo URL, password)Retention policy defaults:
restic forget --prune after applying retention changesUser: "When was the last backup?"
Assistant actions:
homelab_sshTesthomelab_backupStatusResponse:
Last backup completed 6 hours ago at 03:02 AM. 47 snapshots in the repository, 12.3 GB total. No errors on last run. Next scheduled backup at 03:00 AM tomorrow.
User: "Restore Vaultwarden from yesterday's backup"
Assistant actions:
homelab_backupStatus to list recent snapshotshomelab_composeDown for the security stack to stop Vaultwardenhomelab_composeUp for the security stackhomelab_serviceHealth for VaultwardenResponse:
Vaultwarden stopped. Restored volume data from snapshot
a3f7c21b(yesterday 03:01 AM). Vaultwarden restarted and is healthy. Verify your vault entries are correct.
| Tool | Purpose |
|---|---|
homelab_sshTest | Validate SSH connectivity |
homelab_backupStatus | Get last backup time, snapshot count, errors |
homelab_backupRun | Trigger an immediate backup |
homelab_serviceLogs | Monitor backup job progress and errors |
homelab_composeDown | Stop services before restore operations |
homelab_composeUp | Restart services after restore |
homelab_serviceHealth | Verify service health after restore |
homelab_diskUsage | Check available space for backup storage |
.backup command or
stop the container briefly before snapshotting.restic unlock to clear it, but only after confirming no
backup process is actually running.restic forget marks snapshots for removal but does
not reclaim space. Always run with --prune or run restic prune afterward.homelab_diskUsage. A full disk will crash Docker services.
Prefer remote backup destinations (NAS, S3, B2).RESTIC_REPOSITORY
and RESTIC_PASSWORD (or RESTIC_PASSWORD_FILE). If these are missing, the
backup silently fails. Check the environment file.pi-system-management -- checking disk space before backupsdocker-compose-stacks -- stopping/starting services around restoresservice-monitoring -- alerting on backup failures via Prometheusnetwork-configuration -- network access to remote backup repositories