# 把 Hermes Agent 搬进了服务器,从此它 7×24 小时替我打工
**作者**: Jun
**日期**: 2026-04-30T07:08:45.000Z
**来源**: [https://x.com/Junljm/status/2049747768504357356](https://x.com/Junljm/status/2049747768504357356)
---

Hermes Agent 真正方便的地方,是你可以直接在手机上叫它干活。
打开微信、飞书或者 Telegram,发一条消息,它就能帮你处理文件、查东西、跑任务。
但这里有个前提。
它所在的那台机器,必须一直在线。
如果 Hermes Agent 装在个人电脑上,问题就来了。电脑会合盖,会断网,会被你带出门,也可能晚上直接关机。你想在手机上叫它干活的时候,它可能正在跟着电脑一起睡觉。
这也是我一开始动过买 Mac mini 的原因。找一台机器长期放着,让 Hermes Agent 一直在线。
但折腾完之后我发现,如果手里已经有群晖或者 VPS,这钱其实可以省下来。Mac mini 当然也能当服务器用,问题是没必要为了 Hermes Agent 额外添一台机器。
家里有群晖,就放群晖上跑。手里有 VPS,就放 VPS 上跑。
这样 Hermes Agent 就能 7X24 小时在线。人在外面,手机发一条消息,它就在那台机器上处理任务。
这篇就当作一份我自己跑通后的记录,给想把 Hermes Agent 长期挂起来的朋友提供一个思路和教程。
我会把 Docker、目录映射、compose 配置、官方 Dashboard、升级和删除这些步骤尽量写明白。
## 为什么推荐用 Docker
很多人装工具的时候,习惯直接在系统里跑安装命令。
这样当然也能用,但放到 VPS 或 NAS 上,我更建议用 Docker。
原因很简单。
第一,环境隔离。
Hermes Agent 是一个 agent,会用终端,会读写文件,会调用工具。把它放在容器里,至少可以把它和宿主机系统隔开一层。它能直接改到的宿主机文件,主要就是你主动映射进去的目录。
第二,升级和删除都干净。
直接装到系统里,后面想删干净,可能要到处找文件。Docker 方式就清爽很多,停容器,删容器,删目录,基本就结束了。
第三,方便迁移。
你只要保留 docker-compose.yml 和数据目录,以后换机器的时候,整个文件夹打包搬走就行。
## 准备一台机器
如果你准备买 VPS,我建议直接选国外 VPS。
配置不用太夸张。Hermes Agent 主要是调用云端模型,2C2G 就够用了。
群晖的话,先确认套件中心里有 Container Manager,老版本可能叫 Docker。
下面的命令主要按 Linux 写。群晖用户如果不想用命令行,也可以在 Container Manager 里导入 compose 项目,思路是一样的。
## 1、安装 Docker
Docker 安装这块我就不展开了。网上成熟教程已经很多,照着系统版本装就行。可以看这个教程,涵盖了各种系统:Docker 从入门到实践
安装完检查一下。
```
docker --version
docker compose version
```
如果你不想每次都加 sudo,可以把当前用户加入 docker 组。
```
sudo usermod -aG docker $USER
```
执行完重新登录服务器,再继续。
群晖用户就更简单一点,去套件中心安装 Container Manager,老版本系统里可能叫 Docker。能正常创建容器和 compose 项目就可以继续往下走。
## 2、创建 Hermes Agent 的目录
这里只需要创建一个目录。
```
mkdir -p ~/hermes-agent/hermes-data
cd ~/hermes-agent
```
这里的 hermes-data 名字可以自己定义。
比如你也可以叫 data、agent-data、hermes-work,只要后面 docker-compose.yml 里写的一致就行。
这个目录会映射到 Hermes Agent 容器里面,用来保存配置、记忆、技能和它能操作的文件。
不要把整台机器的根目录挂进去,也不要一上来把群晖整个共享盘都挂进去。先给一个单独目录,权限会更清楚。
## 3、创建 docker-compose.yml
继续在 ~/hermes-agent 目录里创建文件。
```
nano docker-compose.yml
```
注意文件名是 docker-compose.yml,别写成 ymal。
保存下面这段。
```
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
network_mode: host
volumes:
- ./hermes-data:/opt/data
environment:
# 1000 是常见默认值,建议按 id -u 和 id -g 查出来再填
- HERMES_UID=1000
- HERMES_GID=1000
# 自定义配置可以继续写在这里
# - OPENROUTER_API_KEY=你的_OpenRouter_Key
# - OPENAI_API_KEY=你的_OpenAI_Key
# 如果是群晖或者国内 VPS,调用官方 API 可能需要代理
# - HTTP_PROXY=${HTTP_PROXY}
# - HTTPS_PROXY=${HTTP_PROXY}
# - NO_PROXY=${NO_PROXY}
command: ["gateway", "run"]
```
这段不用背,主要看懂三件事。
第一,Hermes Agent 用的是 nousresearch/hermes-agent:latest 这个镜像。
第二,./hermes-data:/opt/data 这行很重要。左边是你服务器上的目录,右边是容器里的目录。Hermes Agent 后面保存配置、记忆、技能,以及能操作的文件,都会落到这个映射目录里。
第三,environment 里放的是容器配置。如果你后面要加模型 API Key、API Server 开关,或者其他 Hermes Agent 支持的环境变量,都可以继续写在这里。
这里还有一个网络注意事项。如果你用的是群晖,或者国内 VPS,调用官方 API 可能需要代理。可以在 environment 里加这几行。
```
- HTTP_PROXY=${HTTP_PROXY} #代理服务器地址
- HTTPS_PROXY=${HTTP_PROXY} #代理服务器地址
- NO_PROXY=${NO_PROXY} #不需要代理的域名或IP
```
当然,我更建议直接买国外 VPS,省心很多。
这里还有一个权限需要注意。
HERMES_UID=1000 和 HERMES_GID=1000 只是常见默认值,不一定和你的服务器用户一致。如果不一致,可能会出现容器能写文件,但你在宿主机上不好改的情况。
所以建议先查一下当前用户的 UID 和 GID。
```
id -u
id -g
```
然后把 HERMES_UID 和 HERMES_GID 改成查出来的数字。如果查出来刚好都是 1000,那就不用改。
## 4、启动 Hermes Agent 容器
在 ~/hermes-agent 目录里执行。
```
cd ~/hermes-agent
docker compose up -d
```
看一下容器状态。
```
docker ps
```
看日志。
```
docker logs -f hermes
```
如果看到它正常启动,就可以进入配置环节。
## 5、进入容器配置 Hermes Agent
进入容器有两种常用方式。
直接跑 Hermes Agent 配置向导。
```
docker exec -it -u hermes hermes /opt/hermes/.venv/bin/hermes setup
```
这里不要写成 「docker exec -it hermes hermes setup」。因为 docker exec 不会重新走镜像的启动入口,Hermes Agent 的虚拟环境不会自动激活,容易报找不到 hermes。
如果你想进入容器的终端,可以这样。
```
docker exec -it -u hermes hermes bash
```
进去以后先激活虚拟环境。
```
source /opt/hermes/.venv/bin/activate
```
后面的配置方式和本地电脑基本一致。
常用的几个命令是这些。
```
hermes setup
hermes model
hermes tools
hermes doctor
```
如果你只是想先确认能不能聊,跑完 hermes setup 之后,可以进入交互界面。
```
docker exec -it -u hermes hermes /opt/hermes/.venv/bin/hermes
```
这一步别急着配置一堆东西。先让它能正常调用模型,能正常回复,再慢慢加飞书、Telegram、官方 Dashboard、浏览器工具之类的功能。
飞书和 Telegram 的配置流程,和本地电脑安装 Hermes Agent 时一样,这里就不重复写了。
## 6、开启官方 Dashboard
VPS 或 NAS 最大的问题是,它本身没有一块你天天盯着的屏幕。
所以除了飞书和 Telegram,很多人也会想配一个网页入口,看配置、看日志、看会话状态。
这里我介绍的是 Hermes Agent 官方自带的 Web Dashboard。
它走的是 Hermes Agent 官方提供的管理页面,可以用来管理配置、API Key、会话、日志、定时任务、技能等。
官方默认端口是 9119。我建议自己改一个大一点的端口,比如 39119、39219、40119。
然后在 docker-compose.yml 的 services 下面增加这段。
```
dashboard:
image: nousresearch/hermes-agent:latest
container_name: hermes-dashboard
restart: unless-stopped
network_mode: host
depends_on:
- hermes
volumes:
# ./hermes-data 替换自己真实的路径
- ./hermes-data:/opt/data
environment:
- HERMES_UID=1000
- HERMES_GID=1000
- GATEWAY_HEALTH_URL=http://hermes:8642
command: ["dashboard", "--host", "127.0.0.1", "--port", "39119", "--insecure"]
```
这段是官方 Docker Compose 里的 Dashboard 思路。你想换端口,就改 39119 这个数字。
然后重启服务。
```
docker compose up -d
```
如果是在 VPS 上,最安全的方式是用 SSH 隧道访问。
```
ssh -L 39119:127.0.0.1:39119 root@你的服务器IP
```
然后在自己电脑浏览器打开。
```
http://127.0.0.1:39119
```
如果是在家里的群晖上,只在自己内网访问,也可以把上面的 --host 从 127.0.0.1 改成 0.0.0.0,然后访问。
```
http://群晖IP:39119
```
这里要注意,Dashboard 会管理配置和 API Key,不建议直接裸露在公网。
如果一定要公网访问,最好放在带登录验证的反向代理、VPN 或 Cloudflare Tunnel 后面。
如果打不开,先看 Dashboard 日志。
```
docker logs -f hermes-dashboard
```
## 7、安全提醒
VPS 上跑 agent,一定要保守一点。
飞书、Telegram、Dashboard 都可以开放给自己用,但 Hermes Agent API 端口不要直接暴露到公网。
上面的配置里,Hermes Agent API 只绑定到 127.0.0.1,只有服务器本机能访问。Dashboard 默认也绑定到 127.0.0.1。如果你改成 0.0.0.0,一定要确认访问范围。
如果你有域名,可以再用 Nginx Proxy Manager、Caddy、Cloudflare Tunnel 这类工具加 HTTPS 和访问控制。
如果只是自己临时用,至少也要在 VPS 防火墙或安全组里,只放行你要用的 Dashboard 端口。
## 8、如何升级
进入~/hermes-agent 目录 。
拉取新镜像。
```
docker compose pull
```
重新启动。
```
docker compose up -d
```
清理旧镜像。
```
docker image prune
```
升级前如果担心翻车,可以先把整个目录备份一下。
```
cd ~
tar -czf hermes-agent-backup.tar.gz hermes-agent
```
## 9、如何停止和删除
进入 ~/hermes-agent 目录。
停止容器。
```
docker compose stop
```
重新启动。
```
docker compose start
```
删除容器,但保留数据。
```
docker compose down
```
彻底删除数据之前要想清楚。
```
cd ~
rm -rf ~/hermes-agent
```
这一步会删除你的配置、记忆、技能和工作目录,执行前最好先备份。
## 10、Docker 常用命令
看正在运行的容器。
```
docker ps
```
看所有容器。
```
docker ps -a
```
看 Hermes Agent 日志。
```
docker logs -f hermes
```
看 Dashboard 日志。
```
docker logs -f hermes-dashboard
```
进入 Hermes Agent 容器。
```
docker exec -it -u hermes hermes bash
```
进入 Hermes Agent 交互界面。
```
docker exec -it -u hermes hermes /opt/hermes/.venv/bin/hermes
```
重新按 compose 文件启动全部服务。
```
docker-compose up -d --force-recreate
```
停止全部服务,也就是 hermes 和 dashboard。
```
docker compose stop
```
删除容器但保留数据目录。
```
docker compose down
```
## 最后说几句
Hermes Agent 这类 agent,最适合的形态其实是长期在线。
它不太像一个临时打开用一下的聊天窗口,更像一个你放在旁边的工作节点。今天让它记一点东西,明天让它处理一点任务,过几天它还能继续接上。
所以,把它放到 VPS 或 NAS 上,体验会稳定很多。
但也因为它能操作文件、能跑命令、能连接外部服务,权限一定要慢慢给。
先给一个单独的数据目录,先跑通最小配置,再接飞书或 Telegram,再开官方 Dashboard 和更多平台。
这样用起来会安心很多。
## 相关链接
- [黄小木 reposted](https://x.com/ai_xiaomu)
- [Jun](https://x.com/Junljm)
- [@Junljm](https://x.com/Junljm)
- [368](https://x.com/Junljm/status/2049747768504357356/analytics)
- [Docker 从入门到实践](https://yeasy.gitbook.io/docker_practice/di-yi-bu-fen-ru-men-pian/03_install)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [3:08 PM · Apr 30, 2026](https://x.com/Junljm/status/2049747768504357356)
- [368 Views](https://x.com/Junljm/status/2049747768504357356/analytics)
- [View quotes](https://x.com/Junljm/status/2049747768504357356/quotes)
---
*导出时间: 2026/4/30 16:42:59*