docs(deploy): 用 containerlab 建模实际部署网络拓扑 + 出图(含手写 drawio) #192

Open
redxin wants to merge 3 commits from feat/containerlab-deploy-topology into main
Owner

背景

原先用 Packet Tracer 出网络拓扑图,但 PT 9.0 与 MCP 不兼容。改用 containerlab(WSL 子系统)建模 DentalFlow 实际部署网络拓扑并出图。

架构(已与用户确认)

  • 中心机房:VPN 服务器 + 中心服务集群(main 主备) + 数据库存储集群(PG 主备+备份) + 文件上传集群(MinIO 池)
  • 各网点(四层楼):光猫 → 主路由 →(公共网络模式:二级路由+AP 隔离上公网 / 业务网络模式:经 VPN 对接中心、网点 agent、主交换机 → 4 台分层交换机 → 椅旁客户端)
  • 网点间业务网经中心 VPN Hub 汇聚

产物(deploy/containerlab/)

  • dentalflow-deploy.clab.yml:containerlab 正式拓扑文件(带 graph-group/level/icon 标签,可 containerlab deploy
  • dentalflow-custom.svg / .png / .dot:手写 graphviz 分组图(分组框+按角色形状,成品图)
  • dentalflow-topology.drawio手写 drawio,用 draw.io 网络图元按角色区分(router/switch/server/storage/pc/modem/firewall/wireless_hub/cloud),可拖拽编辑(图元名已对照官方 stencil 源校验)
  • dentalflow-deploy.clab.drawio:clab-io-draw 自动导出版(备留)
  • dentalflow-deploy.svg / .png:containerlab 原生扁平导出(备留)
  • design/refactor/deploy-network-topology.html:mermaid 结构草图(已确认)

⚠️ 注意:夹带提交

本分支含一个与本主题无关的提交 855565c2(docs/testing 优化点记录),是仓库并发活动在两次提交之间塞入的。如需保持 PR 干净,可在合并前把它单独拆走——告知即可处理。

🤖 Generated with Claude Code

## 背景 原先用 Packet Tracer 出网络拓扑图,但 PT 9.0 与 MCP 不兼容。改用 containerlab(WSL 子系统)建模 DentalFlow 实际部署网络拓扑并出图。 ## 架构(已与用户确认) - **中心机房**:VPN 服务器 + 中心服务集群(main 主备) + 数据库存储集群(PG 主备+备份) + 文件上传集群(MinIO 池) - **各网点(四层楼)**:光猫 → 主路由 →(公共网络模式:二级路由+AP 隔离上公网 / 业务网络模式:经 VPN 对接中心、网点 agent、主交换机 → 4 台分层交换机 → 椅旁客户端) - 网点间业务网经中心 VPN Hub 汇聚 ## 产物(deploy/containerlab/) - `dentalflow-deploy.clab.yml`:containerlab 正式拓扑文件(带 graph-group/level/icon 标签,可 `containerlab deploy`) - `dentalflow-custom.svg` / `.png` / `.dot`:手写 graphviz 分组图(分组框+按角色形状,成品图) - `dentalflow-topology.drawio`:**手写 drawio**,用 draw.io 网络图元按角色区分(router/switch/server/storage/pc/modem/firewall/wireless_hub/cloud),可拖拽编辑(图元名已对照官方 stencil 源校验) - `dentalflow-deploy.clab.drawio`:clab-io-draw 自动导出版(备留) - `dentalflow-deploy.svg` / `.png`:containerlab 原生扁平导出(备留) - `design/refactor/deploy-network-topology.html`:mermaid 结构草图(已确认) ## ⚠️ 注意:夹带提交 本分支含一个**与本主题无关**的提交 `855565c2`(docs/testing 优化点记录),是仓库并发活动在两次提交之间塞入的。如需保持 PR 干净,可在合并前把它单独拆走——告知即可处理。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- deploy/containerlab/dentalflow-deploy.clab.yml: containerlab 正式拓扑
  (中心机房VPN/服务/DB/文件集群 + 网点A四层楼ONT→路由→公共网&业务网/
   分层交换机/agent + 网点B同构 + VPN汇聚; 带 graph-group/level/icon 标签)
- dentalflow-custom.dot/.svg/.png: 手写分组图(分组框+按角色形状,成品图)
- dentalflow-deploy.clab.drawio: clab-io-draw 导出的可编辑 drawio
- dentalflow-deploy.svg/.png: containerlab 原生导出(扁平,备留)
- design/refactor/deploy-network-topology.html: mermaid 结构草图(已确认)

替代原 Packet Tracer 出图方式(PT9.0 与 MCP 不兼容)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
清空9机→从零部署最新main→超管/店长 onboarding→5节点接入+2诊所→
临床工作台→患者建档(被P0阻断)。按6维度(业务/UI友好/界面清爽/后端图形化/
异常记录/恢复)记录优化点,汇总按严重度排序,统一处理用。

两个P0:①店长缺 patient:profile:write 开箱无法建患者;②前端吞4xx/403
错误零提示(系统性"死按钮"根因)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(deploy): 新增手写 drawio 拓扑图(网络图元+分组框,可编辑)
Some checks failed
CI / Frontend (Tauri/TS) (pull_request) Has been cancelled
CI / Backend (Go) (pull_request) Has been cancelled
db16a56e0f
clab-io-draw 自动导出的 drawio 结构混乱且图标单一(节点均为 kind:linux),
改为手写 dentalflow-topology.drawio:
- 用 draw.io 网络图元区分角色: router/switch/server/storage/pc/modem/
  firewall/wireless_hub/cloud (图元名已对照官方 stencil 源校验)
- 分组框(中心机房三集群 / 网点A 公共网&业务网 / 网点B)+ 角色配色
- 全部节点/连线为可拖拽编辑对象; 布局照 dentalflow-custom.svg

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Some checks failed
CI / Frontend (Tauri/TS) (pull_request) Has been cancelled
CI / Backend (Go) (pull_request) Has been cancelled
This pull request has changes conflicting with the target branch.
  • docs/testing/optimization-points-2026-06-18.md
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/containerlab-deploy-topology:feat/containerlab-deploy-topology
git switch feat/containerlab-deploy-topology

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/containerlab-deploy-topology
git switch feat/containerlab-deploy-topology
git rebase main
git switch main
git merge --ff-only feat/containerlab-deploy-topology
git switch feat/containerlab-deploy-topology
git rebase main
git switch main
git merge --no-ff feat/containerlab-deploy-topology
git switch main
git merge --squash feat/containerlab-deploy-topology
git switch main
git merge --ff-only feat/containerlab-deploy-topology
git switch main
git merge feat/containerlab-deploy-topology
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
redxin/DentalFlow!192
No description provided.