Files
agentdock/docs/CONSOLE-DEPLOYMENT.md

118 lines
3.9 KiB
Markdown
Raw Permalink 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.
# AgentDock 网页控制台部署说明
## 访问范围
控制台固定绑定服务器地址 `192.168.200.36`,默认端口为 `8443`
```text
https://192.168.200.36:8443
```
Caddy 同时检查来源 IP,只接受 `192.168.200.0/24`。Compose 不映射
Runner 和 Console 的内部端口,局域网只能接触 HTTPS 代理。
## 准备 `.env`
在服务器执行:
```bash
cd /vol1/1000/docker/ai-toools
cp -n .env.example .env
chmod 600 .env
```
必须设置三个独立的机密值:
```dotenv
ADMIN_PASSWORD=一个至少12位的管理员密码
RUNNER_TOKEN=至少32位随机字符串
CONFIG_ENCRYPTION_KEY=至少32位随机字符串
```
可以用 OpenSSL 生成随机值:
```bash
openssl rand -base64 36
```
不要把三个值写进 `compose.yaml`、Dockerfile 或 Git。`CONFIG_ENCRYPTION_KEY`
丢失后,设置页中保存的 API Key 将无法解密。
## 构建和启动
```bash
cd /vol1/1000/docker/ai-toools
mkdir -p workspace data console-data
chmod +x scripts/generate-console-certificate.sh
./scripts/generate-console-certificate.sh /vol1/1000/docker/ai-toools
docker compose build
docker compose up -d
docker compose ps
docker compose logs --tail=100 ai-tools ai-console ai-proxy
```
健康状态应为 `healthy`。检查内部服务:
```bash
docker compose exec ai-tools curl -fsS http://127.0.0.1:4174/health
docker compose exec ai-console wget -qO- http://127.0.0.1:4173/health
```
## 信任局域网证书
Caddy 使用部署目录中为服务器 IP 生成的自签名证书。把证书复制到 Windows:
```bash
cd /vol1/1000/docker/ai-toools
scp nas:/vol1/1000/docker/ai-toools/proxy/certs/agentdock.crt .
```
复制到 Windows 后,在当前用户的受信任根证书存储中安装:
```powershell
certutil -user -addstore Root .\agentdock.crt
```
只应信任从自己的 `192.168.200.36` 服务器导出的证书。安装后重新打开浏览器,
访问 `https://192.168.200.36:8443`
## 第一次使用
1. 使用 `.env` 中的 `ADMIN_PASSWORD` 登录。
2. 在顶部选择 `/workspace` 下的项目。
3. 在设置页填写需要的 API Key,或点击“打开终端”进入独立授权终端完成设备授权。
4. 回到工作台,选择 CLI 后直接发送消息。
5. DeepSeek Harness 必须先填写任务再发送,使用 `headless` 执行一次后自动退出。
工作台的“会话”页使用非交互 CLI 输出和单一多行输入框。每条消息对应一次任务,
回复按时间连续显示。按 Enter 发送,按 Shift+Enter 换行。初始化授权使用独立的
可交互终端;“原始输出”页只用于查看本次非交互任务的底层输出,不接收键盘输入。
当前 `@deepseek-ai/dsh@0.1.1-rc.2` 没有发布可直接安装的 TUI profile bundle。
CLI 帮助中的 `tui` 只是自定义 profile 示例,不能直接执行。AgentDock 因此只开放
官方内置并适合本控制台的 `headless` profile,不开放 Harness 自带 Web 服务。
DeepSeek Harness 不使用其他 CLI 的网页登录状态,必须在设置页配置
`DEEPSEEK_API_KEY` 才能运行。
API Key 使用 AES-256-GCM 加密后存放于 `console-data/settings.enc.json`,接口只返回
掩码。原有 CLI 自己的登录状态仍保存在 `data` 目录。
## 会话生命周期
- 浏览器关闭:CLI 进程继续运行,重新登录后可继续连接。
- `ai-console` 重启:CLI 进程不受影响,但管理员需要重新登录。
- `ai-tools` 重启:其中的所有 CLI 进程会停止;历史输出仍保留。
- `docker compose down`:所有 CLI 进程停止,`data``console-data` 不删除。
## 安全检查
```bash
# 不应出现 docker.sock
docker inspect ai-tools --format '{{json .Mounts}}' | grep docker.sock
# 主机只应监听 HTTPS 端口,不应监听 4173/4174
ss -lnt | grep -E '(:8443|:4173|:4174)'
```
第一条命令没有输出是正确结果。第二条只应看到 `192.168.200.36:8443`