/** * PM2 Ecosystem Config - LightRAG Sidecar * * Deploy: pm2 start packages/lightrag-sidecar/ecosystem.config.cjs * Reload: pm2 reload lightrag-sidecar * Logs: pm2 logs lightrag-sidecar * Status: pm2 status */ module.exports = { apps: [ { name: 'lightrag-sidecar', script: 'app/main.py', cwd: process.env.LIGHTRAG_CWD || process.cwd(), interpreter: '/usr/bin/python3', interpreter_args: '-m uvicorn', args: `app.main:app --host ${process.env.HOST || 'localhost'} --port ${process.env.PORT || '3140'} --workers 2`, instances: 1, exec_mode: 'fork', env: { PYTHONUNBUFFERED: '1', LIGHTRAG_PORT: '3140', ENVIRONMENT: 'production', LIGHTRAG_DOMAIN: 'transceiver', LLM_BACKEND: 'ollama', OLLAMA_URL: process.env.OLLAMA_URL || 'http://localhost:11434', OLLAMA_MODEL: 'qwen2.5:14b', QDRANT_URL: 'http://localhost:6333', EMBEDDING_MODEL: 'bge-m3', DATABASE_URL: process.env.DATABASE_URL || 'postgresql://tip_kg@localhost:5432/tip_lightrag', DB_POOL_SIZE: '10', MAX_WORKERS: '4', LOG_LEVEL: 'info', }, autorestart: true, watch: false, max_memory_restart: '1024M', kill_timeout: 10000, error_file: '/var/log/lightrag-sidecar/error.log', out_file: '/var/log/lightrag-sidecar/out.log', log_date_format: 'YYYY-MM-DD HH:mm:ss Z', merge_logs: true, }, ], };