'use strict'; /** * PM2 守护进程配置(本地导航 Flask) * * 前置:已在项目根目录创建虚拟环境 .venv,并 pip install -r requirements.txt * 可选:复制 .env.example 为 .env 并填写 NAV_SECRET_KEY 等 * * 常用命令: * pm2 start ecosystem.config.cjs * pm2 status * pm2 logs nav-site * pm2 restart nav-site * pm2 stop nav-site * pm2 delete nav-site * pm2 save && pm2 startup # 开机自启(按 pm2 提示执行一次 sudo 命令) */ const path = require('path'); const root = __dirname; const isWin = process.platform === 'win32'; const venvPython = isWin ? path.join(root, '.venv', 'Scripts', 'python.exe') : path.join(root, '.venv', 'bin', 'python'); module.exports = { apps: [ { name: 'nav-site', cwd: root, script: path.join(root, 'app.py'), interpreter: venvPython, instances: 1, exec_mode: 'fork', autorestart: true, watch: false, max_memory_restart: '300M', min_uptime: '5s', max_restarts: 15, restart_delay: 3000, kill_timeout: 8000, merge_logs: true, time: true, error_file: path.join(root, 'logs', 'pm2-error.log'), out_file: path.join(root, 'logs', 'pm2-out.log'), // 如需在 PM2 层覆盖环境变量,可取消注释并修改(一般使用根目录 .env 即可) // env: { // NAV_HOST: '0.0.0.0', // NAV_PORT: '5070', // NAV_DEBUG: '0', // }, }, ], };