blumeops/ansible/roles
Erich Blume c78b86c72c 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
2026-03-27 19:43:05 -07:00
..
alloy Bump Grafana Alloy to v1.14.0 (#292) 2026-03-13 16:25:27 -07:00
borgmatic Add offsite backup for immich photo library to BorgBase (#315) 2026-03-27 19:43:05 -07:00
borgmatic_metrics Add offsite backup for immich photo library to BorgBase (#315) 2026-03-27 19:43:05 -07:00
caddy Add borgmatic backups for authentik and immich databases (#314) 2026-03-27 16:59:58 -07:00
forgejo Review migrate-forgejo-from-brew doc, fix stale Phase 3 reference 2026-03-05 08:29:58 -08:00
forgejo_actions_secrets Expose Forgejo publicly at forge.eblu.me (#278) 2026-03-03 08:40:41 -08:00
forgejo_metrics Add Forgejo repository health metrics and Grafana dashboard (#245) 2026-02-22 11:16:03 -08:00
jellyfin Add SSO login button to Jellyfin login page 2026-02-21 20:08:57 -08:00
jellyfin_metrics Migrate Ansible op calls to op read URI syntax (#125) 2026-02-08 10:52:43 -08:00
minikube Fix minikube role skipping start when kubelet/apiserver are stopped (#137) 2026-02-09 23:03:01 -08:00
minikube_metrics Move metrics scripts from ~/bin to ~/.local/bin (#70) 2026-01-29 09:59:38 -08:00
sifaka_exporters Operations and observability for sifaka NAS (#135) 2026-02-09 17:44:05 -08:00
zot Bump zot registry to v2.1.15 (#293) 2026-03-14 10:00:40 -07:00
zot_metrics Move metrics scripts from ~/bin to ~/.local/bin (#70) 2026-01-29 09:59:38 -08:00