Skip to content
← Todos os guias

Devora Cloud · Blog

Publicar sem Git: do ZIP ao site no ar em minutos

Como publicar um site ou sistema na Devora Cloud enviando só um arquivo ZIP: tecnologias suportadas, build automático, PORT e 0.0.0.0, o que deixar fora do ZIP e como conectar o GitHub depois.

projeto.zippackage.jsonsrc/public/fora do ZIPnode_modules/.next/.envBuild automático› detectado: Next.js› npm ci› npm run build› PORT=3000› listen 0.0.0.0✓ healthcheckloja.apps…No arHTTPS automáticoGitHub depois, se quiser
Ilustração técnica. Recursos e regiões dependem do plano, da disponibilidade e da compatibilidade do projeto.

Nem todo projeto nasce num repositório Git. Às vezes o código veio de um freelancer, foi gerado por uma IA, está numa pasta do computador ou num ZIP baixado de algum lugar. Em muitos serviços de hospedagem, isso significa aprender Git, criar repositório e configurar Docker antes mesmo de ver o site funcionando.

Na Devora Cloud você pode publicar com um arquivo ZIP. A plataforma detecta a tecnologia, faz o build sozinha e coloca o site no ar com HTTPS. Este guia mostra o que é suportado, como preparar o ZIP e os dois detalhes que mais derrubam deploys: a porta e o endereço 0.0.0.0.

Tecnologias suportadas sem Dockerfile

TecnologiaComo é detectadaPorta padrão
Next.js e Node.jspackage.json (npm, pnpm ou yarn), com scripts build e start3000
Vite / Reactpackage.json com Vite; o resultado é servido por nginx, com fallback de SPA80
Python: Django, FastAPI, Flaskrequirements.txt ou pyproject.toml8000
Gogo.mod8080
HTML estáticoindex.html na raiz80

Se houver um Dockerfile na raiz do ZIP, ele é usado no lugar da receita automática. Quando não há, o log do build mostra o Dockerfile gerado — útil para entender e corrigir um erro.

Passo a passo

  • Crie a conta em devoracloud.com/register (7 dias grátis, sem cartão).
  • No painel, crie um projeto novo e escolha o envio por ZIP.
  • Envie o arquivo (até 512 MB).
  • Acompanhe o build: análise, construção, publicação e verificação de saúde.
  • Quando o status ficar pronto, o site responde em https://seu-projeto.apps.devoracloud.com, com certificado automático.

Prefere não fazer nada disso? Gere o token de IA no painel e peça à sua IA para publicar: ela prepara o ZIP, cria o projeto e acompanha o build por você.

Como montar o ZIP

Coloque na raiz do ZIP o arquivo que identifica o projeto: package.json, requirements.txt, go.mod ou index.html. Uma única pasta no topo também funciona. Use ZIP; o formato tar não é aceito.

Deixe de fora:

  • node_modules — as dependências são instaladas no build.
  • .next, dist e build — o build é refeito na plataforma.
  • .git — o histórico não é necessário.
  • .env e qualquer arquivo com senhas ou chaves — use as variáveis de ambiente do projeto.
  • Uploads de usuários e bancos locais, como arquivos .sqlite — arquivos vão para o S3 e dados para o PostgreSQL.

Um ZIP enxuto sobe mais rápido e evita levar para a nuvem algo que só fazia sentido no seu computador.

PORT e 0.0.0.0: o erro mais comum

A aplicação precisa escutar no endereço 0.0.0.0 e na porta indicada pela variável de ambiente PORT. Se ela escutar só em localhost (127.0.0.1) ou numa porta fixa diferente, o build termina com sucesso, mas a verificação de saúde não consegue falar com o app e o deploy falha.

  • Node.js: app.listen(process.env.PORT || 3000, "0.0.0.0").
  • Next.js: o script start padrão (next start) já respeita a variável PORT.
  • Python: rode o servidor (uvicorn, gunicorn) com host 0.0.0.0 e a porta de PORT.
  • Go: leia os.Getenv("PORT") e escute em ":" + porta.

Confira também os scripts: em projetos Node, o package.json precisa ter build (se houver etapa de build) e start.

Outros erros comuns no primeiro deploy

Se o deploy falhar, abra o log antes de mudar qualquer coisa. Os casos mais frequentes são simples de resolver:

  • Dependência faltando: o pacote funciona no seu computador porque foi instalado à mão, mas não está no package.json ou no requirements.txt.
  • Versão errada do runtime: o projeto exige uma versão de Node.js ou Python diferente da que o build detectou.
  • Caminho com letras maiúsculas e minúsculas trocadas: funciona no Windows ou no macOS, mas não no Linux do build.
  • Variável de ambiente ausente no build: o código tenta ler uma chave que só existia no seu .env local.

Corrija, gere um ZIP novo e publique outra vez. Enquanto isso, a versão anterior continua no ar.

Variáveis, banco e S3

Senhas e chaves entram como variáveis de ambiente do projeto, disponíveis no build e na execução. Se o sistema usa banco, crie o PostgreSQL ou o Redis antes do primeiro deploy: a conexão chega ao app como DATABASE_URL (ou REDIS_URL). Para imagens e documentos, crie o S3 privado do projeto; o app recebe as variáveis S3_* prontas.

Nunca coloque segredos em variáveis lidas pelo navegador, como as que começam com NEXT_PUBLIC_.

Novas versões e GitHub depois

Para atualizar, envie um novo ZIP e publique de novo. Um deploy que falha nunca substitui a versão que está no ar: o site continua funcionando enquanto você corrige.

Quando o projeto amadurecer, conecte o GitHub uma vez no painel, em Conexões, e vincule o repositório ao projeto. A partir daí, cada push na branch escolhida gera um deploy. O envio por ZIP continua disponível para quem preferir.

Perguntas frequentes

Preciso de Dockerfile?

Não. Next.js, Node.js, Vite/React, Python (Django, FastAPI, Flask), Go e HTML estático têm receitas automáticas. Se você enviar um Dockerfile na raiz, ele é usado.

Qual é o tamanho máximo do ZIP?

Até 512 MB. Sem node_modules e pastas de build, a maioria dos projetos fica bem abaixo disso.

O build passou, mas o deploy falhou. Por quê?

Na maioria das vezes a aplicação não está escutando em 0.0.0.0 e na porta da variável PORT, ou falta o script start. Veja os logs do deploy: eles mostram o erro e o Dockerfile gerado.

Posso trocar para o GitHub depois?

Sim. Conecte o GitHub em Conexões e vincule o repositório ao projeto; os próximos deploys passam a sair de cada push.

Publicar sem Git: do ZIP ao site no ar em minutos · Devora Cloud