chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user