# tools:channel id / 固定域名 本项目是 **coruna-lab-web**。构建域名由 CLI / build API 显式传入,不再读取 Laravel。 每次构建都会生成一份完整、互不共享的渠道目录: 1. 生成或使用 **32 位小写 `[0-9a-z]`** channel id 2. 从 source 复制 web、sync 模板 3. 同时重打 secondary、core、sync plugins 和 daily 4. 将首个 daily 请求及 daily 内模块 URL 绑定到当前渠道路径 ```bash cd coruna-lab-web pip3 install -r requirements.txt python3 frontend/tools/new_project.py \ --channel-id 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ --deployment-domains 'www.dep1.example,www.dep2.example' \ --reporting-domains 'www.rep1.example,www.rep2.example' \ --support-template test # test=HUD 进度页;blank=空白页 python3 frontend/tools/new_project.py \ --channel-id 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \ --root '/srv/coruna-artifacts/staging/request-id' \ --force \ --deployment-domains 'www.dep1.example' \ --reporting-domains 'www.rep1.example' \ --support-template blank ``` `support_template`:`test`(默认,source 中带 HUD 的页面)或 `blank`(去掉 HUD,仅保留加载逻辑)。 产物: - 默认:`artifacts/channel//{web,sync,out}/` - 指定 `--root`:`/{web,sync,out}/` - 渠道发布清单:`/manifest.json` - 静态 URL: - `/channel//web/support.html` - `/channel//sync/daily.html` ## 仅重建(已有渠道工作目录) ```bash python3 frontend/tools/patch_all.py --apply --root /srv/coruna-artifacts/channel/ \ --channel-id 'dddddddddddddddddddddddddddddddd' \ --deployment-domains 'www.dep1.example,www.dep2.example' \ --reporting-domains 'www.rep1.example,www.rep2.example' ``` ### Seed 格式 - ASCII,长度 ≤ 32(二进制槽位定长 32) - 推荐正好 32 个十六进制字符 - `new_project` 默认按域名列表稳定派生 seed,也可显式传入 ## 分步脚本 ```bash python3 frontend/tools/patch_secondary_packs.py \ --deployment-seed <32hex> --reporting-seed <32hex> \ --channel-id \ --deployment-domains 'a.com,b.com' --reporting-domains 'c.com,d.com' \ --root /srv/coruna-artifacts/channel/ --apply python3 frontend/tools/patch_core.py \ --deployment-seed <32hex> --reporting-seed <32hex> \ --channel-id \ --root /srv/coruna-artifacts/channel/ --apply ```