整理一篇学习笔记,把看到的一些要点和自己的理解都记下来。
🔥承渊政道:个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统与网络知识》 《算法刷题指南》 《测评这篇活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》 《cpolar知识学习》
✨逆境不吐心中苦,顺境不忘来时路!✨
🎬 博主简介:
NAS除了存文件和跑下载任务,也很适合承载一些需要长期在线的轻量服务.AI Agent就是其中比较有意思的一类:模型能力来自外部API,但Agent本身可以常驻在自己的设备里,Web控制台、消息平台和配置都集中在这台机器上.这篇这篇使用一台刷了飞牛NAS ARM版的RK3566小主机部署Hermes.整个流程不是只做到“容器启动成功”,而是继续把实际使用链路跑通:先接入DeepSeek模型,再把Hermes连接到微信,最后给本地9119端口增加公网访问、固定二级子域名和HttpAuth基础认证.这样做完以后,这台原本只是24小时开机的小主机,就多了一项长期运行的AI Agent服务.平时可以直接从微信调用,需要管理时再进入WebUI,外出时也有固定入口可以访问.
目录
3.把Hermes接入微信4.让Hermes WebUI支持公网访问 5.配置固定二级子域名 6.给公网WebUI增加HttpAuth认证 7.总结1.Hermes是什么?为什么适合长期跑在NAS上?
Hermes是一个可以长期运行的AI Agent项目。和单纯“打开网页问一句、答一句”的聊天方式相比,这篇这篇更关注它作为常驻服务的使用方式:Agent一直运行在NAS里,通过不同入口被调用。
对NAS用户来说,这种部署方式有几个实际好处:设备本身长期在线,不需要每次用AI时再启动环境;配置和运行状态都集中在一台机器上;后续还能把调用入口扩展到微信和Web控制台。
这里不会把重点放在抽象介绍上,而是直接验证一条完整链路:Hermes能不能在ARM小主机上跑起来、能不能调用DeepSeek、能不能通过微信交互,以及WebUI能不能在外网访问。
Hermes在这篇文章里的定位很明确:把它作为一项长期运行在NAS中的AI Agent服务。平时可以通过终端和Web控制台使用,后面再接入微信,让调用入口从网页延伸到日常聊天窗口。NAS本身长期在线、适合跑Docker,于是比临时在个人电脑上启动更适合这种常驻型服务。
2.在飞牛NAS上部署Hermes
我这次使用的是一台 RK3566 小主机,已经刷好了飞牛 NAS ARM 版系统。
飞牛 NAS 本身支持 Docker,于是这里不需要单独安装 Docker,直接通过 SSH 执行脚本部署 Hermes 即可。
2.1开启Docker与SSH
下面开始实际部署。整个流程先把Hermes在飞牛NAS里跑起来,再完成模型配置和Web控制台验证。
先确认飞牛NAS中的Docker服务已经开启,接着到【系统设置】里启用SSH。后面的部署命令都需要通过终端执行。
在【系统设置】中找到【SSH】并启用:
ssh n1@192.168.50.212
如下图所示:
sudo -i
2.2部署Hermes
切换完成后执行下面的一键部署脚本,并在菜单中选择安装Hermes Agent:
curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-hermes/fnos-hermes.sh -o /tmp/fnos-hermes.sh && chmod +x /tmp/fnos-hermes.sh && /tmp/fnos-hermes.sh
按默认选项继续,进入Hermes初始化向导,并等待镜像拉取完成:
镜像拉取完成后,选择快速开始(Quick setup):
接下来进入模型给出商选择页面(Select provider)。这里按原文使用DeepSeek:
接着进入DeepSeek的API Key页面创建一个Key:
https://platform.deepseek.com/api_keys
复制Key后回到终端填写。粘贴时不会显示明文:
模型保持原文默认的deepseek-chat。进入消息平台配置后先暂时跳过,等Hermes本体跑通后再单独接微信:
稍等片刻,看到初始化完成提示后继续:
接下来直接运行Hermes进行第一次测试:
服务运行后,先发一个简单问题确认模型和容器环境是否正常:
你好,你是谁?你当前运行在什么操作系统上,接入的是什么模型?
如下图所示:
确认对话正常后,输入下面的指令退出当前会话,继续完成剩余配置:
/exit
到这里Hermes基础配置已经完成,同时可以通过下面的地址访问Web控制台:
http://192.168.50.212:9119
如下图:
3.把Hermes接入微信
Hermes本体确认可用后,再重新执行前面的部署脚本,进入消息平台配置:
curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-hermes/fnos-hermes.sh -o /tmp/fnos-hermes.sh && chmod +x /tmp/fnos-hermes.sh && /tmp/fnos-hermes.sh
在菜单中输入6,进入聊天平台网关配置:
进入平台列表后选择【WeiXin】:
随后按提示开始扫码登录:
扫码连接后,按原文依次使用默认的配对审批模式、禁用群聊消息,并继续使用当前连接账号:
配置完成后回到消息平台菜单,选择【Done】退出:
回到主菜单后选择【8】,重启Hermes服务让配置生效:
重启完成后,可以直接从微信端发送消息测试:
此时已经能收到响应,但按照原文配置还需要完成配对审批:
hermes pairing approve weixin QKHBWHAJ
回到脚本菜单,选择【10】执行容器内Hermes原生命令:
输入前面的配对审批命令完成授权:
出现授权成功提示后,这个微信用户就可以继续和Hermes对话:
你好,你是谁?请你介绍一下你自己,你都能干什么?
如下图所示:
微信侧确认回复正常后,说明Hermes与微信已经接通。接下来可以继续给它更具体的任务,例如原文测试了一个落地页生成提示词:
请你给我写一个用于旅游的好看点儿的宣传落地页
效果(DeepSeek-chat模型):
到这里,本地部署、模型调用和微信接入都已经跑通,Hermes作为NAS常驻AI助手的基本链路已经建立。
4.让Hermes WebUI支持公网访问
前面已经完成Hermes部署和微信接入。如果平时主要通过微信调用,到这里说实话已经可以使用。
但Hermes Web控制台仍然是局域网服务。人在外面时,如果需要查看状态、调整配置或临时进入控制台,就还缺一个远程访问入口。
接下来使用cpolar把飞牛NAS本地的9119端口映射到公网,让Hermes WebUI可以从外部网络访问。
4.1什么是 cpolar?
cpolar在这里负责把局域网内的Hermes WebUI映射到公网。
Hermes本地已经运行在9119端口,于是只需要给这个Web端口创建公网入口,就可以在外部设备上打开控制台。
这里继续直接在飞牛NAS上安装和配置cpolar。
4.2安装 cpolar
回到前面连接飞牛NAS的SSH终端,执行安装命令:
sudo curl https://get.cpolar.sh | sh
如下图所示:
安装完成后查看cpolar服务状态:
sudo systemctl status cpolar
如下图所示:
如果状态显示active (running),说明cpolar已经正常启动。
接着在浏览器中通过NAS的9200端口进入cpolar Web UI。原文示例地址为:
http://192.168.50.212:9200
如下图所示:
进入cpolar Web UI后登录账号,后续公网隧道都在这个页面中配置。
4.3将 Hermes WebUI 映射到公网
登录后进入【隧道管理 → 隧道列表】。原文环境中已经存在两条隧道:
原文直接编辑website隧道,也可以根据自己的环境新建一条隧道:
创建或更新完成后,进入【状态 → 在线隧道列表】,查看生成的公网访问地址:
这里继续按原文使用HTTPS地址测试:
如果可以正常进入Hermes管理界面,就说明9119端口的公网访问已经打通。
5.配置固定二级子域名
随机公网地址适合先验证远程访问是否可用。如果准备长期使用Hermes WebUI,地址经常变化就不够方便。
原文下一步使用cpolar的固定二级子域名功能,把随机访问地址改成固定入口。下面继续按原文流程配置。
5.1设置二级子域名
先进入原文给出的预留页面:
https://dashboard.cpolar.com/reserved
进入【预留】后选择【保留二级子域名】,填写地区、名称和描述,然后点击【保留】:
列表中显示了一条已保留的二级子域名记录:
- 地区:显示为China Top。
- 二级域名:显示为hermes01。
二级域名以自己账号实际保留成功的名称为准。
5.2修改隧道为子域名方式
回到【隧道管理 → 隧道列表】,找到要修改的Hermes隧道:
点击【编辑】,把域名类型改为【二级子域名】,填写前面保留的名称并更新:
更新后进入【状态 → 在线隧道列表】,确认公网地址已经切换成固定二级子域名形式:
继续用HTTPS地址测试访问:
6.给公网WebUI增加HttpAuth认证
前面已经给Hermes WebUI配置了固定公网地址。
固定地址更方便,但也意味着需要额外关注控制台的访问保护。
这里继续使用HttpAuth,让访问者先通过用户名和密码认证,再进入Hermes WebUI。
6.1配置 HttpAuth
回到cpolar Web UI,进入【隧道管理 → 隧道列表】,找到前面配置好的Hermes隧道并点击【编辑】:
展开【高级】选项,找到HttpAuth,按用户名:密码格式填写:
admin:123456
中间使用英文冒号:。示例仅用于说明格式,实际使用不要设置成admin:123456这类弱密码。
如下图所示:
填写完成后点击【更新】保存:
再次访问Hermes WebUI公网地址时,会先出现HttpAuth认证窗口:
认证通过后才能进入Hermes WebUI。
这样至少在公网地址和控制台之间多了一层基础访问限制。
安全提醒:HttpAuth 只是基础访问认证,适合给个人测试环境增加一层保护。公网访问地址不要随意公开,密码也尽量设置复杂一些。
7.总结
这套部署最终形成的是一条比较完整的Hermes使用链:
- 飞牛NAS + Docker:让Hermes长期运行在RK3566小主机上;
- DeepSeek:作为本文实际接入的模型给出商;
- 微信:把AI Agent从Web控制台带到日常聊天入口;
- 9119端口 + cpolar:让Hermes WebUI从局域网扩展到公网;
- 固定二级子域名:给长期访问给出稳定入口;
- HttpAuth:在公网WebUI外再增加一层基础认证。
这篇文章的重点也不是把Hermes描述成万能AI,而是把部署、模型、消息平台和远程访问这几件事真正串起来。跑通以后,后续无论继续增加提示词、自动化任务还是其他消息入口,都有了一个可以继续扩展的基础环境。
🚀真正的勇者不是流泪的人,而是含泪奔跑的人!
敬请期待下一篇文章内容
每日心灵鸡汤: 行动,是对焦虑最好的回答!
许多事情,不管计划再精细,想得再周全,都无法预测未来发展的全貌.聪明的人,永远不会把美好的时光留给焦虑.先完成,再完美,只要方向对了,就可以先干起来,在行动中发现问题、解决问题.不断根据新的情况调整路线和状态,你才能走得更远.万事开头难,当你迈出第一步,最难的部分说实话就已经过去了.
暂时整理到这里。以上都是个人理解,可能有疏漏,欢迎指正。
评论 (0)
暂无评论