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.