Hermes WebUI 多容器部署实战:1 条命令跑通 Agent、聊天界面与监控面板
【免费下载链接】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 部署可以简单到一条命令:用 Docker Compose 做多容器部署,Hermes Agent、WebUI、Dashboard 三个容器各管一段——Agent 出 API,WebUI 出聊天界面,Dashboard 盯资源,全部跑在本地。
🚀 一条命令启动三容器
这节走完,浏览器就能打开 Hermes 的聊天界面。
先过一遍环境要求:Docker Engine 20.10.0+、Docker Compose 2.0.0+、至少 4GB 内存、10GB 以上空闲磁盘,加上能拉取镜像的网络。
然后克隆仓库并启动:
git clone https://gitcode.com/GitHub_Trending/he/hermes-webui cd hermes-webui docker compose -f docker-compose.three-container.yml up -d首次运行会自动拉取nousresearch/hermes-agent和ghcr.io/nesquena/hermes-webui两个镜像,稍等几分钟。起来之后打开两个地址验证:
- WebUI 聊天界面:http://localhost:8787
- Dashboard 监控面板:http://localhost:9119
Dashboard 的 Insights 页里,System health 的 CPU、RAM、Disk 实时占用条在动,说明 Agent 已启动并被成功接上;再回 WebUI,左侧会话列表加载出来,就算齐活。
三件套各管什么:职责、端口、启动命令
记住这张表,后面排障基本只靠它。
| 容器 | 职责 | 端口 | 镜像 / 启动命令 |
|---|---|---|---|
| hermes-agent | 核心代理:网关 API、定时任务、工具调用 | 8642(默认仅本机回环) | nousresearch/hermes-agent:latest+gateway run |
| hermes-webui | 浏览器聊天界面,可浏览、编辑工作区文件 | 8787 | ghcr.io/nesquena/hermes-webui:latest |
| hermes-dashboard | 监控面板:会话、用量分析、资源占用 | 9119 | nousresearch/hermes-agent:latest+dashboard --host 0.0.0.0 --insecure |
三者共用hermes-net桥接网络内部通信:WebUI 经HERMES_API_URL找到 Agent,Dashboard 经GATEWAY_HEALTH_URL拉健康数据,8642 端口默认只绑 127.0.0.1。
关键配置项:只读这 8 行 compose
部署文件 docker-compose.three-container.yml 有 190 多行,核心就这几行,其余配置从略:
services: hermes-agent: image: nousresearch/hermes-agent:latest command: gateway run ports: ["127.0.0.1:8642:8642"] volumes: [hermes-home:/home/hermes/.hermes, hermes-agent-src:/opt/hermes] # hermes-dashboard 与 hermes-webui 的定义从略 volumes: [hermes-home, hermes-agent-src]两个命名卷分工明确:
| 卷 | 挂载位置 | 作用 |
|---|---|---|
| hermes-home | 三个容器共享 | 配置、会话、技能、状态,重启不丢 |
| hermes-agent-src | Agent 的 /opt/hermes(WebUI 侧只读) | Agent 源码,WebUI 启动时从中安装 Python 依赖 |
其余是网络、资源限制和 depends_on:compose 给 agent 限了 4G 内存、2 核,Dashboard 只给 512M、0.5 核。
按你的需求调一调:工作目录、权限与密码
三项都在.env里改,改完重新up -d即生效:
HERMES_WORKSPACE:工作目录,默认${HOME}/workspace,你的项目放别处就指过去;UID/GID:跑id -u和id -g拿到值。用绑定挂载时各容器必须同权限,不一致就会 Permission denied;HERMES_WEBUI_PASSWORD:把 8787 开放到 127.0.0.1 之外时必设的访问密码。
echo "UID=$(id -u)" >> .env echo "GID=$(id -g)" >> .env echo "HERMES_WORKSPACE=/path/to/your/workspace" >> .env echo "HERMES_WEBUI_PASSWORD=your-secure-password" >> .env日常运维速查:日志、升级与备份
三条命令覆盖大部分日常操作。
- 看日志:
docker logs hermes-agent、docker logs hermes-webui、docker logs hermes-dashboard,出问题先看这里;WebUI 里的日志页也能翻事件记录。 - 升级:down 之后先删
hermes-agent-src卷,再 pull 拉新镜像、重新 up。删卷是关键一步——Docker 会一直复用旧卷,只 pull 不会把新镜像里的源码带进来(卷名前缀默认是项目目录名):
docker compose -f docker-compose.three-container.yml down docker volume rm hermes-webui_hermes-agent-src docker compose -f docker-compose.three-container.yml pull docker compose -f docker-compose.three-container.yml up -d- 备份:
hermes-home卷里是全部关键数据,用 alpine 容器加 tar 打包带走:
docker run --rm -v hermes-webui_hermes-home:/source -v $(pwd):/backup \ alpine tar -czf /backup/hermes-backup.tar.gz -C /source .踩坑急救:三种报错对号入座
- Permission denied→ 容器内 UID/GID 与宿主机不一致(或状态目录被 root 初始化)→ 在
.env写入宿主机id -u/id -g的值。 - 端口被占用、容器起不来→ 8787 / 9119 / 8642 与本地服务冲突 → 改 compose 里的端口映射,把冒号左边的号换掉。
- 运行缓慢、频繁 OOM→ 资源不够 → 调大
deploy.resources.limits里的 memory / cpus,或放宽 Docker 守护进程的资源上限。
一条命令起步,剩下的交给 Compose:Agent 崩了界面还在,升级只动一个卷,备份只带一个卷。想深入细节,看 ARCHITECTURE.md、docs/docker.md 和 docs/troubleshooting.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),仅供参考