Files
REVOXELSEG_DICOM/Docker部署

ReVoxelSeg DICOM Docker 部署说明

本目录提供两套 Docker Compose 部署方式:

  • 本机/docker_compose.yaml:适合当前开发机或普通 Linux 主机。
  • 威联通NAS/docker_compose.yaml:适合 QNAP QTS Container Station使用 /share/Container/revoxelseg_dicom 绝对路径。

两套 Compose 都包含:

  • revoxelseg_webReVoxelSeg DICOM 前后端一体服务,容器端口 4000
  • revoxelseg_frpcFRPC 客户端,将 revoxelseg_web:4000 映射到 82.157.255.195 的远程端口 10008

当前 Docker 构建会同步包含以下能力:

  • 二维逆向分割映射按实体填充显示rib、skin 等薄壳或细长构件会做局部实体化兜底,导出的分割 Label Map 也按填充区域写入。
  • 模型位姿支持以模型中心沿 X/Y/Z 轴镜像翻转,平移和缩放单击支持 0.001 级微调,长按加减会加速连续调整;保存、项目库预览和导出均沿用该位姿;自动拉伸完成后不再在位姿区保留成功提示。
  • “构件分别导出”会把所有构件 NIfTI 文件集中到导出包内的 segmentation-parts/ 目录。
  • 项目库 DICOM 首页支持滚轮缩放、拖拽平移和位置重置。
  • 项目库与工作区的 DICOM 切片编号按医学影像顺序显示,滑条使用非进度条样式。
  • 项目库支持锁定/解锁项目、筛选未上锁项目,并在锁定时保存位姿快照到 项目数据/锁定结果/
  • 逆向工作区“构件层级”支持一键显示或隐藏全部构件;切片滑条顶部为第 1 张,向下查看到第 N 张。
  • 逆向分割映射视图按当前可见构件加载高精度 STL 预览,并始终用全部 STL 边界保持统一模型坐标系;实体模式最高使用 80 万三角面预览,“可见类别 + 构件分别导出”严格只导出当前眼睛打开的构件。
  • 新增“自动微调匹配工作区”,可从逆向工作区当前位姿进入;默认仅微调平移 X/Y/Z 与缩放,旋转锁定,使用所选骨骼 STL 与 DICOM HU 骨窗进行候选迭代评分,采样切片按数量均匀筛选并真实参与评分,可将最佳位姿写回项目库;结果区支持当前位姿/自动匹配结果双视图对比。
  • 大型 STL preview JSON 响应会按浏览器能力 gzip 返回,降低公网 HTTP/2 代理下高精度预览的传输失败概率。

一、本机部署

在项目根目录执行:

docker compose -f Docker部署/本机/docker_compose.yaml up -d --build

查看状态:

docker compose -f Docker部署/本机/docker_compose.yaml ps
docker compose -f Docker部署/本机/docker_compose.yaml logs -f revoxelseg_web
docker compose -f Docker部署/本机/docker_compose.yaml logs -f revoxelseg_frpc

访问地址:

http://192.168.3.11:4000/
http://127.0.0.1:4000/

公网访问需等待 FRPC 在线,并确认 NPM 反向代理已将 revoxel.huijutec.cn 转发到 FRP 服务端 10008

https://revoxel.huijutec.cn/

停止:

docker compose -f Docker部署/本机/docker_compose.yaml down

二、威联通 NAS / QTS Container Station 部署

建议把完整项目放到:

/share/Container/revoxelseg_dicom

然后在 QTS Container Station 中创建应用,选择或粘贴:

/share/Container/revoxelseg_dicom/Docker部署/威联通NAS/docker_compose.yaml

也可通过 SSH 执行:

cd /share/Container/revoxelseg_dicom
docker compose -f Docker部署/威联通NAS/docker_compose.yaml up -d --build

如果项目目录不是 /share/Container/revoxelseg_dicom,需要同步修改 NAS Compose 中:

  • build.context
  • /share/Container/revoxelseg_dicom/data
  • /share/Container/revoxelseg_dicom/exports
  • /share/Container/revoxelseg_dicom/locked-results

三、数据持久化

容器内路径:

  • /app/WebSite/data:项目状态、上传数据和导入缓存。
  • /app/WebSite/exports:导出的 NII/NII.GZ/TAR.GZ 文件。
  • /app/项目数据/锁定结果:项目锁定时保存的位姿与构件样式快照。

本机部署会挂载到:

  • Docker部署/本机/data
  • Docker部署/本机/exports
  • Docker部署/本机/locked-results

NAS 部署会挂载到:

  • /share/Container/revoxelseg_dicom/data
  • /share/Container/revoxelseg_dicom/exports
  • /share/Container/revoxelseg_dicom/locked-results

默认演示数据 Head_CT_DICOM/Head_CT_ReConstruct/ 会复制进镜像,用于新环境首次启动后的默认项目。

四、FRPC 映射

Compose 中内置的 FRPC 配置为:

serverAddr = "82.157.255.195"
serverPort = 7000

auth.method = "token"
auth.token = "en.xjtu.edu.cn"

transport.poolCount = 5
transport.heartbeatTimeout = -1

[[proxies]]
name = "ReVoxelSeg_DICOM"
type = "tcp"
localIP = "revoxelseg_web"
localPort = 4000
remotePort = 10008

如果远端端口或代理名称调整,只需修改两份 docker_compose.yamlrevoxelseg_frpc 的内嵌配置。

五、旧 tmux 部署回退

若需要临时回退到旧部署方式:

docker compose -f Docker部署/本机/docker_compose.yaml down
cd WebSite
npm run build
npm run serve -- --host 0.0.0.0 --port 4000

六、2026-05-24 交互修正

  • 逆向工作区切换构件层级时,可见 STL 构件会显示加载进度,避免高精度预览加载期间误判为构件不显示。
  • DICOM 与逆向分割映射画布的滚轮缩放使用非被动 wheel 监听,修正浏览器控制台 Unable to preventDefault inside passive event listener invocation 警告。
  • rib、skin 等薄壳或细长构件在实体模式和逆向分割映射视图中使用更高精度 STL 预览,并增加局部厚度填充,避免只显示散点或单像素线段。