迁入通用节点部署工具、离线交付页生成器和共用技能,隔离真实配置与交付产物。统一 Codex 与 Claude Code 开发约定,补充节点迁移与运维文档。 完善 FINAL、策略组引用、输入校验、Surge 字段编码与 AI DNS 例外保护,增加隔离测试和订阅验证工具。 验证:全量类型检查、44 项单测、前端构建、脚本语法、技能入口与凭据隔离检查均通过。
Documentation templates
Three markdown templates to fill in with a real node's values after deployment, plus
landing.html (the public landing-page cover, used by 09b-default-444.sh).
01-handover-template.md— service inventory: what's running, how to log in, what each thing does.02-node-info-template.md— client-facing: share links + QR codes for all 6 nodes, manual params as fallback.03-ops-guide-template.md— architecture + standard workflow + the version-compat pitfalls + day-2 ops.
How to fill them in
- Run
scripts/14-generate-links-and-qr.pyfirst — it writesvmess-direct.link,vmess-warp.link,trojan-direct.link,trojan-warp.link, the matching-qr.pngfiles, andss-direct.link/ss-warp.linkwith their QR codes plusss-direct-singbox.json/ss-warp-singbox.jsoninto an output directory. Put the doc copies in the same directory so theimage references in02-node-info-template.mdresolve. - Copy the three
*-template.mdfiles into that same output directory (drop the-templatesuffix if you like, e.g.01-handover.md), and replace every{{TOKEN}}below with the real value fromconfig.env(or the node's live state, for things likeAAPANEL_PORTwhich the installer randomizes — read it from/www/server/panel/data/port.plon the box). - For
{{VMESS_DIRECT_LINK}}/{{VMESS_WARP_LINK}}/{{TROJAN_DIRECT_LINK}}/{{TROJAN_WARP_LINK}}, paste the contents of the matching.linkfile. For{{SS_DIRECT_SINGBOX_JSON}}/{{SS_WARP_SINGBOX_JSON}}, paste the matching.jsonfile's contents inside the fenced code block that's already there.
Token reference
| Token | Source |
|---|---|
{{HOST_LABEL}} |
Whatever short name you use for this node (e.g. an SSH alias or hostname) |
{{SSH_ALIAS}} / {{SSH_USER}} |
Your local SSH config / config.env SSH_USER |
{{SERVER_IP}} / {{SERVER_IPV6}} |
config.env |
{{VPS_PROVIDER_AND_SPECS}} |
Whatever's useful to note (provider, region, vCPU/RAM) |
{{DEPLOY_DATE}} |
The date you ran through the workflow |
{{DOMAIN_ROOT}} / {{SUB_PANEL}} / {{SUB_XUI}} / {{SUB_COVER}} |
config.env |
{{AAPANEL_ENTRANCE}} / {{AAPANEL_USER}} / {{AAPANEL_PASS}} / {{AAPANEL_PORT}} |
config.env + live panel port from the box |
{{XUI_PATH}} / {{XUI_USER}} / {{XUI_PASS}} |
config.env |
{{XUI_UUID}} |
config.env (node-main's VMess credential) |
{{NODE_PASSWORD}} |
config.env (node-main's shared Trojan+Shadowsocks credential) |
{{SS_METHOD}} |
config.env |
{{PORT_VMESS_DIRECT}} / {{PORT_VMESS_WARP}} / {{PORT_TROJAN_DIRECT}} / {{PORT_TROJAN_WARP}} / {{PORT_SS_DIRECT}} / {{PORT_SS_WARP}} |
config.env |
{{WS_PATH_VMESS_DIRECT}} / {{WS_PATH_VMESS_WARP}} / {{WS_PATH_TROJAN_DIRECT}} / {{WS_PATH_TROJAN_WARP}} / {{WS_PATH_SS_DIRECT}} / {{WS_PATH_SS_WARP}} |
config.env |
{{WARP_SOCKS_PORT}} |
config.env (default 40000) |
{{VMESS_DIRECT_LINK}} / {{VMESS_WARP_LINK}} / {{TROJAN_DIRECT_LINK}} / {{TROJAN_WARP_LINK}} |
contents of the matching .link file from step 9 |
{{SS_DIRECT_SINGBOX_JSON}} / {{SS_WARP_SINGBOX_JSON}} |
contents of the matching .json file from step 9 |
Never fill these in with placeholder/example values in a copy that leaves your machine — every
token above except {{HOST_LABEL}}/{{DEPLOY_DATE}}/{{VPS_PROVIDER_AND_SPECS}} is either a
secret or part of your control-plane map.