决策档案
只追加,不改写既有决策。新事实或改变主意时追加新条目并注明取代关系。
D1 — 三模块边界:fleet / vault / devops
- 日期:2026-08-27
- 决策人:owner
- 状态:生效
ZMUKE 有三个互不吞并的模块,任何内容先判定归属再落仓:
| 模块 | 仓库 | 职责 |
|---|---|---|
| fleet | zmuke-fleet、zmuke-fleet-prototype | 节点基础能力:SSH、OpenVPN、gost、fail2ban、ufw、基线加固、节点清单、网络与地址规划 |
| vault | zmuke-vault | 节点级凭据下发;服务与 agent 经 vault --business <org> run <profile> -- <cmd> 取凭据,不接触 vault 内容。所有 vault 文档留在 zmuke-vault |
| devops | zmuke-devops | 主机上承载的业务运维:部署单元(compose / systemd)、每主机服务地图、运维手册、CHANGELOG、Cloudflare Pages 文档站(在 Access 之后) |
在 zmuke-n-00001 上的具体判定:gitea、cloudflared、logging 栈、pages 站点 属于业务运维(devops),不属于 fleet。
组织模型:ZMUKE 是上级组织,SlaunchX 与 MocalMax 是下级组织,各自有独立的 slaunchx-devops / mocalmax-devops。下级组织的负载即使跑在 ZMUKE 主机上, 也不导入本仓,只登记为跨组织残留。
影响:fleet 归属的单元(fleet-server-v1、fleet-agent-v1、openvpn-client@*、 zmuke-egress-watch)在本仓服务地图里只列名并标注"fleet 模块,不在本仓", 不导入其配置文件。
D2 — 文档站以 Cloudflare Pages 发布,全站置于 Access 之后
- 日期:2026-08-27
- 决策人:owner
- 状态:生效
本仓文档渲染为静态站点并发布到 Cloudflare Pages。
- Pages 项目名:
zmuke-devops - 自定义域:
devops.zmuke.com(待建,尚未创建) - 分支模型:
main= 源分支不发布,preview= 发布分支,合并main -> preview由 ZMUKE Gitea 的 Actions(host runner,loopback checkout)构建校验并发布 - 访问控制:
zmuke-devops.pages.dev、*.zmuke-devops.pages.dev与自定义域纳入 同一 Cloudflare Access 应用,**放行身份仅为 owner 单个邮箱 + One-time PIN, 不设邮箱域规则**,匿名默认拒绝 - 部署凭据:
CLOUDFLARE_ACCOUNT_ID、CLOUDFLARE_API_TOKEN只存在 Gitea Actions secrets,不进仓库
理由:运维文档含主机路径、端口、服务拓扑,不适合公开;但需要一个比终端更易读、 可分享给受控人员的入口。Access + private 仓库是补偿控制。
约束:即便在 Access 之后,真实 Cloudflare Account / Zone / Tunnel / Access ID 仍不写入发布站文档,密钥真值任何情况下都不入库。
D3 — zmuke-router 与 zmuke-ad-browser 重新归位为 ZMUKE 服务
- 日期:2026-08-27
- 决策人:owner
- 状态:已决策,工作待办
zmuke-router 与 zmuke-ad-browser 应重新归位(re-home)为 ZMUKE 组织的服务。
当前状态:仅为决策记录,具体迁移工作尚未开始。本仓暂未导入这两个服务的 任何部署单元;它们也不在 zmuke-n-00001 的当前服务地图中。
待办:确定两者的现有落点与归属仓库、判定属 devops 还是 fleet、 在本仓建立对应 deploy/<host>/<unit>/ 并按 CHANGELOG 纪律记录迁移。
D4 — zmuke-gost 归 fleet 模块
- 日期:2026-08-27
- 决策人:owner
- 状态:已决策,合并待办
zmuke-gost 属于 fleet 模块(gost 是节点基础网络能力,与 OpenVPN、 出口链路同层),是并入 zmuke-fleet 的候选。
当前状态:合并工作待办。在合并完成前,zmuke-gost 不进入本仓, 本仓也不为其建立部署单元。
理由:按 D1,节点基础能力归 fleet。gost 作为代理/转发组件服务于节点网络与出口 规划,不是主机上承载的业务运维单元。