## 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
29 lines
970 B
Django/Jinja
29 lines
970 B
Django/Jinja
# {{ ansible_managed }}
|
|
#
|
|
# Borgmatic config for immich photo library backup.
|
|
# Backs up /Volumes/photos (sifaka SMB mount) to BorgBase offsite ONLY.
|
|
# Separate from the main borgmatic config to keep concerns isolated:
|
|
# - main config: indri data → sifaka + borgbase
|
|
# - this config: sifaka photos → borgbase (different repo)
|
|
|
|
local_path: {{ borgmatic_local_path }}
|
|
|
|
source_directories:
|
|
- {{ borgmatic_photos_source_dir }}
|
|
|
|
source_directories_must_exist: true
|
|
|
|
repositories:
|
|
- path: {{ borgmatic_photos_borgbase_repo }}
|
|
label: borgbase-immich-photos
|
|
encryption: repokey
|
|
append_only: true
|
|
|
|
encryption_passcommand: {{ borgmatic_encryption_passcommand }}
|
|
|
|
ssh_command: ssh -o IdentitiesOnly=yes -i {{ borgmatic_borgbase_ssh_key_path }}
|
|
|
|
# Retention policy — photos are precious, keep more history
|
|
keep_daily: {{ borgmatic_photos_keep_daily }}
|
|
keep_monthly: {{ borgmatic_photos_keep_monthly }}
|
|
keep_yearly: {{ borgmatic_photos_keep_yearly }}
|