Pular para o conteúdo principal

Runbook — API indisponível

Sintomas

  • Orquestrador marca o serviço unhealthy
  • GET /api/health não responde ou não é 200
  • Front com 502/504

Verificar (nesta ordem)

  1. Processo a escutar? curl -sS http://127.0.0.1:3000/api/health dentro do container.
  2. Logs de bootstrap: falta de POSTGRES_HOST / AUTH_DATABASE_HOST / JWT_SECRET mata o processo.
  3. Porta: o bootstrap pode ter saltado de 3000 se estava ocupada — o healthcheck Compose assume PORT mapeada para 3000.
  4. Restart loop: imagem antiga (dist/ stale) — rebuild --no-cache.
  5. 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 PORT e o comando do healthcheck.
  • /api/health não testa a BD (devolve { status: "ok" }). Um 200 não prova que o Postgres está bem — valide login ou um GET autenticado.

Depois

Registar hora UTC, tag da imagem e se o mapa de presença foi a zero (restart).