Guias por framework
Cada framework tem um jeito próprio de compilar, iniciar e escutar conexões. Esta seção reúne configurações testadas para os frameworks mais usados, com os valores exatos que você preenche no console da Zenifra.
Como escolher o caminho
A Zenifra publica aplicações de duas formas:
| Caminho | Quando usar | Linguagens |
|---|---|---|
| Repositório GitHub | Você quer que a Zenifra instale dependências, faça a build e publique a cada mudança | Node.js e Python |
| Imagem OCI | Sua aplicação usa outra linguagem ou você já gera uma imagem Docker no CI | Qualquer linguagem que rode em container |
Regra prática
Se o projeto é Node.js ou Python, comece pelo Repositório GitHub: não há Dockerfile para manter. Para Go, Java, PHP, .NET, Ruby, Rust ou sites estáticos servidos por NGINX, use Imagem OCI com um dos Dockerfiles prontos do guia de Dockerfile.
Tabela de referência rápida
| Framework | Caminho | Porta sugerida | Build | Start |
|---|---|---|---|---|
| Next.js | GitHub · Node.js | 3000 | npm run build | npx next start -H 0.0.0.0 -p 3000 |
| Express / Fastify | GitHub · Node.js | 3000 | vazio ou npm run build | node index.js |
| NestJS | GitHub · Node.js | 3000 | npm run build | node dist/main.js |
| Vite, React, Vue, Astro estático | GitHub · Node.js ou OCI | 3000 / 80 | npm run build | npx serve -s dist -l tcp://0.0.0.0:3000 |
| FastAPI | GitHub · Python | 8000 | vazio | uvicorn main:app --host 0.0.0.0 --port 8000 |
| Flask | GitHub · Python | 8000 | vazio | gunicorn app:app --bind 0.0.0.0:8000 |
| Django | GitHub · Python | 8000 | python manage.py collectstatic --noinput | gunicorn config.wsgi --bind 0.0.0.0:8000 |
| Go | OCI | 8080 | no Dockerfile | binário da imagem |
| Spring Boot | OCI | 8080 | no Dockerfile | java -jar app.jar |
| Laravel | OCI | 8080 | no Dockerfile | servidor da imagem |
| ASP.NET Core | OCI | 8080 | no Dockerfile | dotnet App.dll |
A porta da tabela é uma sugestão. O que importa é que o campo Porta do projeto seja igual à porta em que a aplicação escuta.
As três regras que evitam 90% dos problemas
1. Escute em 0.0.0.0
A aplicação precisa aceitar conexões de fora do container. Servidores que escutam só em localhost ou 127.0.0.1 sobem sem erro, mas nunca recebem tráfego.
2. Use a porta configurada no projeto
A Zenifra encaminha o tráfego para a porta informada no campo Porta. Se a aplicação escuta em 3000 e o projeto está configurado com 8080, a URL pública não responde. Fixar a porta no comando start deixa a configuração explícita e fácil de revisar.
3. Configure tudo por variáveis de ambiente
URLs de banco, chaves de API e segredos ficam em variáveis de ambiente, nunca no código. Em projetos GitHub, as variáveis do projeto também ficam disponíveis durante a instalação, o pre-build e a build.
O que acontece numa publicação GitHub
Instalação de dependências: npm ci (Node.js) ou pip install -r requirements.txt (Python).
pre-build (opcional): preparações, como gerar clientes de ORM.
build (opcional): compilação, como npm run build ou collectstatic.
start (obrigatório): o processo que fica rodando e atende as requisições.
Detalhes de versões e comportamento de cada runtime estão em Runtimes.
Seu framework não está na lista?
- Node.js ou Python: siga o guia mais próximo. A estrutura é sempre a mesma: dependências, build opcional e um comando que escuta em
0.0.0.0na porta do projeto. - Outra linguagem: escreva um Dockerfile seguindo os requisitos do guia de Dockerfile e publique como Imagem OCI.
- Aplicação pronta (n8n, Metabase, WordPress): use um Template.
Próximos passos
Última atualização em