feat: Go agent source (stdlib-only rewrite of agent.js) + parity/install docs; binaries ship as release assets
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Go Agent 安装/更新流程(自 v0.6.8 起默认)
|
||||
|
||||
Agent 已从 Node.js(`agent/agent.js`)切换为 Go 静态二进制
|
||||
(`agent-go/`,约 6MB,实测 RSS 约 12MB,节点机不再需要安装 Node.js)。
|
||||
协议、环境变量、状态文件格式与 Node 版完全一致(见 `PARITY.md`),
|
||||
可直接接管已有节点的状态。
|
||||
|
||||
## 新装(scripts/agent-install.sh)
|
||||
|
||||
- 默认从 GitHub Release 下载二进制:
|
||||
`https://github.com/aaaamoooo/NexusGate/releases/download/agent-v0.6.8/nexusgate-agent-linux-<arch>`
|
||||
(`<arch>` 由 `uname -m` 决定:x86_64→amd64,aarch64→arm64)
|
||||
- 安装到 `/opt/nexusgate-agent/nexusgate-agent`(0755)。
|
||||
- 服务名仍为 `nexusgate-agent`:
|
||||
- systemd:`systemd/nexusgate-agent.service`,`EnvironmentFile=/etc/nexusgate/agent.env`,
|
||||
`ExecStart=/opt/nexusgate-agent/nexusgate-agent`,`Restart=always`。
|
||||
- OpenRC:`openrc/nexusgate-agent`,`command` 指向同一二进制,
|
||||
脚本内手动 source `/etc/nexusgate/agent.env`(OpenRC 不读 EnvironmentFile)。
|
||||
- 其余流程与旧版一致:写 `agent.env`、注册、安装 sing-box、logrotate、心跳校验。
|
||||
- 环境变量:`NG_AGENT_RELEASE` 可覆盖 Release tag;`NG_LOCAL_SRC` 指向本地
|
||||
仓库时从 `agent-go/` 取已构建的二进制(离线/调试用)。
|
||||
|
||||
## 更新(scripts/agent-update.sh / ng-agent update)
|
||||
|
||||
脚本按已安装程序自动判断实现:
|
||||
|
||||
- 存在 `/opt/nexusgate-agent/nexusgate-agent` → Go 路径:先用当前二进制
|
||||
`flush-usage` 落盘流量计数,再下载同一 Release 资产替换二进制、
|
||||
刷新服务文件并重启,最后校验心跳。
|
||||
- 只有 `agent.js` → Node 路径:保持旧流程(下载 agent.js/run.sh 并
|
||||
`node --check`);刷新服务文件时会把 ExecStart/command 改回经
|
||||
`run.sh` 启动。
|
||||
|
||||
## 回退到 Node Agent
|
||||
|
||||
- 新装时回退:`NG_AGENT_IMPL=node bash agent-install.sh ...`(会安装
|
||||
nodejs 包、部署 `agent/agent.js` + `agent/run.sh`,服务经 run.sh 启动)。
|
||||
- 已装 Go 的节点回退:同样用 `NG_AGENT_IMPL=node` 重跑安装脚本,
|
||||
它会删除 Go 二进制并部署 Node 版(注册信息会重新生成,需用新 token)。
|
||||
|
||||
## 发布清单(Release: agent-v0.6.8)
|
||||
|
||||
需上传到 tag `agent-v0.6.8` 的资产(文件名必须完全一致):
|
||||
|
||||
- `nexusgate-agent-linux-amd64`
|
||||
- `nexusgate-agent-linux-arm64`
|
||||
Reference in New Issue
Block a user