Introdução: Por que o VPS é a solução ideal para sua aplicação Node.js?
\nVocê escreveu uma aplicação incrível em JavaScript (Node.js), testou localmente e agora quer que ela fique disponível na internet 24/7. Hospedagem compartilhada geralmente não é adequada para Node.js devido a limitações, e serviços em nuvem (Heroku, Railway) podem ser caros ou imprevisíveis em termos de desempenho. Um Servidor Virtual Privado (VPS) é o meio-termo ideal: controle total, alto desempenho e preço acessível.
\nNeste guia passo a passo, vamos detalhar o processo de implantação de uma aplicação JavaScript (Node.js) em um VPS do zero. Você aprenderá como configurar o servidor, instalar o software necessário, executar a aplicação com segurança e disponibilizá-la através de um domínio. Todos os exemplos de código são funcionais e testados.
\n\n1. Preparação do servidor: configuração inicial do VPS
\nPara começar, você precisará alugar um VPS de qualquer provedor (DigitalOcean, Vultr, Timeweb, Selectel). Especificações mínimas: 1 vCPU, 1-2 GB de RAM, 20-30 GB de SSD. Sistema operacional — Ubuntu 22.04 LTS (a versão mais estável).
\n\n1.1. Conexão ao servidor via SSH
\nApós obter o endereço IP e a senha, conecte-se ao servidor através do terminal (Mac/Linux) ou PuTTY (Windows):
\nssh root@seu_IP_do_servidor\nAltere imediatamente a senha e crie um novo usuário (trabalhar como root é uma má prática):
\nadduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user\n\n1.2. Atualização do sistema e instalação de pacotes básicos
\nsudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential\nConfigure o firewall básico UFW (deixe apenas SSH e as portas que usaremos):
\nsudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable\n\n2. Instalação do Node.js e do gerenciador de processos PM2
\nPara executar a aplicação JavaScript no servidor, precisaremos do Node.js. Use o gerenciador de versões oficial NodeSource para instalar a versão LTS mais recente:
\n\n2.1. Instalação do Node.js (v20 LTS)
\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs\nVerifique a instalação:
\nnode -v # v20.x.x\nnpm -v # 10.x.x\n\n2.2. Instalação e configuração do PM2
\nPM2 é um gerenciador de processos avançado para Node.js. Ele reinicia automaticamente a aplicação em caso de falha, gerencia logs e permite executar várias instâncias (clusterização).
\nsudo npm install -g pm2\nConfigure a inicialização automática do PM2 ao reiniciar o servidor:
\npm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user\n\n3. Implantação da aplicação e execução via PM2
\nAgora estamos prontos para transferir sua aplicação JavaScript para o servidor. Existem duas formas populares: via Git (recomendado) ou via SCP/FileZilla.
\n\n3.1. Clonagem do repositório (Git)
\ncd /home/deploy_user\ngit clone https://github.com/seu_usuario/seu_repositorio.git myapp\ncd myapp\nInstale as dependências e compile o projeto (se necessário):
\nnpm install\n# Se houver script de build: npm run build\n\n3.2. Criação do arquivo de configuração .env
\nNunca armazene segredos no código. Crie um arquivo .env na pasta do projeto:
\nnano .env\nExemplo de conteúdo:
\nPORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=sua_chave_super_secreta\n\n3.3. Execução da aplicação via PM2
\nSupondo que o ponto de entrada da sua aplicação seja app.js ou server.js. Execute:
pm2 start app.js --name "myapp"\nVerifique o status:
\npm2 status\npm2 logs myapp