# Procedimiento de recuperación — DH V2 Este documento es un runbook para incidentes. No debe ejecutarse durante un deploy normal. ## Principios - identificar exactamente el backup a utilizar; - verificar `SHA256SUMS` antes de cualquier cambio; - generar un backup de seguridad del estado actual; - no usar `docker compose down -v`; - no eliminar `dhv2_pgdata`; - no eliminar `dhv2_asset_media`; - detener únicamente API y web mientras se recupera la base; - conservar el `.env` actual salvo que el incidente requiera recuperar el del backup; - validar primero el dump con `scripts/verify-backup.sh`. ## Verificación previa ```bash cd /var/www/dhv2.korexlabs.com bash scripts/verify-backup.sh /var/www/dh-backup/dhv2-BACKUP-ELEGIDO ``` ## Orden de recuperación 1. Registrar el motivo, fecha y backup seleccionado. 2. Ejecutar `scripts/backup-phase-a.sh pre-restore`. 3. Verificar ambos backups. 4. Detener `api` y `web`, manteniendo `db` activo. 5. Extraer `source.tar.gz` en un directorio temporal, no sobre producción. 6. Revisar su contenido y recién entonces reemplazar los fuentes. 7. Restaurar `database.dump` con el usuario owner y `pg_restore`. 8. Si el backup contiene `asset-media.tar.gz`, restaurarlo en el volumen `dhv2_asset_media` antes de iniciar la API. 9. Ejecutar `migration:show` y aplicar sólo migraciones pendientes conocidas. 10. Reconstruir API y web. 11. Ejecutar health interno y externo. 12. Ejecutar la aceptación de la fase y una descarga autenticada conocida. 13. Conservar el backup anterior hasta confirmar estabilidad. La restauración de la base reemplaza datos y requiere una autorización específica para el incidente. Por ese motivo no se incluye un script automático que borre o sobrescriba producción. ## Validación posterior ```text health interno y externo: ok database: ok versión esperada Pending migrations: no login: 200 endpoints administrativos con sesión: 200 endpoints administrativos sin sesión: 401 logout: sesión revocada contenedores: Up logs: sin errores de bootstrap volumen dhv2_asset_media: montado y escribible fotografía o documento conocido: descarga íntegra ```