由小五 2026-08-21 创建 | 方案已验证(镜像/仓库/npm 包均确认存在) 部署完成后在本 issue 回复结果,遇到问题贴日志。
更新:2026-08-21 | 参考:阿里云开发者社区《用 Docker 安装 deepseek-harness 并接入飞书》(2026-08-15) + harness-lark 官方 README 方案:直接用社区发布好的 Docker 镜像(ghcr.io/huoxue1/deepseek-harness-lark),免自建 已验证:镜像存在(tags 0.1.2 ~ 0.1.16 + latest)✅ | 仓库 github.com/huoxue1/harness-lark ✅
飞书 App(私聊/群聊/话题,@机器人) │ 飞书 WebSocket 长连接(无需公网 IP/域名/回调地址) ▼ harness-lark 飞书插件(打进镜像,dsh 的 Cordis 插件) ▼ DeepSeek Harness 本体(dsh,Web UI :3080,容器内绑回环) ▼ LLM(Web UI 配置 或 DEEPSEEK_API_KEY 环境变量)
im.message.receive_v1
官方仓库带一份开箱即用的 deploy/docker-compose.yml,直接可用:
deploy/docker-compose.yml
# docker-compose.yml(来自 huoxue1/harness-lark/deploy/,加了注释) services: dsh-lark: image: ghcr.io/huoxue1/deepseek-harness-lark:latest container_name: dsh-web restart: unless-stopped ports: - "3080:3080" # dsh Web UI(容器内绑回环,Docker 发布到主机) volumes: - dsh-data:/root/.dsh # 会话/设置/授权token 全在这里,重建不丢 environment: - NODE_ENV=production - DSH_TELEMETRY_DISABLED=1 # 飞书应用凭据(第 1 步拿到的) - FEISHU_APP_ID=${FEISHU_APP_ID} - FEISHU_APP_SECRET=${FEISHU_APP_SECRET} # 模型 Key(二选一:这里传,或首次启动后在 Web UI 配) - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3080').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 20s timeout: 5s retries: 5 start_period: 25s logging: driver: json-file options: max-size: "20m" max-file: "5" volumes: dsh-data:
启动:
# 准备环境变量(可写进 .env 文件) export FEISHU_APP_ID=cli_xxx export FEISHU_APP_SECRET=你的secret export DEEPSEEK_API_KEY=你的deepseek_key docker compose up -d docker logs -f dsh-web # 看启动日志
备用:一行命令版
docker run -d --name dsh-web \ -p 3080:3080 \ -v dsh-data:/root/.dsh \ -e FEISHU_APP_ID=cli_xxx \ -e FEISHU_APP_SECRET=你的secret \ -e DEEPSEEK_API_KEY=你的deepseek_key \ ghcr.io/huoxue1/deepseek-harness-lark:latest
群晖图形界面:Container Manager → 项目 → 新建项目 → 粘贴上面 compose (把 ${...} 换成真实值,或建 .env)→ 完成。日志页看启动输出。
http://<群晖IP或主机IP>:3080
/status
harness-lark 默认 groupPolicy: disabled(群聊禁用),要团队群用必须改:
groupPolicy: disabled
docker exec -it dsh-web sh # 查看 profile 里的 patch 配置 cat /root/.dsh/profiles/web/cordis.patch.yml
把其中 groupPolicy 改为 open(群聊开放),requireMentionInGroups 保持 true(群里要 @机器人 才响应)或按需改 false;replyMode: streaming(流式卡片)。 改完保存,docker restart dsh-web 生效。
groupPolicy
open
requireMentionInGroups
true
replyMode: streaming
docker restart dsh-web
如果文件里没有 lark 条目,追加(注意缩进):
- insert: - id: lark name: 'harness-lark' config: groupPolicy: open requireMentionInGroups: true replyMode: streaming
只给信任的群用:groupPolicy 也支持 allowlist(配 open_id 白名单)。
飞书里常用命令(群聊带 @机器人 前缀,如 @dsh助手 /status):
@dsh助手 /status
多 agent(可选进阶):一个飞书应用可配多个 agent,按群路由、各自独立 cwd/AGENTS.md/会话,适合团队多项目并行。在 Web UI 设置页的 harness-lark 配置里编辑 agents 数组,重启生效。
docker pull ghcr.io/huoxue1/deepseek-harness-lark:latest docker compose up -d # 重建容器,数据在卷里不丢
或锁版本:把 image 的 latest 换成具体 tag(如 0.1.16)。
本文档基于 2026-08-21 查证的仓库/镜像信息;dsh 仍为 developer preview, 升级前注意兼容性变更。
No dependencies set.
The note is not visible to the blocked user.
DeepSeek Harness (dsh) Docker 一键部署 + 飞书接入指南(镜像版)
架构
前置条件
第 1 步:飞书开放平台创建应用(约 5 分钟)
(名称如「dsh 助手」,描述随意)
不要选 webhook,这样不需要公网回调地址)
im.message.receive_v1(接收消息)(如 im:message 系列,按飞书提示申请)
团队其他成员才能搜到/使用这个机器人
第 2 步:Docker 部署(推荐 compose)
官方仓库带一份开箱即用的
deploy/docker-compose.yml,直接可用:启动:
备用:一行命令版
第 3 步:首次启动配置
http://<群晖IP或主机IP>:3080,在 Web UI 配置 LLM 模型(如果没传 DEEPSEEK_API_KEY)
/status,能收到回复即接通 ✅第 4 步:开启群聊(关键,默认是关的!)
harness-lark 默认
groupPolicy: disabled(群聊禁用),要团队群用必须改:把其中
groupPolicy改为open(群聊开放),requireMentionInGroups保持true(群里要 @机器人 才响应)或按需改 false;replyMode: streaming(流式卡片)。改完保存,
docker restart dsh-web生效。如果文件里没有 lark 条目,追加(注意缩进):
团队使用
飞书里常用命令(群聊带 @机器人 前缀,如
@dsh助手 /status):多 agent(可选进阶):一个飞书应用可配多个 agent,按群路由、各自独立
cwd/AGENTS.md/会话,适合团队多项目并行。在 Web UI 设置页的 harness-lark
配置里编辑 agents 数组,重启生效。
安全注意
不熟的环境用 allowlist 白名单限制
建议保持默认审批流,除非你明确要全自动
升级
或锁版本:把 image 的 latest 换成具体 tag(如 0.1.16)。
常见问题