Implantação de aplicação JavaScript em VPS: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que o VPS é a Melhor Escolha para Produção

Desenvolver uma aplicação JavaScript no Node.js é apenas metade da batalha. A segunda parte, igualmente importante, é o deploy em um servidor de produção. Muitos desenvolvedores iniciantes usam serviços de hospedagem gratuitos (Heroku, Render, Vercel), mas para projetos sérios, um VPS (Servidor Virtual Privado) será necessário eventualmente.

Um VPS oferece controle total sobre o ambiente: você escolhe a versão do Node.js, configura o servidor web, gerencia processos e recursos. Neste artigo, vamos percorrer o processo passo a passo de deploy de uma aplicação JavaScript em um VPS usando ferramentas modernas: Nginx como proxy reverso, PM2 para gerenciamento de processos, Let's Encrypt para SSL e GitHub Actions para automação.



Passo 1: Preparação do Servidor e Instalação do Software Necessário

O primeiro passo é conectar-se ao seu VPS (geralmente via SSH) e instalar um conjunto básico de ferramentas. Vamos supor que você está usando Ubuntu 22.04 LTS.

# Atualizar pacotessudo apt update && sudo apt upgrade -y

# Instalar Node.js (recomendado via NodeSource)curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs

# Verificar versõesnode -vnpm -v

# Instalar Git (se ainda não estiver instalado)sudo apt install git -y

# Instalar Nginxsudo apt install nginx -y

Além disso, certifique-se de configurar um firewall básico (UFW):

sudo ufw allow OpenSSHsudu ufw allow 'Nginx Full'sudo ufw enable


Passo 2: Clonando o Repositório e Configurando a Aplicação

Agora você precisa transferir o código da aplicação para o servidor. A maneira mais simples é clonar o repositório do GitHub/GitLab.

# Navegar para o diretório /var/www (padrão para projetos web)cd /var/www

# Clonar o repositório (substitua pela sua URL)sudo git clone https://github.com/seu-usuario/seu-repositorio.git myapp

# Dar permissões ao usuário atualsudo chown -R $USER:$USER /var/www/myapp

# Navegar para a pasta da aplicaçãocd /var/www/myapp

# Instalar dependênciasnpm install --production

Crie um arquivo .env para as variáveis de ambiente (porta, chaves de API, string de conexão do banco de dados):

# Exemplo .envPORT=3000NODE_ENV=productionDATABASE_URL=mongodb://localhost:27017/myappJWT_SECRET=sua-chave-secreta


Passo 3: Configurando o PM2 para Gerenciamento de Processos

PM2 é um gerenciador de processos para Node.js que reinicia automaticamente a aplicação se ela falhar e a mantém em execução em segundo plano.

# Instalar PM2 globalmentesudo npm install -g pm2

# Iniciar a aplicação (se o ponto de entrada for app.js ou server.js)pm2 start app.js --name "myapp"

# Salvar a lista de processos para inicialização automática na reinicializaçãopm2 savepm2 startup systemd

Após executar pm2 startup, você verá um comando que precisa ser executado com privilégios de root. Copie e execute-o.

Você pode verificar o status com o comando pm2 status. Se a aplicação estiver em execução, ela estará acessível em http://seu-ip:3000 (a porta do .env).



Passo 4: Configurando o Nginx como Proxy Reverso

O acesso direto ao Node.js pela porta 3000 não é uma boa prática. É melhor usar o Nginx como servidor proxy, que aceitará requisições na porta 80 (HTTP) e as encaminhará para sua aplicação.

Crie um arquivo de configuração para seu domínio (ou IP):

sudo nano /etc/nginx/sites-available/myapp

Insira o seguinte código:

server {    listen 80;    server_name seu-dominio.ru www.seu-dominio.ru;

location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connectio

Blogs

Book Recommendations