前几天我在一堆 Hermes 网页端里,翻到了国内大佬做的 Hermes Web UI。
我上手后的感觉很直接:这个项目是真的好用。
界面更符合国内用户的习惯,很多原本要进终端敲的配置,现在直接在网页里就能完成,整个使用门槛一下子就下来了。
我之前已经写过一篇基于原生系统的安装教程,受到大家的好评。
后来我又想继续把它搬到飞牛 NAS 上,结果来来回回折腾了好几次,始终差一口气。
好在作者后来把 Docker 镜像仓库也安排上了。
这下就舒服了。
飞牛 NAS 用户,终于也能比较顺畅地把 Hermes-Web-UI 跑起来了。
在这里也认真感谢一下 Hermes Web UI 的开发团队。
这个项目确实做得很用心,也确实解决了很多人“会装 Hermes,但是不想一直盯着终端”的痛点。
项目地址:
https://github.com/EKKOLearnAI/hermes-web-ui
开源不易,觉得好用的话,去点个 ⭐ 支持一下作者。
安装前先确认一件事
你之前如果已经按照我的部署教程在飞牛里跑过 Hermes,那么这次直接在原来的 docker-compose.yaml 配置里修改就行。
如果没有装过 Hermes,也不要担心,在 Compose 中新建一个项目,输入名称、路径,然后将下面的配置粘贴进去就行了。
开始部署
1、进入 Docker Compose 项目
打开飞牛 NAS 的 Docker -> Compose。
找到你之前部署 Hermes 的那个项目,先把服务停掉:

这一步做完之后,直接编辑原来的 docker-compose.yaml。
2、粘贴下面这份配置
把原来的 docker-compose.yaml 内容替换成下面这份:
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
command: gateway run
stdin_open: true
tty: true
ports:
- "8642-8670:8642-8670"
volumes:
- /vol1/1000/docker/hermes2/data:/opt/data
environment:
- HERMES_HOME=/opt/data
hermes-webui:
build:
context: .
dockerfile: Dockerfile
args:
BASE_IMAGE: nousresearch/hermes-agent:latest
image: ekkoye8888/hermes-web-ui:latest
container_name: hermes-webui
entrypoint: ["node", "dist/server/index.js"]
depends_on:
- hermes
ports:
- "6060:6060"
volumes:
- /vol1/1000/docker/hermes2/data:/opt/data
- /vol1/1000/docker/hermes2/data/hermes-web-ui-data:/app/dist/data
environment:
- PORT=6060
- UPSTREAM=http://hermes:8642
- HERMES_HOME=/opt/data
- HERMES_BIN=/opt/hermes/.venv/bin/hermes
- AUTH_DISABLED=***
restart: unless-stopped
将配置中的安装路径手动改成 Hermes 的安装目录:
/vol1/1000/docker/hermes2/data
注意⚠️:经常有朋友在文章下面评论 yaml 格式错误,这个我也没法控制,所以动一动你们的小手让 AI 优化一下格式就好,不要再评论这种问题
3、点击构建
配置保存后,直接点击 构建:

构建完成之后,正常情况下你会看到两个容器都起来了:
hermeshermes-webui

看到这里,说明主体已经部署完成。
4、打开 Hermes-Web-UI
启动完成后,在浏览器访问:
http://{你的飞牛IP}:6060/
首次进入时,需要输入令牌。
这个令牌可以在 hermes-webui 的日志里找到。
先打开日志:

然后找到对应那一行,把令牌复制出来填进去:

填完之后就可以进入页面了。
常见问题
这里有一个很容易碰到的情况,我这边也遇到了。
进入页面后,部分朋友会看到状态显示 未连接。
这个时候直接重启一下 hermes-webui 服务,基本就能恢复。
我猜测原因是:
构建完成后两个服务会一起启动,hermes-webui 有时候启动得更快,hermes 还在初始化,它就先连了一次,结果自然就挂着未连接状态。
所以你看到这个提示时,直接做下面这个动作就行:
- 重启
hermes-webui
当页面显示 已连接,整个链路就算通了。
WebUI 跑起来之后,后面的体验会顺很多。
以前很多操作都要进终端,现在直接在页面里就能做。
比如模型配置、对话、定时任务、多 Agent 切换,基本都能在界面里完成。
模型配置:

新增自定义配置:

配完之后,进行对话测试:

到了这一步,说明你的 Hermes-Web-UI 已经能正常使用了。
我自己的使用感受
我个人挺喜欢这种方案。
因为它把 Hermes 这件事,从“偏命令行玩家的玩具”,往“日常能长期用的工具”拉近了一大步。
尤其是放在飞牛 NAS 上之后,这种感觉会更明显。
服务常驻、页面可视化、后续维护更轻松,这才是很多家庭用户和轻度折腾党更愿意接受的状态。
你可以继续折腾高级配置。
你也可以先把它当成一个顺手的网页入口,先稳定用起来。
这两种路子,都很舒服。
结尾想说几句
如果你之前已经在飞牛 NAS 上跑通了 Hermes,那我很建议你把 Hermes-Web-UI 也补上。
这一步带来的提升很实际:
操作更轻松,维护更顺手,后续配置也更适合长期使用。
我最近越来越在意一件事:
好工具的价值,除了功能够强,还得让人愿意天天打开。
Hermes-Web-UI 就属于这一类。
它把原本偏硬核的使用过程,变得更友好、更适合日常。
所以你如果也在飞牛上养 Hermes,这个 WebUI 直接装上就对了。
装好之后,你会明显感觉到:Hermes 终于更像一个助手了。