在飞牛 NAS 上用 Docker 部署 Hermes Agent 的完整步骤
为什么选飞牛 NAS 跑 Hermes Agent
Hermes Agent 是一个支持自我进化的开源 AI 智能体框架,能调用工具、记住历史、甚至从交互中生成新技能。它官方提供 Docker 镜像,对家庭用户来说,部署在常年开机的 NAS 上再合适不过。

飞牛 NAS(运行 fnOS 系统)自带 Docker 管理功能,x86_64 架构兼容主流镜像,16GB 内存也足够应付轻量级推理任务。更重要的是,NAS 通常有固定内网 IP,适合作为家庭 AI 服务的常驻节点——不用额外开一台电脑,电费和噪音都省了。
部署前的环境检查
在动手前,先确认你的飞牛 NAS 满足基本条件:
- 系统为 fnOS(当前主流版本均内置 Docker)
- 内存建议 4GB 以上(实测 8GB 可流畅运行,16GB 更从容)
- 已分配固定内网 IP(如 192.168.1.100),方便后续访问
- 有至少 5GB 可用存储空间(用于镜像、数据库和日志)
准备 Docker 环境
开启 Docker 服务
进入飞牛 NAS 后台,在「应用中心」找到「Docker」并启动。如果未安装,系统会提示你一键安装。安装完成后,确保服务状态为“运行中”。
确认 docker-compose 可用
飞牛 NAS 的 Docker 套件通常已集成 docker-compose。你可以通过 SSH 登录 NAS(需先在设置中开启 SSH 服务),执行:
docker-compose --version若返回版本号(如 v2.24.0),说明可用。如果没有,可手动安装或改用纯 docker run 方式,但推荐用 compose,配置更清晰。
替换国内镜像源(可选但推荐)
由于网络原因,直接拉取 Docker Hub 镜像可能极慢甚至失败。建议替换为国内加速器,比如阿里云或中科大镜像源。
在 SSH 中编辑 Docker 配置:
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json写入以下内容(以阿里云为例):
{
"registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]
}保存后重启 Docker 服务:
sudo systemctl restart docker注意:阿里云镜像加速地址需登录容器镜像服务控制台获取专属链接。
创建数据持久化目录
Hermes Agent 的数据库、配置和上传文件需要持久化,否则容器删除后数据全丢。在 NAS 上创建专用目录,例如:
/volume1/docker/hermes/data这个路径要记牢,后面 docker-compose.yml 会用到。确保该目录有读写权限(fnOS 默认用户组通常没问题)。
编写 docker-compose.yml
在 NAS 上新建一个项目目录,比如 /volume1/docker/hermes,然后在其中创建 docker-compose.yml 文件。内容如下:
version: '3.8'
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes-agent
ports:
- "8080:8080"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
restart: unless-stopped关键点说明:
ports映射 8080 端口,你可以在浏览器通过http://<NAS_IP>:8080访问volumes将本地./data目录挂载到容器内的/app/data,实现数据持久化TZ设置时区,避免日志时间错乱restart: unless-stopped确保 NAS 重启后自动拉起服务
首次启动与配置向导
方法一:通过飞牛 NAS 图形界面(新手友好)
- 打开 Docker 应用
- 切换到「Compose」标签页
- 点击「导入」,选择刚才创建的
docker-compose.yml文件所在目录 - 点击「启动」
系统会自动拉取镜像并运行容器。首次启动较慢,耐心等待 2–5 分钟。
方法二:通过 SSH 命令行(熟手推荐)
进入项目目录,执行:
cd /volume1/docker/hermes
docker-compose up -d-d 表示后台运行。可通过 docker logs -f hermes-agent 查看实时日志。
进入配置向导
容器启动后,Hermes 会自动进入初始化流程。此时访问 http://<你的NAS_IP>:8080,页面会引导你完成:
- 设置管理员密码
- 配置默认 LLM 后端(如 Ollama、OpenAI、Anthropic 等)
- 启用或禁用内置工具(文件操作、网页搜索、代码执行等)
注意:如果你还没部署本地大模型(如 Ollama),可以先选 OpenAI 并填入 API Key 测试流程,后续再切换。
验证部署是否成功
访问 Web Dashboard
打开浏览器,输入 http://192.168.1.100:8080(替换成你的 NAS IP),应看到 Hermes 的登录界面。输入刚才设置的密码,进入主界面后可创建智能体、发起对话、查看记忆库。
测试 OpenAI 兼容 API
Hermes 提供标准 OpenAI API 接口,地址为 http://<NAS_IP>:8080/v1。你可以用 curl 测试:
curl http://192.168.1.100:8080/v1/models如果返回模型列表(如 hermes-llm),说明 API 服务正常。这意味你可以将 Hermes 当作本地 LLM 网关,供其他应用调用。
数据备份与版本升级
备份策略
所有关键数据都在 /volume1/docker/hermes/data 目录下,包含:
- SQLite 数据库(
hermes.db) - 上传的文件
- 智能体配置
建议定期将整个 data 文件夹复制到 NAS 的其他卷或外接硬盘。飞牛 NAS 自带的「备份」功能可设置自动任务。
升级到最新版
当 Hermes 发布新版本时,只需三步:
- 停止当前容器:
docker-compose down - 拉取新镜像:
docker-compose pull - 重新启动:
docker-compose up -d
由于数据目录独立挂载,升级不会影响已有智能体和记忆。
多账号部署方案
如果你想为不同家庭成员或用途运行多个 Hermes 实例,只需复制项目目录并修改端口和数据路径。例如:
- 主账号:
/volume1/docker/hermes-main→ 端口 8080 - 孩子账号:
/volume1/docker/hermes-kid→ 端口 8081
每个 docker-compose.yml 修改 ports 和 volumes 路径即可,互不干扰。
资源占用实测参考
在飞牛 NAS(Intel N5105 CPU, 16GB RAM)上运行 Hermes + Ollama(加载 7B 模型)的典型负载:
- 内存:约 6–8 GB(Ollama 占大头)
- CPU:空闲时 <5%,推理时峰值 60–80%
- 磁盘:初始镜像约 2GB,数据目录随使用缓慢增长
如果只跑 Hermes(不带本地模型,仅转发 API 请求),内存占用可降至 500MB 以内,几乎无感。
常见问题与排错
容器启动失败,日志报错“permission denied”
通常是挂载目录权限问题。在 SSH 中执行:
chmod -R 755 /volume1/docker/hermes/data
chown -R 1000:1000 /volume1/docker/hermes/dataHermes 容器默认以 UID 1000 用户运行,需确保目录归属正确。
无法访问 8080 端口
检查三点:
- 飞牛 NAS 防火墙是否放行 8080 端口(默认通常开放)
- 路由器是否做了端口隔离(家庭内网一般无此问题)
- 容器是否真正在运行:
docker ps查看状态
首次加载极慢或卡住
首次启动需下载前端资源并初始化数据库,耐心等待。若超过 10 分钟无响应,查看日志:
docker logs hermes-agent常见原因是镜像拉取失败(网络问题)或磁盘空间不足。
API 返回 401 Unauthorized
Web 界面登录正常但 API 报错,可能是因为你未在请求头中携带 Authorization: Bearer <your-api-key>。Hermes 的 API Key 在 Web 界面「设置」→「API Keys」中生成。
部署之后能做什么
Hermes Agent 不只是个聊天界面。部署完成后,你可以:
- 自动化日常任务:让它每天早上报天气、查日程、汇总新闻
- 构建家庭知识库:上传文档,让智能体回答家庭相关问题
- 作为开发助手:通过 API 接入 Home Assistant,实现语音控制家电
- 持续学习:开启“经验回放”功能,让智能体从历史对话中提炼新技能
关键是把 Hermes 当成一个可编程的“数字管家”,而不仅是一个聊天机器人。它的真正价值在于长期运行、积累记忆、并与你的数字生活深度集成。
现在,你的飞牛 NAS 不再只是存储设备,而成了家庭 AI 中枢。