Files
agentdock/docs/CONSOLE-DEPLOYMENT.md

3.9 KiB
Raw Permalink Blame History

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

第一次使用

  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 进程停止,dataconsole-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