Com um plano de Apps Node.js você publica apps Node (Express, Fastify, NestJS, Next.js e mais) direto do seu repositório no GitHub, GitLab ou Bitbucket. A gente clona o código, instala as dependências, roda o build e liga o app com HTTPS.
1. Prepare seu app
Ele precisa cumprir três coisas:
- Escutar na porta da variável PORT.
- Ter um comando de início: o script start do package.json (ou o que você definir no painel).
- Responder na rota de saúde (por padrão /): antes de mandar visitas para uma versão nova, conferimos se ela responde.
Um exemplo mínimo com Express:
const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("Olá da Fodenflow!"));
app.listen(process.env.PORT || 3000);E no package.json:
"scripts": {
"start": "node index.js"
}2. Crie o app no painel
- Acesse Apps Node.js e clique em Criar app no seu plano.
- Escolha Repositório Git, cole o endereço HTTPS (por exemplo https://github.com/usuario/minha-api) e a branch (normalmente main).
- Se o repositório for privado, marque É um repositório privado e cole um token somente leitura. No GitHub ele é criado em Settings → Developer settings → Personal access tokens → Fine-grained tokens, com acesso só a esse repositório e Contents: Read-only.
- Escolha a versão do Node (20, 22 ou 24). Os comandos de instalação e build são opcionais: se deixar vazios, detectamos pelo seu package.json e gerenciador (npm, pnpm ou yarn).
- Cadastre suas variáveis de ambiente e escolha o endereço: seu app fica em https://seu-app.apps.fodenflow.com.
- Clique em Criar e implantar e acompanhe o registro do build ao vivo.
Não usa Git? Você também pode enviar um ZIP do projeto (até 200 MB, sem node_modules) ou começar com um modelo.
3. Variáveis de ambiente
Chaves de API e senhas vão no seu app → Variáveis (ficam criptografadas; as secretas não aparecem de novo). Você pode colar um .env inteiro. Nós definimos três:
PORT a porta onde seu app precisa escutar
DATA_DIR uma pasta que se mantém entre os deploys
NODE_ENV production (você pode mudar)Atenção: o resto do disco do app é montado do zero a cada deploy. O que precisar ficar (arquivos enviados, por exemplo), guarde em DATA_DIR.
4. Deploy automático a cada push
No seu app → Ajustes → Deploy automático, copie a URL do webhook (e o segredo) e cadastre no GitHub em Settings → Webhooks → Add webhook, com Content type application/json e a opção Just the push event. A partir daí, cada push na branch configurada publica uma versão nova.
A versão nova liga ao lado da que está no ar e as visitas só passam para ela quando a rota de saúde responde: sem quedas. Se algo der errado, em Deploys clique em Voltar para esta versão em uma anterior.
5. Seu domínio, com SSL
No seu app → Domínios, adicione seu domínio e mostramos o registro a criar: um CNAME para o endereço grátis do app se for um subdomínio (www, api), ou um A para o nosso IP se for o domínio raiz. Quando o DNS estiver certo, emitimos o certificado do Let's Encrypt sozinhos.