feat: 使用 Supervisor 托管本地 Chorus 三个服务实例 #39

Closed
opened 2026-08-24 09:57:38 +08:00 by ila · 0 comments
Owner

基本信息

  • 类型:本地运行 / Supervisor 配置
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2 开发基础设施
  • 关联任务:#38
  • 阶段:已完成
  • 提出时间:2026-08-24

原始需求

  • 来源:用户在当前对话确认。
  • 关键原话:安装了 D:\supervisor,要求增加实例,使用 D:\OPC\chorus\config 中的 IP 和端口启动 Chorus;随后确认按 Portal、Admin API、Admin UI 三个实例配置。

目标

为本机 Go 版 Supervisor 增加 chorus-user、chorus-admin-api、chorus-admin-ui 三个独立受管实例,分别以前台进程方式启动 Portal、Admin API 与 Admin UI,并复用项目现有统一配置和敏感配置边界。

已确认方案

  • Portal Host/Port 与环境文件路径读取 config/local-services.yml。
  • Admin API 配置只读取 admin/config/settings.yml,不复制其中敏感值。
  • Admin UI Host/Port 读取 config/local-services.yml,API 基址由 Admin 地址派生。
  • Supervisor 配置不保存 DSN、密码、JWT、Token 或 Provider Key;Portal 运行器只在进程内加载受保护环境文件。
  • 三个组件独立显示状态、记录日志和自动重启;不通过会立即退出的现有后台启动脚本间接托管。
  • 不调整 Supervisor 管理界面绑定、认证或其他安全设置,按用户明确范围处理。

非目标

不修改业务接口、数据库、迁移、账号、安全规则或 Provider;不执行 migration、AutoMigrate、seed;不管理其他项目进程;不改用户现有 admin/config/settings.yml。

风险与回退

现有 #38 受管进程可能占用相同端口,切换前只停止 Chorus 自己记录且路径匹配的进程。Supervisor 包装进程必须能随 stop/restart 清理子进程。回退为停止新增实例、移除新增 include 配置并使用 scripts/start-all.bat。

验收标准

  • Supervisor 显示三个独立 Chorus 实例且均为 RUNNING。
  • Portal 使用 config/local-services.yml 当前 Host/Port。
  • Admin API 使用 admin/config/settings.yml 当前 Host/Port。
  • Admin UI 使用统一配置 Host/Port并连接正确 Admin API。
  • 三个 HTTP 地址通过最小检查,日志不包含敏感值。
  • stop/restart 不残留受管子进程,不影响无关端口和进程。
  • 必要脚本测试、Go 测试、Harness 检查和 Wiki 文档闭环通过。

文档影响

更新 Wiki Project-Profile、Local-Development-and-Verification、Deployment-and-Operations 后同步核心 docs/ 镜像。无 UI 原型要求,替代证据为本工单运行设计与真实进程验证。

实现、测试与归档证据

  • 实现提交:a8f18a4,已推送 origin/main。
  • Supervisor 状态:chorus-user、chorus-admin-api、chorus-admin-ui 均为 Running。
  • 当前地址:Portal 127.0.0.1:8085、Admin API 127.0.0.1:8090、Admin UI 127.0.0.1:9528;三个 HTTP 检查均为 200,Admin UI API 基址验证为 8090。
  • 三个实例逐项 stop/start 后端口均释放并恢复,未影响无关 9527;日志扫描未发现敏感字段名。
  • go test ./...、go -C admin test ./...、go vet ./...、42 项 Harness 测试、严格结构检查与 Wiki 镜像一致性均通过。
  • Wiki PATCH 空标题兼容问题曾使三个核心页面失联;同步前发现后已从原镜像完整恢复、按原名重建并在线回读。本任务后续 PATCH 均显式传原标题。
  • 任务归档:https://git.ilapage.cn/OPC/chorus/wiki/Task-39-Supervisor-%E6%89%98%E7%AE%A1%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1.-
  • 任务归档 revision:d2512fa61c85cc42a0ade839c19b679b47cc42c0。
  • 核心 Wiki revisions:Project Profile 70e6abc603dc4413b84b07bc206650bc573d27d5;Local Development 0dca7972bf4a7bc258a36b41df6ceba636c8b949;Deployment c19a066002ec15cdacdf454dea4da4b67c3a4529。
  • 未验证:Windows 开机自启和生产静态部署;未执行 migration、seed、账号变更或真实 Provider 请求。
  • 阶段:已完成;用户明确验收前不关闭。

用户验收

  • 用户验收通过(2026-08-24)。
  • Wiki 归档:Task-39-Supervisor-托管本地服务,revision $(System.Collections.Hashtable[39].revision)。
  • 核心 Project Profile revision:8d5cdac0cee22efe667718393466c59255c6dd17。
  • 验收镜像提交:c8f86c5,已推送至 origin/main。
