Voltar ao blog Deploy

Como fazer deploy de uma aplicação Node.js no Brasil

Um guia direto para publicar uma aplicação Node.js com container, HTTPS, domínio e observabilidade em infraestrutura brasileira usando a Guara Cloud.

4 min de leitura

Por Guara Cloud Editorial

Testado com Node.js 20 / Docker / Guara Cloud

Publicar uma aplicação Node.js no Brasil não precisa envolver servidor manual, Nginx, certificado TLS, cobrança em dólar e uma semana de ajustes de infraestrutura. Se a aplicação roda em container, a Guara Cloud consegue levar esse serviço para produção com domínio, HTTPS e observabilidade em poucos passos.

Este guia usa uma API Node.js simples como referência, mas o fluxo vale para Express, Fastify, NestJS e qualquer runtime que exponha uma porta HTTP.

Resposta rápida

Para fazer deploy de uma aplicação Node.js no Brasil, empacote a aplicação em uma imagem Docker, faça a aplicação escutar a porta definida por PORT, configure variáveis de ambiente fora do código e publique o serviço na Guara Cloud. A plataforma roda em Linode LKE em São Paulo, entrega HTTPS gerenciado, logs e cobrança em Real.

Principais pontos

  • Use um Dockerfile reproduzível com lockfile commitado.
  • Leia PORT pelo ambiente e escute em 0.0.0.0.
  • Configure segredos pelo painel, nunca no repositório.
  • Valide URL pública, logs e consumo de CPU/memória depois do primeiro deploy.

Quando este guia se aplica

Use este fluxo para APIs Express, Fastify, NestJS, workers HTTP e qualquer serviço Node.js que possa rodar em container. Se a aplicação depende de banco de dados, crie o serviço de banco no catálogo e injete a URL de conexão como variável de ambiente.

Quando não usar este fluxo

Este guia não cobre aplicações puramente estáticas, deploy serverless sem container ou workloads que precisam de acesso direto ao Kubernetes. Para esses casos, prefira a documentação específica da plataforma ou um serviço especializado.

Antes de começar

  • Uma aplicação Node.js com script de start
  • Um Dockerfile funcional
  • Uma conta na Guara Cloud
  • Variáveis de ambiente separadas do código

1. Prepare a aplicação para rodar em container

O ponto mais importante é garantir que a aplicação escute a porta recebida por variável de ambiente.

Porta HTTP
const port = Number(process.env.PORT ?? 3000);

2. Crie um Dockerfile de produção

Use uma imagem enxuta, instale dependências com lockfile e rode a aplicação sem depender de arquivos locais.

Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
ENV NODE_ENV=production
CMD ["npm", "start"]

3. Configure variáveis de ambiente

Nunca coloque segredos no repositório. Configure valores como conexão de banco, tokens e chaves pelo painel da Guara Cloud.

Variáveis de ambiente

Nome Valor
NODE_ENV production
PORT 3000
DATABASE_URL postgres://...

4. Faça o deploy na Guara Cloud

Depois que o container está pronto, conecte o repositório ou informe a imagem Docker. A plataforma cuida do serviço, domínio interno, HTTPS e logs.

Passo a passo

  1. Crie um novo serviço na Guara Cloud
  2. Escolha deploy via GitHub ou imagem Docker
  3. Confirme a porta HTTP da aplicação
  4. Adicione as variáveis de ambiente
  5. Inicie o deploy e acompanhe os logs

5. Valide logs, domínio e saúde do serviço

Depois do primeiro deploy, confirme se a aplicação responde pela URL pública, revise os logs e observe consumo de CPU e memória. Esse passo evita descobrir problemas só depois que usuários acessarem o serviço.

Solução de problemas

Problema A aplicação sobe, mas não responde
Solução Confirme se ela escuta em 0.0.0.0 e usa a porta configurada.
Problema O build funciona localmente, mas falha no deploy
Solução Garanta que o lockfile foi commitado e que o Dockerfile não depende de arquivos ignorados.
Problema O serviço precisa de banco de dados
Solução Crie um Postgres pelo catálogo e configure a variável DATABASE_URL no serviço.

Qual é a forma mais simples de publicar Node.js no Brasil?

A forma mais simples é criar uma imagem Docker da aplicação, configurar PORT e variáveis de ambiente, e publicar o serviço em uma plataforma com infraestrutura no Brasil como a Guara Cloud.

Preciso configurar Nginx e certificado TLS manualmente?

Não. Na Guara Cloud, o serviço recebe HTTPS gerenciado e domínio público sem você operar Nginx ou certificados manualmente.

A cobrança é em Real?

Sim. A Guara Cloud cobra em BRL via Stripe, evitando conversão de dólar para times brasileiros.

Publique seu próximo serviço Node.js na Guara Cloud

Deploy com container, HTTPS, logs e cobrança em Real, sem gerenciar Kubernetes.

Começar grátis