#!/usr/bin/env bash
# Nightly backup: database dump + uploaded images, kept 14 days locally.
# Copy /var/backups/passlabb off the server too (e.g. rclone to Backblaze B2 or Google Drive).
set -euo pipefail
DEST=/var/backups/passlabb
STAMP=$(date +%Y-%m-%d_%H%M)
mkdir -p "$DEST"
pg_dump --format=custom --no-owner "$DATABASE_URL" > "$DEST/db_$STAMP.dump"
tar -czf "$DEST/uploads_$STAMP.tar.gz" -C /srv/passlabb/app uploads
find "$DEST" -type f -mtime +14 -delete
if [ -n "${BACKUP_RCLONE_REMOTE:-}" ] && command -v rclone >/dev/null; then
  rclone copy "$DEST" "$BACKUP_RCLONE_REMOTE" --max-age 2d
fi
echo "Backup done: $DEST/db_$STAMP.dump"
# Restore: pg_restore --clean --no-owner -d "$DATABASE_URL" db_<stamp>.dump
