#!/bin/bash set -e # Vynl database backup script # Run via cron: 0 3 * * * /path/to/backup.sh BACKUP_DIR="/backups/vynl" TIMESTAMP=$(date +%Y%m%d_%H%M%S) KEEP_DAYS=14 mkdir -p "$BACKUP_DIR" # Dump database from running container docker compose -f docker-compose.prod.yml exec -T db \ pg_dump -U vynl vynl | gzip > "${BACKUP_DIR}/vynl_${TIMESTAMP}.sql.gz" # Remove backups older than KEEP_DAYS find "$BACKUP_DIR" -name "vynl_*.sql.gz" -mtime +${KEEP_DAYS} -delete echo "Backup complete: vynl_${TIMESTAMP}.sql.gz"