Encontranos en redes
PM2Node.jsDeploy7 min de lectura
Deploy con PM2 (Node.js)
Desplegá aplicaciones Node.js en producción con PM2 para gestión de procesos y reinicio automático.
PM2 es un process manager para Node.js que mantiene tu aplicación corriendo 24/7, la reinicia si se cae y gestiona logs automáticamente.
Paso 1 — Instalar PM2
bash
npm install -g pm2Paso 2 — Iniciar tu aplicación
bash
cd /home/deploy/mi-app
pm2 start app.js --name "mi-app"Para aplicaciones con npm start:
bash
pm2 start npm --name "mi-app" -- startPara aplicaciones TypeScript:
bash
pm2 start dist/index.js --name "mi-app"Paso 3 — Configurar ecosystem file
Creá ecosystem.config.js en la raíz del proyecto:
javascript
module.exports = {
apps: [{
name: 'mi-app',
script: './dist/index.js',
instances: 'max',
exec_mode: 'cluster',
env: {
NODE_ENV: 'production',
PORT: 3000
},
max_memory_restart: '500M',
log_date_format: 'YYYY-MM-DD HH:mm:ss',
}]
};Iniciá con el ecosystem:
bash
pm2 start ecosystem.config.jsPaso 4 — Configurar inicio automático
Para que PM2 arranque con el sistema:
bash
pm2 startupEjecutá el comando que te muestra (con sudo). Después guardá la lista actual:
bash
pm2 savePaso 5 — Comandos de gestión
bash
pm2 list # Ver procesos
pm2 logs mi-app # Ver logs en vivo
pm2 monit # Monitor interactivo
pm2 restart mi-app # Reiniciar
pm2 reload mi-app # Reload sin downtime (cluster)
pm2 stop mi-app # Detener
pm2 delete mi-app # Eliminar del listadoPaso 6 — Deploy con zero-downtime
bash
git pull origin main
npm install --production
npm run build
pm2 reload mi-appMonitoreo
bash
pm2 status
pm2 logs --lines 100
pm2 env 0 # Variables de entorno del proceso 0¿Te resultó útil esta guía?