feat: verify scheduled backups
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -ne 1 ]]; then echo "Usage: CONFIRM_RESTORE=YES ./scripts/restore.sh data/backups/YYYYMMDD-HHMMSS" >&2; exit 2; fi
|
||||
if [[ "${CONFIRM_RESTORE:-}" != "YES" ]]; then echo "Refusing restore. Set CONFIRM_RESTORE=YES after verifying the backup path." >&2; exit 2; fi
|
||||
backup_dir="$1"; [[ -f "$backup_dir/hub.db" && -f "$backup_dir/uploads.tar.gz" && -f "$backup_dir/SHA256SUMS" ]] || { echo "Backup is incomplete" >&2; exit 2; }
|
||||
(cd "$backup_dir" && sha256sum -c SHA256SUMS)
|
||||
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"; cd "$root_dir"
|
||||
docker compose down
|
||||
mkdir -p data public
|
||||
mv data/hub.db "data/hub.db.before-restore.$(date +%Y%m%d-%H%M%S)" 2>/dev/null || true
|
||||
rm -rf public/uploads
|
||||
cp "$backup_dir/hub.db" data/hub.db
|
||||
tar -xzf "$backup_dir/uploads.tar.gz" -C public
|
||||
docker compose up -d
|
||||
printf 'Restore started from: %s\n' "$backup_dir"
|
||||
Reference in New Issue
Block a user