让 Hermes Agent 7×24 小时稳定运行:一份可复用的 VPS 安全部署笔记
Hermes 装在自己电脑上是真好用,但有个很扎心的问题:电脑一休眠、一关机,它就跟着下班了。
我作为它的"老板",肯定希望自己睡觉、出门玩的时候,它还能继续盯着定时任务、监控消息、处理那些我懒得管的活。
可我又不想 24 小时开着家里的电脑费电。最省事的办法当然是丢到 VPS 上跑。但新问题马上来了——
Hermes 和 OpenClaw 这类 Agent 权限大得吓人,几乎能碰到服务器上任何文件。如果你的 VPS 里放着 SSH 私钥、钱包密钥、一些重要文档……我反正不太敢让它随便翻。
(当然,如果你愿意单独买一台空 VPS 只跑 Hermes,那下面这些可以跳过。但大多数人就一台机器,又想用又想安全,怎么办?)
我自己的方案是:VPS + Docker + 非 root 用户跑 Hermes。
Docker 把 Hermes 关进容器里,碰不到宿主机其他东西
再专门建一个普通用户跑容器,权限再降一档
下面是我实际跑通的步骤,尽量精简,不绕弯子。
关于 VPS 的选择
建议挑一台网络条件比较稳定的 VPS,跑 Hermes 时连接外部服务会顺畅一些。
Hermes Agent 本身很轻,尤其 Docker 部署时,主要开销就是 Python 进程、SQLite 内存数据库和 Gateway,不需要 GPU。
配置参考下表:
1. 建一个专用用户(用户名:hermes)
sudo adduser --disabled-password --gecos "" hermes
sudo usermod -aG sudo hermes # 加入 sudo 组
sudo passwd hermes # 设置密码
su - hermes # 切换到 hermes 用户2. 安装 Docker(Ubuntu/Debian 示例)
官方一键脚本或者 apt 装一下 docker-ce + docker-compose-plugin 就行。
3. 克隆并启动
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up -d注意全程在 hermes 用户下操作。跑完执行 docker compose ps,能看到两个容器在跑:
一个 gateway,一个 dashboard。
4. 初始化设置
docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes setup"按自己的偏好配大模型、Telegram、微信。
注意:选 Nous Portal 当大模型时,要打开浏览器链接做认证。VPS 没图形界面,所以在自己的台式机或笔记本上打开那个链接完成认证就行。
5. 解决权限问题(最容易踩坑的一步)
你以为到这就完事了?没有。
通过 Telegram 或微信给 Hermes 发消息,会看到认证错误:
但用下面的命令进容器里跑 Hermes 命令行,大模型却是正常的:
docker compose exec -it gateway bash
source /opt/hermes/.venv/bin/activate && hermes原因是权限。执行 ls -alh ~/ 会看到:
... drwx------ 18 10000 10000 4.0K Apr 27 15:31 .hermes ...其他文件用户名和组都是 hermes,只有 .hermes 显示成 10000:10000。
先把所有者改回来:
sudo chown -R hermes:hermes ~/.hermes
chmod -R 755 ~/.hermes执行下面命令拿到 hermes 用户的 UID 和 GID,记下来:
编辑 ~/hermes-agent/.env,在最后加上:
HERMES_UID=1001 # 改成你 id -u hermes 的结果
HERMES_GID=1001 # 改成你 id -g hermes 的结果再编辑 ~/hermes-agent/docker-compose.yml:
大部分应该和我一样,不一样的地方对着改就行。
然后重启:
docker compose down
docker compose up -d现在再用 Telegram 或微信发消息,应该就通了。
到这一步,你就有了一个 7×24 小时不下班的 Hermes。随时随地喊它干活。
附录:常用命令速查
docker compose down # 关闭镜像
docker compose up -d # 启动镜像
docker compose up -d --build # 强制重建镜像 + 启动
docker compose exec -it gateway bash # 进入 gateway 容器
docker compose restart gateway # 重启 gateway
docker compose logs gateway | tail -30 # 查看 gateway 最后 30 条日志
docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes status"
docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes model"更新 Hermes:
cd ~/hermes-agent
git fetch
git rebase
docker compose up -d --build官方文档:https://hermes-agent.nousresearch.com/docs/user-guide/docker