#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT_DIR" set -a . ./.env set +a timestamp="$(date +"%Y%m%d_%H%M%S")" backup_dir="${1:-$ROOT_DIR/backend/backups/backup_${timestamp}}" mkdir -p "$backup_dir" db_dump_path="$backup_dir/db.dump" media_archive_path="$backup_dir/media.tar.gz" meta_path="$backup_dir/backup_meta.env" checksums_path="$backup_dir/SHA256SUMS" docker compose exec -T db sh -lc "PGPASSWORD='$POSTGRES_PASSWORD' pg_dump -U '$POSTGRES_USER' -d '$POSTGRES_DB' -Fc --no-owner --no-privileges" > "$db_dump_path" tar -C "$ROOT_DIR/backend" -czf "$media_archive_path" media cat > "$meta_path" < "$checksums_path" ) printf '%s\n' "$backup_dir"