Deploy Nodejs: Guia Passo a Passo para sua Aplicação
Fazer deploy de uma aplicação Node.js pode parecer complexo, mas com este guia passo a passo você vai do código ao ar em produção. Pré-requisitos, configuração do servidor e dicas para evitar erros comuns.
Fazer deploy de uma aplicação Node.js pode parecer complexo, mas com este guia passo a passo você vai do código ao ar em produção. Pré-requisitos, configuração do servidor e dicas para evitar erros comuns.
Fazer deploy de uma aplicação Node.js é o processo de colocar seu código em um servidor acessível na internet. Este guia mostra o caminho do repositório local até a produção, com etapas que funcionam tanto em plataformas gerenciadas (Render, Railway) quanto em um VPS. Antes de começar, você precisa de: uma aplicação Node.js funcional, um repositório Git (GitHub, GitLab) e uma conta no serviço de hospedagem escolhido.
Passo 1: Preparar o código para produção
O primeiro passo é garantir que sua aplicação rode em ambiente de produção. No package.json, defina o script start, geralmente node index.js ou node server.js. Crie um arquivo .env para variáveis locais, mas nunca o envie ao Git. Use variáveis de ambiente no servidor para dados sensíveis como chaves de API e string de conexão com banco. Erro comum: esquecer de adicionar o start script, o que impede a plataforma de iniciar a aplicação.
Passo 2: Escolher a plataforma de hospedagem
Plataformas como Render e Railway oferecem deploys simplificados a partir do Git. Para aplicações mais simples, elas bastam. Se precisar de controle total (banco MySQL, configuração de rede), opte por um VPS (DigitalOcean, AWS EC2). Neste guia, usaremos o Render como exemplo, por ser gratuito para projetos pequenos e não exigir cartão de crédito no início. Dica: verifique se a plataforma suporta a versão do Node.js que sua aplicação usa.
Passo 3: Conectar o repositório e configurar o deploy
No painel do Render, clique em "New +" > "Web Service". Conecte sua conta GitHub e selecione o repositório da aplicação. O Render detecta automaticamente o ambiente Node. Configure:
- Build Command:
npm install - Start Command:
npm start - Health Check Path: defina uma rota que retorne 200, como
/health
Adicione as variáveis de ambiente na seção "Environment". Erro comum: não definir a variável NODE_ENV=production, o que pode deixar logs verbosos e afetar performance.
Passo 4: Fazer o primeiro deploy
Clique em "Create Web Service". O Render vai clonar o repositório, instalar dependências e iniciar a aplicação. O processo leva de 2 a 5 minutos. Após o deploy, um domínio público (ex: app.onrender.com) é gerado. Teste o acesso. Se houver erro, verifique os logs em tempo real no painel, eles mostram exatamente o que falhou (porta errada, dependência ausente, variável faltando).
Passo 5: Configurar deploys automáticos
Por padrão, o Render ativa deploys automáticos a cada push no branch principal. Para desabilitar, vá em Settings > Deploy Hooks. Se usar um VPS, configure um webhook do GitHub para rodar um script de pull e restart via PM2. Dica: use um arquivo ecosystem.config.js para gerenciar múltiplas instâncias e reinicialização automática em caso de queda.
Checklist do que foi feito
- Código com script
starte variáveis de ambiente separadas - Repositório Git conectado à plataforma de hospedagem
- Comandos de build e start configurados
- Variáveis de ambiente definidas no servidor
- Primeiro deploy realizado e testado
- Deploys automáticos ativados (ou manual, se preferir)
FAQ
Qual a diferença entre deploy em plataforma gerenciada e VPS?
Plataformas gerenciadas (Render, Railway, Heroku) cuidam da infraestrutura, você só envia o código. VPS (DigitalOcean, AWS) exige configurar servidor, firewall, Node.js e gerenciar atualizações. Para projetos simples, a plataforma gerenciada é mais rápida e segura.
Preciso de um domínio próprio?
Não. As plataformas fornecem um subdomínio gratuito (ex: app.onrender.com). Para produção profissional, é recomendável usar um domínio próprio, que pode ser configurado nas configurações do serviço.
Como lidar com banco de dados no deploy?
Use serviços de banco gerenciados como MongoDB Atlas (MongoDB) ou Supabase (PostgreSQL). Nunca coloque o banco no mesmo servidor da aplicação em produção. Configure a string de conexão como variável de ambiente.
O deploy falhou. O que fazer?
Verifique os logs no painel da plataforma. Os erros mais comuns são: porta diferente da esperada (use process.env.PORT || 3000), dependência não instalada (rode npm install localmente para testar) e variável de ambiente ausente.
É seguro usar o plano gratuito do Render?
Sim, para projetos pessoais e protótipos. O plano gratuito coloca a aplicação em modo sleep após 15 minutos sem atividade, o que pode causar lentidão no primeiro acesso após o período. Para produção, considere o plano pago a partir de US$ 7/mês.
Preciso usar Docker para fazer deploy?
Não é obrigatório. Plataformas gerenciadas detectam automaticamente o ambiente Node. Docker é útil quando você precisa de um ambiente idêntico ao de produção ou quando usa múltiplos serviços (ex: app + banco + fila).