29 lines
916 B
Bash
29 lines
916 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
echo "StellaOps Compose Backup"
|
|
echo "This will create a tar.gz of PostgreSQL, RustFS (object-store), and Valkey data volumes."
|
|
read -rp "Proceed? [y/N] " ans
|
|
[[ ${ans:-N} =~ ^[Yy]$ ]] || { echo "Aborted."; exit 1; }
|
|
|
|
TS=$(date -u +%Y%m%dT%H%M%SZ)
|
|
OUT_DIR=${BACKUP_DIR:-backups}
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
docker compose ps >/dev/null
|
|
|
|
echo "Pausing worker containers for consistency..."
|
|
docker compose pause scanner-worker scheduler-worker taskrunner-worker || true
|
|
|
|
echo "Backing up volumes..."
|
|
docker run --rm \
|
|
-v stellaops-postgres:/data/postgres:ro \
|
|
-v stellaops-rustfs:/data/rustfs:ro \
|
|
-v stellaops-valkey:/data/valkey:ro \
|
|
-v "$PWD/$OUT_DIR":/out \
|
|
alpine sh -c "cd / && tar czf /out/stellaops-backup-$TS.tar.gz data"
|
|
|
|
docker compose unpause scanner-worker scheduler-worker taskrunner-worker || true
|
|
|
|
echo "Backup written to $OUT_DIR/stellaops-backup-$TS.tar.gz"
|