← Back
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
  }]
};

📜 Git History

a09f02fchore: initial commit — version control setup5 weeks ago
Show last diff
Loading...