joy-cli/docs/ops/joy-shenzhou.md
feibisi 96edc040ca feat(shenzhou): tickets filter, FreeScout proxy, board finance-hold
Open-status ticket filtering and shorter list TTL, FreeScout API via
jump host with write-path cache clear, OpenBoard finance-hold flags on
board create, and expanded shenzhou web tab UX.
2026-07-13 02:08:25 +08:00

499 lines
27 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# joy web · 神州(生产资产世界)
> 设计决议 · 2026-07-10 · 命名:**神州**(不用「线上」「生产」作导航主名)
> 状态:**已定方向,未落地导航与采集**(本文为完整想法整理,供实现与命名体系对齐)
> 修订 · 2026-07-10范围从「prod-watch 监测态势」校正为「**生产资产台账**」七类骨架§4 清单据 devops 权威源(`inventory.ini` + `production-servers.md`)落实。
---
## 0. 一句话
**神兽守内场;神州是它们可以遨游的大地与天下。**
joy web 必须把「麟悦飞轮 / 神兽集群」与「生产资产世界」分成两个世界——外面跑着的云主机、网站、业务系统、CDN、定时任务和内场的 VM/飞轮是两回事,否则注意力、权限与误操作代价会缠在一起。
| 世界 | 正式名 | 是什么 | 不是什么 |
|------|--------|--------|----------|
| 内场 | **飞轮 / 神兽** | Parallels VM、pi 分身、work、Board、NATS、记忆 | 公网站 SLA、云主机 |
| 工程 | **代码** | feicode / 本地 Git / CI runner 态势 | 迷你 GitHub生产资产台账 |
| 外场 | **神州** | 云主机、网站、在线服务、业务系统、CDN/Cloudflare、定时任务、外部依赖 | 飞轮派活;在 joy 里改生产 |
英文 id实现用`shenzhou`(导航 / tab / `dashboard.shenzhou`)。
对外口语可说「生产环境 / 外部服务」,**导航与产品文案主名固定为「神州大地」**2026-07-11 页眉:神兽工坊 / 神州大地 / 混沌蛮荒)。
**UI 实现原则**(以神兽硬件 tab 为标准、复用全局样式):见 [`joy-web-design.md`](./joy-web-design.md)。
资产 · 云主机:总览 section + **每台独立 section** + `#pane-sz-assets` 4 列网格(对齐 `#pane-hardware`)。
---
## 1. 命名:为何叫「神州」
### 1.1 神话与产品同构
| 名 | 在飞轮里 | 隐喻 |
|----|----------|------|
| **神兽** | 16 分身,各守一 VM | 守土之灵,内场秩序 |
| **神州** | 生产资产世界云主机、网站、业务系统、CDN、定时任务 | 神兽可遨游的大地;业务与天下 |
「神州」在中文里本就有「中华大地 / 辽阔疆域」之意,比「线上」「生产」更贴麟悦–龙奇–神兽的祥瑞命名血脉,也避免:
- 「线上」过泛(什么都在线)
- 「生产」过冷、易与「生产环境变更」操作话术混淆(红线用语仍用「生产变更」)
### 1.2 与红线用语的分工
| 用语 | 场景 |
|------|------|
| **神州** | joy web 导航、态势产品、文档、agent 读 dashboard |
| **生产 / 生产服务器** | 红线、devops 变更、Ansible、事故通报保持严肃操作语义 |
| **外部服务** | 神州的子集:第三方 API、DNS、CDN 边缘等 |
红线不变:生产服务器变更 / 不可逆 / 集群策略 / 跨 VM 批量 → 上报菲比斯。
**神州 tab 默认只读,不因改名降低管控**(运营档见 §7
### 1.3 不用的名字
| 弃用主名 | 原因 |
|----------|------|
| 线上 | 语义空;与飞轮「在线会话」混淆 |
| 生产(作导航) | 像运维后台,不像产品区;易诱发「在面板上点变更」 |
| ops-prod / 运维·生产 | 继续把外场塞进内场运维,边界失败 |
---
## 2. 问题陈述:为何必须拆开
### 2.1 现状2026-07-10
| 已有 | 缺口 |
|------|------|
| 顶栏默认偏 **神兽**;任务/消息/记忆/流水线 = 飞轮 | **无**「神州」一等导航 |
| **代码** tabfeicode 态势 + CI 节点 + 本地 Git | 生产资产未一等公民 |
| **运维** tab集群中间件、探针、LLM | 与公网生产资产混谈时角色不清 |
| **硬件** tabMac / NAS / 家用物理机 | 不是云主机/生产资产 |
| devops `production-servers.md` + `inventory.ini` + `prod-watch.sh` | 数据已在 devops**面板没有成世界** |
### 2.2 混在一起的代价
1. **注意力**:神兽 degraded 与 站点 5xx / 业务下单失败抢同一 badge业务红被淹没。
2. **采集模型**`collect_vm` 面向 10.211.55.*;神州是公网生产机 + 公网 HTTP + DNS/CDN API + 各机 cron/timers。
3. **权限心智**:飞轮可 inject / Board神州变更默认 **change/control → devops**
4. **命名污染**:在「神兽」里塞 production 列 = 让守护神去背公网 SLA叙事错乱。
### 2.3 设计目标
- 人一打开 joy web能回答**内场还好吗?工程堵吗?神州太平吗?**
- Agent 读 JSON 时 `dashboard.shenzhou``dashboard.vms` **并列**,不互相污染。
- 神兽「遨游神州」= 可观测、可汇报、可提议;**不是**在 joy 里直接动刀。
---
## 3. 三区信息架构(完整)
```
joy web 顶栏心智(逻辑三区,实现可先扁平 tab
┌──────────────── 飞轮(内场)─────────────────┐ ┌ 工程 ┐ ┌──── 神州(外场)────┐
│ 神兽 会话 任务 协作 消息 记忆 数据 流水线 │ │ 代码 │ │ 神州(新导航) │
└──────────────────────────────────────────────┘ └──────┘ └───────────────────┘
运维 → 建议逐步正名为「集群」infra / 探针 / LLM
硬件 → Mac·NAS·家用物理机不进神州
```
### 3.1 飞轮区(神兽家园)
| Tab现状 | 职责 |
|-------------|------|
| 神兽 | VM + 分身 + work 健康 |
| 会话 | tmux / 三员 / SOP 派工承载 |
| 任务 / 协作 / 消息 | Board、dispatch、NATS、邮箱外勤 |
| 记忆 / 数据 / 流水线 | 沉淀、资产、业务管线(内场产出) |
**不放**云主机、网站、业务系统、CDN、定时任务、SSL。
### 3.2 工程区(代码)
见 [`joy-forgejo-observe.md`](./joy-forgejo-observe.md)。
> **关注点归属,不是机器归属。** 同一台机按「它在回答哪个关注点的问题」切片,不按物理切两半。
> `feicode-prod` **不是两面特例**——它就是神州「云主机」类里的一台runner/zombie 那一项归代码 tab工程态势系统/站点/SSL 面归神州(生产资产)。规则跟任何生产机一样。
| 属于代码 | 不属于代码(属神州) |
|----------|----------------------|
| feicode API、PR、镜像供应链 | weixiaoduo.com 等站点 HTTP |
| devops / feicode-prod 上的 **Actions runner / zombie** | 同机 nginx / 站点进程 / 业务容器(除 runner 外) |
| 本地 Git dirty/ahead | 生产机部署是否与 tag 一致(可后续神州「发布面」) |
### 3.3 神州区(本设计主体)
生产资产世界的**纵向台账**七类云主机、网站、在线服务、业务系统、CDN/Cloudflare、定时任务、外部依赖。
监测(健康/SSL/到期/红点/load是每类资产的**属性列**,不是独立骨架——顶部留一个脉搏摘要即可。
---
## 4. 神州资产清单(七类)
> 这是神州的**骨架**。监测维度HTTP 探活 / SSL / 磁盘 / load是每类里的属性列不是独立章节。
> **权威清单源**devops `~/ansible/inventory.ini`Ansible 控制节点,标准化管理的生产资产)+ `~/docs/devops/production-servers.md`(规格/SSL/cron 详情,最后更新 2026-04-11部分需现采刷新。Mac `~/.ssh/config` 的 ProxyJump 别名是 Mac 侧连接路径,不是资产真相源。**文档不写裸 IP**,前端配置化。
### 4.1 云主机
**生产主站(`[production]` · 4 台标准化):**
| 别名 | 角色 | 规模 / 管理 |
|---|---|---|
| `weixiaoduo-prod` | WordPress 业务主站(多站点 80+ 子域名,含 mall 商城 / matomo 统计 / modiqi / mudelms | 16核30G宝塔Docker |
| `feicode-prod` | feiCode 平台Forgejo + act_runner + registry×3 + license-server + wenpai-bridge + aimirror | 80核62G宝塔Docker |
| `cravatar-prod` | Cravatar 头像 + 多站点托管cravatar / wenpai / litepress / windfonts / admincdn / skypanel / motucloud / site.feibisi | 72核62GOpenResty非宝塔Podman |
| `wenpai-org` | 文派Mac SSH config 旧别名 `wenpai-prod-b`,同 IP 47.243.29.80 | — |
**边缘/中继(`[edge]` · 5 台):** `bj-1p` / `hz-1p` / `sz-1p` / `gz-1p` / `hk-edge`(北京/杭州/深圳/广州/香港)。
**DNS 节点:** `cn-heyuan`(河源,跑 dns.feibisi.com 的 ThinkPHP 服务;不在 `[edge]` 组,单独用途)。
**退役:** `wptea-prod`47.120.22.94**2026-04-18 decommissioned**,站点已迁至 weixiaoduo-prodprod-watch 仍监控 `wptea.com`待清理。Mac SSH config 旧别名 `server1` / `myserver` / `aliyun-22` 与 weixiaoduo-prod / feicode-prod / wptea-prod 同 IP 重复,属历史别名。
**客户托管机inventory 之外):** 经 debian 跳8 台(`aetled` / `dental-part` / `cqxstx` / `yayaka` / `tigerflow` / `oa52` / `jeukh-server` / `yayaka-new`)。**不在 Ansible 标准化管理内**多为一次性客户服务持久台账只收「常用维护」的几个实现时按活跃度筛选纳入其余按需feibisi到时再筛
属性SSH 可达、load、磁盘、内存、运行时间、到期、**跑着什么**(→ 关联到 4.3/4.4)。
> **采集架构(关键)**devops 是 Ansible 控制节点,用 `~/.ssh/ansible_ed25519` 直连所有生产机(`[all:vars]` 已配 ConnectTimeout/StrictHostKeyChecking**比 Mac ProxyJump 干净得多**。神州采集建议委托 devops 跑(结果写 NAS 或回传 Mac dashboard避免 Mac 开 N 条 SSH 隧道。
### 4.2 网站
对人访问的公网站点(页面类)。`prod-watch.sh` 当前监控 9 个主域名(**这只是子集**
- weixiaoduo.com / mall.weixiaoduo.com
- modiqi.com / windfonts.com
- admincdn.com / cravatar.com / motucloud.com
- wptea.com已迁待移除/ wpcy.com
实际托管站点几十个(见 `production-servers.md` 各机站点表feibisi.com/feibisi.net、wenpai.cn/wenpai.net、litepress.cn、skypanel.com、cravatar.cn、site.feibisi.com、feicode.com双视角、wpfanyi.com→ wpcy.com 301等。
属性HTTP code、延迟、SSL 天数、证书、DNS 解析。
数据源:`~/.cache/prod-watch/latest.json` + alerts站点全集从生产机 nginx vhost / 宝塔配置采。
> **实测 2026-07-10 20:42**prod-watch 9 站**全绿**0 alert——`production-servers.md`04-11 快照记的「SSL 大面积过期」**主域名已修**,属历史非现状。**但 prod-watch 覆盖面太窄**cravatar.cn / litepress.cn / wptea.com / feibisi.cn / weixiaoduo.net 等曾过期站点**不在 9 站清单内,现状未知**`wptea.com` 已退役仍在清单。**扩 prod-watch 到完整站点表 = Phase 0 第一改进项**,也是神州最直接的价值兑现。
### 4.3 在线服务
对外 API / 服务端点(机器读的,区别于人读的网站)。
- Cravatar 头像 APIcravatar.com / cn.cravatar.com / hk.cravatar.com / en.cravatar.com公开端点
- wenpai-bridge 翻译桥接feicode-prod
- license-server 许可证服务feicode-prod
- dns.feibisi.com DNS 服务ThinkPHPcn-heyuan
- Matomo 统计 APItongji.feibisi.comweixiaoduo-prod
属性:可用性、延迟、错误率、依赖的云主机。
### 4.4 业务系统
带业务流程的应用(跑在云主机上)。
- **WordPress 多站点**weixiaoduo-prod80+ 子站,含 mall 商城 / modiqi / mudelms / weizhan 微站)
- **Matomo 网站分析**tongji.feibisi.comweixiaoduo-prodDockermatomo-app + matomo-mysql
- **Forgejo / feiCode 平台**feicode-prodforgejo_FeiCode-1 + forgejo-postgres11.0.3
- **Cravatar 头像服务**cravatar-prod含 fonts-vault 容器)
- **WindFonts 字体 CDN**cravatar-prodwindfonts-app 管理面)
- **SkyPanel / MotuCloud**cravatar-prod 托管
- **wenpai-bridge / aimirror / registry×3dockerhub/ghcr/codeberg 镜像代理)**feicode-prod
- **Mautic 营销自动化**feicode-prod 容器 `mautic-Modiqi-1` **已停 4 个月**,待确认是否重启或清理
- **Weblate**feicode-prod 容器 **已停 4 个月**
属性版本、依赖PHP/DB/Redis、健康、最近错误、关联云主机、容器状态。
**高价值信号**:业务系统的「业务红」(下单失败、同步卡住、登录异常、容器频繁重启)比「主机 ping 通」更接近真实业务 SLA——神州最该亮的就是这类。
### 4.5 CDN & Cloudflare
接入层。**CF 运维中心在 modiqi**`~/.config/cloudflare/` + `~/secrets/cloudflare.enc.yaml` sops+age 加密 + `~/docs/cloudflare-optimization.md`)。
实测 NS2026-07-10 dig
| 用法 | 域名 / 项 |
|---|---|
| **CF DNS**NS=cloudflare | `admincdn.com``wenpai.net` |
| **CF Workers**modiqi 部署) | `go.wpcy.net`(短链 url-shortener`domain-check``domains` |
| **CF 证书** | 部分站点wpcommunity/wenfeng 等,范围待确认) |
| **阿里云 DNS**(不走 CF | weixiaoduo.com / cravatar.com / feicode.com / modiqi.com / windfonts.com / motucloud.com / wptea.com / wpcy.com / wenpai.cn / feibisi.com / feibisi.net / skypanel.com / feimail.comhichina/alidns |
| **自建 CDN 资源** | admincdn.com公共资源cravatar-prod 托管、windfonts.com字体 CDN |
CF API token`modiqi:~/secrets/cloudflare.enc.yaml`sops+age 加密,需解密读)。
属性zone 健康、Workers 调用、SSL 状态、缓存态、流量/带宽。
**特殊**CF purge cache / Workers 部署是最可能需要「低风险运营」操作的一类——见 §7。
### 4.6 调度(定时任务)
**feicode-prod 已知 cron**(来自 `production-servers.md`
| 周期 | 任务 |
|---|---|
| `0 2 * * *` | Forgejo PostgreSQL 备份 |
| `0 3 * * *` | wenpai-bridge DB 备份 |
| `0 */6 * * *` | Renovate Bot |
| `0 5 * * *` | actions-mirror-sync |
| `*/5 * * *` | webhook 监控 |
| `* * * * *` | forgejo-pages auto-install-hooks |
**Mac 侧**`prod-watch.sh` 本身cron `*/5`)。
**其余机待登机探测**`systemctl list-timers` + `crontab -l` + wp-cron + 业务级任务(备份/同步/报表/清理。NAS 备份拉取每天 03:00devops `backup-prod-to-nas.sh`)。
属性:上次跑、下次跑、耗时、成败、卡住/漏跑。
**痛点**:定时任务最容易「静默死」——跑挂了没人知道、卡住不报、漏跑累积。神州「烽火」很大一块来自这。
### 4.7 外部依赖
第三方 API / 服务。**主力云厂商 = 阿里云**三套账号aliyun-feibisi / aliyun-wenpai / modiqi-aliyun-credssops+age 加密存各机 `~/secrets/`)。
| 类 | 厂商 | 入口 / 凭据 |
|---|---|---|
| **DNS** | 阿里云(万网 hichina/alidns | 阿里云控制台 |
| **邮件** | 阿里云企业邮箱 | `imap.qiye.aliyun.com:993` / `smtp.qiye.aliyun.com:465`14 VM 已部署 IMAP/SMTP 凭据email-client.py |
| **对象存储 / 云服务** | 阿里云OSS 待精确) | `aliyun-*.enc.yaml` |
| **支付** | WooCommerce 商城mall.weixiaoduo.com | 支付宝/微信WP 配置内Phase 2 精确) |
| **代码镜像** | DockerHub / GHCR / Codeberg | feicode-prod 三套 registry 代理 |
| **CDN** | Cloudflare | 见 §4.5token 在 modiqi |
凭据统一管理sops+age 加密 `~/secrets/`cluster-recall [2701])。
属性:可用性、延迟、配额/余额、状态页。Phase 0 只占位Phase 2 精确化各厂商状态页。
### 4.8 明确不进神州
| 对象 | 归属 |
|------|------|
| 16 台 Parallels VM | 神兽 |
| joy-konqi / tux / wapuu / clones | 会话 / 神兽 |
| Board / dispatch | 任务 |
| NATS 总线本身 | 消息 / 集群运维 |
| Mac Studio / NAS / KK-PC / huawei-pc | 硬件 |
| feicode PR / Actions 工作流红 | 代码 |
---
## 5. 导航与页面结构(产品)
### 5.1 顶栏
- **新增一级导航:神州**
- icon 建议:`globe` / `map`(实现时定)
- badge仅神州注意力站点 down、SSL crit、主机 unreachable、任务卡住、业务红**不与神兽 badge 合并公式**
### 5.2 神州内结构
**顶部脉搏摘要**全局注意力红点几处、SSL crit、主机 unreachable、任务卡住、业务红+ **纵向资产分类**(每类一张表/折叠区,监测维度是该类的属性列)。
| # | section id | 标题 | 内容 |
|---|------------|------|------|
| 0 | `shenzhou-pulse` | 脉搏 | 顶部跨类摘要:此刻神州安否?红点几处?不展开细节 |
| 1 | `shenzhou-hosts` | 云主机 | §4.1 台账 + 健康/盘/load 属性 |
| 2 | `shenzhou-sites` | 网站 | §4.2 + HTTP/SSL 属性prod-watch 主源) |
| 3 | `shenzhou-services` | 在线服务 | §4.3 API 端点 |
| 4 | `shenzhou-business` | 业务系统 | §4.4 + 业务红/版本/容器态 |
| 5 | `shenzhou-cdn` | CDN & Cloudflare | §4.5 zone/DNS/缓存 |
| 6 | `shenzhou-jobs` | 调度 | §4.6 定时任务上次/下次/成败 |
| 7 | `shenzhou-edge` | 边缘 | bj/hz/sz/gz/hk-edge5 台,经 devops等公网中继可选或并入云主机 |
| 8 | `shenzhou-alerts` | 烽火 | 跨类告警时间线prod-watch + vmalert + 任务失败 + 业务红 + SSL 到期) |
| 9 | `shenzhou-external` | 外部依赖 | §4.7 第三方状态Phase 2 |
Phase 0 可只做 0+2+8脉搏 + 网站表 + 烽火,纯 prod-watchPhase 1 加 1云主机Phase 2 补 3/4/5/6/9。
### 5.3 文案语气
- 用「疆域 / 脉搏 / 烽火」可点到为止,**主体仍用 云主机/网站/业务系统/CDN/定时任务**,避免过度玩梗影响扫读。
- 页脚固定:
> 神州 · 生产资产世界 · 变更走 devops / 红线上报菲比斯 · 神兽可观测、不擅自动刀
---
## 6. 数据模型
### 6.1 `dashboard.shenzhou`
```text
view: shenzhou
ok: bool # 采集总成是否可用
ts: "..."
summary: {
hosts_total, hosts_up, hosts_down,
sites_total, sites_down, sites_slow,
services_total, services_down,
business_total, business_alert,
ssl_warn, ssl_crit,
jobs_total, jobs_failed, jobs_stuck,
attention_score
}
cloud_hosts: [ { id, role, reachable, load, disk_pct, mem_pct, uptime, expires, runs[], services{}, hint } ]
sites: [ { id, url, http_code, latency_ms, ssl_days, status, checked_at } ]
services: [ { id, endpoint, available, latency_ms, error_rate, host_id } ]
business: [ { id, kind, version, deps{}, healthy, container_status, last_error, host_id } ]
cdn: [ { id, provider, zone, ssl_mode, cache_hit_ratio, rules } ]
jobs: [ { id, name, host_id, last_run, next_run, duration, status } ]
edge: [ ... ]
external: [ { id, kind, available, latency_ms, quota, status_page } ]
alerts: [ { level, source, msg, at } ]
attention: [ { level, kind: host|site|service|business|ssl|cdn|job|edge|external, id, msg } ]
```
`dashboard.forgejo` / `dashboard.vms` 并列;**禁止**把生产资产塞进 `vms`
### 6.2 采集原则
| 原则 | 说明 |
|------|------|
| 只读为主 | Phase 0 无任何写操作;运营档白名单另见 §7 |
| 委托 devops | 生产机采集优先在 devops 跑ansible key 直连Mac 走 ProxyJump 作降级 |
| 优先文件 | Phase 0`prod-watch` 已有 JSON / 告警 + devops `production-servers.md`,少开新 SSH |
| 配置化 | 七类资产列表来自 inventory.ini / yaml非前端写死 |
| 超时降级 | 单机/单端点失败不影响整页;`reachable:false` + error |
| 代理 | 公网探测与 feicode 一样注意 Mac 代理干扰 |
| SSH 去重 | 同一台云主机被代码 tabrunner与神州系统各采时共享会话、badges 不叠加 |
| 权限 | 变更文档写明:神州观察 ≠ 授权 change |
### 6.3 与现有采集的关系
| 现有 | 神州用法 |
|------|----------|
| devops `inventory.ini` + `production-servers.md` | **清单真相源**(标准化生产资产 + 规格/SSL/cron 详情,需定期现采刷新) |
| `prod-watch.sh` | 「网站」格主源9 主域名,全集待扩) |
| `collect_ci_nodes`feicode-prod runner | **留在代码**;云主机格另采系统指标 |
| `collect_physical_hosts` | 家用物理机 → 硬件;**不**改名塞神州 |
| `collect_infra` / monitoring | 集群侧 → 运维/集群 |
| vmalert 生产规则 | Phase 2 只读摘要进烽火 |
| Cloudflare API | **新采**zone/DNS/缓存/SSLPhase 1待 token |
| 定时任务 | **新采**:各生产机 `systemctl list-timers` + `crontab -l` + wp-cronPhase 1feicode-prod 已知 6 条) |
| 业务系统 | **新采**容器态docker/podman ps+ health endpoint + 版本探测Phase 2 |
---
## 7. 权限与红线(铁律)
操作面分三档:
| 档 | 范围 | Phase | 授权 |
|----|------|-------|------|
| **只读观察** | 看所有资产态势、深链外部状态页 | Phase 0 默认 | 无需授权 |
| **低风险运营** | Cloudflare purge cache、查日志、重跑 cron逐项白名单 | Phase 1+ | devops 预批 + 独立 audit |
| **变更** | 重启服务、改配置、部署、批量生产变更 | **永不进 joy** | devops + 菲比斯红线 |
| 动作 | 档 |
|------|------|
| 看云主机 / 网站 / 业务系统 / CDN / 任务 / SSL | 只读 ✅ |
| 深链 feicode / Cloudflare dashboard / 外部状态页 | 只读 ✅ |
| 神兽根据神州红点发 Board observe 任务 | ✅ 鼓励(遨游 = 感知后协调,非直连生产 shell |
| Cloudflare purge cache、查日志、重跑 cron | 低风险运营(白名单) |
| 在 joy 点「重启 php-fpm / reload nginx / 部署」 | ❌ 变更,走红线 |
| 批量生产变更 | ❌ 非 joy 职责devops + 菲比斯红线 |
上报链不变:神兽 → 龙奇 → 红线 → 菲比斯。
---
## 8. 分阶段落地
### Phase 0 — 立国(低风险)
- [x] 顶栏 **神州** tab + 七类骨架2026-07-10 UI2026-07-11 Phase1 探针)
- [x] `collect_shenzhou()` 读 prod-watch `latest.json` + alerts → 填「网站」格 + 顶部脉搏 + 烽火2026-07-10 落地,`src/joy/dashboard/shenzhou.py`66/66 测试过)
- [x] ~~读 production-servers.md 做 SSL 快照~~ → 实测 04-11 快照的过期已修复§4.2),改用 prod-watch 实时 SSL**扩清单**才是真盲区
- [x] badge 独立(含 hosts/services文档本文
- [x] **不** 新 SSH 风暴Phase 0 纯读 prod-watch 缓存 + 配置台账)
### Phase 1 — 开疆
- [x] 「云主机」格:标准化生产资产 SSH 探针,**委托 devops 并发**(缓存 120s2026-07-11 tux
- [ ] 客户机按活跃度筛选纳入(常用维护的几个)
- [ ] Cloudflare API 接入 →「CDN & Cloudflare」格
- [ ] 「定时任务」格systemctl list-timers + crontab + wp-cronfeicode-prod 6 条打底)
- [ ] 低风险运营白名单purge cache / 查日志 / 重跑 cron逐项 audit
- [ ] 站点 × 主机弱关联(域名 → 云主机映射,从 nginx vhost / 宝塔采)
- [ ] 清理 prod-watch 里已退役的 `wptea.com`
### Phase 2 — 入世
- [ ] 「业务系统」格容器态docker/podman ps+ health endpoint + 版本(业务红 > 主机 ping揪出 Mautic/Weblate 长期停止这类)
- [x] 「在线服务」格:公网 HTTPS 轻探(内部端点 skip2026-07-11
- [ ] 「在线服务」格:更细延迟/错误率
- [ ] 「外部依赖」格:第三方状态页
- [ ] vmalert 生产告警只读摘要进烽火
- [ ] 跨类关联zombie 漏磁盘:代码 tab 的 zombie × 神州的盘满 → 同一病根联动)
- [ ] (可选)顶栏视觉「飞轮 | 工程 | 神州」分组,仍单 SPA
### 非目标(长期)
- 第二套独立 `prod.joy` 站点(除非单 SPA 证明不够)
- 神州内嵌第二 Forgejo
- 在面板上完成生产发布流水线
---
## 9. 与其它 tab 的改名建议(非强制同步做)
| 现状 | 建议 | 说明 |
|------|------|------|
| 运维 | **集群** | 强调内场基建,减少与神州撞车 |
| 硬件 | 保持 | 家用/宿主物理层 |
| 代码 | 保持 | 工程区 |
| 神兽 | 保持 | 内场主角 |
改名可随 Phase 0 或随后 PR**不阻塞神州 tab 先上**。
---
## 10. 实现触点(供编码时索引)
| 层 | 路径 / 约定 |
|----|-------------|
| 导航 | `src/joy/web/app.js``TABS``{ id: 'shenzhou', label: '神州', ... }` |
| UI | `src/joy/web/js/tabs/shenzhou.js`(新,七类折叠区) |
| 采集 | `src/joy/dashboard/shenzhou.py``collect_shenzhou` in package生产侧采集委托 devops |
| schema | `dashboard/schema.py` chunk 名 `shenzhou`(七子段) |
| 配置 | `configs/shenzhou.example.yml`cloud_hosts / sites / services / business / cdn / jobs / external 七段cloud_hosts 从 inventory.ini 生成) |
| Cloudflare | `~/.config/joy/cloudflare.yml`CF API token + zone 白名单) |
| 缓存 | `/tmp/joy-dashboard.json``shenzhou` 键 |
| 真相源 | devops `~/ansible/inventory.ini` + `~/docs/devops/production-servers.md` |
| 交叉文档 | 本文;`joy-forgejo-observe.md`代码≠神州linuxjoy `prod-watch.sh` |
---
## 11. 验收标准Phase 0
1. 顶栏可见 **神州**,默认不必进神兽才能看到生产红点。
2. `GET /api/dashboard` JSON 含 `shenzhou.summary` + `sites`(或明确 `_error`)。
3. 人为制造或回放 prod-watch 告警时,神州 badge ≥ 1**神兽 badge 公式不变**。
4. 文档与 UI 文案主名均为「神州」,无「线上」作导航名。
5. 七类骨架在 UI 占位可见(哪怕只有「网站」格有数据,其余折叠区标 "Phase 1+")。
6. 无任何「一键重启生产」类控件;低风险运营档 Phase 0 不开。
---
## 12. 决议记录
| 项 | 决议 |
|----|------|
| 是否单独导航 | **是** — 一级 tab「神州」 |
| 是否塞进神兽 | **否** |
| 是否长期挂在运维子页 | **否**(最多过渡,不作为终态) |
| 主名 | **神州**(不用「线上」) |
| 骨架 | **资产台账(纵切七类)**,监测维度降为属性——**不是** prod-watch 监测仪表盘(横切) |
| 清单真相源 | devops `inventory.ini` + `production-servers.md`(标准化资产);客户机 inventory 外、按需筛 |
| 采集架构 | **委托 devops**ansible key 直连优先Mac ProxyJump 降级 |
| 操作面 | 只读(默认)/ 低风险运营(白名单)/ 变更(走红线)三档 |
| 与代码 tab | **关注点归属,不是机器归属**feicode-prod 是云主机层一台,非特例 |
| 隐喻 | 神兽守内场,可观神州、遨游天下,不在此擅自动刀 |
---
## 13. 相关文档
- 飞轮与命名:`linuxjoy/docs/architecture/company-flywheel.md`
- 代码态势:[`joy-forgejo-observe.md`](./joy-forgejo-observe.md)
- **生产资产真相源**`devops:~/ansible/inventory.ini` + `devops:~/docs/devops/production-servers.md`
- 生产站点脚本:`linuxjoy/scripts/cluster/prod-watch.sh`
- 生产 SSH`linuxjoy/docs/ai-context/project-structure.md`
- joy 面板架构:[`../joy-panel-cli-architecture-plan.md`](../joy-panel-cli-architecture-plan.md)
---
*本文整理自 2026-07-10 会话:推送 joy-cli 后,讨论生产未接入 joy web、不宜与神兽混用菲比斯定名「神州」。同日范围校正为「生产资产台账」七类骨架§4 清单据 devops 权威源inventory.ini + production-servers.md落实——纠正 wptea-prod 退役、wenpai-org 规范名、gz-1p 实存、admincdn 非独立机、客户机非标准化等;发现 SSL 大面积过期为首批烽火素材。标注「待补」处Cloudflare / 客户机角色 / 关键定时任务 / 外部依赖厂商)需进一步确认。*