Deploy em produção na Zenifra
Este guia reúne o caminho recomendado para sair de uma conta nova até uma aplicação validada em produção. Use-o quando quiser conectar deploy, banco, observabilidade, domínio e cobrança em um único fluxo.
Pré-requisitos
- conta ativa na Zenifra
- saldo disponível, crédito inicial ou forma de pagamento configurada
- repositório GitHub ou imagem OCI pronta para publicação
- comando de inicialização conhecido, como
npm start,uvicorn main:app --host 0.0.0.0 --port 3000ou equivalente - porta HTTP em que a aplicação realmente escuta
Importante: a Zenifra roteia tráfego para a porta configurada no projeto. A aplicação precisa escutar nessa mesma porta.
Passo 1: preparar a aplicação
Antes de criar o projeto, confirme localmente que a aplicação sobe sem depender de arquivos ausentes.
Para Node.js, prefira ler a porta por variável de ambiente:
const PORT = process.env.PORT || 3000;
app.listen(PORT, '0.0.0.0');Para Python com FastAPI, use um comando de start explícito:
uvicorn main:app --host 0.0.0.0 --port 3000Se a aplicação usa banco, fila ou serviços externos, liste as variáveis necessárias antes do deploy. Não coloque senhas, tokens ou chaves no repositório.
Passo 2: escolher GitHub ou imagem OCI
Use Repositório GitHub quando quiser que a Zenifra faça o fluxo de build a partir do código-fonte. Esse caminho é ideal para aplicações que recebem mudanças frequentes e podem se beneficiar de auto-deploy.
Use Imagem OCI quando você já possui uma imagem pronta, gerada por CI externa, ou quando deseja controlar o artefato de produção por tag.
| Origem | Melhor para | Atenção |
|---|---|---|
| GitHub | Times que publicam a partir da branch principal | runtime, branch e auto-deploy são definidos na criação |
| Imagem OCI | Pipelines que já geram imagem Docker | use tags imutáveis para rastrear versões |
Passo 3: criar o projeto HTTP
No console, clique em Criar Projeto e preencha:
- organização onde o projeto será criado
- origem do projeto
- runtime ou imagem
- porta HTTP
- comandos
pre-build,buildestart, quando a origem for GitHub - variáveis de ambiente
- plano, instâncias e armazenamento conforme a necessidade
Depois da criação, abra a URL *.clients.zenifra.com e valide uma rota simples, como / ou /health.
Passo 4: conectar banco de dados
Se a aplicação usa PostgreSQL ou MariaDB, crie um banco gerenciado e copie os dados de conexão no console.
A Zenifra não injeta automaticamente DATABASE_URL no projeto HTTP. O fluxo correto é:
- criar o banco
- copiar a URI completa no console
- configurar manualmente
DATABASE_URLno projeto HTTP - reiniciar ou redeployar a aplicação se necessário
- validar a conexão pelos logs e por uma rota da aplicação
Para detalhes de engine, réplicas, storage e failover, consulte Banco de Dados.
Passo 5: validar logs, métricas e versão
Depois do deploy, verifique:
- logs da aplicação
- logs de build, quando houver
- CPU, RAM e armazenamento
- quantidade de requisições HTTP recebidas pela aplicação
- variável
ZENIFRA_INSTANCE_VERSION, quando usada pelo seu código
Logs e métricas podem variar conforme o plano. Para detalhes, consulte Observabilidade.
Passo 6: configurar domínio e acesso
Todo projeto recebe uma URL da Zenifra. Para produção, normalmente você também configura um domínio próprio.
Antes de apontar tráfego real:
- configure DNS no provedor do domínio
- valide a propagação
- mantenha a URL da Zenifra como fallback operacional
- revise whitelist e blacklist de IP quando o projeto for administrativo ou interno
Passo 7: fazer novo push e validar auto-deploy
Se auto-deploy foi habilitado na criação do projeto GitHub, faça uma alteração pequena na branch configurada e envie um novo push.
Valide:
- novo build iniciado
- logs de build sem erro
- aplicação respondendo na URL pública
- versão nova visível nos logs ou em uma rota de diagnóstico
Se auto-deploy não foi habilitado na criação, não trate pushes como atualização automática desse projeto.
Passo 8: acompanhar cobrança
Antes de manter o projeto em produção, revise:
- modalidade de cobrança do projeto
- saldo disponível
- cartão como fallback de cobrança, quando configurado
- custo de banco e storage persistente
- consumo de IA, se a aplicação usa modelos da Zenifra
Para regras de saldo, mensalidade, anualidade e uso por hora, consulte Modelos de Pagamento.
Próximos passos
- Checklist antes de ir para produção
- Deploy via GitHub
- Deploy via imagem OCI
- Segurança, privacidade e confiabilidade
- Limites e quotas
FAQ
Posso usar a Zenifra em produção?
Sim. Use este guia junto com os documentos de deploy, banco, observabilidade, segurança e limites para validar se o plano e a configuração atendem ao seu cenário.
Preciso configurar DATABASE_URL manualmente?
Sim. Bancos gerenciados mostram os dados de conexão no console, mas o projeto HTTP precisa receber DATABASE_URL manualmente como variável de ambiente.
Como sei que o deploy novo entrou no ar?
Use logs, métricas, a URL pública e uma identificação de versão, como ZENIFRA_INSTANCE_VERSION ou uma rota /health que exponha a versão da aplicação.