## 基本信息 - 类型:本地运行 / Supervisor 配置 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 开发基础设施 - 关联任务:#38 - 阶段:已完成 - 提出时间:2026-08-24 ## 原始需求 - 来源:用户在当前对话确认。 - 关键原话:安装了 `D:\supervisor`,要求增加实例,使用 `D:\OPC\chorus\config` 中的 IP 和端口启动 Chorus;随后确认按 Portal、Admin API、Admin UI 三个实例配置。 ## 目标 为本机 Go 版 Supervisor 增加 `chorus-user`、`chorus-admin-api`、`chorus-admin-ui` 三个独立受管实例,分别以前台进程方式启动 Portal、Admin API 与 Admin UI,并复用项目现有统一配置和敏感配置边界。 ## 已确认方案 - Portal Host/Port 与环境文件路径读取 `config/local-services.yml`。 - Admin API 配置只读取 `admin/config/settings.yml`,不复制其中敏感值。 - Admin UI Host/Port 读取 `config/local-services.yml`,API 基址由 Admin 地址派生。 - Supervisor 配置不保存 DSN、密码、JWT、Token 或 Provider Key;Portal 运行器只在进程内加载受保护环境文件。 - 三个组件独立显示状态、记录日志和自动重启;不通过会立即退出的现有后台启动脚本间接托管。 - 不调整 Supervisor 管理界面绑定、认证或其他安全设置,按用户明确范围处理。 ## 非目标 不修改业务接口、数据库、迁移、账号、安全规则或 Provider;不执行 migration、AutoMigrate、seed;不管理其他项目进程;不改用户现有 `admin/config/settings.yml`。 ## 风险与回退 现有 #38 受管进程可能占用相同端口,切换前只停止 Chorus 自己记录且路径匹配的进程。Supervisor 包装进程必须能随 stop/restart 清理子进程。回退为停止新增实例、移除新增 include 配置并使用 `scripts/start-all.bat`。 ## 验收标准 - [x] Supervisor 显示三个独立 Chorus 实例且均为 RUNNING。 - [x] Portal 使用 `config/local-services.yml` 当前 Host/Port。 - [x] Admin API 使用 `admin/config/settings.yml` 当前 Host/Port。 - [x] Admin UI 使用统一配置 Host/Port并连接正确 Admin API。 - [x] 三个 HTTP 地址通过最小检查,日志不包含敏感值。 - [x] stop/restart 不残留受管子进程,不影响无关端口和进程。 - [x] 必要脚本测试、Go 测试、Harness 检查和 Wiki 文档闭环通过。 ## 文档影响 更新 Wiki `Project-Profile`、`Local-Development-and-Verification`、`Deployment-and-Operations` 后同步核心 `docs/` 镜像。无 UI 原型要求,替代证据为本工单运行设计与真实进程验证。 <!-- final-evidence-39 --> ## 实现、测试与归档证据 - 实现提交:`a8f18a4`,已推送 `origin/main`。 - Supervisor 状态:`chorus-user`、`chorus-admin-api`、`chorus-admin-ui` 均为 Running。 - 当前地址:Portal `127.0.0.1:8085`、Admin API `127.0.0.1:8090`、Admin UI `127.0.0.1:9528`;三个 HTTP 检查均为 200,Admin UI API 基址验证为 `8090`。 - 三个实例逐项 stop/start 后端口均释放并恢复,未影响无关 `9527`;日志扫描未发现敏感字段名。 - `go test ./...`、`go -C admin test ./...`、`go vet ./...`、42 项 Harness 测试、严格结构检查与 Wiki 镜像一致性均通过。 - Wiki PATCH 空标题兼容问题曾使三个核心页面失联;同步前发现后已从原镜像完整恢复、按原名重建并在线回读。本任务后续 PATCH 均显式传原标题。 - 任务归档:https://git.ilapage.cn/OPC/chorus/wiki/Task-39-Supervisor-%E6%89%98%E7%AE%A1%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1.- - 任务归档 revision:`d2512fa61c85cc42a0ade839c19b679b47cc42c0`。 - 核心 Wiki revisions:Project Profile `70e6abc603dc4413b84b07bc206650bc573d27d5`;Local Development `0dca7972bf4a7bc258a36b41df6ceba636c8b949`;Deployment `c19a066002ec15cdacdf454dea4da4b67c3a4529`。 - 未验证:Windows 开机自启和生产静态部署;未执行 migration、seed、账号变更或真实 Provider 请求。 - 阶段:已完成;用户明确验收前不关闭。 ## 用户验收 - 用户验收通过(2026-08-24)。 - Wiki 归档:Task-39-Supervisor-托管本地服务,revision $(System.Collections.Hashtable[39].revision)。 - 核心 Project Profile revision:8d5cdac0cee22efe667718393466c59255c6dd17。 - 验收镜像提交:c8f86c5,已推送至 origin/main。
ila closed this issue 2026-08-24 11:39:57 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#39