Hermes WebUI Docker 部署完整指南:从单容器到生产环境的落地路径
2026/9/9 18:09:26 网站建设 项目流程

Hermes WebUI Docker 部署完整指南:从单容器到生产环境的落地路径

【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui

Hermes WebUI 是为 Hermes Agent 打造的浏览器/手机 Web 界面:左侧会话列表、中间对话区、右侧工作区,支持文件预览与拖拽。本文覆盖 Hermes WebUI Docker 部署的完整路径,从环境检查到生产环境加固。

怎么把它跑起来

Hermes WebUI 是一个 Python 编写的 Web 服务,手动安装要自己处理 Python 版本、依赖包与端口占用;容器化安装后这些琐事全部封进镜像,你只需维护一个编排文件。先做两项环境预检:

docker --version docker compose version

各输出一行版本号即过关。Compose 插件 Docker Desktop 自带,Linux 上若提示找不到命令需单独安装。

接着拉取代码并生成配置:

git clone https://gitcode.com/GitHub_Trending/he/hermes-webui cd hermes-webui cp .env.docker.example .env

仓库里已备好 Dockerfile 与三套编排文件,无需另装任何运行时依赖。打开.env核对三个关键值:UID/GID必须与宿主机一致,运行id -uid -g实测后填入;端口默认映射127.0.0.1:8787:8787,本机被占用时改到空闲端口;HERMES_WEBUI_PASSWORD建议一开始就设置,尤其是端口要对外暴露时。

然后启动:

docker compose up -d

-d表示后台运行,首次执行会先构建镜像,耗时几分钟。打开浏览器访问http://localhost:8787,看到左侧会话列表、中间对话区、右侧工作区的三栏界面即部署成功;若没起来,用下面的命令实时滚动日志定位根因:

docker compose logs -f hermes-webui

数据怎么不丢

删除容器时,容器内部的东西会一并消失。Hermes WebUI 用两个卷挂载化解这个问题:

  • ${HERMES_HOME:-${HOME}/.hermes}:/home/hermeswebui/.hermes:存放会话记录、配置与系统状态;
  • ${HERMES_WORKSPACE:-${HOME}/workspace}:/workspace:对应界面右侧的工作区文件。

容器内的一切变化都写回宿主机这两个目录,删除或重启容器数据不丢。想把数据收进其他分区,覆盖变量再启动即可:

export HERMES_HOME=/data/hermes/config export HERMES_WORKSPACE=/data/projects docker compose up -d

数据卷备份只需一条命令,$(date +%Y%m%d)自动带上日期;建议配合定时任务每周执行,并把备份文件放到另一块磁盘:

tar -czf hermes-backup-$(date +%Y%m%d).tar.gz ~/.hermes/

怎么长期用得好

日常三件套与升级顺序

docker compose ps # 容器状态与端口映射 docker compose logs -f hermes-webui # 实时日志 docker compose down # 优雅停止,数据卷保留

升级时按此顺序执行:先拉新代码,再重建镜像,最后重启:

git pull docker compose down docker compose up -d --build

⚠️ 升级期间服务会短暂中断,建议挑低峰期执行。

从单容器到多容器:一个升级决策点

单容器够用就不必动。团队使用或需要更高隔离性时,仓库预置了两套进阶编排,切换成本只有一条命令:

  • 双容器docker-compose.two-container.yml:把聊天界面与 Hermes 网关拆成两个容器,网关承担 CLI、定时任务等后台工作,一边崩溃不牵连另一边,资源也能分开限制;
  • 三容器docker-compose.three-container.yml:在此之上增加监控仪表盘,用于查看系统状态、资源占用与日志聚合,适合需要运维视角的团队。

建议先跑单容器验证功能,确有需要再升级;起步就上三容器会扩大排障面。

生产环境加固三件事

  1. 给容器设资源上限,防止异常进程吃满宿主机内存,在docker-compose.ymlhermes-webui服务下追加:
deploy: resources: limits: memory: 2G cpus: '1.0'
  1. 锁住访问入口:⚠️ 若把端口暴露给局域网或公网,必须同时设置HERMES_WEBUI_PASSWORD,并保留ports里的127.0.0.1前缀。没有密码的暴露端口,等于把终端权限交到陌生人手里。
  2. 定期清理回收:镜像与悬空卷会随时间膨胀,每月执行一次(执行前确认没有正在运行的容器):
docker system prune -a --volumes

出问题了怎么办

高频问题集中在下表,其中端口冲突处理是启动阶段最常见的,先看表定位再动手:

现象原因与处理
启动时报端口冲突8787 被占用。只改docker-compose.ymlports映射冒号左侧为空闲端口,如127.0.0.1:8888:8787,容器内部的 8787 不要动,再执行docker compose up -d
挂载目录无法写入、保存失败UID/GID 与宿主机不一致。回到.env核对id -uid -g的输出,修改后重启容器;macOS 上 UID 通常从 501 起步而非 Linux 常见的 1000,务必实测。仍不生效时,检查日志中是否有 chmod 相关报错
使用中弹出 429 限流界面会直接给出错误卡片,列出三条出路:充值、等待额度窗口重置、切换其他服务商;展开卡片还能看到 HTTP 状态码与错误类型,便于判断走哪条路

部署完成后立刻做的三件事

先别急着研究全部设置,让 AI 做几件真事来验证链路:

  1. 新建一个会话,问它"当前工作区里有哪些文件"——验证右侧工作区是否与你挂载的项目目录联动;
  2. 给这次对话打一个标签,再用顶部搜索框把它找回来——熟悉会话管理;
  3. 把一个文件拖进对话窗口,让它总结内容——体会"文件浏览器 + AI"的组合。

需要更深入的细节时看官方文档:Docker 部署的完整参考在 docs/docker.md,高频问题的排查方法在 docs/troubleshooting.md,设计理念在 docs/why-hermes.md。文档没覆盖的问题,带上日志去项目讨论区提问。

【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询