智维具身训练平台 - 部署指南
本文档详细说明如何在真实服务器环境中部署智维具身训练平台,使其能够执行真实的 Docker 命令和系统操作。
文档版本:1.0.0 | 最后更新:2026年1月27日
系统要求
在部署智维具身训练平台之前,请确保您的服务器满足以下硬件和软件要求。
硬件要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 8核 | 16核或更高 |
| 内存 | 32GB | 64GB或更高 |
| 存储 | 500GB SSD | 1TB NVMe SSD |
| GPU | NVIDIA RTX 3090 | NVIDIA RTX 4090 / A100 |
| 网络 | 100Mbps | 1Gbps |
软件要求
| 软件 | 版本要求 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS | 推荐使用 Server 版本 |
| Node.js | 18.x 或更高 | 用于运行平台服务 |
| Docker | 24.0 或更高 | 容器运行时 |
| NVIDIA Driver | 535.x 或更高 | GPU 驱动 |
| CUDA | 12.1 或更高 | GPU 计算支持 |
| NVIDIA Container Toolkit | 最新版 | Docker GPU 支持 |
环境准备
按照以下步骤准备服务器环境,包括 Docker、NVIDIA 驱动和 Node.js 的安装。
1. 安装 Docker
bash
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
newgrp docker
# 验证安装
docker --version
docker run hello-world2. 安装 NVIDIA 驱动和 CUDA
bash
# 安装 NVIDIA 驱动
sudo apt install -y nvidia-driver-535
# 重启系统
sudo reboot
# 验证驱动安装
nvidia-smi3. 安装 NVIDIA Container Toolkit
bash
# 添加 NVIDIA 仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装
sudo apt update
sudo apt install -y nvidia-container-toolkit
# 配置 Docker 使用 NVIDIA 运行时
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# 验证 GPU 在 Docker 中可用
docker run --rm --gpus all nvidia/cuda:12.1-base-ubuntu22.04 nvidia-smi4. 安装 Node.js
bash
# 使用 NodeSource 安装 Node.js 20.x
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# 安装 pnpm
npm install -g pnpm
# 验证安装
node --version
pnpm --version安装步骤
完成环境准备后,按照以下步骤安装智维具身训练平台。
1. 获取项目代码
bash
# 创建项目目录
mkdir -p /opt/zhiwei-platform
cd /opt/zhiwei-platform
# 从 Manus 导出代码或克隆仓库
# 方式一:从 Manus 下载并解压
# 方式二:git clone <your-repo-url> .2. 安装依赖
bash
cd /opt/zhiwei-platform
pnpm install3. 配置环境变量
bash
cp .env.example .env
nano .env详细的环境变量配置请参阅「配置说明」章节。
4. 构建项目
bash
pnpm build配置说明
在项目根目录创建 .env 文件,配置以下环境变量以启用真实命令执行模式。
环境变量
bash
# ===== 终端模式配置 =====
# 设置为 'real' 启用真实命令执行,设置为 'simulation' 使用模拟模式
TERMINAL_MODE=real
# 命令执行超时时间(毫秒)
COMMAND_TIMEOUT=30000
# 允许执行的命令前缀(逗号分隔)
# 留空使用默认白名单
ALLOWED_COMMANDS=docker ps,docker images,docker logs,nvidia-smi,df,free,ls,pwd
# ===== 服务器配置 =====
# 服务端口
PORT=3000
# 节点环境
NODE_ENV=production
# ===== 数据库配置(如需要)=====
DATABASE_URL=mysql://user:password@localhost:3306/zhiwei_platform
# ===== 其他配置 =====
# JWT 密钥(用于用户认证)
JWT_SECRET=your-secure-jwt-secret-here命令白名单
平台内置了安全的命令白名单机制。默认允许的命令包括:
| 类别 | 命令 | 说明 |
|---|---|---|
| Docker | docker ps | 查看运行中的容器 |
| Docker | docker images | 查看本地镜像 |
| Docker | docker logs | 查看容器日志 |
| Docker | docker container | 容器管理命令 |
| Docker | docker inspect | 查看容器/镜像详情 |
| Docker | docker stats | 查看容器资源使用 |
| 系统 | nvidia-smi | GPU 状态 |
| 系统 | df | 磁盘使用 |
| 系统 | free | 内存使用 |
| 系统 | ls, pwd, cat | 文件操作 |
| Python | python --version | Python 版本 |
| Python | pip list | 已安装包列表 |
危险命令黑名单
以下命令被永久禁止执行,无法通过配置绕过:rm -rf、sudo、shutdown、reboot、mkfs、命令注入模式(;、&&、|、`)
启动服务
根据您的需求选择合适的启动方式。
开发模式
bash
cd /opt/zhiwei-platform
pnpm dev生产模式
bash
cd /opt/zhiwei-platform
pnpm build
pnpm start使用 PM2 管理进程(推荐)
bash
# 安装 PM2
npm install -g pm2
# 启动服务
pm2 start dist/index.js --name zhiwei-platform
# 设置开机自启
pm2 startup
pm2 save
# 查看日志
pm2 logs zhiwei-platform
# 重启服务
pm2 restart zhiwei-platform使用 Docker Compose
yaml
version: '3.8'
services:
zhiwei-platform:
build: .
ports:
- "3000:3000"
environment:
- TERMINAL_MODE=real
- NODE_ENV=production
- COMMAND_TIMEOUT=30000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]bash
# 启动服务
docker compose up -d安全配置
为确保平台安全运行,请按照以下步骤配置服务器安全设置。
1. 用户权限
bash
# 将用户添加到 docker 组
sudo usermod -aG docker <username>2. 防火墙配置
bash
# 允许平台端口
sudo ufw allow 3000/tcp
# 如果使用反向代理
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp3. Nginx 反向代理(推荐)
nginx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
}bash
# 启用配置
sudo ln -s /etc/nginx/sites-available/zhiwei-platform /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx4. SSL 证书(Let's Encrypt)
bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com故障排除
遇到问题时,请参考以下常见问题及解决方案。
1. Docker 命令无法执行
症状:终端返回 "permission denied" 错误
bash
# 确保用户在 docker 组中
sudo usermod -aG docker $USER
newgrp docker
# 或者检查 docker.sock 权限
sudo chmod 666 /var/run/docker.sock2. GPU 不可用
症状:nvidia-smi 返回错误
bash
# 检查驱动是否加载
lsmod | grep nvidia
# 重新安装驱动
sudo apt install --reinstall nvidia-driver-535
sudo reboot3. 命令执行超时
症状:长时间运行的命令被终止
bash
# 增加超时时间(在 .env 中)
COMMAND_TIMEOUT=60000 # 60秒4. 端口被占用
症状:服务启动失败,提示端口已被使用
bash
# 查找占用端口的进程
sudo lsof -i :3000
# 终止进程或更换端口
kill -9 <PID>
# 或在 .env 中设置 PORT=3001日志查看
bash
# PM2 日志
pm2 logs zhiwei-platform
# Docker Compose 日志
docker compose logs -f
# 系统日志
journalctl -u zhiwei-platform -f健康检查
- 首页:http://your-server:3000/
- API 健康检查:http://your-server:3000/api/trpc/terminal.getMode
遇到问题?
查阅 Chytonic 官方文档