← Назадconst fs = require('fs');
const path = require('path');
// Load .env file manually
const envPath = path.join(__dirname, '.env');
const envVars = {};
if (fs.existsSync(envPath)) {
const envContent = fs.readFileSync(envPath, 'utf8');
envContent.split('\n').forEach(line => {
const [key, ...valueParts] = line.split('=');
if (key && valueParts.length > 0) {
const value = valueParts.join('=').trim();
if (key.trim() && !key.startsWith('#')) {
envVars[key.trim()] = value;
}
}
});
}
module.exports = {
apps: [{
name: 'alphapulse',
script: './bot.py',
interpreter: 'python3',
cwd: '/home/app/alphapulsexp',
// Stability settings
min_uptime: '10s',
max_restarts: 5,
restart_delay: 5000,
max_memory_restart: '200M',
// Error handling
kill_timeout: 5000,
listen_timeout: 10000,
// Logs
log_file: '/home/app/.pm2/logs/alphapulse-combined.log',
out_file: '/home/app/.pm2/logs/alphapulse-out.log',
error_file: '/home/app/.pm2/logs/alphapulse-error.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
// Environment variables from .env + defaults
env: {
...envVars,
NODE_ENV: 'production',
PYTHONUNBUFFERED: '1'
},
// Auto-restart on failure
autorestart: true,
exp_backoff_restart_delay: 100
}]
};