Base de Conhecimento

Node.js na VPS: como rodar seu app com PM2

  • node.js na vps, node.js, pm2, nvm, vps, tutorial
  • Usuários acharam útil: 0

Aprenda a rodar Node.js na VPS: instalar com nvm, subir o app com PM2, religar após reiniciar, colocar domínio com Nginx, atualizar e resolver erros comuns.

Por Redação Eleven Host · @robson.direitodigital · 27 de outubro de 2026 · 6 min de leitura

Arte da Eleven Host: janela de terminal com o título: Node.js na VPS: como rodar seu app com PM2

Capa da Redação Eleven Host para o guia: Node.js na VPS: como rodar seu app com PM2 Arte: Eleven Host

Para rodar Node.js na VPS, instale o Node com o nvm, mantenha o app no ar com o PM2 e ponha o Nginx na frente para atender o domínio. Cada peça tem um papel, e este guia mostra os comandos na ordem.

Os comandos usam nomes de exemplo (meu-app, app.js, a porta 3000): troque pelos do seu projeto. O PM2 é um gerenciador de processos para apps Node.js: mantém o app rodando em segundo plano, reinicia se ele cair, guarda os logs e religa os apps depois que a VPS reinicia.

Instalar o Node com o nvm

O nvm instala o Node por usuário, na pasta ~/.nvm, e permite trocar de versão com um comando. Rode estes passos com o seu usuário comum, não como root: o app não precisa de mais permissão do que isso.

Baixe e rode o instalador do nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash

Feche e abra o terminal (ou rode source ~/.bashrc) para o nvm ser reconhecido. Depois instale a versão LTS do Node e confira:

nvm install --lts

node -v

npm -v

Na data deste guia, o site nodejs.org mostra a LTS v24.22.1. A sua pode ser mais nova, e tudo bem: use a LTS que o nvm instalar.

Subir o app com o PM2

Instale o PM2 de forma global com o npm:

npm install pm2@latest -g

Entre na pasta do seu projeto e inicie o app com um nome fácil de lembrar:

cd ~/meu-app

pm2 start app.js --name meu-app

Estes são os comandos do dia a dia:

  • pm2 list (ou pm2 ls, pm2 status) mostra os apps e se estão no ar.
  • pm2 logs mostra os registros dos apps.
  • pm2 restart meu-app reinicia o app, por exemplo depois de trocar o código.
  • pm2 stop meu-app para o app sem tirá-lo da lista.
  • pm2 delete meu-app tira o app da lista.
  • pm2 monit abre um painel no terminal com o uso de cada app.

Rode o app como usuário comum e deixe a senha do banco e outros segredos fora do código versionado, em variáveis de ambiente. Rodar o app como root dá a ele mais permissão do que ele precisa.

Religar o app depois de reiniciar a VPS

Subir o app com o PM2 não basta para ele voltar após um reinício da VPS. Para isso existem dois comandos. O primeiro cria a configuração de inicialização. Rode-o sem sudo:

pm2 startup

O PM2 detecta o sistema de inicialização e mostra na tela um comando para você copiar e colar no terminal. Esse comando, sim, começa com sudo. Cole-o e execute. Depois, com os apps já iniciados, grave a lista:

pm2 save

O pm2 save congela a lista de apps para ela voltar depois do reinício. Se precisar trazer a lista salva de volta manualmente, use pm2 resurrect. Para remover a configuração de inicialização, use pm2 unstartup.

Quer colocar o seu app Node.js num servidor seu? Os planos de VPS começam em R$ 17,00/mês, no Plano Bronze; confira na loja o que cada plano inclui. Ver planos de VPS

Colocar domínio e HTTPS na frente do app

O app escuta numa porta interna, como a 3000, em 127.0.0.1. Quem recebe os visitantes nas portas 80 e 443 é o Nginx, que repassa o pedido ao app. Esse arranjo se chama proxy reverso, e o HTTPS fica configurado no Nginx. O passo a passo está em Nginx proxy reverso: como configurar na sua VPS.

Duas conferências antes disso:

Atualizar o app, o Node e o PM2

Para publicar uma versão nova do seu código, atualize os arquivos na pasta do projeto, instale as dependências se mudaram e reinicie o app:

cd ~/meu-app

npm install

pm2 restart meu-app

Para trocar de versão do Node, instale a nova com o nvm e confira a versão com node -v antes de seguir. A documentação do PM2 pede que, depois de atualizar o Node, você atualize também o script de inicialização:

pm2 unstartup

pm2 startup

pm2 save

Lembre que o pm2 startup mostra um comando com sudo para colar, como no passo anterior. Para atualizar o próprio PM2:

npm install pm2@latest -g

pm2 update

Teste o app depois de cada troca de versão e acompanhe com pm2 logs.

Erros comuns

Estes são problemas comuns quando se sobe um app Node.js numa VPS:

  • Erro 502 no navegador: o Nginx não conseguiu falar com o app. Veja se ele está no ar com pm2 list e se a porta do Nginx é a mesma do app. O guia Erro 502 Bad Gateway: o que é e como resolver na VPS traz o passo a passo.
  • O app sai sozinho: rode pm2 logs e leia as últimas linhas. A causa pode aparecer ali, como uma variável que falta ou um erro no código.
  • O app não volta depois de reiniciar a VPS: repita o pm2 startup e o pm2 save, e confira com pm2 list após um reinício.
  • O comando node não é encontrado: o terminal talvez ainda não tenha carregado o nvm. Abra um terminal novo ou rode source ~/.bashrc.

Checklist do app Node no ar

  • Instalei o Node com o nvm, com o usuário comum, e conferi node -v e npm -v.
  • Instalei o PM2 e iniciei o app com pm2 start.
  • Conferi o app com pm2 list e li os registros com pm2 logs.
  • Rodei pm2 startup, colei o comando que ele mostrou e rodei pm2 save.
  • O app escuta em 127.0.0.1, e o Nginx faz o proxy reverso.
  • O domínio aponta para a VPS e o HTTPS está no Nginx.
  • A porta 3000 não está liberada no firewall.
  • Os segredos estão fora do código versionado.
  • Depois de trocar o Node, repeti pm2 unstartup, pm2 startup e pm2 save.

Registre o domínio do seu app e aponte para a VPS. Registrar domínio

Perguntas frequentes

Para que serve o PM2?

É um gerenciador de processos para apps Node.js. Mantém o app em segundo plano, reinicia se ele cair, guarda logs e religa os apps depois que a VPS reinicia.

Preciso de Nginx para rodar um app Node.js na VPS?

O Nginx na frente atende o domínio nas portas 80 e 443 e permite colocar o HTTPS. O app fica numa porta interna, sem exposição direta.

Como faço o app voltar depois de reiniciar a VPS?

Rode pm2 startup sem sudo, cole o comando que ele mostrar e, com os apps iniciados, rode pm2 save.

Preciso mexer no PM2 depois de atualizar o Node?

Segundo a documentação do PM2, sim: rode pm2 unstartup, depois pm2 startup de novo e pm2 save.

Como vejo por que o app caiu?

Rode pm2 logs e leia as últimas linhas. Elas podem mostrar o erro que fez o app sair.

Esta resposta lhe foi útil?

Artigos Relacionados