Files
vps-commander/deploy/README.md
T

144 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VPS-Commander 部署与运维指南
本文档介绍 VPS-Commander 的生产环境部署架构、配置规范与运维操作。
---
## 一、 系统架构与端口规划
- **Hub 服务端**:统一监听本地 `127.0.0.1:9521`,不对公网直接暴露端口。
- **反向代理 (Lucky)**:
- 域名:`https://vpstool.kory.kdns.fr`
- 转发目标:`http://127.0.0.1:9521`
- 核心要求:开启 **WebSocket Upgrade** 支持,转发透传所有子路径(`/.well-known/*`、`/oauth/*`、`/mcp/*`、`/api/v1/*`、`/agent/ws`、`/panel/*`)。
- SSL 终止于反代层,反代自动携带 `X-Forwarded-Proto: https` 头以保障 Cookie 的 `Secure` 属性。
- **Agent 客户端**:
- 运行于受控的远程 VPS 机器上。
- 通过公网 WSS 长连接主动回连 Hub:`wss://vpstool.kory.kdns.fr/agent/ws`。
---
## 二、 凭据安全规范(强制要求)
1. **绝对禁止命令行参数传密**:
- 二进制不再支持 `--api-key`、`--cluster-secret`、`--web-password` 命令行参数。
- 彻底杜绝在 `/proc/*/cmdline` 和 `ps aux` 中泄露明文密码。
2. **凭据存储位置与权限**:
- 凭据文件保存在 `/etc/vps-commander/hub.env` 与 `/etc/vps-commander/agent.env`。
- 权限必须严格设置为 `0600`(仅 root 可读写)。
---
## 三、 Hub 服务端部署步骤
### 1. 编译并安装二进制
```bash
cd /root/.openclaw/workspace/vps-commander
make linux-amd64
install -d -m 0750 /opt/vps-commander/data /etc/vps-commander
install -m 0755 bin/vps-commander-hub-linux-amd64 /opt/vps-commander/vps-commander-hub
```
### 2. 配置环境变量文件 (`/etc/vps-commander/hub.env`)
```bash
cat << 'ENV' > /etc/vps-commander/hub.env
VPS_COMMANDER_API_KEY=your_generated_api_key_here
VPS_COMMANDER_CLUSTER_SECRET=your_generated_cluster_secret_here
VPS_COMMANDER_WEB_PASSWORD=your_generated_web_password_here
ENV
chmod 0600 /etc/vps-commander/hub.env
```
### 3. 配置 Systemd 托管 (`/etc/systemd/system/vps-commander-hub.service`)
```ini
[Unit]
Description=VPS-Commander Hub
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/vps-commander
EnvironmentFile=-/etc/vps-commander/hub.env
ExecStart=/opt/vps-commander/vps-commander-hub -addr 127.0.0.1:9521 -db /opt/vps-commander/data/commander.db
Restart=always
RestartSec=3s
KillSignal=SIGTERM
TimeoutStopSec=10s
LimitNOFILE=65536
Environment=GOGC=50
[Install]
WantedBy=multi-user.target
```
### 4. 启动服务
```bash
systemctl daemon-reload
systemctl enable --now vps-commander-hub
systemctl status vps-commander-hub
```
---
## 四、 远程 Agent 节点部署步骤
若要将其他 VPS 纳入受控列表,在该远程 VPS 上执行:
### 1. 安装 Agent 二进制
将编译生成的 `bin/vps-commander-agent-linux-amd64`(或 ARM64 版本)上传至目标 VPS 的 `/opt/vps-commander/vps-commander-agent` 并赋予执行权限 `chmod +x`。
### 2. 配置 Agent 环境变量 (`/etc/vps-commander/agent.env`)
```bash
install -d -m 0750 /etc/vps-commander
cat << 'ENV' > /etc/vps-commander/agent.env
VPS_COMMANDER_HUB_WS_URL=wss://vpstool.kory.kdns.fr/agent/ws
VPS_COMMANDER_AGENT_NAME=vps-node-01
VPS_COMMANDER_CLUSTER_SECRET=与Hub相同的CLUSTER_SECRET
ENV
chmod 0600 /etc/vps-commander/agent.env
```
### 3. 配置 Systemd 托管 (`/etc/systemd/system/vps-commander-agent.service`)
```ini
[Unit]
Description=VPS-Commander Agent
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/vps-commander
EnvironmentFile=-/etc/vps-commander/agent.env
ExecStart=/opt/vps-commander/vps-commander-agent -hub ${VPS_COMMANDER_HUB_WS_URL} -name ${VPS_COMMANDER_AGENT_NAME}
Restart=always
RestartSec=3s
KillSignal=SIGTERM
TimeoutStopSec=10s
LimitNOFILE=65536
Environment=GOGC=50
[Install]
WantedBy=multi-user.target
```
### 4. 启动并连入集群
```bash
systemctl daemon-reload
systemctl enable --now vps-commander-agent
```
启动后,Hub 控制面板与 `/api/v1/devices` 接口将立即展示该节点并标记为 `online`。
---
## 五、 控制面板与 Actions 使用
1. **管理后台地址**:`https://vpstool.kory.kdns.fr/panel/login`
2. **后台功能**:
- **设备看板**:查看所有在线/离线节点、系统架构与延迟。
- **快速控制台**:直接在网页端向指定节点执行 Shell 指令。
- **审计日志**:实时监控 GPT 与用户的全部执行调用、命令详情与耗时。
- **Actions 向导**:一键复制 Schema 地址、System Prompt 与 API 密钥。