Files
LocalNav/ecosystem.config.cjs
T
2026-05-12 15:38:27 +08:00

56 lines
1.5 KiB
JavaScript

'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: '5000',
// NAV_DEBUG: '0',
// },
},
],
};