Docker部署Hermes Agent排坑指南

OpenClaw不是很喜欢,尝试了下就没有用过了,看到Hermes Agent整体确实还是不错,内存占用很低,所以决定长期使用。

一、Docker-Compose

直接贴compose,官方教程是配置环境变量.env,但实际上可以不用配置,通过直接初始化的方式,根据向导一步步配置。+

20260613更新,官方已经不建议面板和后端分成两个容器,当前已经合并,直接运行即可,需要调整可基于官方文档调整。

https://hermes-agent.nousresearch.com/docs/zh-Hans/user-guide/docker

测试的时候发现,新版Hermes 的 Docker 镜像是用 s6-overlay 这种进程管理工具构建的,它会在容器启动时把 gateway 和 dashboard 都管理起来。所以,当你运行 dashboard 命令时,容器里的后台进程(s6-log)还是会尝试去写网关的日志。两个容器都这么做,就在同一个文件上锁死了,甚至有可能会挂起了多个gateway,导致信息重复。

20260621更新,:HERMES_DASHBOARD_INSECURE 环境变量已经不能再绕过认证了,别费劲尝试。飞书lark-oapi安装目录权限有问题,修改默认目录。

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes
    restart: always
    command: gateway run
    ports:
      - "8642:8642"   # 网关 API
      - "9119:9119"   # 仪表盘界面
    volumes:
      - ./data:/opt/data   # 只保留一个数据目录
    environment:
      - HERMES_DASHBOARD=1
      - HERMES_DASHBOARD_INSECURE=1   # 绕过认证(仅在可信网络使用)
      - HERMES_DASHBOARD_HOST=0.0.0.0   # 删除或注释这一行
      - MATRIX_ENCRYPTION=true
      - HERMES_LAZY_INSTALL_TARGET=/opt/data/lazy-packages  #飞书lark-oapi目录修改
      #- HERMES_DASHBOARD_BASIC_AUTH_USERNAME=admin   # 如需用户名密码认证
      #- HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=admin123
      - TZ=Asia/Shanghai
      # 其他 API 密钥可以直接传递或使用 .env 文件
      # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      # - OPENAI_API_KEY=${OPENAI_API_KEY}
    deploy:
      resources:
        limits:
          memory: 4G
          cpus: "2.0"   
    networks:
      - hermes-net 
      
networks:
  hermes-net:
    driver: bridge

二、初始化

在compose目录运行初始化,进入向导配置,此时会创建一个临时的容器完成配置,配置完成后容器自动删除。

sudo docker compose run --rm hermes setup
Docker部署Hermes Agent排坑指南

三、配置客户端的说明

以微信为例,选微信后直接打开链接扫描二维码,此时会获得account_id,如果开启了WEIXIN_GROUP_POLICY=true  那么需要把account_id配置给 WEIXIN_GROUP_ALLOWED_USERS

Docker部署Hermes Agent排坑指南

配置后,给bot发一句话,会给出弹出配对码,配对即可,配对后重启下容器,让.env生效。

如果发了信息没反应,看看.env中的WEIXIN_GROUP_POLICYWEIXIN_ALLOW_ALL_USERS他俩的值,

  • 如果WEIXIN_GROUP_POLICY=true,那么需要把account_id配置给 WEIXIN_GROUP_ALLOWED_USERS
  • 如果WEIXIN_GROUP_POLICY=disabled,那么需要把WEIXIN_ALLOW_ALL_USERS配置成true。
#方法一:一步到位的单行命令(推荐)

docker exec -it hermes bash -ic "hermes pairing approve weixin xxxx"


#方法二:进入容器后再执行
docker exec -it hermes bash
uv run hermes pairing approve weixin xxxx
Docker部署Hermes Agent排坑指南

四、WebUI

通过9119运行WebUI,发现报错,Refusing to bind to 0.0.0.0 — the dashboard exposes API keys and config without robust authentication. Use --insecure to override...

回看Compose,是由于dashboard --host 0.0.0.0 意思是“向所有网络公开这个面板”。

官方认为这太危险了——如果在云服务器是在阿里云、腾讯云等公有云上,一旦面板直接暴露在公网(且没有任何账号密码拦截),任何人只要扫描到你的 IP 和 9119 端口,就能进去把你的 API Key 偷光。

不过我是在本地部署无所谓,于是修改为

当前更新后的dashboard 暴露到公网(非 loopback 地址),系统强制要求认证,不允许无认证的公网暴露。

密码认证,先生成密码哈希:

python -c "from plugins.dashboard_auth.basic import hash_password; print(hash_password('你的密码'))"

然后在 config.yaml 中设置:

dashboard:
  basic_auth:
    username: your-username
    password_hash: "生成的哈希值"

重新构建下容器。

sudo docker compose up -d --force-recreate

部署成功,个人感觉非常不错

Docker部署Hermes Agent排坑指南

本文作者:ZKCOI

文章名称:Docker部署Hermes Agent排坑指南

文章链接:https://www.zkcoi.com/365up/ai-agent/4558.html

本站资源仅供个人学习和交流,如若转载,请注明出处,详见《免责声明》

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZKCOIZKCOI
XiaomiMiMo的tokens挺快,花得挺快……
上一篇 2026年4月4日 上午6:24
【色卡】RAL劳尔K7/K5色彩查询电子版216色,附HEX(16进制码)
下一篇 2026年4月28日 下午10:58

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系博主

立即联系
一般有空就回复

qrcode_web

微信扫码联系我

insert_link 友情链接
分享本页
返回顶部