Guias por stack
A detecção automática cobre os casos comuns. Aqui está o que cada stack precisa para subir sem surpresa.
Next.js
Precisa dos scripts build e start no package.json. O Next escuta na porta que vier em PORT, então não fixe a porta no código.
"scripts": {
"build": "next build",
"start": "next start"
}O build do Next usa bastante memória, mas roda fora do limite do seu app. Para o app em si, comece com 512 MB. Se usa Prisma, rode prisma generate no build (por exemplo em postinstall).
Vite / React estático
Se o app é só front-end, publique como static. Ele serve a pasta gerada pelo build, em geral dist, e consome pouquíssima RAM.
{
"tipo": "static",
"build": "npm run build"
}Em app de página única com rotas no navegador, confira que o roteamento funciona ao recarregar uma rota interna.
Express / Node
O servidor tem que escutar em process.env.PORT e em 0.0.0.0. Escutar só em localhost faz o deploy passar e o endereço não responder.
const port = process.env.PORT || 3000
app.listen(port, '0.0.0.0')E o package.json precisa de "start": "node index.js" (ou o arquivo de entrada que for o seu).
Python: FastAPI e Flask
Liste as dependências em requirements.txt. O comando de start precisa usar a porta de PORT. Com um lumahost.json:
{
"tipo": "web",
"start": "uvicorn main:app --host 0.0.0.0 --port $PORT"
}No Flask, troque por gunicorn app:app --bind 0.0.0.0:$PORT e inclua o gunicorn no requirements.txt.
Bot de Discord com discord.js
Bot não recebe visita, então publique como worker. Worker não tem endereço público nem porta, e é isso que evita o erro de "porta não encontrada".
{
"tipo": "worker",
"start": "node index.js",
"ramMb": 256
}Guarde o token do bot em uma variável de ambiente (DISCORD_TOKEN), nunca no código.
App exportado do Lovable ou do Bolt
Esses geradores costumam produzir um projeto Vite com React. Suba como static, como no guia do Vite. Se o app usa o Supabase ou outro serviço de fora, coloque as chaves em variáveis de ambiente. As variáveis do Vite que começam com VITE_ precisam existir no momento do build, então defina-as antes de implantar.
server ou api), ele é um app web separado do front-end. Sem dúvida sobre como dividir? Fale com o suporte.