1.9 KiB
1.9 KiB
THECR3W-DEV — STRATEGIA BACKUPU I ODTWARZANIA AWARYJNEGO (DISASTER RECOVERY)
Wersja: 1.0.0 | Data: 2026-10-31
1. Cele RPO i RTO
- RPO (Recovery Point Objective): Maksymalnie 6 godzin dla bazy danych PostgreSQL.
- RTO (Recovery Time Objective): Maksymalnie 30 minut na pełne przywrócenie środowiska kontenerowego na serwerze Netcup VPS.
2. Zakres Backupu
- Baza Danych PostgreSQL (
thecr3w-postgres):- Wszystkie tabele metadanych wydań, kluczy, manifestów wdrożeniowych oraz dziennik audytowy
audit_events.
- Wszystkie tabele metadanych wydań, kluczy, manifestów wdrożeniowych oraz dziennik audytowy
- Konfiguracja Serwera i Reverse Proxy:
/opt/proxy/Caddyfileoraz certyfikaty TLS.- Zmienne środowiskowe
.envdla usług TheCr3w-dev.
- Magazyn Artefaktów (Cloudflare R2):
- Bucket
thecr3w-appposiada wbudowaną redundancję geograficzną w chmurze Cloudflare.
- Bucket
3. Procedura Wykonywania Kopii Zapasowej (Automatyczny Cron)
Skrypt wykonywany codziennie o godzinie 02:00 UTC:
#!/usr/bin/env bash
set -eo pipefail
BACKUP_DIR="/opt/backups/thecr3w"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p "${BACKUP_DIR}"
# 1. Zrzut bazy PostgreSQL bez zatrzymywania kontenera
docker exec -t thecr3w-postgres pg_dump -U thecr3w_user thecr3w_db | gzip > "${BACKUP_DIR}/thecr3w_db_${TIMESTAMP}.sql.gz"
# 2. Kopia Caddyfile
cp /opt/proxy/Caddyfile "${BACKUP_DIR}/Caddyfile_${TIMESTAMP}"
# 3. Retencja: usuwanie kopii starszych niż 30 dni
find "${BACKUP_DIR}" -type f -name "*.sql.gz" -mtime +30 -delete
4. Procedura Odtwarzania Awaryjnego (Restore Runbook)
# 1. Uruchomienie nowej bazy
docker compose -f /opt/thecr3w/docker-compose.prod.yml up -d thecr3w-postgres
# 2. Przywrócenie danych ze skompresowanego zrzutu SQL
gunzip -c /opt/backups/thecr3w/thecr3w_db_YYYYMMDD_HHMMSS.sql.gz | docker exec -i thecr3w-postgres psql -U thecr3w_user -d thecr3w_db
# 3. Uruchomienie backendu i frontendu
docker compose -f /opt/thecr3w/docker-compose.prod.yml up -d