2026-06-04-09-46-36 部署并验证局域网 4000 服务
This commit is contained in:
59
工程分析/实现方案-2026-06-04-09-46-36.md
Normal file
59
工程分析/实现方案-2026-06-04-09-46-36.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# 实现方案-2026-06-04-09-46-36
|
||||||
|
|
||||||
|
## 实现方案文档路径
|
||||||
|
|
||||||
|
`工程分析/实现方案-2026-06-04-09-46-36.md`
|
||||||
|
|
||||||
|
## 修改目标
|
||||||
|
|
||||||
|
完成一次无源码变更的重新部署,让用户可以通过 `http://192.168.3.11:4000/` 访问当前程序。
|
||||||
|
|
||||||
|
## 涉及路径
|
||||||
|
|
||||||
|
- `WebSite/`
|
||||||
|
- `WebSite/package.json`
|
||||||
|
- `工程分析/需求分析-2026-06-04-09-46-36.md`
|
||||||
|
- `工程分析/实现方案-2026-06-04-09-46-36.md`
|
||||||
|
- `工程分析/测试方案-2026-06-04-09-46-36.md`
|
||||||
|
- `工程分析/经验记录.md`
|
||||||
|
|
||||||
|
## 技术路线
|
||||||
|
|
||||||
|
1. 检查工作区状态、部署脚本、已有 `tmux` 会话和 `4000` 端口占用。
|
||||||
|
2. 在 `WebSite` 执行 `npm run build`,生成最新生产构建。
|
||||||
|
3. 使用或重建 `tmux` 会话 `revoxelseg-dicom`,在其中启动:
|
||||||
|
`npm run serve -- --host 0.0.0.0 --port 4000`
|
||||||
|
4. 验证本机健康检查、本机首页和局域网首页。
|
||||||
|
5. 追加经验记录,并仅提交本次工程分析文档与经验记录。
|
||||||
|
|
||||||
|
## 执行步骤
|
||||||
|
|
||||||
|
- 执行前再次确认已读 `工程分析/经验记录.md`。
|
||||||
|
- 若存在旧 `revoxelseg-dicom` 会话,先发送 `Ctrl-C` 停止旧服务,再启动新服务。
|
||||||
|
- 若不存在该会话,则创建新的 detached `tmux` 会话。
|
||||||
|
- 使用 `curl` 验证:
|
||||||
|
- `http://127.0.0.1:4000/api/health`
|
||||||
|
- `http://127.0.0.1:4000/`
|
||||||
|
- `http://192.168.3.11:4000/api/health`
|
||||||
|
- `http://192.168.3.11:4000/`
|
||||||
|
- 检查 `tmux` 会话和端口监听状态,确认服务长期运行。
|
||||||
|
|
||||||
|
## 兼容性与回滚方案
|
||||||
|
|
||||||
|
- 若新服务启动失败,保留构建和启动日志,停止新会话后回滚到上一次可用部署命令。
|
||||||
|
- 若端口被非本项目进程占用,先记录占用来源,再决定是否停止或改端口。
|
||||||
|
- 若局域网访问失败但本机访问成功,优先排查监听地址、服务器防火墙和网络路由。
|
||||||
|
|
||||||
|
## 预计文件变更
|
||||||
|
|
||||||
|
- 新增本次三件套文档。
|
||||||
|
- 追加 `工程分析/经验记录.md`。
|
||||||
|
- `WebSite/dist/` 会因构建更新,但不纳入本次文档备份 commit。
|
||||||
|
- 不预计修改源码。
|
||||||
|
|
||||||
|
## 提交与部署策略
|
||||||
|
|
||||||
|
- 先完成构建、服务重启和访问验证。
|
||||||
|
- 再追加经验记录。
|
||||||
|
- 仅暂存本次工程分析文档和 `工程分析/经验记录.md`。
|
||||||
|
- commit message 使用:`2026-06-04-09-46-36 部署并验证局域网 4000 服务`。
|
||||||
47
工程分析/测试方案-2026-06-04-09-46-36.md
Normal file
47
工程分析/测试方案-2026-06-04-09-46-36.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# 测试方案-2026-06-04-09-46-36
|
||||||
|
|
||||||
|
## 测试方案文档路径
|
||||||
|
|
||||||
|
`工程分析/测试方案-2026-06-04-09-46-36.md`
|
||||||
|
|
||||||
|
## 静态检查
|
||||||
|
|
||||||
|
- 检查 `WebSite/package.json` 中 `build` 与 `serve` 脚本存在。
|
||||||
|
- 检查本机网卡包含 `192.168.3.11`。
|
||||||
|
- 检查 `tmux` 会话 `revoxelseg-dicom` 与 `4000` 端口状态,避免重复服务冲突。
|
||||||
|
|
||||||
|
## 构建检查
|
||||||
|
|
||||||
|
- 在 `WebSite` 执行 `npm run build`。
|
||||||
|
- 通过 Vite 构建输出确认无构建错误。
|
||||||
|
|
||||||
|
## 关键业务场景验证
|
||||||
|
|
||||||
|
- 验证 `http://127.0.0.1:4000/api/health` 返回健康状态。
|
||||||
|
- 验证 `http://127.0.0.1:4000/` 返回首页 HTML。
|
||||||
|
- 验证 `http://192.168.3.11:4000/api/health` 返回健康状态。
|
||||||
|
- 验证 `http://192.168.3.11:4000/` 返回首页 HTML。
|
||||||
|
|
||||||
|
## 医学影像数据相关边界验证
|
||||||
|
|
||||||
|
- 本次仅重新部署,不修改 DICOM/STL 读取、预览、融合、分割映射和 Mask 导出逻辑。
|
||||||
|
- 不重新生成医学影像导出结果,避免把运行态产物混入提交。
|
||||||
|
|
||||||
|
## 部署验证
|
||||||
|
|
||||||
|
- 服务命令:`npm run serve -- --host 0.0.0.0 --port 4000`。
|
||||||
|
- 运行载体:`tmux` 会话 `revoxelseg-dicom`。
|
||||||
|
- 端口验证:确认 `4000` 端口由当前 Node 服务监听。
|
||||||
|
- 页面验证:确认局域网首页可通过 HTTP 访问。
|
||||||
|
|
||||||
|
## Git/Gitea 备份验证
|
||||||
|
|
||||||
|
- 使用 `git status --short` 确认只暂存本次工程分析文档和经验记录。
|
||||||
|
- commit message 包含 `2026-06-04-09-46-36`。
|
||||||
|
- 避免提交 `WebSite/dist/`、医学数据、导出文件和无关工作区变化。
|
||||||
|
|
||||||
|
## 风险与回归关注点
|
||||||
|
|
||||||
|
- 如果构建失败,应停止部署并汇报具体错误。
|
||||||
|
- 如果服务启动后本机成功但局域网失败,应继续检查网络访问链路。
|
||||||
|
- 如果 `tmux` 会话中存在旧命令残留,应清屏或重新启动,确保会话内运行的是本次部署命令。
|
||||||
18
工程分析/经验记录.md
18
工程分析/经验记录.md
@@ -1995,3 +1995,21 @@ C. 解决问题方案
|
|||||||
D. 后续如何避免问题
|
D. 后续如何避免问题
|
||||||
|
|
||||||
面向 Windows 用户直接查看的复杂导出包优先使用 ZIP,不要用需要 PAX 扩展的 tar.gz;如果必须使用 tar.gz,必须避免非 ASCII 和长路径,或确认目标解压器正确隐藏 PAX。导出包内部结构应以机器可读和人工可读为准,分类分割文件名保持类别名,映射关系单独放入 `labels.json`。
|
面向 Windows 用户直接查看的复杂导出包优先使用 ZIP,不要用需要 PAX 扩展的 tar.gz;如果必须使用 tar.gz,必须避免非 ASCII 和长路径,或确认目标解压器正确隐藏 PAX。导出包内部结构应以机器可读和人工可读为准,分类分割文件名保持类别名,映射关系单独放入 `labels.json`。
|
||||||
|
|
||||||
|
## 2026-06-04-09-46-36 局域网部署要同时确认网卡地址和监听地址
|
||||||
|
|
||||||
|
A. 具体问题
|
||||||
|
|
||||||
|
用户要求通过 `http://192.168.3.11:4000/` 访问程序。本次部署前没有现存 `revoxelseg-dicom` tmux 会话,`4000` 端口也未被占用,需要重新创建长期运行会话并确保服务对局域网开放。
|
||||||
|
|
||||||
|
B. 产生问题原因
|
||||||
|
|
||||||
|
局域网访问不仅依赖服务启动成功,还依赖本机实际存在目标网卡地址、Node 服务监听 `0.0.0.0` 而不是只监听 `127.0.0.1`。如果只验证本机 localhost,可能遗漏局域网地址不可达的问题。
|
||||||
|
|
||||||
|
C. 解决问题方案
|
||||||
|
|
||||||
|
先确认本机网卡包含 `192.168.3.11`,再执行 `npm run build`。构建通过后创建 `tmux` 会话 `revoxelseg-dicom`,在 `WebSite` 中启动 `npm run serve -- --host 0.0.0.0 --port 4000`。随后同时验证 `127.0.0.1` 和 `192.168.3.11` 的 `/api/health` 与首页,确认均返回正常响应。
|
||||||
|
|
||||||
|
D. 后续如何避免问题
|
||||||
|
|
||||||
|
后续做局域网部署时,部署验证必须同时覆盖三点:目标 IP 是否属于当前机器、端口是否监听在 `0.0.0.0`、目标 IP 的 API 和首页是否都能访问。若没有既有 tmux 会话,可直接创建同名会话;若端口被占用,则先记录占用来源再处理。
|
||||||
|
|||||||
50
工程分析/需求分析-2026-06-04-09-46-36.md
Normal file
50
工程分析/需求分析-2026-06-04-09-46-36.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# 需求分析-2026-06-04-09-46-36
|
||||||
|
|
||||||
|
## 开始时间
|
||||||
|
|
||||||
|
2026-06-04-09-46-36
|
||||||
|
|
||||||
|
## 原始需求摘要
|
||||||
|
|
||||||
|
用户要求部署当前 ReVoxelSeg DICOM 程序,并希望通过 `http://192.168.3.11:4000/` 访问。
|
||||||
|
|
||||||
|
## 业务目标
|
||||||
|
|
||||||
|
- 使用项目约定的 `WebSite` 一体服务完成重新部署。
|
||||||
|
- 服务监听 `0.0.0.0:4000`,确保局域网地址 `192.168.3.11:4000` 可访问。
|
||||||
|
- 完成构建、健康检查、首页访问和部署状态验证。
|
||||||
|
|
||||||
|
## 输入与输出
|
||||||
|
|
||||||
|
- 输入:当前工作区代码、`WebSite/package.json` 部署脚本、已有 `tmux` 会话和本机网络环境。
|
||||||
|
- 输出:运行在 `4000` 端口的 WebSite 服务、可访问的局域网地址、部署验证结果和文档备份 commit。
|
||||||
|
|
||||||
|
## 影响范围
|
||||||
|
|
||||||
|
- 运行态影响:`WebSite/dist/` 构建产物、`tmux` 会话 `revoxelseg-dicom` 中的 Node 服务。
|
||||||
|
- 文档影响:新增本次需求分析、实现方案、测试方案,并追加经验记录。
|
||||||
|
- 不涉及源码逻辑、医学影像数据、STL 数据和导出算法变更。
|
||||||
|
|
||||||
|
## 关键约束
|
||||||
|
|
||||||
|
- 必须执行 `工程分析/代码编纂工作流.md`。
|
||||||
|
- 部署优先使用:
|
||||||
|
- `cd WebSite`
|
||||||
|
- `npm run build`
|
||||||
|
- `npm run serve -- --host 0.0.0.0 --port 4000`
|
||||||
|
- 长期运行优先沿用 `tmux` 会话 `revoxelseg-dicom`。
|
||||||
|
- 部署后至少验证 `/api/health` 和首页。
|
||||||
|
- 文档备份 commit message 必须包含 `2026-06-04-09-46-36`。
|
||||||
|
|
||||||
|
## 风险点
|
||||||
|
|
||||||
|
- `4000` 端口可能已有旧服务或其他进程占用,需要先识别并重启到当前版本。
|
||||||
|
- 若构建失败,不能直接复用旧服务冒充新部署。
|
||||||
|
- 若本机可访问但局域网地址不可访问,可能是监听地址、防火墙或网络链路问题。
|
||||||
|
- 构建产物和运行态文件不应混入文档备份 commit。
|
||||||
|
|
||||||
|
## 待确认问题或默认假设
|
||||||
|
|
||||||
|
- 默认当前工作区代码就是用户希望部署的版本。
|
||||||
|
- 默认无需修改源码,只做构建、启动、验证和工程分析文档备份。
|
||||||
|
- 默认使用本机实际网卡地址 `192.168.3.11` 作为局域网访问地址。
|
||||||
Reference in New Issue
Block a user