Runbook — API indisponível
Sintomas
- Orquestrador marca o serviço unhealthy
GET /api/healthnão responde ou não é 200- Front com 502/504
Verificar (nesta ordem)
- Processo a escutar?
curl -sS http://127.0.0.1:3000/api/healthdentro do container. - Logs de bootstrap: falta de
POSTGRES_HOST/AUTH_DATABASE_HOST/JWT_SECRETmata o processo. - Porta: o bootstrap pode ter saltado de 3000 se estava ocupada — o healthcheck Compose assume
PORTmapeada para 3000. - Restart loop: imagem antiga (
dist/stale) — rebuild--no-cache. - Dependências: Postgres e (se branding crítico) Redis acessíveis a partir da rede do container.
Mitigação
- Rollback da imagem (deploy).
- Se só o healthcheck falha mas a API responde no host: alinhar
PORTe o comando do healthcheck. /api/healthnão testa a BD (devolve{ status: "ok" }). Um 200 não prova que o Postgres está bem — valide login ou umGETautenticado.
Depois
Registar hora UTC, tag da imagem e se o mapa de presença foi a zero (restart).