一个面向多应用工作区的智能 Web 应用检测、管理与统一控制中心系统,能够自动识别各种技术栈应用,并提供一致的管理与运维体验。
- 当前版本:
1.5.3 - GitHub Release: v1.5.3: 会话保持与端口归属判定优化
- 完整更新日志: CHANGELOG.md
- 统一端口清单: 监听列表、容量统计、归属核验和冲突提示共享同一份系统快照
- 端口操作安全增强: 强制释放重新核验 PID,失效分配支持管理员预览确认,系统与门户保留端口禁止直接释放
- 全栈启动就绪检查: 前后端子进程必须真正监听端口才会确认启动成功,失败时自动清理部分启动进程
- 控制中心界面焕新: 门户首页、应用管理、PM2 管理、端口管理和系统设置升级为统一的指标总览 + 快捷操作布局
- 应用信息表达增强: 应用卡片与详情弹窗新增运行模式、访问端口、访问入口、最近更新和更清晰的状态摘要
- 管道架构重构: 全新的检测管道架构(Scanner → Analyzer → Aggregator → PortAllocator)
- 智能全栈项目识别: 自动识别 monorepo 和全栈项目结构,支持非标准命名(如 main-portal/detection-api)
- 精确扫描深度控制: 扫描时多扫描一层,返回时按用户设置深度过滤
- 智能端口分配: 读取用户配置的保留端口和端口范围,避免冲突
- 安全增强 (Phase 3): RBAC 角色权限控制、JWT 认证硬化、审计日志、会话管理
- 管道架构检测: 采用四阶段管道架构(Scanner → Analyzer → Aggregator → PortAllocator)
- 多技术栈识别: 支持 Vue+Vite、React+Vite、Next.js、Angular、Node.js+Express 等主流技术栈
- 智能全栈识别: 自动识别全栈项目结构,支持 frontend/backend、main-portal/detection-api 等多种命名
- 精确深度控制: 扫描深度+1 确保检测全面,返回时按用户设置深度过滤
- 智能端口分配: 读取用户配置的保留端口,避免与系统端口冲突
- 实时进度跟踪: WebSocket 实时更新扫描进度和状态
- 智能端口注入: 自动为启动命令注入端口参数,支持不同技术栈的端口配置语法
- 技术栈适配: 针对 Vite、Next.js、Angular CLI 等框架提供专门的命令适配器
- 向后兼容: 完全兼容现有启动方式,无端口参数时保持原有行为
- 自定义服务器检测: 智能识别自定义服务器配置,避免不兼容的端口注入
- 高性能处理: 平均响应时间 0.12ms,支持每秒 9000+ 次调用
- 可视化管理: 直观的应用卡片界面,支持网格和列表布局
- 状态监控: 实时显示应用运行状态(在线/离线/错误/维护中)
- 快速启动: 一键启动、停止和访问应用
- 外部应用接入: 支持 Windows 外部独立 EXE 程序的直接接入与启停管理
- 主题定制: 支持浅色/深色模式和自定义主题色
-
高速全局探测:
$O(1)$ 内存级快照查询,彻底告别数百个端口扫描导致的界面卡顿与 CPU 浪涌 -
L4/L7 混合探活: 原生
ECONNREFUSED毫秒级防假死探测机制 - 全栈端口配对: 前端/后端端口可按配置范围自动分配同偏移端口组,并支持在应用配置中显式调整
- 无损生命周期管理: 端口释放实施 "SIGTERM (软关闭) → 智能监测倒计时 → SIGKILL (强杀兜底)" 的优雅降级管线,保护数据库与文件锁安全
- 高危防火墙 UX: 面向核心系统级架构的物理按键隔离锁定,以及聚合折叠式拓扑渲染,极大降低操作白噪
- 批量操作: 支持批量启动、停止、检测和删除应用
- 详细配置: 完整的应用信息编辑和端口配置
- 搜索过滤: 按名称、技术栈、状态等多维度筛选
- 导入导出: 应用配置的导入导出功能
- RBAC 角色权限: 支持 admin/operator/guest 三种角色,细粒度权限控制
- JWT 认证硬化: 生产环境强制配置安全密钥,Token 黑名单机制
- 会话管理: 支持查看、撤销会话,管理员可管理所有用户会话
- 审计日志: 记录敏感操作,支持文件持久化和查询
- 文件系统硬化: 使用 spawn 替代 exec,路径白名单限制
- CORS 收敛: 生产环境严格来源控制
- 紧急开关: 支持临时关闭认证(仅内网应急)
- 多种配置模板: Nginx、PM2、systemd、VS Code 等配置模板
- 智能模板填充: 根据应用特征自动填充配置参数
- 批量配置生成: 为多个应用同时生成配置文件
- 配置验证: 自动验证生成的配置文件是否正确
智能多Web应用门户系统/
├── main-portal/ # Vue 3 前端门户
│ ├── src/
│ │ ├── components/ # 各类功能组件
│ │ ├── views/ # 页面视图组件
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── composables/ # 组合式函数
│ │ ├── services/ # API 服务封装
│ │ └── types/ # TypeScript 类型定义
│ └── package.json
├── detection-api/ # Node.js 后端服务 (Clean Architecture)
│ ├── src/
│ │ ├── api/ # 统一 API 路由定义 (UnifiedApiRouter)
│ │ ├── controllers/ # 控制器层 (业务流转)
│ │ ├── middleware/ # API 中间件 (认证、日志等)
│ │ ├── core/ # 核心业务服务引擎
│ │ │ ├── ServiceContainer.ts # 服务依赖注入容器
│ │ │ ├── pipeline/ # 检测管道架构
│ │ │ │ ├── stages/ # Scanner/Analyzer/Aggregator/PortAllocator
│ │ │ │ └── DetectionPipeline.ts
│ │ │ └── DetectionService.ts # 应用扫描核心服务
│ │ ├── routes/ # 传统系统路由 (保持向下兼容)
│ │ ├── services/ # 基础底层服务及业务逻辑
│ │ └── utils/ # 通用工具函数
│ └── package.json
├── configs/ # 配置文件模板 (Nginx/PM2等)
├── scripts/ # 快速部署、备份、启停脚本
├── docs/ # 系统架构、排错文档
│ └── troubleshooting/ # PM2 及常见故障排查手册
└── README.md
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Scanner │ -> │ Analyzer │ -> │ Aggregator │ -> │PortAllocator│
│ 扫描阶段 │ │ 分析阶段 │ │ 聚合阶段 │ │ 端口分配 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
v v v v
目录扫描 技术栈识别 全栈项目聚合 智能端口分配
深度控制 组件分类 深度过滤 排除保留端口
管道特点:
- ScannerStage: 递归扫描目录,支持 monorepo 结构检测,扫描深度 +1 确保全栈组件被发现
- AnalyzerStage: 分析 package.json,识别技术栈,分类前端/后端组件
- AggregatorStage: 聚合全栈项目,按用户设置的深度过滤结果
- PortAllocatorStage: 智能分配端口,读取用户配置的保留端口和端口范围
前端框架
- Vue 3 + Composition API
- TypeScript
- Vite (构建工具)
- Pinia (状态管理)
- Vue Router (路由管理)
后端框架
- Node.js + Express
- TypeScript
- SQLite (数据库) - 使用 better-sqlite3 包
- WebSocket (实时通信)
开发工具
- ESLint + Prettier (代码规范)
- fast-glob (文件扫描)
- joi (数据验证)
- Vitest (测试框架)
支持的应用技术栈
- Vite 应用: Vue 3 + Vite、React + Vite、Vite + TypeScript
- Next.js 应用: App Router、Pages Router、自定义服务器
- Angular 应用: Angular CLI 15.x、16.x、17.x
- Create React App: 标准 CRA 应用
- Node.js 应用: Express、Koa、Fastify 等
- Node.js >= 18.0.0 (推荐 v20)
- npm >= 8.0.0
您只需分别在后端与前端目录下安装依赖并启动即可:
# 1. 启动后端守卫 API (默认占用 8002)
cd detection-api && npm install && npm run dev
# 2. 启动前端可视化门户 (默认占用 3000)
cd main-portal && npm install && npm run dev在项目根目录,我们为您备好了企业级的批处理自动化脚本:
Setup-Portal.bat: 首次自动化环境初始化(安全检查、防火墙策略一键放行、PM2 开机守护配置)Start-Portal.bat: 一键静默启动整个生产集群 (备注:如遇 Windows 下的特权凭据报错,详见 PM2 排障手册)
后端与前端分别使用 .env 文件独立管理环境与安全策略:
configs/system-config.json系统设置主文件,保存用户账号、安全策略、路径白名单等运行时系统设置。detection-api/configs/portal-config.json端口与门户配置主文件,保存端口范围、保留端口、应用启动相关的运行时配置。detection-api/configs/system-config.json系统设置兼容镜像,由后端自动同步,不建议手工维护。detection-api/config/system-config.json端口配置兼容镜像,由后端自动同步,不建议手工维护。
PORT=8002
DB_PATH=./data/portal.db
# 🛡️ 生产环境必填:用于核心校验和签发的安全密钥,否则将拒绝启动
JWT_SECRET=your-secure-random-string-at-least-32-characters
# 选填安全项:CORS_MODE (lan/strict), ALLOWED_PATHS 等# API 服务与 WebSocket 寻址地址
# (强烈推荐开发环境与局域网均留空,系统底层将使用自适应网络探测降级策略)
VITE_API_BASE_URL=
VITE_WS_BASE=该智能系统基于完全“无需指导即插即用”的设计原则,为您化繁为简:
-
🔎 智能全栈探测 (Smart Pipeline) 在“应用检测”页面输入目标工作区后,后台的 4级检测流水线 会潜入目录深处,自动帮您挖掘出所有包裹在一起的 React、Vue 组件、甚至 NestJS 和 Angular 服务端,无惧
Monorepo复杂结构。 -
🧙♀️ 影子挂载指令注入 (Ghost Injection) 启动接管应用时,系统自动拦截原生生命周期,根据识别到的不同技术栈暗中注入类似
npm run dev -- --port xxx或者ng serve参数,所有外部程序皆由本产品统一调度指挥。 -
🏰 L7无损端口护城河 (Collision Proxy & Defense) 无需再纠结
3000或8080经常互相冲突引发报错!本系统会自动计算全局Node和系统空闲池流转分配,且在关闭进程时依托其独有的“退避探活强杀 (Graceful Stop)”管线,将“端口占用”这种开发者的噩梦彻底抹除。
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启 Pull Request
- 使用 ESLint 和 Prettier 保持代码风格一致
- 编写有意义的提交信息
- 为新功能添加相应的测试用例
- 更新相关文档
完整版本历史请查看 CHANGELOG.md。
- 🔐 会话保持
- 刷新令牌失败区分「后端明确拒绝」与「临时故障」,网络抖动不再误登出
- 页面刷新时过期的访问令牌自动通过刷新令牌续期,充分利用后端 7 天有效期
- 多标签页并发刷新导致令牌轮换时自动改用最新令牌重试
- 🌐 游客浏览
- 游客可匿名浏览公开应用只读列表,管理操作仍需登录
- 🎯 端口归属判定
- 进程树查询超时或为空时降级为「无法核验」并提示原因,不再误报 PID 不匹配
- 🪟 控制台窗口
- 补齐 11 处子进程调用的
windowsHide,修复 Windows 上执行 PM2 诊断、端口清理或状态保存时闪出黑框的问题 - 离线还原助手窗口保持可见(该处为面向用户的交互窗口,属于有意保留)
- 补齐 11 处子进程调用的
- 🧾 日志噪声
- 全栈探测日志按目录去重,周期性状态同步不再每 30 秒重复输出同一批日志
- 🛠️ 运维脚本
- 新增门户看门狗、隐藏启动包装与子进程窗口审计脚本
- 🔄 异步启动任务
- 启动请求立即返回任务 ID,前端轮询确认慢启动、成功和失败状态
- 页面刷新后会读取当前应用的待处理任务并继续确认,不再丢失启动状态
- 🧭 重复操作保护
- 同一应用的重复启动请求复用正在执行的任务,避免并发拉起多个进程
- PM2 启动在真实进程状态确认完成前保持“启动中”,修复短暂确认窗口内的重复点击
- 🧾 接口与发布资料
- 新增生命周期任务状态查询和按应用查询接口,失败结果保留结构化错误信息
- 根项目、前后端包、系统配置、锁文件和前端内置更新记录统一到
1.5.1
- 🔌 统一端口清单
- 新增统一端口清单服务,容量统计、监听列表、归属核验和冲突信息由同一份系统快照生成
- 区分已核验、PID 不匹配、重复配置、未托管、无法核验和保留端口,并展示真实进程与应用归属
- 🛡️ 安全操作流程
- 强制释放会重新核验当前 PID,拒绝释放系统保留端口、已托管应用端口和已经变化的监听进程
- 失效分配改为管理员先预览、再确认清理,避免无提示删除端口分配记录
- 🔄 监控与状态一致性
- 端口页面展示数据新鲜度和实时连接状态;刷新失败保留最后成功快照,不再展示伪造容量
- 并发刷新只允许最新请求更新界面,WebSocket 同时兼容新
payload和旧data消息
- 🚀 应用启动可靠性
- 全栈启动等待前后端端口真正就绪,失败时清理部分启动进程,并为冷启动提供更合理的宽限期
- 启动完成或端口冲突后重新核验运行态,避免旧离线快照覆盖已经成功启动的应用
- 🧹 仓库与 Diff 治理
- 顶层
node_modules已退出 Git 跟踪,依赖由 package manifest 与 lockfile 统一管理 - 新增
.gitattributes固定跨平台换行规则,避免 LF/CRLF 造成整文件差异
- 顶层
- 🔐 依赖与生产安全
- 更新兼容范围内的关键依赖与安全覆盖版本,并为生产环境启用可配置 CSP
- 生产密钥改为写入忽略跟踪的
detection-api/.env,仓库配置只保留非敏感示例
- 🧪 验证稳定性
- 后端测试排除
dist,运行态同步测试不再受本机 3006/8006 监听影响 - 前后端类型检查、183 项测试和 Vite 8 生产构建均已通过
- 后端测试排除
- 🚀 运维体验
- 生产冷启动就绪超时调整为 60 秒,减少数据库检查和项目发现期间的误报
- 应用总览优先展示正在运行的应用,便于快速定位当前服务
- 🔌 全栈端口配对
- 全栈应用现在会按前端/后端端口范围自动分配同偏移端口组,减少前后端端口错位和手动调整成本
- 应用配置页恢复主端口、次要端口和协议编辑,并会同步写回应用网络配置
- 🧹 端口释放可靠性
- Windows 端口释放改为精确匹配监听端口并终止进程树,避免相邻端口误匹配和子进程残留
- 停止应用后会最终校验端口是否真实释放;仍被占用时返回明确错误,便于管理员处理
- 🎨 图标与界面整理
- 新增统一图标选择组件,支持 Element Plus 图标、自定义文本/Emoji 和图片链接
- 门户首页、应用卡片、详情弹窗、管理页、系统设置和侧栏调整为更克制的产品界面样式
- 🔁 兼容与版本同步
- 应用配置 API 统一迁移到
/app-configurations,并保留/app-configuration兼容旧前端 - 同步根项目、前后端包、系统配置、锁文件、前端内置更新记录和主要发布文档版本到
1.4.0
- 应用配置 API 统一迁移到
- ⏱ 运行时间展示修复
- 修复门户首页和应用详情中的“运行时间”长期显示为“尚未启动”的问题,运行中应用现在会展示真实存活时长
- 前端不再把
uptime=0的在线应用误判为未启动;刚启动或状态同步中的应用会按实际状态展示
- 🔌 公共接口 uptime 回填
- 公共应用接口现在会优先读取 PM2 进程 uptime,并在直启/开发模式下回退到进程管理器中的
startedAt - 全栈应用会从主应用和子进程记录中选择最早启动时间,避免只看到部分子进程时长
- 公共应用接口现在会优先读取 PM2 进程 uptime,并在直启/开发模式下回退到进程管理器中的
- 🧪 回归测试补齐
- 新增
PublicController的运行时间映射测试,覆盖 PM2 托管应用和直接启动应用两条链路
- 新增
- 🔁 版本同步
- 同步根项目、前后端包、系统配置、锁文件、前端内置更新记录和主要发布文档版本到
1.3.9
- 同步根项目、前后端包、系统配置、锁文件、前端内置更新记录和主要发布文档版本到
- 📁 目录选择链路修复
- 修复“系统设置 > 路径访问”中“选择目录并添加”在存在空白输入行时看起来没有生效的问题;现在会优先回填空白行,并避免重复路径
- 路径访问场景的目录选择按场景放宽返回路径即时校验,避免出现“手动输入可以,目录选择反而失败”的不一致体验
- 手动添加、检测页、备份路径与路径白名单配置统一强化服务器目录模式文案,明确当前选择的是部署服务器上的路径
- 🧩 全栈与工作区识别增强
- 后端应用服务、增强型全栈检测器、配置验证器与配置服务统一扩展
frontend/client/web/ui/portal、backend/server/api/services及apps/*子目录候选 - 新增对
package.json workspaces与pnpm-workspace.yaml的工作区解析,支持apps/web + apps/api等 monorepo 全栈结构自动识别与配置 - 全栈应用生成的前后端运行配置补充
HOST/PORT/WEB_PORT/API_PORT等环境变量,降低工作区子项目的启动适配成本
- 后端应用服务、增强型全栈检测器、配置验证器与配置服务统一扩展
- 🔄 运行态同步与生命周期修复
- PM2 状态同步在端口冲突检测之外增加本地监听探测,提升手动启动应用运行态识别的稳定性
- 应用生命周期现在会清理陈旧运行态、自动修正缺失的全栈辅端口,并在 external-exe 目录变更后自动重映射
build_script
- 🔁 版本同步
- 同步根项目、前后端包、系统配置、前端内置更新记录和主要发布文档版本到
1.3.8
- 同步根项目、前后端包、系统配置、前端内置更新记录和主要发布文档版本到
- 💾 备份设置同步修复
- 修复系统设置中的备份策略改动后,部分开关、下拉和数值项有时不会稳定标记为未保存变更的问题
- 选择备份目录后会立即同步页面脏状态,避免用户误以为修改已经保存或完全未生效
- 🧭 备份创建说明增强
- “创建备份”弹窗新增“配置快照 / 文件归档”模式说明提示,帮助区分在线恢复和离线恢复入口
- 修正说明浮层层级,避免被对话框或全局高层元素遮挡
- 🔁 发布配置与版本同步
- 修复发布默认配置误写入本机绝对备份目录的问题,默认输出路径恢复为工作区相对
./backups - 同步根项目、前后端包、系统配置和主要发布文档版本到
1.3.7
- 修复发布默认配置误写入本机绝对备份目录的问题,默认输出路径恢复为工作区相对
- 📝 更新记录补齐
- 修复“关于系统 > 更新记录”没有同步纳入
1.3.4与1.3.5,导致界面仍显示旧版本记录的问题 - 前端内置更新记录已补齐到
1.3.6,关于系统弹窗可以直接查看最近几个正式版本的发布内容
- 修复“关于系统 > 更新记录”没有同步纳入
- 🔁 版本同步
- 同步根项目、前后端包、系统配置和主要发布文档版本到
1.3.6
- 同步根项目、前后端包、系统配置和主要发布文档版本到
- 🛟 离线恢复更安全
- 为脚本归档备份新增离线恢复向导入口,恢复前先校验备份,再停止门户服务并执行恢复
- 离线恢复现在改为优先按备份 ID 执行,避免同名手工备份时误恢复到错误归档
- 🧭 启动与运维入口整理
Start-Portal.bat精简为中文控制向导入口,统一收口启动、重启、停机、自启和备份恢复操作- 新增独立的
Backup-Portal.bat与Restore-Portal.bat,方便本机直接进入常用运维流程
- 🔒 发布前安全修复
- 离线恢复在真正写入前会确认 PM2 进程、监听端口和健康检查都已停稳,避免服务未停干净时继续覆盖在线数据
- 同步根项目、前后端包、系统配置和主要发布文档版本到
1.3.5
- 🔐 认证失效跳转统一
- 统一
401、refresh 失败和全局auth:token-invalid事件的前端处理,认证失效后优先清理本地状态并立即回到/portal - 修复
refreshAccessToken()返回false时路由守卫仍可能继续放行的问题
- 统一
- 🩺 健康检查稳定性修复
- 为进程失败计数增加统一清理入口,正常停止、启动回滚、退出清理和自动重启后都会同步清空历史失败次数
- 避免新进程继承旧计数后,只失败一次就被误判为“连续失败两次”而被清理
- 🧪 验证与发布配套
- 补充认证失效和进程健康检查回归测试,并增加本地无头浏览器实测脚本
- 同步根项目、前后端包、系统配置和主要发布文档版本到
1.3.4
- 🗂 目录选择兼容性增强
- 新增网页式服务器目录浏览器,在局域网远程访问时可替代后端原生目录选择
- 手动添加、批量导入、备份路径和路径白名单配置统一接入新的最佳努力目录选择链路
- 🧭 批量导入入口收口
- 检测页明确调整为低频批量导入工具,首页、空状态和 404 推荐入口统一优先引导到“应用管理 > 添加应用”
- 批量发现流程精简为核心路径和扫描深度配置,减少把单应用接入误走成批量导入的情况
- 🚦 端口冲突与认证修复
- 应用管理页在启动遇到端口冲突时,会给出可跳转到端口管理的提示,并自动聚焦冲突端口
- 修复 base64url 编码 JWT 无法恢复登录态、记住我用户名回填不稳定,以及
/api/v1等版本化前缀被误改成/api的问题
- 🚀 校验式启动链路
start-production.ps1现在要求 PM2 在线、监听 PID 匹配且/health连续通过后才视为启动成功- 启动失败时会自动输出端口归属、最后健康状态和最近日志片段,便于在内网环境快速定位问题
- 🛠 控制入口与日志可见性增强
Start-Portal.bat新增防火墙与 PM2 开机自启状态检测,重启和构建后重启统一走校验式启动入口detection-api在 PM2 场景下会把启动期日志同步到 stdout/stderr,避免 PM2 日志窗口为空
- 📋 发布与回归配套
- 新增内网环境回归测试方案文档,覆盖离线拷贝部署、端口冲突、PM2 权限异常和重启恢复场景
- 同步根项目、前后端包、系统配置、脚本模板和主要发布文档到
1.3.2
- 🧩 system-config 解析链路统一
- 后端新增统一的 BOM 安全配置读取工具,认证、系统设置、文件系统白名单和路径安全模块改为复用同一解析入口
- 避免
system-config.json被 Windows 编辑器保存为 UTF-8 BOM 后出现JSON.parse失败或配置读取不完整
- 💾 自动备份调度兼容性修复
- 自动备份调度器现在可以稳定读取带 BOM 的系统配置,不再因为首字符异常导致计划未启动
- 补充对应回归测试,覆盖 BOM 文件下的备份时间、保留天数和输出路径读取
- 🔢 发布资料与版本对齐
- 同步根项目、前后端包、系统配置、启动脚本、前端内置更新记录和主要发布文档到
1.3.1
- 同步根项目、前后端包、系统配置、启动脚本、前端内置更新记录和主要发布文档到
- 💾 系统备份与恢复中心上线
- 系统设置新增统一的备份中心,可在同一页面管理配置快照、文件归档、恢复前备份和历史记录清理
- 自动备份策略改为直接绑定系统设置,支持周期、时间、保留天数、日志/用户数据和输出路径联动
- 🧭 运维页面继续统一
- 系统设置、应用管理、PM2 管理和端口管理进一步统一为状态页头 + 快照指标布局,降低多页面切换的理解成本
- 应用配置保存时会同步更新应用主记录,
external-exe目录和运行目标切换更可靠
- 🩹 发布前稳定性修正
- 修复旧配置缺少
backup段时,保存系统设置可能误关自动备份的问题 - 修复配置快照文件已丢失时,备份列表仍被误标记为可恢复的问题
- 修复旧配置缺少
- 🎯 PM2 识别与停止链路修复
- 新增按应用 ID 停止 PM2 进程的接口,管理页停止动作不再依赖应用名与 PM2 进程名完全一致
- 前端与后端统一改为结合进程名称和工作目录匹配 PM2 进程,
Teaching-inspection-system这类名称不一致场景也能正确命中
- 🧯 误匹配风险收敛
- 收紧目录匹配规则,只接受应用目录及其子目录,避免
D:\My Programs这类共享父目录误判为具体应用 - 补充回归测试,防止无关 PM2 进程被误同步为运行态或误停止
- 收紧目录匹配规则,只接受应用目录及其子目录,避免
- 🪟 原生进程停止稳定性增强
- Windows 下优先终止完整子进程树,失败时再回退到信号式停止,提升端口释放和异常退出处理稳定性
- 🔢 版本与发布资料同步
- 前后端包版本、系统配置、脚本模板和主要发布文档统一提升到
1.2.2
- 前后端包版本、系统配置、脚本模板和主要发布文档统一提升到
- 🛠️ 门户交互修复
- 修复首页用户资料弹窗在特殊布局下可能跑到页面下方的问题
- 离线应用卡片保留“查看详情”主操作,并将次级操作改为直接可点的“刷新”
- 🧭 卡片一致性优化
- 为离线卡片刷新增加请求中禁点与 2 秒冷却,减少重复点击
- 修复
video-cms等单行标题卡片与同排卡片在标题高度和底部操作区上的错位
- 🔢 版本资料同步
- 前后端包版本、系统配置、脚本模板和主要发布文档统一提升到
1.2.1
- 前后端包版本、系统配置、脚本模板和主要发布文档统一提升到
- 🖥️ 控制中心式界面升级
- 门户首页、应用管理、PM2 管理、端口管理、系统设置统一升级为 Hero + Metrics + Content 的信息架构
- 强化快捷操作、筛选摘要、实时状态和空状态引导,核心信息更集中
- 📋 应用与运维信息表达增强
- 应用卡片和详情弹窗新增访问端口、运行模式、访问入口、最近更新和状态摘要
- PM2 进程列表与端口列表补充异常计数、状态说明和更清晰的操作入口
- 🎨 视觉系统统一
- 引入新的全局设计变量、字体、状态色、面板层级和响应式节奏
- 前端“关于系统”中的更新记录同步到
1.2.0
- 📝 发布资料补齐
- 新增正式
CHANGELOG.md - 更新 GitHub 首页 README 的当前版本、Release 链接和版本徽章
- 新增正式
- 🔢 版本再次统一
- 将项目包版本、系统配置、脚本头部、前端页面展示和主要发布文档统一到
1.1.1 - 保持
v1.1.0发布历史不变,采用补丁版纳入发布配套更新
- 将项目包版本、系统配置、脚本头部、前端页面展示和主要发布文档统一到
- 🧭 运行态识别修复
- 修复
video-cms等应用在直启与 PM2 切换后,首页错误显示“生产(PM2)”的问题 - 直启应用现在会明确写入
development模式,并清理遗留pm2ProcessName - 门户公共接口新增运行态兜底逻辑,避免数据库残留模式误导前端展示
- 修复
- ⚙️ 系统设置与路径访问增强
- 补充系统设置 payload 工具与目录选择逻辑
- 优化文件系统路径访问控制与相关配置读写行为
- 🧪 测试与维护性提升
- 补充 PM2 状态同步、网络服务、路径工具与系统设置相关测试
- 统一项目、配置、脚本、前端页面和文档中的版本号到
1.1.0
-
🖧 智能全链路端口治理架构上线
-
极速探测引擎: 引入
PortSnapshotManager,拦截高频netstat查询请求并聚合成$O(1)$ 的内存映射,将刷新扫描速度从 3-5 秒极致压缩至 100ms 内,大幅优化中大型微服务集群下的宿主机 CPU 带宽。 -
基于
Connect的超轻量探活: 弃用传统笨重的Bind和 CLI 正则匹配方案,改用纯血 SocketECONNREFUSED毫秒级探测,极大降低了由于端口阻塞引发的“假阳性”。 -
Graceful Termination (无损退出管线): 重构原有的系统强杀逻辑。执行端口释放时,注入了“软关闭通知 → 智能存活侦测与退避 → 2 秒内无休强杀保底”的优雅降级链路,彻底告别
EBUSY文件句柄死锁与写库撕裂事故。 -
降噪式拓扑 UX: 前台
PortManager.vue引入树形应用域拓扑聚类,辅饰以仿生呼吸动效 (pulse-dot) 和核心级端口的红外警报器(禁止强杀隔离区)。
-
极速探测引擎: 引入
-
🏗️ 底层检测管道架构重构
- 全新四阶段智能检测管道:Scanner(目录发现) → Analyzer(技术栈识别) → Aggregator(聚合关联) → PortAllocator(冲突隔离排他避让)
- 高精度全栈 monorepo 和非标准目录结构探测支持
-
🛡️ 深层内核与容器化加固
- Phase 3: 文件访问全栈级路径收敛 (Spawn 安全拦截)
- 角色鉴权收紧 (RBAC 核心控制流) 与 JWT Token 黑名单联动防穿透。
-
🚀 智能命令容器注入
- 根据子应用技术栈智能挂载启动参数 (如 Vue、Next.js、Angular CLI)
- 自适应无头服务器拦截,完全向后兼容,无破坏性更新
-
📏 精确全栈架构支持
- 自动识别 monorepo 和全栈项目结构(即使子目录结构非标准如 client/server)
- 扫描时使用 maxDepth + 1 检测关联系统,返回时自动剔除隔离层确保应用纯净度
-
� 纵深安全体系增强
- 全面支持 admin/operator/guest 三重角色的细粒度 RBAC 权限控制
- 强制引入 JWT 生产安全密钥,实现 Token 签发与黑名单撤销联动
- 文件系统级指令收敛 (使用 spawn 取代底层 exec) 以及绝对访问白名单限制
这是一个经过全链路压力沉淀与重构的完整企业级起航版。
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
如需技术支持或反馈问题:
智能多Web应用门户系统 v1.5.3 - 让应用管理更简单、更智能!