# t480 测试服务器容器化部署方案

## 环境摘要

| 项目 | 值 |
|---|---|
| 主机 | `sola-t480` (Ubuntu 24.04, kernel 6.17) |
| IP | `192.168.8.145` |
| Docker | 29.1.3 |
| Docker Compose | v2.29.2 |
| Python / Node | 3.12.3 / 24.14.0 |
| 资源 | 31 GB RAM / 250 GB 可用磁盘 |

## 部署架构

- 单容器部署：Python FastAPI 后端同时提供 `/api/*` 和前端 React SPA 静态资源。
- 数据持久化：通过 `data/` 目录挂载保存 SQLite 数据库与 HTML 报告。
- 配置挂载：`config/config.json` 以只读方式挂载到容器内，用于 CLI 注册/更新评测对象。

## 部署步骤

1. **确认本地配置存在**

   确保项目根目录已有 `config/config.json`（tutu-api token 等敏感信息）。

2. **同步代码到 t480**

   ```bash
   rsync -avz --delete \
     --exclude='.git' \
     --exclude='node_modules' \
     --exclude='frontend/web/dist' \
     --exclude='data' \
     --exclude='.venv' \
     --exclude='__pycache__' \
     --exclude='.pytest_cache' \
     --exclude='.ruff_cache' \
     /Users/sinohuangqb/DevSpace/JkzlItProduct/AgentEvalTool/ \
     sola-t480:/opt/agenteval/
   ```

3. **在 t480 上构建并启动**

   ```bash
   ssh sola-t480
   cd /opt/agenteval
   docker compose -f deploy/t480/docker-compose.yml up -d --build
   ```

4. **健康检查**

   ```bash
   curl http://192.168.8.145:8000/api/health
   ```

   期望返回 `{"status":"ok"}`，并能在浏览器打开 `http://192.168.8.145:8000/` 看到前端页面。

5. **注册/更新评测对象（如需要）**

   ```bash
   docker exec -it agenteval agenteval target add \
     --name "社区医院AI客服" \
     --config /app/config/config.json
   ```

6. **执行一次评测验证**

   获取 target-id 与 scenario-id 后：

   ```bash
   docker exec -it agenteval agenteval run start \
     --target-id <target-id> \
     --scenario-id <scenario-id>
   ```

## 日常运维

- 查看日志：`docker logs -f agenteval`
- 重启服务：`docker compose -f deploy/t480/docker-compose.yml restart`
- 更新版本：重新执行第 2 步 rsync + `docker compose ... up -d --build`

## 可选：添加反向代理

如果后续需要域名/HTTPS，可在 t480 上再起一个 Nginx/Caddy 容器，将 80/443 反向代理到本机的 `127.0.0.1:8000`。
