업데이트 및 마이그레이션: 백업
목표 및 결과
섹션 제목: “목표 및 결과”이 페이지 전용 절차를 수행합니다: 업데이트 및 마이그레이션: 백업. 이 절차에서 다루는 항목: pg_dump -Fc · DISCVAULT_DATA_DIR · PREVIOUS_IMAGE · next-api.
적용 대상
섹션 제목: “적용 대상”이 페이지의 적용 범위: 업데이트 및 마이그레이션: 백업 (Docker · Unraid). 채널 및 데이터 경계: DiscVault · ghcr.io/helmerznl/discvault:latest; 동일한 쓰기 중지 시간의 PostgreSQL 덤프와 파일 아카이브; PostgreSQL /data; DiscVault · ghcr.io/helmerznl/discvault:beta; 동일한 쓰기 중지 시간의 PostgreSQL 덤프와 파일 아카이브; PostgreSQL /data. 이 페이지의 전용 확인 지점: pg_dump -Fc · DISCVAULT_DATA_DIR · PREVIOUS_IMAGE · next-api.
DiscVault v26 안정판
섹션 제목: “DiscVault v26 안정판”- DiscVault ·
ghcr.io/helmerznl/discvault:latest - 동일한 쓰기 중지 시간의 PostgreSQL 덤프와 파일 아카이브
- PostgreSQL
/data
DiscVault v26 베타
섹션 제목: “DiscVault v26 베타”- DiscVault ·
ghcr.io/helmerznl/discvault:beta - 동일한 쓰기 중지 시간의 PostgreSQL 덤프와 파일 아카이브
- PostgreSQL
/data
사전 요구 사항
섹션 제목: “사전 요구 사항”- 실시간 데이터 경로 외부의 백업 대상
- 쓰기 가능한 영구 저장소와 백업 여유 공간
- 기록:
PREVIOUS_IMAGE·sha256 - 중지:
next-apinext-workernext-mcp - 백업:
pg_dump -Fc - 시작:
next-api→ → MCP
명령 및 설정
섹션 제목: “명령 및 설정”두 채널
섹션 제목: “두 채널”set -euo pipefailcd /opt/discvaultinstall -d -m 0700 /srv/backupsBACKUP_ID="$(date -u +%Y%m%dT%H%M%SZ)"API_ID="$(docker compose --env-file .env -p discvault -f compose.yaml ps -q next-api)"IMAGE_ID="$(docker inspect "$API_ID" --format '{{.Image}}')"PREVIOUS_IMAGE="$(docker image inspect "$IMAGE_ID" --format '{{index .RepoDigests 0}}')"test -n "$PREVIOUS_IMAGE"printf 'BACKUP_ID=%s\nPREVIOUS_IMAGE=%s\n' "$BACKUP_ID" "$PREVIOUS_IMAGE" \ > "/srv/backups/discvault-$BACKUP_ID.env"chmod 0600 "/srv/backups/discvault-$BACKUP_ID.env"docker compose --env-file .env -p discvault -f compose.yaml stop next-worker next-mcp next-apidocker compose --env-file .env -p discvault -f compose.yaml exec -T postgres \ sh -c 'pg_dump -Fc -U "$POSTGRES_USER" "$POSTGRES_DB"' \ > "/srv/backups/discvault-$BACKUP_ID.dump"tar --acls --xattrs -C /srv -czf \ "/srv/backups/discvault-data-$BACKUP_ID.tgz" discvaultdocker compose --env-file .env -p discvault -f compose.yaml start next-apicurl --fail http://localhost:6080/api/next/healthdocker compose --env-file .env -p discvault -f compose.yaml start next-worker next-mcptest -s "/srv/backups/discvault-$BACKUP_ID.dump"gzip -t "/srv/backups/discvault-data-$BACKUP_ID.tgz"예상 결과
섹션 제목: “예상 결과”다음 결과의 승인 조건: 업데이트 및 마이그레이션: 백업 아래 결과가 모두 충족된 경우에만: 아카이브와 덤프가 비어 있지 않고 복원 예행연습에서 읽히며 불변 이미지 다이제스트와 연결됨. 이 페이지의 전용 확인 지점: pg_dump -Fc · DISCVAULT_DATA_DIR · PREVIOUS_IMAGE · next-api.
- 아카이브와 덤프가 비어 있지 않고 복원 예행연습에서 읽히며 불변 이미지 다이제스트와 연결됨
안전 및 롤백
섹션 제목: “안전 및 롤백”다음 단계
섹션 제목: “다음 단계”출처 및 상태
섹션 제목: “출처 및 상태”helmerzNL/DiscVault@6d27c689ac21- 출처 및 상태:
2026-07-14 - DiscVault Docs:
0.1.0
