Deploy to valhalla / deploy (push) Has been cancelled
Add Recyclarr to the media stack, pin database/object-store/Caddy/Vault images with Watchtower disabled, expose JDownloader at jd.ginnoir.com, and restrict minio/homarr/docs to internal_only. Mark TB-002–004 and TB-033 complete; bundle batch-3 OIDC env for FreshRSS, ownCloud, and Reactive Resume.
48 lines
2.0 KiB
Bash
48 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Restore resume postgres + minio from pre-split monolith named volumes into bind mounts.
|
|
# Safe to re-run: stops stack, copies from htpc-download-box_* volumes, restarts postgres.
|
|
|
|
OLD_PG_VOL="${OLD_PG_VOL:-htpc-download-box_postgres_data}"
|
|
OLD_MINIO_VOL="${OLD_MINIO_VOL:-htpc-download-box_minio_data}"
|
|
PG_BIND="${PG_BIND:-/config/resume/postgres}"
|
|
MINIO_BIND="${MINIO_BIND:-/storage1/labdata/resume/minio}"
|
|
|
|
echo "=== stop resume stack services ==="
|
|
docker stop resume minio_resume postgres_resume 2>/dev/null || true
|
|
|
|
echo "=== restore postgres: ${OLD_PG_VOL} -> ${PG_BIND} ==="
|
|
docker run --rm \
|
|
-v "${OLD_PG_VOL}:/from:ro" \
|
|
-v "${PG_BIND}:/to" \
|
|
alpine sh -c 'rm -rf /to/* /to/.[!.]* /to/..?* 2>/dev/null || true; cp -a /from/. /to/; chown -R 70:70 /to'
|
|
|
|
echo "=== restore minio objects: ${OLD_MINIO_VOL}/default -> ${MINIO_BIND}/default ==="
|
|
docker run --rm \
|
|
-v "${OLD_MINIO_VOL}:/from:ro" \
|
|
-v "${MINIO_BIND}:/to" \
|
|
alpine sh -c 'mkdir -p /to/default; rm -rf /to/default/* 2>/dev/null || true; cp -a /from/default/. /to/default/ 2>/dev/null || true'
|
|
|
|
echo "=== start postgres ==="
|
|
docker start postgres_resume
|
|
for i in $(seq 1 30); do
|
|
if docker exec postgres_resume pg_isready -U postgres -d postgres >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
docker exec postgres_resume pg_isready -U postgres -d postgres
|
|
|
|
echo "=== verify restored data ==="
|
|
docker exec postgres_resume psql -U postgres -d postgres -c 'SELECT email, username FROM "user"; SELECT slug, is_public FROM resume;'
|
|
|
|
echo "=== align resume user email with Authentik (3nigma.matt@gmail.com) for OAuth linking ==="
|
|
docker exec postgres_resume psql -U postgres -d postgres -c "UPDATE \"user\" SET email = '3nigma.matt@gmail.com' WHERE username = 'ginnoir';"
|
|
|
|
echo "=== start minio + resume (if compose project exists) ==="
|
|
docker start minio_resume 2>/dev/null || true
|
|
docker start resume 2>/dev/null || true
|
|
|
|
echo "done — if resume container was ad-hoc recreated, redeploy stacks/resume via Portainer after git push"
|