Add offsite backup for immich photo library to BorgBase (#315)
## Summary - Adds a second borgmatic config (`photos.yaml`) that backs up `/Volumes/photos` (sifaka SMB mount, ~128 GB) to a dedicated BorgBase repo (`immich-photos`), running daily at 4 AM - Separate launchd agent (`mcquack.eblume.borgmatic-photos`) so photo backups run independently from the main backup - Refactors `borgmatic_metrics` script to support multiple repos with a `repo` Prometheus label - Updates Grafana "Borg Backups" dashboard with a `repo` template variable so you can filter/compare repos - Docs updated: `backups.md`, `borgmatic.md` ## Prerequisites (manual) - [x] Create `immich-photos` repo on BorgBase with same SSH key - [ ] Upgrade BorgBase plan to Small ($24/yr) if currently on free tier (128 GB exceeds 10 GB limit) - [ ] After deploy: `borg init` the new repo (borgmatic does this automatically on first run) ## Test plan - [ ] Dry run: `mise run provision-indri -- --check --diff --tags borgmatic,borgmatic_metrics` - [ ] Deploy borgmatic role and verify both configs deployed - [ ] Run `borgmatic --config ~/.config/borgmatic/photos.yaml create --verbosity 1` manually for first backup (will take hours) - [ ] Verify metrics script collects from both repos: `~/.local/bin/borgmatic-metrics && cat /opt/homebrew/var/node_exporter/textfile/borgmatic.prom` - [ ] Sync grafana-config in ArgoCD and verify dashboard repo selector works 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #315
This commit is contained in:
parent
ca0c9354ee
commit
c78b86c72c
11 changed files with 305 additions and 136 deletions
|
|
@ -59,6 +59,18 @@ borgmatic_keep_yearly: 1000
|
|||
# PostgreSQL databases to backup (streamed via pg_dump)
|
||||
# Password is read from ~/.pgpass (managed by this role)
|
||||
# pg_dump_command must be full path since LaunchAgent doesn't have homebrew in PATH
|
||||
# --- Immich photo library backup (BorgBase offsite only) ---
|
||||
borgmatic_photos_config: /Users/erichblume/.config/borgmatic/photos.yaml
|
||||
borgmatic_photos_source_dir: /Volumes/photos
|
||||
borgmatic_photos_borgbase_repo: ssh://xcrtl5tg@xcrtl5tg.repo.borgbase.com/./repo
|
||||
# Schedule: runs daily at 4:00 AM (offset from main backup at 2:00 AM)
|
||||
borgmatic_photos_schedule_hour: 4
|
||||
borgmatic_photos_schedule_minute: 0
|
||||
# Retention: photos are precious, keep more history
|
||||
borgmatic_photos_keep_daily: 7
|
||||
borgmatic_photos_keep_monthly: 12
|
||||
borgmatic_photos_keep_yearly: 1000
|
||||
|
||||
borgmatic_pg_dump_command: /opt/homebrew/opt/postgresql@18/bin/pg_dump
|
||||
borgmatic_postgresql_databases:
|
||||
# k8s PostgreSQL (CloudNativePG) via Caddy L4 proxy
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue