Deploy Checklist — Golden Path
Deploy Checklist — Golden Path
Objetivo: Desplegar siempre igual, sin improvisación. Seguir estos pasos en orden. Aplica a: CreaRack Pro (Hetzner PROD via Dokploy)
Pre-Deploy
- Tests pasan:
docker compose exec web python -m pytest tests/api/ -v - No hay migraciones pendientes:
docker compose exec web python manage.py showmigrations --plan | grep "\[ \]"(vacío = OK) - Si hay migraciones nuevas: verificar que son backward-compatible (no borran columnas usadas)
-
git statuslimpio (sin cambios sin commitear) -
git pull --rebase origin mainejecutado - Revisar CHANGELOG.md — los cambios están documentados
Deploy
- Push a main:
git push origin main - Verificar que Dokploy recibe el webhook: dashboard Dokploy → Deployments
- Esperar a que el build termine (2-3 min típico)
- Si el build falla: revisar logs en Dokploy, NO forzar re-deploy sin entender el error
Post-Deploy (verificación)
- Health check:
curl -s https://crearack.com/health→ debe devolver 200 - Logs limpios:
ssh root@crearack.com "docker logs crearack-pro-zcmvsl-web-1 --tail 20"→ sin errores - Login funciona: abrir https://crearack.com en browser, hacer login
- Migraciones aplicadas:
ssh root@crearack.com "docker exec crearack-pro-zcmvsl-web-1 python manage.py showmigrations --plan | grep '\[ \]'"→ vacío - UptimeRobot: verificar que no hay alerta (uptimerobot.com)
Si algo falla (Rollback)
- No entrar en pánico — los datos están seguros (DB no se toca en rollback)
- En Dokploy: ir al deploy anterior → “Redeploy” (usa la imagen del commit anterior)
- Si Dokploy no responde:
ssh root@crearack.com "docker rollback crearack-pro-zcmvsl-web-1"(si Swarm) odocker service update --rollback - Verificar que la versión anterior funciona (health check + login)
- Investigar el problema en local antes de re-intentar
Casos especiales
Deploy con migraciones
- Ejecutar migraciones ANTES de desplegar nuevo código si es backward-compatible
- Si la migración no es backward-compatible: deploy en 2 pasos (migración primero, código después en el siguiente deploy)
Deploy de cambios docs-only
- Push inmediato como cualquier otro commit, sin
[skip ci](política equipo desde 30-04-2026) - Dokploy puede saltar el rebuild si el cambio no toca código ejecutable, pero CF Pages Deploy y Bibliotecario-Ingest sí corren — eso es lo que queremos
- Excepción única: emergencia explícita autorizada con motivo en el commit message (avisar al equipo, el deploy también se salta)
Deploy de emergencia (hotfix)
- Hacer branch
edu/hotfix-XXXdesde main - Fix mínimo, test, merge a main
- Push inmediato — no esperar a acumular más cambios
- Post-mortem: documentar qué falló y por qué en WORKLOG.md
Véase también
- [[crearack-tech—guides—production-deployment]] — deploy en producción Hetzner
- [[crearack-tech—admin—dokploy-guide]] — guía de Dokploy
- [[crearack-tech—admin—dokploy-internals]] — internals de Dokploy
- [[crearack-tech—guides—docker-guide]] — guía de Docker Compose
- [[crearack-tech—guides—disaster-recovery]] — procedimiento de disaster recovery
- [[decision—20251201—dokploy-vs-kubernetes]] — ADR Dokploy vs Kubernetes