// ecosystem.config.cjs // This file is the standard way to configure applications for PM2. // It allows us to define all the settings for our application in one place. // The .cjs extension is required because the project's package.json has "type": "module". module.exports = { apps: [ { name: 'flyer-crawler-api', // The name of our API application in PM2 // Use tsx as the interpreter and pass the preload script via node_args. script: './node_modules/.bin/tsx', args: 'server.ts', node_args: '-r ./preload.ts', // Explicitly set the working directory. This is crucial for reliability. cwd: '/var/www/flyer-crawler.projectium.com', env_production: { NODE_ENV: 'production', // Set the Node.js environment to production }, }, { name: 'flyer-crawler-worker', // The name of our worker process in PM2 // Use the same preload mechanism for the worker. script: './node_modules/.bin/tsx', args: 'src/services/queueService.server.ts', node_args: '-r ./preload.ts', // Explicitly set the working directory. cwd: '/var/www/flyer-crawler.projectium.com', env_production: { NODE_ENV: 'production', }, } ], };