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 3000Boas 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
/healthsimples - não faça
/healthdepender 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
| Sintoma | Correção |
|---|---|
| Aplicação não responde | confirme porta no console e no código |
| App funciona localmente, mas não na Zenifra | confirme 0.0.0.0 em vez de localhost |
| Deploy sobe e cai | revise variáveis obrigatórias e logs de inicialização |
/health falha | remova 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.