29 lines
896 B
Bash
29 lines
896 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
echo "StellaOps Compose Backup"
|
|
echo "This will create a tar.gz of Mongo, MinIO (object-store), and Redis 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-mongo:/data/db:ro \
|
|
-v stellaops-minio:/data/minio:ro \
|
|
-v stellaops-redis:/data/redis: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"
|