Files
proxy-station/.claude/skills/edge-node-multi-protocol/templates/README.md
YANG JIANKUAN 5326c572a2 feat: 合并边缘节点运维并完善 Surge 配置安全
迁入通用节点部署工具、离线交付页生成器和共用技能,隔离真实配置与交付产物。统一 Codex 与 Claude Code 开发约定,补充节点迁移与运维文档。

完善 FINAL、策略组引用、输入校验、Surge 字段编码与 AI DNS 例外保护,增加隔离测试和订阅验证工具。

验证:全量类型检查、44 项单测、前端构建、脚本语法、技能入口与凭据隔离检查均通过。
2026-10-03 23:19:59 +08:00

3.4 KiB

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

  1. Run scripts/14-generate-links-and-qr.py first — it writes vmess-direct.link, vmess-warp.link, trojan-direct.link, trojan-warp.link, the matching -qr.png files, and ss-direct.link / ss-warp.link with their QR codes plus ss-direct-singbox.json / ss-warp-singbox.json into an output directory. Put the doc copies in the same directory so the ![...](foo-qr.png) image references in 02-node-info-template.md resolve.
  2. Copy the three *-template.md files into that same output directory (drop the -template suffix if you like, e.g. 01-handover.md), and replace every {{TOKEN}} below with the real value from config.env (or the node's live state, for things like AAPANEL_PORT which the installer randomizes — read it from /www/server/panel/data/port.pl on the box).
  3. For {{VMESS_DIRECT_LINK}} / {{VMESS_WARP_LINK}} / {{TROJAN_DIRECT_LINK}} / {{TROJAN_WARP_LINK}}, paste the contents of the matching .link file. For {{SS_DIRECT_SINGBOX_JSON}} / {{SS_WARP_SINGBOX_JSON}}, paste the matching .json file'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.