Ga naar inhoud

Backups & herstel

De backup-container in deze stack maakt dagelijkse dumps van de databases van beide stacks en roteert oude dumps. Beide stacks draaien op PostgreSQL; de container draait pg_dumpall via de Docker-socket in de DB-containers, zodat de databases zelf niet op het netwerk geëxposed hoeven te worden.

Wat & waar

Bron Methode Bestand
ZGW Postgres (zgw-db-1) pg_dumpall backups/zgw-postgres-YYYY-MM-DD.sql.gz
Portal Postgres (portal-db-1) pg_dumpall backups/portal-postgres-YYYY-MM-DD.sql.gz
  • Schema: dagelijks 02:30 (zie backup/crontab).
  • Rotatie: dumps ouder dan BACKUP_RETENTION_DAYS (default 14) worden verwijderd.
  • Faalt een backup, dan mailt cron-wrap.sh naar ALERT_EMAIL.

De dumps landen in platform/backups/ (een bind-mount). Zet die map zelf veilig (bv. periodiek naar offsite-opslag) — een backup op dezelfde host is geen ramp-backup.

Containernamen

backup.sh zoekt de DB-containers op naam: - ZGW_PG_CONTAINER (default zgw-db-1) - PORTAL_PG_CONTAINER (default portal-db-1)

Heten ze in jouw stacks anders, zet dan de juiste naam als env op de backup-service in docker-compose.yml.

Handmatig een backup maken

cd platform
make backup        # draait backup.sh nu meteen
ls -lh backups/

Herstellen

Herstellen overschrijft data. Doe dit bewust en bij voorkeur op een verse stack.

ZGW Postgres:

gunzip -c backups/zgw-postgres-2026-06-02.sql.gz | \
  docker exec -i zgw-db-1 psql -U postgres

Portal Postgres:

gunzip -c backups/portal-postgres-2026-06-02.sql.gz | \
  docker exec -i portal-db-1 psql -U postgres

Herstart daarna de stacks (make up-all) zodat de apps de herstelde data oppikken.

Adminer (web-UI)

Naast de backups is er een web-UI om de databases te bekijken/bewerken — zie onderhoud.md.