joy-cli/configs/shenzhou.example.yml
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

184 lines
12 KiB
YAML
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.

# configs/shenzhou.example.yml
# ============================================================================
# 神州 tab 配置模板joy web 生产资产世界)
# 文档docs/ops/joy-shenzhou.md
# 生成依据2026-07-10
# - cloud_hosts 据 devops:~/ansible/inventory.ini
# - sites 据 devops:~/docs/devops/production-servers.md + NS 实测
# - cdn/jobs/external 据 modiqi CF 配置 + cluster-recall + production-servers.md
# 规则:裸 IP 不入此文件,用 SSH 别名 / 域名;标 candidate 的为监控盲区候选
# ============================================================================
version: "1.2"
updated: "2026-07-12"
# agent_context 可选:覆盖/追加 joy online 内置卡片(见 dashboard/online_context.py
# CLI: joy online context mall | joy online context --match "订单"
# 派活: scripts/lib/online-hint.sh → clone-send / dispatch-loop
# ── 0. 关键业务路径(对齐 prod-watch SITES + wapuu 品牌表 + 迁移记忆)──
# 数据源见 dashboard/shenzhou.py sources主机/全站是钻取层
# 业务现成工具weixiaoduo mall-dashboard/order-watch · modiqi domain-expiry · prod-query
# 截图ai-team mShotsJOY_MSHOTS_BASE / ~/.config/joy/mshots-base
# screenshot_url_src 可与 url 不同apex→wwwscreenshot: false 关闭预览
# stack: wp | wp-ms | static | cdn | app | dns可省略采集会推断
# slo_ms: 延迟 SLOmoney 路径默认 2500其它 4000
critical_paths:
- { id: mall, name: 薇晓朵商城, biz: 菲比斯·电商, url: "https://mall.weixiaoduo.com/", screenshot_url_src: "https://mall.weixiaoduo.com/", host: weixiaoduo-prod, money: true, stack: wp-ms, slo_ms: 2500 }
- { id: weixiaoduo, name: 薇晓朵主站, biz: 菲比斯·内容, url: "https://weixiaoduo.com/", screenshot_url_src: "https://www.weixiaoduo.com/", host: weixiaoduo-prod, money: true, stack: wp-ms, slo_ms: 2500 }
- { id: modiqi, name: 莫蒂奇, biz: 莫蒂奇·品牌, url: "https://modiqi.com/", host: weixiaoduo-prod, stack: wp }
- { id: cravatar, name: 初认头像, biz: 文派·公共依赖, url: "https://cravatar.com/", host: cravatar-prod, stack: app, note: "头像服务;首页非完整 WP REST" }
- { id: admincdn, name: 萌芽加速, biz: 文派·CDN/WP, url: "https://admincdn.com/", host: feicode-prod, stack: wp }
- { id: windfonts, name: 文风字体, biz: 文派·字体, url: "https://windfonts.com/", host: feicode-prod, stack: wp }
- { id: motucloud, name: 墨图云集, biz: 文派·云, url: "https://motucloud.com/", host: feicode-prod, stack: wp }
- { id: wpcy, name: 文派叶子, biz: 文派, url: "https://wpcy.com/", host: cravatar-prod, stack: wp }
- { id: feicode, name: feiCode, biz: 工程平台, url: "https://feicode.com/", host: feicode-prod, stack: app }
# 文派 SaaS 仅主站(子域不进 critical_paths
- { id: wenpai-org, name: 文派.org, biz: 文派·SaaS, url: "https://wenpai.org/", host: wenpai-org, money: true, stack: wp-ms, slo_ms: 2500 }
# ── 1. 云主机(钻取层 · [production] 4 + [edge] 5 + DNS──
cloud_hosts:
# 生产主站 [production] —— 委托 devops 用 ansible_ed25519 直连
# region/specs/ip 为台账字段(不探),供设备卡展示
# specs 台账(选型/续费见 docs/ops/prod-capacity-tiers.md
- id: weixiaoduo-prod
role: WordPress 业务主站(多站点 80+ 子域,含 mall/matomo/modiqi/mudelms
ssh: weixiaoduo-prod # ProxyJump=devops
panel: baota
container: docker
region: 阿里云·杭州
specs: 16核/30G · 8369B · M-L 收款主站
- id: feicode-prod
role: feiCode 平台Forgejo + act_runner + registry×3 + license + wenpai-bridge + aimirror
ssh: feicode-prod
panel: baota
container: docker
region: 阿里云
specs: 80核/62G · E5-2698v4 · XL 平台
- id: cravatar-prod
role: Cravatar 头像 + 多站点托管
ssh: cravatar-prod
web: openresty # 非宝塔
container: podman
region: 阿里云
specs: 72核/62G · E5-2696v3 · XL 公共
- id: wenpai-org
role: 文派
ssh: wenpai-org # 旧别名 wenpai-prod-b
region: 阿里云
specs: 8核/15G · EPYC · M 业务
# 边缘 [edge]
- { id: bj-1p, role: 北京边缘, ssh: bj-1p, region: 北京, specs: "2核/1.7G · S 边缘" }
- { id: hz-1p, role: 杭州边缘, ssh: hz-1p, region: 杭州, specs: "2核/1.7G · S 边缘" }
- { id: sz-1p, role: 深圳边缘, ssh: sz-1p, region: 深圳, specs: "2核/1.7G · S 边缘" }
- { id: gz-1p, role: 广州边缘, ssh: gz-1p, region: 广州, specs: "2核 · S 边缘" }
- { id: hk-edge, role: 香港边缘, ssh: hk-edge, region: 香港, specs: "2核/3.5G · S 边缘" }
# DNS 节点(不在 [edge],单独用途)
- { id: cn-heyuan, role: "DNS 节点dns.feibisi.com ThinkPHP", ssh: cn-heyuan, region: 河源, specs: "2核/3.5G · S DNS" }
# 退役
- { id: wptea-prod, role: "退役 2026-04-18迁 weixiaoduo-prod", retired: true }
# 客户托管inventory 之外,经 debian 跳,多为一次性,按活跃度筛)
# - { id: aetled, role: 待确认, ssh: "aetled", via: debian }
# - { id: dental-part, role: 待确认, ssh: "dental-part", via: debian }
# - { id: cqxstx, role: 待确认, ssh: "cqxstx", via: debian }
# - { id: yayaka, role: 待确认, ssh: "yayaka", via: debian }
# - { id: tigerflow, role: 待确认, ssh: "tigerflow", via: debian }
# - { id: oa52, role: 待确认, ssh: "oa52", via: debian }
# - { id: jeukh-server, role: 待确认, ssh: "jeukh-server", via: debian }
# - { id: yayaka-new, role: 待确认(疑似 yayaka 迁移中), ssh: "yayaka-new", via: debian }
# ── 2. 网站prod-watch 扩充候选;去重去退役;标 candidate = 监控盲区)──
sites:
# 已在 prod-watch 9 主域wptea.com 待移除)
- { url: weixiaoduo.com, watch: true }
- { url: mall.weixiaoduo.com, watch: true }
- { url: modiqi.com, watch: true }
- { url: windfonts.com, watch: true }
- { url: admincdn.com, watch: true, dns: cloudflare }
- { url: cravatar.com, watch: true }
- { url: motucloud.com, watch: true }
- { url: wpcy.com, watch: true }
- { url: wenpai.org, watch: true, dns: cloudflare, note: "仅主站;子域不单独 watch" }
# wpfanyi.com / 091616.com — 仅 301不 watch
# - { url: wptea.com, watch: true, retired: true } # 已退役,待从 prod-watch 移除
# 盲区候选(曾过期 / 未监控,从 production-servers.md 提取)
- { url: cravatar.cn, watch: candidate, note: 曾过期 }
- { url: litepress.cn, watch: candidate, note: 曾过期 }
- { url: wenpai.cn, watch: candidate }
- { url: wenpai.net, watch: candidate, dns: cloudflare }
- { url: feibisi.com, watch: candidate }
- { url: feibisi.net, watch: candidate }
- { url: skypanel.com, watch: candidate }
- { url: feicode.com, watch: candidate }
- { url: cn.feicode.com, watch: candidate, note: 曾过期 }
- { url: feimail.com, watch: candidate }
- { url: mudelms.com, watch: candidate }
- { url: weixiaoduo.cn, watch: candidate }
- { url: weixiaoduo.net, watch: candidate, note: 曾过期 }
- { url: tongji.feibisi.com, watch: candidate, note: Matomo }
- { url: img.feibisi.com, watch: candidate }
- { url: site.feibisi.com, watch: candidate }
- { url: app.windfonts.com, watch: candidate }
- { url: go.wpcy.net, watch: candidate, note: CF Worker 短链 }
# 完整全集待从各生产机 nginx vhost / 宝塔配置现采补全weixiaoduo-prod 80+ 子域)
# ── 3. 在线服务(对外 API / 服务端点)──
services:
- { id: cravatar-api, endpoint: "https://cravatar.com/avatar/", host: cravatar-prod }
- { id: matomo, endpoint: "https://tongji.feibisi.com/", host: weixiaoduo-prod }
- { id: dns-feibisi, endpoint: "https://dns.feibisi.com/", host: cn-heyuan }
- { id: wenpai-bridge, endpoint: "内部", host: feicode-prod }
- { id: license-server, endpoint: "内部", host: feicode-prod }
# ── 4. 业务系统(带业务流程的应用 + 容器态)──
# health_url 可选container 名用于实测status=stopped-* → lifecycle 停服待决策
business:
- { id: wp-multisite, kind: WordPress, host: weixiaoduo-prod, subs: [mall, modiqi, mudelms, weizhan], health_url: "https://weixiaoduo.com/" }
- { id: matomo-analytics, kind: Matomo, host: weixiaoduo-prod, container: [matomo-app, matomo-mysql], health_url: "https://tongji.feibisi.com/" }
- { id: forgejo, kind: Forgejo, version: "11.0.3", host: feicode-prod, container: [forgejo_FeiCode-1, forgejo-postgres], health_url: "https://feicode.com/" }
- { id: cravatar, kind: Cravatar, host: cravatar-prod, container: [fonts-vault], health_url: "https://cravatar.com/", uptime_name: "Gravatar Proxy" }
- { id: windfonts, kind: WordPress, host: feicode-prod, health_url: "https://windfonts.com/", note: "文风字体 WP 站(非纯 static" }
- { id: admincdn-wp, kind: WordPress, host: feicode-prod, health_url: "https://admincdn.com/" }
- { id: motucloud-wp, kind: WordPress, host: feicode-prod, health_url: "https://motucloud.com/" }
- { id: wpcy-wp, kind: WordPress, host: cravatar-prod, health_url: "https://wpcy.com/" }
- { id: wenpai-saas, kind: WordPress, host: wenpai-org, subs: [api, login, make, developer, learn, profiles, translate], health_url: "https://wenpai.org/", note: "CF zone + wenpai-edge 透传" }
- { id: mautic, kind: Mautic, host: feicode-prod, status: stopped-4m, note: "待确认重启/清理", decision: pending }
- { id: weblate, kind: Weblate, host: feicode-prod, status: stopped-4m, decision: pending }
# ── 5. CDN & Cloudflare运维中心 = modiqi──
cdn:
provider: cloudflare
ops_center: modiqi
token_ref: "modiqi:~/secrets/cloudflare.enc.yaml" # sops+age 加密
dns_zones: [admincdn.com, wenpai.net, wenpai.org, wpcy.net, wpfanyi.com, cyberforums.com] # NS=cloudflare
workers:
- { name: url-shortener, route: go.wpcy.net, desc: 品牌短链 }
- { name: domain-check, route: domains.wpcy.net, desc: 域名检查 }
- { name: wenpai-edge, route: "wenpai.org/* + *.wenpai.org/*", desc: "文派边缘透传+安全头" }
- { name: redirect-proxy, route: "wpfanyi/wpmirror/admincdn091616 不监控)", desc: "退役域统一 301" }
- { name: cravatar-proxy, route: cravatar.com, desc: Cravatar }
- { name: uptimeflare_worker, route: uptime.wpcy.net, desc: Uptime }
self_cdn: [admincdn.com, windfonts.com] # 自建 CDN 资源
# 注:多数主域名 DNS 在阿里云wenpai.org 已切 CF NS2026-07-12
# ── 6. 调度(定时任务)──
jobs:
# feicode-prod 已知(来自 production-servers.md
- { host: feicode-prod, schedule: "0 2 * * *", name: "Forgejo PostgreSQL 备份" }
- { host: feicode-prod, schedule: "0 3 * * *", name: "wenpai-bridge DB 备份" }
- { host: feicode-prod, schedule: "0 */6 * * *", name: "Renovate Bot" }
- { host: feicode-prod, schedule: "0 5 * * *", name: "actions-mirror-sync" }
- { host: feicode-prod, schedule: "*/5 * * * *", name: "webhook 监控" }
- { host: feicode-prod, schedule: "* * * * *", name: "forgejo-pages auto-install-hooks" }
- { host: devops, schedule: "0 3 * * *", name: "backup-prod-to-nas" }
# Mac 侧
- { host: mac, schedule: "*/5 * * * *", name: "prod-watch.sh" }
# 其余生产机待登机现采systemctl list-timers + crontab -l + wp-cron
# ── 7. 外部依赖(主力 = 阿里云全家桶)──
external:
- { kind: DNS, provider: "阿里云(万网)" }
- { kind: 邮件, provider: 阿里云企业邮箱, imap: "imap.qiye.aliyun.com:993", smtp: "smtp.qiye.aliyun.com:465" }
- { kind: 对象存储, provider: "阿里云 OSS待精确", cred: "aliyun-*.enc.yaml" }
- { kind: 支付, provider: "待确认(支付宝/微信)", note: "WooCommerce mall" }
- { kind: 代码镜像, provider: "[DockerHub, GHCR, Codeberg]", host: feicode-prod }
- { kind: CDN, provider: Cloudflare, ref: cdn }