blumeops/docs/reference/services/borgmatic.md
Erich Blume c1e7497e12 Add offsite backup for immich photo library to BorgBase
Adds a second borgmatic config (photos.yaml) that backs up /Volumes/photos
(sifaka SMB mount) to a dedicated BorgBase repo, running daily at 4 AM.
Refactors borgmatic metrics to support multiple repos with a `repo` label,
and updates the Grafana dashboard with a repo selector variable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 19:20:12 -07:00

1.8 KiB

title modified tags
Borgmatic 2026-03-16
service
backup

Borgmatic

Daily backup system using Borg backup, running on indri.

Quick Reference

Property Value
Install mise (pipx)
Main config ~/.config/borgmatic/config.yaml
Photos config ~/.config/borgmatic/photos.yaml
Main schedule Daily at 2:00 AM
Photos schedule Daily at 4:00 AM
Main targets sifaka local + BorgBase offsite
Photos target BorgBase offsite only

What Gets Backed Up

Directories:

  • ~/code/personal/zk - Zettelkasten
  • /opt/homebrew/var/forgejo - Git forge data
  • ~/.config/borgmatic - Borgmatic config
  • ~/Documents - Personal documents
  • ~/.local/share/borgmatic/k8s-dumps/ - SQLite dumps from k8s pods

PostgreSQL databases:

K8s SQLite databases (pre-backup dump via kubectl exec):

  • mealie - Recipe manager (/app/data/mealie.db)

Immich photo library (separate config, BorgBase offsite only):

  • /Volumes/photos (sifaka SMB mount, ~128 GB)

Not backed up (by design):

  • ZIM archives (re-downloadable)
  • Prometheus metrics (ephemeral)
  • Loki logs (ephemeral)

Retention Policy

Period Count
Daily 7
Monthly 12
Yearly 1000

Monitoring

Metrics exposed via textfile collector to prometheus:

  • borgmatic_up - Repository accessibility
  • borgmatic_last_archive_timestamp - Last backup time
  • borgmatic_repo_deduplicated_size_bytes - Disk usage

Dashboard: "Borgmatic Backups" in grafana