David Costa

Como Usar PM2 para Desdobrar Aplicações Node.js

August 14, 2020

  • Seedling
  • javascript
  • node

Desdobrar aplicações Node.js pode ser simplificado e tornado mais eficiente com o PM2, um gerenciador de processos popular. Este guia o conduzirá pelos passos de configuração e desdobramento de uma aplicação Node.js usando PM2, garantindo que você compreenda o contexto e a razão por trás de cada ação.

Passo 1: Instalar PM2 e dotenv

Primeiro, instale o PM2 e o dotenv como dependências de desenvolvimento para gerenciar seus processos de aplicação e variáveis de ambiente.

npm install --save-dev pm2 dotenv

Em seguida, instale o PM2 globalmente para torná-lo acessível de qualquer lugar no seu sistema.

npm install —global pm2

Passo 2: Configurar o Desdobramento com PM2

O PM2 oferece um sistema de desdobramento que permite desdobrar sua aplicação em servidores remotos. Para configurar a configuração de desdobramento para o ambiente de produção, execute:

pm2 deploy production setup

Este comando cria uma configuração padrão que você pode personalizar para suas necessidades específicas.


Passo 3: Configurar Variáveis de Ambiente

As variáveis de ambiente são cruciais para gerenciar configurações em diferentes ambientes (desenvolvimento, produção, etc.). Crie e configure um arquivo .env para o seu servidor:

Navegue até o diretório do seu projeto e copie o arquivo de exemplo de ambiente para criar o seu próprio:

cd /home/username/www/example.com/source
cp .env.example .env

Edite o arquivo .env para definir suas variáveis de ambiente específicas. Você pode usar vi, nano ou qualquer outro editor de texto:

vi .env

Certifique-se de que seu arquivo .env seja adicionado ao .gitignore para evitar o compromisso de informações sensíveis no controle de versão:

.env

Passo 4: Criar .env.example

Um arquivo .env.example fornece um modelo das variáveis de ambiente necessárias para outros desenvolvedores ou para configurar novos ambientes. Aqui está um exemplo:

# envs for your local

DEPLOY_NAME=application.backend
DEPLOY_USER=username
DEPLOY_HOST=localhost
DEPLOY_PATH=/home/username/www/example.com

# envs for your server

DATABASE_URL=mysql://user:[email protected]:3306/database

Passo 5: Configurar Arquivo de Ecossistema do PM2

O arquivo ecosystem.config.js é onde você define suas configurações de aplicação e desdobramento para o PM2. Este arquivo pode ser personalizado para se ajustar ao seu fluxo de trabalho de desdobramento:

const dotenv = require('dotenv');
dotenv.config();

module.exports = {
  apps: [
    {
      name: process.env.DEPLOY_NAME,
      script: './src/server.js',
      env: {
        COMMON_VARIABLE: 'true',
      },
      env_production: {
        NODE_ENV: 'production',
      },
    },
  ],

  deploy: {
    production: {
      user: process.env.DEPLOY_USER,
      host: process.env.DEPLOY_HOST,
      ref: 'origin/master',
      repo: '[email protected]:username/repo.git',
      path: process.env.DEPLOY_PATH,
      'post-deploy': [
        'npm install',
        `pm2 reload ecosystem.config.js --env production --name ${process.env.DEPLOY_NAME}`,
      ].join(' && '),
    },
  },
};

Este arquivo de configuração define as configurações da aplicação em apps e as configurações de desdobramento em deploy. A seção post-deploy especifica os comandos a serem executados após o desdobramento, como instalar dependências e recarregar a aplicação.


Passo 6: Desdobrar Sua Aplicação

Uma vez que tudo esteja configurado, você pode desdobrar sua aplicação com o seguinte comando:

pm2 deploy production

Este comando usa a configuração de desdobramento definida em seu ecosystem.config.js para desdobrar sua aplicação no ambiente de produção.