3.9 KiB
AgentDock 网页控制台部署说明
访问范围
控制台固定绑定服务器地址 192.168.200.36,默认端口为 8443:
https://192.168.200.36:8443
Caddy 同时检查来源 IP,只接受 192.168.200.0/24。Compose 不映射
Runner 和 Console 的内部端口,局域网只能接触 HTTPS 代理。
准备 .env
在服务器执行:
cd /vol1/1000/docker/ai-toools
cp -n .env.example .env
chmod 600 .env
必须设置三个独立的机密值:
ADMIN_PASSWORD=一个至少12位的管理员密码
RUNNER_TOKEN=至少32位随机字符串
CONFIG_ENCRYPTION_KEY=至少32位随机字符串
可以用 OpenSSL 生成随机值:
openssl rand -base64 36
不要把三个值写进 compose.yaml、Dockerfile 或 Git。CONFIG_ENCRYPTION_KEY
丢失后,设置页中保存的 API Key 将无法解密。
构建和启动
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。检查内部服务:
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:
cd /vol1/1000/docker/ai-toools
scp nas:/vol1/1000/docker/ai-toools/proxy/certs/agentdock.crt .
复制到 Windows 后,在当前用户的受信任根证书存储中安装:
certutil -user -addstore Root .\agentdock.crt
只应信任从自己的 192.168.200.36 服务器导出的证书。安装后重新打开浏览器,
访问 https://192.168.200.36:8443。
第一次使用
- 使用
.env中的ADMIN_PASSWORD登录。 - 在顶部选择
/workspace下的项目。 - 在设置页填写需要的 API Key,或点击“打开终端”进入独立授权终端完成设备授权。
- 回到工作台,选择 CLI 后直接发送消息。
- 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不删除。
安全检查
# 不应出现 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。