media: add nightly config backup to Cloudflare R2 via restic

Backs up all service config PVCs (Jellyfin, Radarr, Sonarr, Prowlarr,
qBittorrent, Bazarr, Seerr) at 3am daily to legion-media-backup R2 bucket.
Media files are excluded — they are re-downloadable.
This commit is contained in:
Will Anderson
2026-04-11 01:22:24 -05:00
parent d3289895e5
commit 409274ff54
2 changed files with 144 additions and 0 deletions
@@ -0,0 +1,29 @@
# media-backup-credentials — R2 + restic credentials for nightly media config backup
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: media-backup-credentials
namespace: media
spec:
refreshInterval: 1h
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: media-backup-credentials
creationPolicy: Owner
template:
data:
RESTIC_PASSWORD: "media-restic-2026"
AWS_ACCESS_KEY_ID: "{{ .r2_access_key_id }}"
AWS_SECRET_ACCESS_KEY: "{{ .r2_secret_access_key }}"
RESTIC_REPOSITORY: "s3:https://651161e0a3d321561b4c90b5bcd5f15b.r2.cloudflarestorage.com/legion-media-backup"
data:
- secretKey: r2_access_key_id
remoteRef:
key: secret/data/r2
property: access_key_id
- secretKey: r2_secret_access_key
remoteRef:
key: secret/data/r2
property: secret_access_key