云部署Hermes服务
2026-09-18T20:52:26+08:00 | 4分钟阅读

云部署Hermes服务
hermes安装
启动 Docker 容器
在云服务器上使用docker安装Hermes。
执行以下命令:
[root@hcss-ecs-9434 ~]# docker run -d \
--name hermes \
--restart unless-stopped \
-v /root/.hermes:/opt/data \
-p 8642:8642 \
nousresearch/hermes-agent:latest \
gateway run

**注意:**如果出现
[Errno 13] Permission denied: '/opt/data/kanban.db.init.lock'报错,解决步骤如下:第一步:停掉容器
docker rm -f hermes第二步:修复
/root/.hermes目录权限chown -R 10000:10000 /root/.hermes第三步:重新启动容器
docker run -d \ --name hermes \ --restart unless-stopped \ -v /root/.hermes:/opt/data \ -p 8642:8642 \ nousresearch/hermes-agent:latest \ gateway run启动后再次查看日志,
PermissionError应该消失了。
拉取并启动Hermes WebUI
执行以下命令:
[root@hcss-ecs-9434 ~]# docker run -d \
--name hermes-webui \
--restart always \
--user root \
-e HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui \
-e HERMES_WEBUI_AGENT_DIR=/home/hermeswebui/.hermes/hermes-agent \
-e HERMES_WEBUI_PASSWORD=你的新密码 \
-p 8787:8787 \
-v /root/.hermes:/home/hermeswebui/.hermes \
-v /www:/www \
ghcr.io/nesquena/hermes-webui:latest
注意:
如果出现报错
!! ERROR: HERMES_WEBUI_STATE_DIR not set:原因:
- 容器启动时会检查所有必需的环境变量。没有设置
HERMES_WEBUI_STATE_DIR,它就会直接退出,然后 Docker 的--restart always策略又会把它拉起来,再次因为同样的原因退出,形成死循环。🛠️ 解决方法:
删掉当前这个一直重启的容器,重新运行一条补上了环境变量的启动命令即可:
# 1. 删掉陷入重启循环的容器 docker rm -f hermes-webui # 2. 重新启动,加上 HERMES_WEBUI_STATE_DIR 环境变量 docker run -d \ --name hermes-webui \ --restart always \ -e HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui \ -p 8787:8787 \ -v /root/.hermes:/home/hermeswebui/.hermes \ -v /www:/www \ ghcr.io/nesquena/hermes-webui:latest这个路径
/home/hermeswebui/.hermes/webui位于你已挂载的/root/.hermes目录之下,WebUI 的会话和状态数据就能正常持久化了
启动后验证
# 查看两个容器是否都在运行
docker ps --filter "name=hermes"
# 查看 Gateway 日志,确认旧配置被正确加载
docker logs -f hermes

之后浏览器访问 http://服务器IP:8787 即可使用 WebUI。
**注意:**需要在服务器上放行
8787端口,否则从自己的电脑通过公网也连不上。
Hermes配置
OAuth 登录
命令行输入
hermes setup选择 quick setup
会推送给您一个 授权登录的链接

在该页面完成授权登录

选择
$0的免费订阅,完成后出现下图,点击连接。
连接成功后出现
连接,如下图所示。
授权成功后,出现下图所示。

验证
在服务器终端执行:
docker exec -it hermes hermes auth status nous应该会显示
nous: logged in。
检查 Hermes 的整体状态:
docker exec -it hermes hermes portal info
重启 Gateway 让它加载认证
现在 Gateway 可能还在用旧的(未认证)状态运行。重启一下让它加载新凭证:
docker restart hermes然后观察日志,确认不再出现
no Nous authentication found报错:docker logs hermes --tail 30一切正常的话,你就可以开始使用 Hermes 了。
配置模型
可以使用之前的Hermes免费模型。
在 Docker 容器内执行以下命令:
docker exec -it -u hermes hermes hermes model进入交互式界面后:
在 Provider 列表中选择 Nous Portal

在模型列表中选择免费的模型
进入 Nous Portal 的模型列表后,选择免费层级的模型。根据之前的信息,免费套餐可用的模型包括:
poolside/laguna-s-2.1:freestepfun/step-3.7-flash:freepoolside/laguna-xs-2.1:free


保存并退出
选择完模型后,按提示保存。如果界面有
Save或Confirm选项,按回车确认。之后会自动退出到命令行。重启 Gateway 加载新配置
docker restart hermes
- 验证
docker exec -it hermes hermes portal info
应显示 Model: ✓ using Nous as inference provider,且模型是你刚选的免费模型。
服务器创建子用户 (可选)
在 Linux 服务器上创建系统用户
本次是使用的华为云的弹性云服务器,安装的是 Linux 的CentOS系统,通过 SSH 登录服务器后,使用命令行创建用户。
1. 创建新用户
使用 useradd 命令来添加用户。如果你希望同时创建用户的家目录(/home/用户名),可以加上 -m 参数:
sudo useradd -m amoon
如果想给用户指定 Shell(比如
/bin/bash),可以加上-s /bin/bash。
2. 设置登录密码 创建用户后,需要为他设置一个密码才能登录:
sudo passwd amoon
系统会提示你输入并确认新密码。
3. 授予 sudo 权限(可选)
如果这个子用户需要执行管理员操作(比如安装软件、重启服务),你需要把他加入 sudo 或 wheel 用户组。在大多数 Linux 发行版中,加入 wheel 组即可获得 sudo 权限:
sudo usermod -aG wheel amoon
在 Ubuntu/Debian 系统中,通常加入
sudo组:sudo usermod -aG sudo 用户名。

新用户登录
如果当前就在服务器上,可以直接切换用户测试:
su - amoon输入刚才设置的密码,如果能进入
[amoon@hcss-ecs-9434 ~]$这样的提示符,就说明一切正常。如果是远程 SSH 登录,命令是:
ssh amoon@你的服务器公网IP
系统会提示你输入刚才设置的密码。如果希望免密登录,还需要为他配置 SSH 密钥对(将他的公钥添加到 /home/用户名/.ssh/authorized_keys 文件中)。



湘公网安备43040002000293号