sothis-contratacao-api/ecosystem.config.js

51 lines
1.9 KiB
JavaScript
Raw Normal View History

module.exports = {
apps: [
// 🟢 --- PRIMEIRA APLICAÇÃO: API PRINCIPAL (servidor HTTP) ---
{
name: "contratacao-sothis-api", // Nome que aparecerá no PM2
script: "src/app.js", // Caminho do arquivo principal da API
// 👇 Execução em modo "cluster" (um processo por core da máquina)
exec_mode: "cluster",
instances: "max", // "max" = usa todos os núcleos disponíveis
// ⚙️ Variáveis de ambiente padrão (modo development)
env: {
watch: true,
NODE_ENV: "development",
PORT: 3001 // Porta usada no ambiente de desenvolvimento
},
// ⚙️ Variáveis de ambiente quando rodar com `--env production`
env_production: {
watch: false,
NODE_ENV: "production",
PORT: 3001 // Porta usada no ambiente de produção
}
},
]
};
/** * @module server
* @description Ponto de entrada principal da aplicação.
* Este módulo é responsável por:
* Definir a configuração do PM2 para gerenciar a aplicação principal e o serviço de cron jobs.
* 1. A aplicação principal (`hubxglpi-api`) roda em modo cluster para lidar com requisições HTTP. Para encerrar chamados.
* 2. O serviço de cron jobs (`hubxglpi-cron`) roda em modo fork para evitar execuções duplicadas das tarefas agendadas.
*/
/**
* 💡 Dicas de uso:
*
* 🧪 Ambiente de desenvolvimento:
* pm2 start ecosystem.config.js --env development
*
* 🚀 Ambiente de produção:
* pm2 start ecosystem.config.js --env production
* pm2 startup systemd
* sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u desenvolvimento --hp /home/desenvolvimento
* pm2 save
*
* Após isso, o PM2 inicializa automaticamente os dois processos no boot do servidor.
*/