chitfund/backend/ecosystem.config.js

50 lines
1.3 KiB
JavaScript

module.exports = {
apps: [
{
name: 'luckychit-backend',
script: './server.js',
instances: 'max', // Use all CPU cores
exec_mode: 'cluster', // Cluster mode for load balancing
autorestart: true,
watch: false, // Disable in production
max_memory_restart: '1G',
env: {
NODE_ENV: 'development',
PORT: 3000
},
env_production: {
NODE_ENV: 'production',
PORT: 3000
},
error_file: './logs/err.log',
out_file: './logs/out.log',
log_file: './logs/combined.log',
time: true,
merge_logs: true,
max_restarts: 10,
min_uptime: '10s',
listen_timeout: 3000,
kill_timeout: 5000,
// Cron restart (optional - restart daily at 3 AM)
cron_restart: '0 3 * * *',
// Enable source maps for better error tracking
node_args: '--enable-source-maps',
}
],
// Deployment configuration (optional)
deploy: {
production: {
user: 'your-server-user',
host: 'your-server-ip',
ref: 'origin/main',
repo: 'git@github.com:yourusername/chitfund.git',
path: '/var/www/luckychit',
'pre-deploy-local': '',
'post-deploy': 'cd backend && npm install && pm2 reload ecosystem.config.js --env production',
'pre-setup': ''
}
}
};