飞牛NAS搭建自动化工作流:n8n部署教程
飞牛NAS(fnOS)作为一款面向个人与家庭用户的国产NAS系统,凭借其优秀的Docker兼容性和简洁的WebUI,正在成为极客们搭建家庭自动化中心的首选平台。今天,我们不聊影音下载,而是聚焦于一个能极大提升效率的场景:利用 n8n 在飞牛NAS上搭建属于自己的自动化工作流引擎。
n8n 是一款开源、可自托管的自动化工具,被誉为“自托管界的Zapier”。它采用节点式可视化编排,能轻松连接数百个应用(如Telegram、Gmail、飞书、数据库、Webhook等),且数据完全掌控在自己的NAS中,隐私与安全性极佳。
本文将手把手演示如何在飞牛NAS的Docker环境中部署 n8n,并配置一个简单的自动化示例,帮助你快速上手。
为什么选择在飞牛NAS上跑 n8n?
飞牛NAS的系统底层基于Debian Linux,内置了完整的Docker引擎,且通过 App 中心可以一键安装 Portainer 等管理工具。相比云服务器,NAS 部署 n8n 的优势在于:
- 数据不出内网,敏感信息(如API密钥、数据库凭证)本地存储。
- 功耗低,7x24小时待命,适合长期运行定时任务。
- 与 NAS 上的其他服务(如 qBittorrent、Jellyfin)内网互通,延迟极低。
部署准备:创建持久化目录
在飞牛NAS的“文件管理”中,建议为 n8n 单独建立数据目录。路径可参考 /vol1/1000/docker/n8n(实际卷号以你NAS为准)。这个目录将存放 n8n 的数据库(SQLite)和用户工作流文件,避免容器重建时数据丢失。
方案一:使用飞牛NAS的Docker图形界面部署
飞牛NAS 的“Docker”应用提供了可视化的容器管理界面,适合不熟悉命令行的用户。
- 在飞牛桌面打开“Docker”应用,进入“镜像”页面,点击“拉取镜像”。
- 在搜索框中输入
n8nio/n8n,选择最新标签(通常为latest),点击拉取。 - 拉取完成后,进入“容器”页面,点击“创建容器”。
-
按以下配置填写:
-
容器名称:
n8n - 镜像:选择已拉取的
n8nio/n8n - 启用“高级模式”或“端口映射”,将容器端口
5678映射到 NAS 的任意空闲端口(如5678)。建议使用默认端口,方便记忆。 - 存储空间映射:点击“添加目录”,将本地路径
/vol1/1000/docker/n8n挂载到容器路径/.n8n。 -
环境变量(可选):添加
TZ=Asia/Shanghai(时区),以及N8N_SECURE_COOKIE=false(如果不打算用HTTPS,避免登录后跳转异常)。 -
点击“创建”并启动容器。
方案二:SSH命令行部署(进阶推荐)
如果你更习惯命令行,或者需要更精细的参数控制,SSH 是最佳选择。通过飞牛NAS的“终端”或你的SSH工具连接上NAS,执行以下命令:
docker run -d \
--name n8n \
--restart unless-stopped \
-p 5678:5678 \
-v /vol1/1000/docker/n8n:/home/node/.n8n \
-e TZ=Asia/Shanghai \
-e N8N_SECURE_COOKIE=false \
n8nio/n8n:latest
参数说明:
-d后台运行。--restart unless-stopped确保NAS重启或Docker服务异常时自动拉起容器。-v持久化数据目录,注意冒号前是NAS本地路径,冒号后是容器内路径。-e设置环境变量。这里关闭了安全Cookie,因为飞牛NAS默认使用IP+端口访问,如果不关闭会导致登录后无法保存工作流。
命令执行后,输入 docker ps 查看容器状态,如果显示 Up 且端口映射正确,则部署成功。
初始化与基础配置
打开浏览器,访问 http://你的NAS_IP:5678。首次访问会要求创建管理员账号。按照提示设置邮箱和密码即可。登录后,n8n 会引导你选择使用场景,这里直接点击“跳过”或“暂不”,进入主界面。
需要注意,n8n 默认是英文界面。若想使用中文,可以点击右上角头像 -> Settings -> Personalization,将 Language 改为 “Chinese (Simplified)”。界面汉化程度较高,不影响使用。
实战演练:构建一个“NAS下载通知”自动化
为了验证工作流是否正常运行,我们来搭建一个最简单的自动化:当飞牛NAS的下载目录新增文件时,n8n 自动通过 Webhook 发送通知到你的 Telegram(或飞书)。
这里我们使用 n8n 内置的 Webhook 和 HTTP Request 节点,避免复杂的外部触发器配置。
- 点击左侧“工作流”,创建一个新工作流,命名为“NAS下载通知”。
- 从右侧节点库中搜索并拖入
Webhook节点。点击该节点,在“HTTP Method”选择POST,路径填写notification。点击“Listen for test event”按钮,此时节点会生成一个测试URL。 - 再拖入一个
HTTP Request节点,连接到 Webhook 节点之后。在HTTP Request节点的配置中: - Method 选择
POST - URL 填写你 Telegram Bot 的 API 地址(格式:
https://api.telegram.org/bot<你的BOT_TOKEN>/sendMessage) - 在“Body Content Type”选择
JSON - 在“JSON Body”中使用表达式引用 Webhook 传入的数据,例如:
json { "chat_id": "<你的聊天ID>", "text": "{{ $json.body.message }}" } - 点击页面右上角“执行工作流”按钮,然后回到 Webhook 节点,复制测试URL,在浏览器或curl中发送一个POST请求:
bash curl -X POST http://你的NAS_IP:5678/webhook-test/notification -H "Content-Type: application/json" -d '{"message":"新电影已下载完成"}' - 如果配置正确,你的 Telegram 会立即收到这条消息。测试成功后,点击 Webhook 节点右上角的“激活”开关,然后点击工作流右上角的“Active”按钮,使整个流程生效。
这样,任何能向该Webhook发送POST请求的客户端(比如你自定义的下载脚本、或者飞牛NAS的“文件变动通知”脚本)都能触发通知。
进阶优化:使用定时任务与表达式
n8n 的强大之处在于它的 Schedule Trigger 节点。你可以创建一个每天早晨9点自动汇总NAS存储状态并发送邮件的流程。拖入 Schedule Trigger,设置 Cron 表达式为 0 9 * * *,后面连接 System Info 节点(获取CPU/内存/磁盘),再连接 Email Send 节点。这样,一个无人值守的运维日报就完成了。
此外,n8n 支持复杂的表达式(基于JavaScript),你可以在字段中使用 {{ $json.someField }} 动态提取数据,甚至编写简单的函数,实现数据格式化、数组遍历等操作,极大提升了灵活性。
安全与维护建议
- 修改默认端口:在 Docker 映射时,将
5678映射为其他随机高位端口,减少被扫描攻击的风险。 - 启用HTTPS:如果通过公网访问,建议在飞牛NAS的“网络设置”中配置反向代理,并挂载SSL证书。n8n 环境变量中设置
N8N_PROTOCOL=https和N8N_HOST=你的域名。 - 定期备份:由于 n8n 的数据存储在
/.n8n目录中,只需定期打包该目录即可完成备份。你也可以在飞牛NAS的“定时任务”中设置脚本自动备份。
总结
通过 Docker 在飞牛NAS上部署 n8n,三步即可完成:拉取镜像、映射目录、设置端口。n8n 的节点式编排让非程序员也能轻松创建强大的自动化流程。无论是连接家庭智能设备、定时抓取RSS,还是与 NAS 自身的下载任务联动,n8n 都能成为你的效率中枢。
建议你从今天开始,从最简单的 Webhook 通知入手,逐渐熟悉 n8n 的逻辑,然后尝试接入你常用的 API,你会发现,原本需要手动操作的琐碎事情,现在都能在飞牛NAS上静默运行,自动完成。这,才是自建NAS的真正乐趣。
暂无评论,来说两句吧