Deploy

Portas e health checks

A porta é uma das configurações mais importantes de um projeto HTTP. A Zenifra precisa saber para qual porta encaminhar o tráfego dentro da aplicação.

Regra principal

O valor configurado no campo Porta deve ser o mesmo valor em que a aplicação escuta.

Exemplo em Node.js:

const PORT = process.env.PORT || 3000;

app.get('/health', (req, res) => {
  res.json({ status: 'ok' });
});

app.listen(PORT, '0.0.0.0');

Exemplo em FastAPI:

uvicorn main:app --host 0.0.0.0 --port 3000

Boas práticas

  • escute em 0.0.0.0
  • configure no console a mesma porta usada no código
  • evite depender apenas de localhost
  • crie uma rota /health simples
  • não faça /health depender de serviços lentos ou instáveis
  • registre a porta nos logs de inicialização

Health check da aplicação

Mesmo quando a plataforma não exige uma rota específica de health check, a aplicação deve expor uma rota simples para validação operacional.

Uma boa rota /health deve responder rápido e retornar sucesso quando o processo HTTP está pronto para receber tráfego.

Resposta comum:

{ "status": "ok" }

Para diagnóstico, você também pode expor versão, commit ou ZENIFRA_INSTANCE_VERSION, desde que não exponha segredos.

Falhas comuns

SintomaCorreção
Aplicação não respondeconfirme porta no console e no código
App funciona localmente, mas não na Zenifraconfirme 0.0.0.0 em vez de localhost
Deploy sobe e cairevise variáveis obrigatórias e logs de inicialização
/health falharemova dependências desnecessárias da rota de saúde

Próximos passos

FAQ

A Zenifra define a porta automaticamente?

Não. Configure explicitamente a porta do projeto e faça a aplicação escutar nela.

Posso usar outra rota além de /health?

Sim. /health é apenas uma convenção simples e fácil de testar.

Devo testar banco dentro do health check?

Para uma rota básica de prontidão HTTP, prefira uma resposta rápida. Testes profundos de banco podem existir em outra rota protegida ou ferramenta interna.