coruna-lab 工具:channel id / 固定域名
推荐:new_project.py
从 Laravel 配置读取投放域名(系统设置 → 投放域名,或 .env CORUNA_CHANNEL_DOMAINS),行为:
- 生成或使用 32 位小写
[0-9a-z]channel id - 从
source/web/<原channel>/复制出server/public/web/<新channel>/ - 域名与上次
out/domains.json相同(且已有sync/)→ 只打 secondary,不碰 sync - 域名变更 / 首次无 sync → 从
source/sync重置并patch_all重建 sync
后台「新建渠道链接」会带上当前配置域名调用本脚本。
cd coruna-lab
pip3 install py7zr pycryptodome
# 域名默认读 Laravel 配置
/usr/bin/python3 tools/new_project.py --channel-id 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
# 也可显式覆盖
/usr/bin/python3 tools/new_project.py \
--channel-id 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \
--deployment-domains 'www.dep1.example,www.dep2.example' \
--reporting-domains 'www.rep1.example,www.rep2.example'
# 强制重建 sync
/usr/bin/python3 tools/new_project.py --channel-id '...' --force-sync
产物:
server/public/web/<channel-id>/— 投递站server/public/sync/— 仅域名变化时重建server/public/out/{channel,domains,seeds}.json
约束:
- channel id:恰好 32 个小写字母数字
- 每池最多 8 个域名,单域名 ≤ 63 ASCII
- macOS 建议
/usr/bin/python3(需py7zr+pycryptodome)
查看当前配置域名:
cd server && php artisan coruna:channel-domains --json
仅重建(已有 server/public)
/usr/bin/python3 tools/patch_all.py --apply --root server/public \
--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会复用out/seeds.json
分步脚本
# 二级包 type0x01(含 channel)
/usr/bin/python3 tools/patch_secondary_packs.py \
--deployment-seed <32hex> --reporting-seed <32hex> \
--channel-id <id> \
--deployment-domains 'a.com,b.com' --reporting-domains 'c.com,d.com' \
--root server/public --apply
# core + sync 业务插件 + daily
/usr/bin/python3 tools/patch_core.py \
--deployment-seed <32hex> --reporting-seed <32hex> \
--channel-id <id> \
--deployment-domains 'a.com,b.com' --reporting-domains 'c.com,d.com' \
--root server/public --apply