Go CLI,通过交互式界面安装/管理 mihomo 代理服务,支持多协议(VMess、VLESS、Trojan、Shadowsocks、Hysteria2、TUIC 等)。类似 sing-box-yg 但使用 mihomo 内核。
- Nix Flakes:
nix develop或 direnv 自动进入 devShell - Go toolchain、gopls、golangci-lint、nixfmt 均通过 flake 声明
- 首次进入后运行
go mod tidy
├── cmd/proxy-installer/ # main 入口
├── internal/ # 不对外暴露的包
│ ├── cli/ # 交互式 CLI(promptui / survey / bubbletea)
│ ├── config/ # mihomo 配置生成
│ ├── install/ # 安装/卸载/更新逻辑
│ ├── service/ # 系统服务管理
│ └── proxy/ # 协议实现层
└── pkg/ # 可复用的公共包
go run ./cmd/proxy-installer # 运行
go build -o proxy-installer ./cmd/… # 构建
golangci-lint run ./... # lint
go test ./... # 测试
nix fmt # 格式化 .nix 文件- 交互式 CLI:使用
promptui或survey实现(参考已有 Go CLI 项目风格) - mihomo 管理:支持安装、卸载、更新、查看状态、查看日志
- 协议生成:每种协议在
internal/proxy/下独立一个包,统一实现Proxyinterface - 配置:mihomo 配置(YAML)通过
internal/config/生成,非用户直接编辑 - 服务管理:支持 systemd / openrc 两种 init 系统
- 注释:使用中文(简体)
- 提交信息:遵循 SiiWay Git 提交规范,类型
feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert,提交信息使用英文 - Git 模板:本地提交参考
.gitmessage,使用git config commit.template .gitmessage启用
- 运行
golangci-lint run ./... - 运行
go build ./... - 运行
go test ./...(如果有测试) - 运行
nix fmt