回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复: - 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录) - tmp/(32.4 M,按接续棒命名的过程临时区) - .workbuddy/tmp/(39.5 M) - 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物) - tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留 入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与 接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、 .workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。 排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、 打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
44 lines
3.9 KiB
Plaintext
44 lines
3.9 KiB
Plaintext
# 覆盖网络 · 序④(443/TCP 兜底)· 2026-09-17 建立 / 序⑥(2026-09-17)追加**第二中继**
|
||
# / 2026-09-19 域名迁移(alotbuy.com → ai1net.com)改主入口
|
||
#
|
||
# 1) 入口列表的唯一载体 = DSHS_OVERLAY_BOOTSTRAP_SEEDS(逗号多值;**主入口必须在首位**)。
|
||
# ⛔ 不用 `--url` / `DSHS_RELAY_URL` 表达入口 —— 那两个变量算"env 显式",会**压制整条引导链**
|
||
# (见 net/relay/directory.ts#resolveOverlayRelay ① / main.ts argv 说明),等于把兜底关掉。
|
||
# 改这里一次 ⇒ 签名目录里的 relays[] / bootstrap[] 跟着变 ⇒ 已入网节点下次刷新自动拿到(不重装)。
|
||
#
|
||
# 序⑥ 追加项 = **106 的第二台中继**(L3 跨机真容灾,接力棒 `交接单_最小形态真机批次_20260917` S8)。
|
||
# ⚠️ 顺序语义 = 「主入口首位」(参数表 §5.6 已把这条语义写死并明确"不引入显式优先级键")
|
||
# ⇒ 第二中继**放在末位**,⛔ 不得插到首位。
|
||
#
|
||
# 2) 地址覆盖(L1「去 CF」)= DSHS_OVERLAY_ADDR_OVERRIDES:把**逐字列出**的域名解析钉到指定 IP。
|
||
# 为什么必须有它:兜底子域与主域名同属泛解析(都被 CF 代理)⇒ 不做覆盖的话
|
||
# "多一条入口"并不等于"CF 不可用时还能连",解析层仍会把客户端送回 CF。
|
||
# ⛔ 未配 ⇒ 完全不生效(连补丁都不打);白名单之外一律走原始解析(定向,不是全局劫持)。
|
||
# ⚠️ 106 那条入口用的是**裸 IP 主机名**,不需要覆盖项(它本来就不过 CF)。
|
||
#
|
||
# 🔴 2026-09-19 域名迁移踩坑(**必须留档**):切 `DSHS_BASE_DOMAIN` 到 ai1net.com 时,曾把本条
|
||
# `DSHS_OVERLAY_BOOTSTRAP_SEEDS` **重复**追加进 `/etc/dshs.env`。而 `/etc/dshs.env`
|
||
# (EnvironmentFile)在本单元里**压过** drop-in 的 `Environment=` ⇒ 生效列表被**窄化**成
|
||
# 「ai1net + alotbuy」两条、且两条都落在 47 同一台中继上 ⇒ 丢掉 `106.54.21.172` 这条
|
||
# 第二中继 ⇒ Manager 不再对 106 建拨号会话 ⇒ 归属在 `w-106` 的用户实例子域直接
|
||
# 500 `host "w-106" 声明 via=relay 但解析不出落点:拒绝回落到 endpoint`。
|
||
# ⇒ 已从 `/etc/dshs.env` **删除**该重复键(回到"唯一载体"纪律),并把主入口改到新域。
|
||
# ⚠️ 教训:本列表**只在本文件里改**;`/etc/dshs.env` 里出现同名字段 = 会静默压掉这里。
|
||
#
|
||
# 现行列表(5 条 · 顺序语义 = 主入口首位 / 第二中继末位):
|
||
# ① https://ai1net.com/dshs-relay 主入口(**新服务域名**,2026-09-19 起)
|
||
# ② https://alotbuy.com/dshs-relay 旧域(过渡期保留;旧域仍在线,是一条独立入口)
|
||
# ③ https://relay-direct.ai1net.com/dshs-relay 443 兜底(新域对位,解析钉 IP 去 CF)
|
||
# ④ https://relay-direct.alotbuy.com/dshs-relay 443 兜底(旧域)
|
||
# ⑤ https://106.54.21.172/dshs-relay 第二中继(L3 跨机真容灾 · 裸 IP,不过 CF)
|
||
#
|
||
# 回滚(单步):删掉本文件 → `systemctl daemon-reload` → `systemctl restart dshs`
|
||
# ⚠️ 回滚时主入口项必须保留(本文件整体删除即回到"只有内置常量种子"的今天形态)。
|
||
# 只回滚域名迁移那一步:把 ①②③ 三条按旧域顺序改回
|
||
# `https://alotbuy.com/dshs-relay,https://relay-direct.alotbuy.com/dshs-relay,https://106.54.21.172/dshs-relay`
|
||
# 并同步把 DSHS_BASE_DOMAIN / DSHS_COOKIE_DOMAIN 改回 alotbuy.com。
|
||
# ⛔ 无论如何都不要只"删 ⑤" —— 见上方 2026-09-19 踩坑。
|
||
[Service]
|
||
Environment="DSHS_OVERLAY_BOOTSTRAP_SEEDS=https://ai1net.com/dshs-relay,https://alotbuy.com/dshs-relay,https://relay-direct.ai1net.com/dshs-relay,https://relay-direct.alotbuy.com/dshs-relay,https://106.54.21.172/dshs-relay"
|
||
Environment="DSHS_OVERLAY_ADDR_OVERRIDES=relay-direct.ai1net.com=47.77.182.89,relay-direct.alotbuy.com=47.77.182.89"
|