Restrict backup to library/ and upload/ only (skip regenerable encoded-video/, thumbs/, backups/). Add SSH ServerAliveInterval to prevent broken pipe on long transfers, and checkpoint_interval so interrupted backups save progress. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.3 KiB
Django/Jinja
37 lines
1.3 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
#
|
|
# Borgmatic config for immich photo library backup.
|
|
# Backs up library/ and upload/ from /Volumes/photos (sifaka SMB mount)
|
|
# to BorgBase offsite ONLY. Excludes encoded-video/, thumbs/, backups/
|
|
# since those are regenerable from originals.
|
|
#
|
|
# 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:
|
|
{% for dir in borgmatic_photos_source_directories %}
|
|
- {{ dir }}
|
|
{% endfor %}
|
|
|
|
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 -o ServerAliveInterval=30 -o ServerAliveCountMax=5 -i {{ borgmatic_borgbase_ssh_key_path }}
|
|
|
|
# Save checkpoints every 10 minutes so interrupted backups don't lose all progress
|
|
checkpoint_interval: 600
|
|
|
|
# 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 }}
|