Stack-level backup: Nextcloud WebDAV + Docker volume backup via SSH

- backup container: builds from Dockerfile (adds openssh-client, curl, jq)
  fetches Nextcloud creds from Settings API at runtime, pg_dumps all DBs
  and tars Docker volumes on each app LXC via SSH, uploads to Nextcloud
  WebDAV, writes runs.ndjson log, heartbeats Uptime Kuma
- updater: gains docker-cli, Docker socket mount, /backup/runs,
  /backup/status, /backup/trigger endpoints; reads runs.ndjson for status
- kuma_data mounted read-only into backup container for local backup
- .env.example updated with SETTINGS_URL, SETTINGS_SECRET, PG_SUPERPASS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jtricerolph 2026-07-14 11:03:59 +00:00
parent cc5fc99242
commit f46fe07ca8
6 changed files with 258 additions and 39 deletions

View file

@ -2,6 +2,8 @@ WEBHOOK_SECRET=CHANGE_ME_match_forgejo_webhook_secret
CENTRAL_AUTH_SECRET=CHANGE_ME_same_as_auth_service
AUTH_URL=http://10.10.10.101:3001
PG_SUPERPASS=CHANGE_ME_postgres_superuser_password
BACKUP_DATABASES=auth_db noticeboard_db kitchen_db cashup_db hk_db
BACKUP_REMOTE=user@yourserver.com:/backups/hnf-proxmox
BACKUP_DATABASES=auth_db noticeboard_db cashup_db hk_db maintenance_db settings_db
SETTINGS_URL=http://10.10.10.116:3080
SETTINGS_SECRET=CHANGE_ME_same_as_settings_service
KUMA_PUSH_URL=http://localhost:3001/api/push/KUMA_TOKEN
# BACKUP_CONTAINER=management-backup-1