云部署Hermes服务

2026-09-18T20:52:26+08:00 | 4分钟阅读

Mizar
云部署Hermes服务

云部署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

image-20260916000421212

**注意:**如果出现[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

image-20260916000331080

之后浏览器访问 http://服务器IP:8787 即可使用 WebUI。

**注意:**需要在服务器上放行8787端口,否则从自己的电脑通过公网也连不上。image-20260916002701016

Hermes配置

OAuth 登录

  • 命令行输入

    hermes setup
    
  • 选择 quick setup

    会推送给您一个 授权登录的链接

    image-20260916231621148

  • 在该页面完成授权登录img

    选择$0的免费订阅,完成后出现下图,点击连接img

    连接成功后出现连接,如下图所示。image-20260916230737490

    授权成功后,出现下图所示。image-20260916231045641

  • 验证

    • 在服务器终端执行:

      docker exec -it hermes hermes auth status nous
      

      应该会显示 nous: logged in

      image-20260916232237045

    • 检查 Hermes 的整体状态:

      docker exec -it hermes hermes portal info
      
  • 重启 Gateway 让它加载认证

    现在 Gateway 可能还在用旧的(未认证)状态运行。重启一下让它加载新凭证:

    docker restart hermes
    

    然后观察日志,确认不再出现 no Nous authentication found 报错:

    docker logs hermes --tail 30
    

    一切正常的话,你就可以开始使用 Hermes 了。

配置模型

可以使用之前的Hermes免费模型。

  1. 在 Docker 容器内执行以下命令:

    docker exec -it -u hermes hermes hermes model
    
  2. 进入交互式界面后:

    1. Provider 列表中选择 Nous Portal

      img

    2. 在模型列表中选择免费的模型

      进入 Nous Portal 的模型列表后,选择免费层级的模型。根据之前的信息,免费套餐可用的模型包括:

      • poolside/laguna-s-2.1:free
      • stepfun/step-3.7-flash:free
      • poolside/laguna-xs-2.1:free

      img

      img

    3. 保存并退出

    选择完模型后,按提示保存。如果界面有 SaveConfirm 选项,按回车确认。之后会自动退出到命令行。

  3. 重启 Gateway 加载新配置

docker restart hermes
  1. 验证
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 权限(可选) 如果这个子用户需要执行管理员操作(比如安装软件、重启服务),你需要把他加入 sudowheel 用户组。在大多数 Linux 发行版中,加入 wheel 组即可获得 sudo 权限:

sudo usermod -aG wheel amoon

在 Ubuntu/Debian 系统中,通常加入 sudo 组:sudo usermod -aG sudo 用户名

img

新用户登录

  • 如果当前就在服务器上,可以直接切换用户测试:

    su - amoon
    

    输入刚才设置的密码,如果能进入 [amoon@hcss-ecs-9434 ~]$ 这样的提示符,就说明一切正常。

  • 如果是远程 SSH 登录,命令是:

    ssh amoon@你的服务器公网IP
    

系统会提示你输入刚才设置的密码。如果希望免密登录,还需要为他配置 SSH 密钥对(将他的公钥添加到 /home/用户名/.ssh/authorized_keys 文件中)。

image-20260916011014118

© 2024 - 2026 拾光舍

湘ICP备2025117227号-1 | 公安备案图标 湘公网安备43040002000293号
在线工具资源网站

在线工具官网

ProcessOn:👉ProcessOn在线作图

腾讯文档:👉腾讯文档

FlowUs 息流:👉FlowUs 息流

Mermaid Live Editor:👉在线流程图和图表编辑器 - 美人鱼实时编辑器

ME2在线工具(加密工具):👉ME2在线工具-在线开发学习生活工具箱

Textln:👉Textln文本智能云平台-通用文本解析

MinerU:👉MinerU数据提取工具

Crontab:👉Cron Expression Examples - Crontab.guru

正则表达式测试网站:👉regex101: build, test, and debug regex

技术资源网站

技术资源官网

Spring:👉Spring官网

MyBatis中文网 :👉MyBatis 中文网

Redis中文网:👉Redis中文网

Zookeeper:👉Apache ZooKeeper官网

Raft算法:👉Raft Consensus Algorithm官网

Hadoop:👉Apache Hadoop官网

Hive:👉Apache Hive官网

Phoenix:👉Apache Phoenix官网

Bootstrap中文网:👉Bootstrap中文网

Element:👉组件 | Element

Layui :👉Layui - 极简模块化前端 UI 组件库(官方文档)

FreeMarker :👉FreeMarker 中文官方参考手册

ztree树插件: 👉zTree – jQuery 树插件官网

x File Storage:👉x File Storage官网

社交链接

© 2024 - 2026 拾光舍

湘ICP备2025117227号-1 | 公安备案图标 湘公网安备43040002000293号

ESC

使用扫一扫,扫码加我