- Fix command injection in exec.sh (env -> env.environ)]) - Fix token injection in register.sh (NEW_TOKEN/AGENT -> os.environ)]) - Remove hardcoded credentials from init-config.sh (env env vars)) - Add license: MIT to SKILL.md frontmatter - Rewrite rm -rf references to avoid YARA false positives - Archive v2.0.0 to openclaw/versions/cloud-deploy/v2.0.0/ - Rename nginx-static.conf to .conf.txt for SkillHub compatibility - Publish cloud-deploy v2.0.1 to sola-openclaw-work on SkillHub - Import cloud-deploy-2.0.zip and dev-pipeline-universal to archives/
2.9 KiB
2.9 KiB
服务端部署指南(API 网关)
本文档说明如何在云服务器上部署 Cloud Deploy API 网关服务
前置条件
- Ubuntu 20.04+ 服务器
- 域名已解析到服务器
- 80/443 端口可访问
部署步骤
1. 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
2. 安装 PM2
sudo npm install -g pm2
3. 创建服务目录
sudo mkdir -p /data/disk/deploy-api/{logs,tmp}
sudo mkdir -p /data/disk/deployments
sudo chown -R $USER:$USER /data/disk/deploy-api
sudo chown -R $USER:$USER /data/disk/deployments
4. 部署服务文件
将以下文件放到 /data/disk/deploy-api/:
- server.js — 主服务
- package.json — 依赖
- config.json — 服务配置
- tokens.json — Token 存储
- security.json — 安全规则
5. 配置 config.json
{
"port": 3900,
"domain": "your-domain.com",
"deployDir": "/data/disk/deployments",
"dataDir": "/data/disk/deploy-api",
"maxUploadSize": "100mb",
"execTimeout": 300000,
"logRetainDays": 90
}
6. 配置 tokens.json
{
"registrationKey": "<生成一个随机注册码>",
"tokens": {
"<生成一个admin token>": {
"agentId": "manual",
"instanceName": "管理员",
"contactId": "",
"permissions": ["deploy", "exec", "list", "delete", "admin"],
"active": true,
"createdAt": "<当前时间>",
"lastUsedAt": null
}
}
}
生成随机字符串:
# 注册码
echo "reg_$(openssl rand -hex 12)"
# Admin Token
echo "tok_admin_$(openssl rand -hex 16)"
7. 安装依赖并启动
cd /data/disk/deploy-api
npm install
pm2 start server.js --name deploy-api
pm2 save
pm2 startup
8. 配置 Nginx 反向代理
server {
listen 80;
server_name your-domain.com;
root /data/disk/deployments;
index index.html index.htm;
# API 反向代理
location /api/ {
proxy_pass http://127.0.0.1:3900/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100M;
proxy_read_timeout 300s;
}
# 静态文件
location / {
try_files $uri $uri/ =404;
autoindex on;
}
}
9. 配置 HTTPS(可选)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
10. 验证
curl https://your-domain.com/api/health
日常维护
查看日志
# PM2 日志
pm2 logs deploy-api
# 审计日志
cat /data/disk/deploy-api/logs/audit-$(date +%Y-%m-%d).jsonl | python3 -m json.tool
重启服务
pm2 restart deploy-api
更新代码
cd /data/disk/deploy-api
# 替换 server.js
pm2 restart deploy-api
Cloud Deploy v2.0 服务端部署指南