部署环境
服务器系统:Linux
配置目录:/opt/hermes
源码目录:/opt/hermes/hermes-agent
因为我家里有一个物理服务器,之前是联想的Thinkpad,是很早以前的版本,但是内存非常够,所以我就有些时候会将它作为 本地有主力服务模拟服务器。
我还有两台云服务器,需要的时候就会让端口映射到云服务器上面,后台终端一直用tmux做终端管理,所以就可以一直挂着。
端口映射命令:
# 博客脱敏版(直接复制,把大写占位符换成你的真实值)
ssh -p YOUR_SSH_PORT -N -R 0.0.0.0:YOUR_REMOTE_PORT:127.0.0.1:YOUR_LOCAL_PORT root@YOUR_SERVER_IP
| 占位符 | 填什么 | 示例 |
|---|---|---|
YOUR_SSH_PORT | 远程 SSH 端口 | 22(默认的22端口的话,就不用填,直接删掉也可以的) |
YOUR_REMOTE_PORT | 远程服务器对外暴露的端口 | 1213 |
YOUR_LOCAL_PORT | 本地机器服务的端口 | 144 |
YOUR_SERVER_IP | 远程服务器公网 IP | xxx.xxx.xxx.xxx |
之前hermes非常火,所以我尝试在我的云服务器上,用一键部署命令安装了一次,但一台成功了,一台没成功。我原本想安装rocket,但rocket也没安装成功,所以非常悲伤,但是我在这个物理服务器上部署了一下就一马成功了,于是我有些时候经常去那里。但是我现在就是想把这个物理服务器上的部署到云服务器上去。于是我就查了一下方案,我一开始就问了在我物理服务器上面的Hermes自己,因为我觉得他自己肯定最了解自己嘛。
其实主要就是要将那个.hermes文件夹给打包好,然后传送到服务器的对应目录上\
注意前面有一个.,说明这个是隐藏文件夹,加入说你是用命令行查看的话,得用ls -al,这个命令才能够显示隐藏文件夹,要不然显示的只是普通的文件夹~
这个基本上装在哪个用户上就在哪个用户目录下,root装的话就在/root/目录下面。
接下来就是将这个打包然后传送到云服务器上面\
完整迁移步骤
1. 本地数据备份(迁移前先执行)
关闭所有正在运行的Hermes进程后,打包所有配置、技能、记忆、会话记录:
tar zcvf hermes-backup.tar.gz ~/.hermes
该压缩包包含所有自定义配置、历史会话、专属技能、记忆数据,完整保留当前使用的所有个性化内容
2. 备份包传输到云服务器
# 替换为实际服务器IP,端口和想要的目录
scp -P YOUR_SSH_PORT hermes-backup.tar.gz USER@xxx.xxx.xxx.xxx:/opt/
3. 服务器端数据准备
cd /opt
mkdir hermes
# 解压备份包到目标目录,自动剥离路径前缀
tar zxvf hermes-backup.tar.gz -C hermes --strip-components 2
安装步骤
- 进入源码目录
cd /opt/hermes/hermes-agent
- 全局安装Python包
pip install . --force-reinstall
- 配置全局环境变量(指定配置目录)
echo "export HERMES_HOME=/opt/hermes" >> /etc/profile && source /etc/profile
- 软链接到全局bin路径(解决conda环境下命令找不到的问题)因为我当时conda的base环境忘记退了,要是没有的话好像是不用的
ln -s /root/miniconda3/bin/hermes /usr/local/bin/
验证安装
执行以下命令,输出版本号即为成功:
hermes --version
输入hermes就直接启动了
原来的api接口都不用重新配,都是同样的~
而且因为记忆全都搬迁过来了,所以还是之前一样调教好的hermes。
常见问题解决
- 任意目录执行
hermes提示 command not found → 重新执行软链接命令即可 - 配置不生效/找不到配置
→ 确认
echo $HERMES_HOME输出为/opt/hermes,否则重新执行环境变量配置命令
常用启动方式
- 交互式聊天
hermes
直接启动
- 启动网关服务(对接聊天平台/API)
# 前台启动
hermes gateway run
# 安装为后台服务+开机自启
hermes gateway install && hermes gateway start
- 查看服务状态
hermes gateway status
踩坑记录
- 安装完执行
hermes --version正常,切换目录/新建会话后提示command not found→ 原因:conda环境的bin路径默认不在系统全局PATH中,执行软链接命令即可解决:ln -s /root/miniconda3/bin/hermes /usr/local/bin/ - 配置文件不生效,默认读取
~/.hermes路径的配置 → 原因:未配置全局HERMES_HOME环境变量,执行echo "export HERMES_HOME=/opt/hermes" >> /etc/profile && source /etc/profile即可
多终端运行提示
使用tmux实现多终端会话隔离,无需担心进程退出问题,启动方式:
- 新建tmux会话跑网关服务:
tmux new -s hermes-gateway→ 进入会话后执行hermes gateway run,按Ctrl+B D后台挂起 - 新建tmux会话跑交互任务:
tmux new -s hermes-task→ 随时可以切回会话查看进度 - 查看所有tmux会话:
tmux ls - 恢复指定会话:
tmux a -t 会话名无需额外使用nohup,tmux会自动保留会话进程,SSH断开也不会丢失运行状态~