Files
agentdock/docs/DEPLOYMENT.md
T

162 lines
4.7 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.
# 部署说明
## 1. 部署前提
Ubuntu 主机需要满足:
- Ubuntu 22.04 或 24.04x86_64 或 ARM64
- 已安装 Docker Engine 和 Docker Compose Plugin
- 能访问各 CLI 的官网、npm Registry 和模型接口
- 当前用户有运行 Docker 的权限
- 建议至少 4 核 CPU、8 GB 内存和 15 GB 可用磁盘
这些 CLI 通常调用云端模型,本容器不在本机加载大模型权重,因此一般不需要 GPU。
## 2. 放置部署文件
建议把本目录放到 Ubuntu
```text
/opt/ai-toolbox
```
项目统一放到:
```text
/srv/projects
```
创建项目目录:
```bash
sudo mkdir -p /srv/projects
sudo chown -R "$(id -u):$(id -g)" /srv/projects
```
## 3. 准备配置
```bash
cd /opt/ai-toolbox
cp .env.example .env
chmod +x scripts/ai
id -u
id -g
```
`id -u``id -g` 的结果填写进 `.env`
```dotenv
WORKSPACE_PATH=/srv/projects
AI_HOME_PATH=/opt/ai-toolbox/data
AI_UID=1000
AI_GID=1000
AI_CONTAINER_NAME=ai-tools
TZ=Asia/Shanghai
```
不要把 API Key 写进 Dockerfile。`.env` 也不要提交到 Git。
## 4. 构建并启动
```bash
docker compose build
docker compose up -d
docker compose ps
docker compose exec ai-tools ai-tools-check
```
检查结果中以下命令都应显示 `OK`
```text
codex claude codebuddy kimi opencode qwen dsh cc-switch multica
```
## 5. 首次登录
每个工具需要分别登录一次:
```bash
./scripts/ai codex .
./scripts/ai claude .
./scripts/ai codebuddy .
./scripts/ai kimi .
./scripts/ai opencode .
./scripts/ai qwen .
```
按照终端显示的链接或验证码,在 Windows 浏览器中完成登录。Kimi 进入界面后使用 `/login`
远程服务器上,浏览器自动打开通常不会成功,这是正常的。优先使用工具提供的设备验证码登录;如果某个工具只支持浏览器回调,可以改用它支持的 API Key,或者为回调端口建立 SSH 隧道。
登录信息和会话文件保存在 `.env``AI_HOME_PATH` 目录中,不会因为重新构建镜像而丢失。
## 6. 初始化 CC Switch
打开网页的“设置 -> Provider”,点击“打开 CC Switch TUI”。先为 Claude、Codex 和 OpenCode 导入或创建 Provider,并确认三个 CLI 都有当前 Provider。
也可以在 SSH 中操作:
```bash
ai cc-switch
ai cc-switch --app codex provider list
```
配置完成后,在网页启用“CC Switch 配置接管”。启用后,AgentDock 不再向 Claude、Codex 和 OpenCode 会话注入网页账号页保存的旧 API Key,避免环境变量覆盖 CC Switch 配置。CodeBuddy、Kimi、Qwen 和 DeepSeek 仍由 AgentDock 管理。
## 7. 初始化 Multica Runtime
打开网页的“设置 -> Runtime”,填写现有自托管 Multica 的 Server URL 和 App URL,然后点击“初始化 Runtime”。授权只在独立终端中进行,完成后 Supervisor 会自动启动前台 daemon。
也可以在 SSH 中检查:
```bash
ai multica config show
ai multica daemon status --output json
docker compose logs --tail=100 ai-tools
```
Multica 当前公开支持 Claude、Codex、CodeBuddy、Kimi 和 OpenCode。Qwen 与 DeepSeek 会显示为“已安装,待验证支持”。本部署仅安装 Multica 客户端 Runtime,不包含也不替换用户现有的自托管服务端。
如果网页终端中的 OAuth 回调无法从 Windows 返回容器,可在 NAS SSH 中运行一次临时初始化。将两个示例 URL 替换为实际地址:
```bash
docker run --rm -it \
--network host \
--user 1000:1001 \
-e HOME=/home/ai \
-v /vol1/1000/docker/ai-toools/data:/home/ai \
local/ai-toolbox:0.2.0 \
multica-setup \
--server-url https://multica-api.example.com \
--app-url https://multica.example.com \
--callback-host 192.168.200.36
```
该容器只在授权期间使用宿主机网络,完成后自动退出。正式 Multica daemon 仍由 `ai-tools` 内的 Supervisor 管理,不使用 host 网络。
## 8. DeepSeek Harness
DeepSeek Harness 的命令是 `dsh`,当前属于 developer preview,官方提示未来可能出现不兼容更新。
无界面执行一次任务:
```bash
./scripts/ai dsh my-project --profile headless "检查项目并运行测试"
```
查看当前版本支持的参数:
```bash
docker compose exec ai-tools dsh --help
```
当前 npm 包只提供 `headless``web` profile,没有可安装的原生 TUI。AgentDock 使用 `headless`,每次提交一个任务,完成后进程自动退出。`web` profile 不纳入 Compose,也不额外暴露端口。
## 9. OpenClaw 和 Cursor
- 不修改 Ubuntu 主机现有的 OpenClaw。
- 不占用 OpenClaw 的 Gateway 端口。
- Cursor 桌面版保留在 Windows。
- Cursor 使用 Remote SSH 打开 `/srv/projects/项目名`
- AI 容器通过 `/workspace/项目名` 访问同一批文件。