Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-24-09-58-56.md

4.0 KiB
Raw Blame History

实现方案-2026-05-24-09-58-56

实现方案文档路径

工程分析/实现方案-2026-05-24-09-58-56.md

修改目标

  • 阅读并梳理当前项目结构、技术栈、运行方式和 Docker 发布历史。
  • 恢复误删的 Docker部署/ 文件夹。
  • 核查 Gitea 远端分支、tag 与 Release/附件关系;确认发布物仍由 tag/附件承载后,删除四个不再需要的发布辅助分支。
  • 构建并重新部署 WebSite 服务,验证本机与公网访问。
  • 完成工程分析记录、经验记录追加、Git/Gitea 备份提交。

涉及路径

  • Docker部署/
  • 工程分析/需求分析-2026-05-24-09-58-56.md
  • 工程分析/实现方案-2026-05-24-09-58-56.md
  • 工程分析/测试方案-2026-05-24-09-58-56.md
  • 工程分析/经验记录.md
  • WebSite/

技术路线

  1. 使用 git statusREADME.mdWebSite/package.json、历史工程分析文档了解项目现状。
  2. 通过 Git 历史或远端 main 恢复 Docker部署/,再核对恢复文件内容。
  3. 使用 git ls-remote 与 Gitea API 检查远端分支、tag、Release 和附件;发布项和附件确认存在后,删除仅用于固化发布配置的辅助分支。
  4. 执行 npm run build 验证前端生产构建。
  5. 使用 tmux 会话 revoxelseg-dicom 启动 npm run serve -- --host 0.0.0.0 --port 4000
  6. 用健康接口、首页和公网域名做部署验证。
  7. 追加经验记录,暂存本次相关文件并提交,推送到 Gitea。

执行步骤

  1. 记录开始时间并阅读 代码编纂工作流.md工程整体分析.md经验记录.md
  2. 创建本次需求分析、实现方案、测试方案文档。
  3. 再次读取 经验记录.md,满足执行前确认要求。
  4. 恢复 Docker部署/ 并检查 DockerfileREADME.md、本机 Compose、NAS Compose。
  5. 查询远端分支与发布 tag若 Release 附件存在且 tag 可追溯,删除四个辅助分支。
  6. 执行构建和部署,检查端口与 tmux 会话状态。
  7. 验证 http://127.0.0.1:4000/api/healthhttp://127.0.0.1:4000/https://revoxel.huijutec.cn/
  8. 更新 工程分析/经验记录.md
  9. git add 仅暂存本次相关文件,提交并推送到 Gitea。
  10. 最终汇报恢复文件、分支清理、部署验证与 commit 状态。

兼容性与回滚方案

  • Docker部署/ 若恢复异常,可从远端 main 或历史提交重新取回。
  • 远端分支删除后仍保留 tag、Release 和附件;如确需恢复,可从对应 tag 重新创建分支。
  • 部署失败时保留构建日志和 tmux 输出,必要时回退到此前可用的 Docker Compose 或旧 tmux 会话。
  • 不提交既有无关删除,避免扩大回滚范围。

预计文件变更

  • 新增三份本次工程分析文档。
  • 恢复 Docker部署/ 下 4 个文件。
  • 追加 工程分析/经验记录.md
  • WebSite/dist/ 可能因构建产生本地变化,但不作为本次备份提交重点。

提交与部署策略

  • 提交信息使用:2026-05-24-09-58-56 恢复Docker部署并清理发布分支
  • 暂存范围限定为本次工程分析文档、经验记录和恢复的 Docker部署/ 文件。
  • 推送到用户提供的 Gitea 备份仓库对应 main 分支。
  • 部署使用 tmux 会话 revoxelseg-dicom 长期运行 NODE_ENV=production npm run serve -- --host 0.0.0.0 --port 4000,避免公网 Host 被 Vite 开发中间件拦截。
  • 公网访问另起 revoxelseg-dicom-frpc 容器,使用 host 网络把本机 127.0.0.1:4000 映射到 FRP 服务端 10008

执行补充记录

  • 初次按普通 npm run serve 启动后,本机 /api/health/ 与公网 API 正常,但公网根路径返回 403 Blocked request. This host ("revoxel.huijutec.cn") is not allowed.
  • 原因是非生产模式会进入 Vite 中间件Vite 对公网 Host 做 allowedHosts 校验。
  • 已改为 NODE_ENV=production 启动,服务直接返回 WebSite/dist/ 生产构建产物。
  • 当前公网链路由 tmux Web 服务加独立 revoxelseg-dicom-frpc 容器组成。