celium.cn 上线工程:现状、计划与接续说明
这份文档是给"下一次继续工作"用的。线上代码为准——文档可能滞后于线上。 参考实现(权威)在 ~/400ee,线上部署在 ali-245m / home-ubuntu / box-bj。
1. 参考实现:400ee 的既有流程
~/400ee 是 400ee.xiaohuaerai.com 的仓库,deploy/ 目录就是整套流程:
| 文件 | 作用 |
|---|---|
public/p2p-loader.js | 浏览器加载器:按 P2P → box(IPv6/443/8443) → cache → 源站 的顺序取静态资源,并把每条路径的成败与耗时上报 |
deploy/peer.js | home 上的 P2P 服务(WebRTC 信令),带来源 host 白名单 |
deploy/report.js | 多租户上报收集 + /p2p-report/ 看板;按 Host 分域统计,按 loader 版本分组 |
deploy/ali-nginx.conf | ali-245m 公网入口:TLS、/p2p-signal/→home:9001、/p2p-report/→home:9002、/api/→home:8080、静态兜底、/p2p-loader.js 本地 |
deploy/box-nginx.conf | box 中继:IPv4/IPv6 的 443 与 8443,反代到 home:8080,自带 CORS |
deploy/home-nginx.conf | home 上的 OpenResty 源站(Tailscale 8080) |
deploy/400ee-shell.lua | 五分钟有效的 P2P token + ali 兜底选择 |
deploy/dns-upsert-certbot.py | 用 certbot-dns-aliyun 的凭据改 AliDNS 记录(Python 3.5 兼容,给 ali-245m 用) |
线上拓扑(实测确认):
浏览器 ──TLS──> ali-245m (123.56.139.147, OpenResty)
├── / → 静态兜底 (本地 root) 或 Lua shell → home:8080
├── /p2p-signal/ (wss) → home 100.67.224.65:9001
├── /p2p-report/ → home 100.67.224.65:9002
├── /api/ → home 100.67.224.65:8080
└── /p2p-loader.js → 本地静态
浏览器 ──TLS──> box400ee/box6400ee.xiaohuaerai.com:443/8443 → home:8080(中继,分担流量)
home-ubuntu: 源站 Node 8080 · P2P 信令 9001 · 上报收集 9002
report.js 的数据模型(/p2p-report/stats 返回):
{"site":"…","date":"…","total":N,"p2p_ok":N,"p2p_fail_total":N,"p2p_failures":{},
"box_ok":N,"ipv6":N,"cache":N,"www":N,"p2p_rate":"…","offload_rate":"…","p2p_avg_ms":N,
"loader_versions":{…},"loader_results":{…},"box_fail_total":N,"box_failures":{},
"box_fail_versions":{},"box_fail_states":{},"box_route_failures":{},"box_routes":{…},
"nodes":[{"node":"web-<ip>","ip":"…", …同上…}]}
多租户靠三处白名单:report.js 的 ALLOWED_SITES、peer.js 的来源 host 列表、 以及每个域名的 nginx vhost。接 celium.cn 就是在这些地方加一项,加上自己的 vhost、证书和静态站点。
2. celium.cn 的目标形态
celium.cn / www.celium.cn → ali-245m:官网静态站 + /p2p-loader.js + /p2p-signal/ + /p2p-report/
login.celium.cn → 设备授权登录页(celium up 打印的那个链接)
box.celium.cn (待定) → box-bj:静态资源中继(443 + 8443,IPv4/IPv6)
DNS 现状:celium.cn 的 NS 是阿里云(dns13/dns14.hichina.com),目前没有任何 A 记录。 需要在 ali-245m 上用 dns-upsert-certbot.py(沿用 certbot-dns-aliyun 的凭据)添加记录。
3. 计费(参考 tailscale.com 现价,折人民币后 5 折)
| 档位 | Tailscale 现价 | Celium 定价 | 说明 |
|---|---|---|---|
| 个人版 Personal | $0(最多 6 用户) | ¥0 | 用户设备不限,3 个 ACL 组,50 个标签资源 |
| 标准版 Standard | $8/用户/月 | ¥29/用户/月 | 10 个 ACL 组,基础 SSH |
| 高级版 Premium | $18/用户/月 | ¥65/用户/月 | 300 个 ACL 组,高级 SSH,更多临时资源 |
| 定制版 Enterprise | 定制 | 联系我们 | 私有化部署、专属支持 |
换算口径:人民币价 = Tailscale 美元月价 × 汇率 × 0.5,汇率取 7.2 ($8×7.2×0.5≈¥28.8→¥29;$18×7.2×0.5≈¥64.8→¥65)。汇率或 Tailscale 改价时, 只改这一处与站点文案。
4. 工作分解
| # | 工作包 | 状态 |
|---|---|---|
| WP1 | 官网(中文、科技风格、四档计费、favicon) | 进行中 |
| WP2 | P2P 分发 + 分域看板 + nginx/box/证书(对齐 400ee 流程) | 进行中 |
| WP3 | celium up 设备授权登录(https://login.celium.cn/a/xxxx) | 进行中 |
| WP4 | Let's Encrypt 自动签发与续期(DNS-01,阿里云) | 待 WP2 落地后接 |
| WP5 | 部署与验收(先本地测试通过再上线上) | 待前述完成 |
5. 铁律:不碰线上其他服务
- 所有改动先在本地跑通测试(站点构建、report.js 单元/集成测试、nginx
-t校验); - 线上只做新增(新 vhost、白名单加一项),不改动既有站点的路径与配置;
- 改
report.js/peer.js前先备份,重启后用/p2p-report/stats验证三个既有站点仍正常; - nginx 改动先
nginx -t,再 reload(不是 restart),reload 失败立即回滚配置; - 每一步都要有回滚命令,写进部署脚本里。
6. 本地已有的东西
- Celium 组网软件本体:
/Users/yimingwang/deepseek/celium(Go,控制面+账号+引擎,端到端测试全绿) - 站点与部署产物:
/Users/yimingwang/deepseek/celium/site、/Users/yimingwang/deepseek/celium/deploy - 参考实现:
~/400ee(只读参考,不要改) - 服务器凭据:
~/pwd.txt(ali-245m、home-ubuntu、box-bj 等,均在 Tailscale 组网内可达)