TowerOpenWrt 配置工作台 v2026.11.05-r3
GitHub ↗

开发与命令

Tower 的后端是一个 Go 程序,LuCI 前端通过 rpcd 调它的子命令。文档站本身也用同一套构建方式,见文末。

目录结构

路径作用
tower/Go 后端:解析、规则、生成、本机订阅服务
tower/cmd/tower/入口:不带子命令是常驻服务,带子命令是 CLI
tower/internal/api / generator / parser / rule / rules / service / store / model
luci-app-tower/LuCI 界面与 rpcd 权限
docs/site/本文件站:内容 + 构建脚本
scripts/install.sh一键安装脚本

构建与测试

cd tower
go test ./...
go vet ./...
go build ./cmd/tower

改 LuCI 页面不需要编译,把文件放到设备的 /www/luci-static/ 下就能验;改后端要重新编译 tower 包。

命令行

后端自身带 CLI,LuCI 调的就是这些:

子命令用途
subscriptions / refresh列出订阅 / 刷新订阅
nodes / add / remove列出节点 / 增删节点或订阅
update_node / remove_node编辑、删除单个自有节点
import导入规则方案
schemes / scheme / add_scheme列出方案 / 查看 / 新增
refresh_scheme / rename_scheme / remove_scheme刷新缓存 / 改名 / 删除方案
preflight_export导出前预检:目标、协议、规则是否兼容
export_begin / export_read / export_discard大配置分段读取,避免一次性占内存
export一次性导出
links输出纯节点链接
share_create / share_revoke生成本机订阅地址 / 吊销
capabilities输出各目标客户端的协议与规则支持矩阵

数据目录默认 /etc/tower,服务端口默认 127.0.0.1:7443,都能用 -data / -listen 覆盖。

维护这个文档站

内容在 docs/site/content/,每页只写正文片段,标题外壳和导航由构建脚本统一套上。

python3 docs/site/build.py            # 生成到 .build/docs-site
python3 docs/site/build.py --check    # 只自检:锚点重复、站内死链、导航漏页
python3 -m http.server 4173 --directory .build/docs-site

新增一页要做三件事:在 docs/site/content/ 加 HTML、在 docs/site/site.json 的导航里登记、所有 h2/h3 都带 id。漏了任何一项,--check 会报错。

推送后由 .github/workflows/docs.yml 校验并发布到 GitHub Pages。