feat: 完成扩展资源验收与同步服务部署
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# OpenNexus Server Sync 阶段一部署记录
|
||||
|
||||
部署时间:2026-09-10
|
||||
|
||||
部署类型:阶段一明文 HTTP 测试
|
||||
|
||||
代码提交:`d703ab64e3f483dde9e5153c55b986d358f4e37d`
|
||||
|
||||
## 访问入口
|
||||
|
||||
- 控制台:`http://160.202.254.170:18080/`
|
||||
- 健康检查:`http://160.202.254.170:18080/health`
|
||||
- 依赖就绪:`http://160.202.254.170:18080/ready`
|
||||
- 协议握手:`http://160.202.254.170:18080/sync/v1/handshake?protocol=1`
|
||||
|
||||
该环境按测试要求直接监听 `0.0.0.0:18080`,没有修改现有 Nginx,也没有配置
|
||||
HTTPS。正式部署仍须恢复本机监听并由 TLS 反向代理提供外部入口。
|
||||
|
||||
## 服务组成
|
||||
|
||||
Docker Compose 项目名为 `opennexus-stage1`,包含 PostgreSQL 17.6、MinIO、
|
||||
一次性初始化任务和两个 Uvicorn worker 的 Sync 服务。长期服务使用独立的
|
||||
Bucket 限权账号,不使用 MinIO 管理员身份。数据库、对象存储和暂存区均使用
|
||||
独立具名卷。
|
||||
|
||||
目标机可用内存较少,因此阶段一部署为容器设置以下上限:
|
||||
|
||||
| 服务 | 内存上限 | CPU 上限 |
|
||||
| --- | ---: | ---: |
|
||||
| PostgreSQL | 256 MiB | 1 |
|
||||
| MinIO | 320 MiB | 1 |
|
||||
| 初始化任务 | 256 MiB | 1 |
|
||||
| Sync | 384 MiB | 1 |
|
||||
|
||||
## 已执行验证
|
||||
|
||||
- `/health` 返回 `status=ok`。
|
||||
- `/ready` 返回 `status=ready`。
|
||||
- 握手返回协议版本 1、100 MiB 对象上限和 1 MiB 分块大小。
|
||||
- 根路径返回构建后的 Vue 3 + TypeScript Sync Console。
|
||||
- 从部署机外部完成登录、创建并列出 Vault、退出登录的公开 API 闭环。
|
||||
- 验证结束后删除临时 Vault、设备与会话,仅保留阶段一演示账号。
|
||||
- 验证时 Sync、PostgreSQL、MinIO 的内存用量分别约为 214 MiB、27 MiB、
|
||||
135 MiB,均低于容器上限。
|
||||
|
||||
部署凭据只保存在目标机权限受限的 `.env` 中,本文和验收日志不记录口令、
|
||||
访问令牌、数据库密码或对象存储密钥。
|
||||
@@ -953,3 +953,20 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
|
||||
- 提交 `ba7414e` 后构建 release Host 与 1523 文件的 PyInstaller Core。便携交付目录为 `H:\OpenNexus-demo\OpenNexus-0.3.0-alpha.1-portable-ba7414e\`,总计 274.3 MiB;Core 全部文件与 SHA-256 清单一致,`OpenNexus.exe` 摘要为 `E6136C61CAA910CD0006EF9FD94955B47FCF561ABF3FB217097AE36317394023`。实际启动后 Host 窗口保持响应,Core 子进程从便携目录运行。
|
||||
- 构建完成后删除工作树中的 `.build`、Rust `target`、前端 `dist`、Sync Console `node_modules` 和 TypeScript 构建缓存,G 盘剩余空间回升到 49.62 GiB。用户 Vault 的现有修改未纳入提交、未移动也未删除。
|
||||
- 测试地址 `http://yui.kronecker.cc:18080` 当前仍返回空响应,SSH 连接在认证前由对端关闭,因此本次未能把控制台发布到该测试端口;本地 Demo 与可部署源码、静态产物均已完成。其余 12 项长时生产验收继续按用户要求暂缓。
|
||||
|
||||
|
||||
## 增量:Server Sync 阶段一远端部署
|
||||
|
||||
- 使用新的测试服务器完成 Server Sync 全栈部署,公开入口为 `http://160.202.254.170:18080/`。按阶段一要求直接监听 HTTP,没有修改 Nginx 或配置 HTTPS;根路径发布 Vue 3 + TypeScript Sync Console。
|
||||
- Docker Compose 运行 PostgreSQL 17.6、MinIO、一次性初始化任务和两个 Uvicorn worker。Compose 新增可配置的 `SYNC_BIND_ADDRESS` 与 `SYNC_PORT`,默认仍只绑定 `127.0.0.1:8080`,只有测试部署显式使用 `0.0.0.0:18080`。
|
||||
- 外部验证 `/health`、`/ready`、协议握手、登录、创建与列出 Vault、退出登录全部成功。验证后已删除临时 Vault、设备和会话,只保留阶段一演示账号;数据库计数为 1 个用户、0 个 Vault、0 个会话。
|
||||
- 目标机内存较小,部署为 PostgreSQL、MinIO、初始化任务和 Sync 分别设置 256、320、256、384 MiB 上限。验证时三项长期服务约使用 27、135、214 MiB。部署说明见 `docs/deployment/Server Sync阶段一部署-2026-09-10.md`,不包含口令或令牌。
|
||||
|
||||
|
||||
## 增量:C-04 扩展资源与工具期限生产验收
|
||||
|
||||
- 为每个原生扩展实例增加 256 MiB scratch 上限。Host 每 100 ms 从实例专用物理目录重新遍历,拒绝重解析点、符号链接、非普通对象、超过 10000 个条目或超过配额;触发后返回 `EXTENSION_RESOURCE_SCRATCH_EXCEEDED` 并终止整个 Job 进程树。
|
||||
- 发现 AppContainer 会把传入的物理 `Packages/<实例>/AC` 路径再次虚拟化,导致子进程 TEMP 出现双重 `AC/Packages/.../AC` 路径。现在启动数据为子进程提供 LocalAppData 下的逻辑路径,Host 继续持有并监控真实 scratch 路径,同时通过实例 SID 授予目录继承写权限。
|
||||
- C-04 driver 固定执行四个精确 Rust Host oracle。真实后台 MCP 分别触发 CPU、512 MiB 内存、16 进程和 256 MiB scratch 上限,全部返回对应错误、清空进程树并能启动替代实例;scratch 超限本轮约 92 ms 可见。真实 60 秒工具期限在 60.015 秒左右回收两级进程树,期限前后 Host 均成功保存并重开本地笔记。文件 broker 第 33 个同秒请求返回 `EXTENSION_BROKER_RATE_LIMITED`。
|
||||
- 直接 driver 结果为 `PASSED`,四组断言全部通过。严格 Clippy `-D warnings` 通过;desktop Rust 全量回归 146 通过、0 失败、14 ignored,总耗时 744 秒;runner 7 项、Server Sync 30 项、前端类型检查和 542 项前端测试均通过。前端测试出现一次对未启动 `localhost:3000` 的预期连接拒绝诊断,但测试进程仍以 104 个文件、542 项全部通过结束。
|
||||
- 测试依赖和断链目录在验证后从 G/H 盘清理,G 盘可用空间约 49.95 GiB。C-04 可记为通过,正式验收累计 19/30;A-01/A-04、C-01/C-02、D-02/D-04 与 E-01~E-05 尚未通过,不能据此声明完整第三阶段生产验收完成。
|
||||
|
||||
Reference in New Issue
Block a user