a8cf3422e4
- 默认监听端口改为 5070(app.py、.env.example、PM2 配置) - README/部署说明:仓库地址、/opt/LocalNav、root 运行、Nginx+HTTPS 外网接入 - iframe 工具栏在「刷新」旁增加「强制刷新」(跳过缓存,等同 Ctrl+F5) Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
1.5 KiB
JavaScript
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: '5070',
|
|
// NAV_DEBUG: '0',
|
|
// },
|
|
},
|
|
],
|
|
};
|