n8n 自托管:搭建你的工作流自动化中心
如果你用过 IFTTT、Zapier 这类自动化工具,但又对把数据交给第三方服务感到不安,n8n 是最值得考虑的开源替代。它支持可视化拖拽搭建工作流,400+ 服务集成,而且可以完全自托管,数据不出自己的服务器。
你需要:
- 一台能跑 Docker 的机器(VPS、NAS、或者本地 WSL 都行)
- Docker 和 Docker Compose
如果你还没有 Docker 环境,可以参考 Rancher Desktop 的安装方式,或者直接在 Linux/WSL 下安装 Docker Engine。
部署 n8n
Section titled “部署 n8n”最简单的方式是用 Docker Compose,新建一个目录,写入 docker-compose.yml:
version: '3'
services: n8n: image: n8nio/n8n restart: unless-stopped ports: - "5678:5678" environment: - GENERIC_TIMEZONE=Asia/Shanghai - TZ=Asia/Shanghai - N8N_SECURE_COOKIE=false volumes: - ./n8n_data:/home/node/.n8n启动:
docker compose up -d打开浏览器访问 http://你的服务器IP:5678,首次访问会要求创建管理员账号,邮箱密码自己设,不需要联网验证。
数据全部存在 ./n8n_data 目录里,包括你的工作流、凭证、执行记录,备份这个目录就等于备份了整个 n8n。
跑通第一个工作流:RSS 推送到 Telegram
Section titled “跑通第一个工作流:RSS 推送到 Telegram”熟悉界面最快的方式是直接做一个有用的东西。这里搭建一个”监控 RSS 源,有新文章就推送到 Telegram”的自动化。
第一步:创建 Telegram Bot
Section titled “第一步:创建 Telegram Bot”打开 Telegram,搜索 @BotFather,发送 /newbot,按提示设置 Bot 名字,完成后会拿到一个 Token,形如:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ记下来,之后要填进 n8n。
然后找到你刚创建的 Bot,随便发一条消息(比如”hi”),这一步是为了让 Bot 能识别到你的 Chat ID。
接着访问这个链接(把 Token 换成你自己的):
https://api.telegram.org/bot<你的Token>/getUpdates返回的 JSON 里找 chat.id 字段,记下来。
第二步:在 n8n 里搭建工作流
Section titled “第二步:在 n8n 里搭建工作流”-
登录 n8n,点击 New Workflow
-
添加第一个节点,搜索 RSS Feed Trigger,配置你想监控的 RSS 地址(比如你自己博客的
/index.xml,或者任何你关注的站点) -
设置触发间隔,比如每 30 分钟检查一次
-
添加第二个节点,搜索 Telegram,选择 Send Message 操作
-
在 Telegram 节点里创建新凭证(Credential),填入第一步的 Bot Token
-
Chat ID 填第一步拿到的 ID
-
Text 字段用表达式引用 RSS 节点的输出,比如:
新文章:{{ $json.title }}{{ $json.link }}- 连接两个节点,点击右上角 Active 开关启用工作流
完成后,RSS 源一旦有新内容,n8n 会自动检测并推送到你的 Telegram。
进阶:文件变动通知
Section titled “进阶:文件变动通知”如果你在用 Syncthing 之类的自托管同步工具,也可以用 n8n 搭一个”指定目录有新文件就通知”的流程:
- 用 Local File Trigger 节点(需要装社区节点)监控目录
- 连接 Telegram 或 Webhook 节点做通知
n8n 的优势就在这里:几乎任何”A 发生时做 B”的场景,都能用节点拼出来,不需要写代码。
几个实用提示
Section titled “几个实用提示”- 凭证管理:n8n 会加密保存所有 API Key、Token,存在数据目录里,不会明文暴露在工作流 JSON 里(除非你导出时选择包含凭证)
- 执行记录:左侧菜单的 Executions 可以看到每次运行的详细日志,调试报错很方便
- 社区节点:官方集成不够用时,可以在设置里启用社区节点(Community Nodes),生态相当丰富
- 备份:直接打包
n8n_data目录即可,迁移到新服务器解压启动就能用
n8n 比 IFTTT/Zapier 多花的这点部署成本,换来的是数据主权和无限的工作流数量限制(官方云服务通常按执行次数收费)。如果你已经有自托管的习惯,把 n8n 加入你的服务清单是很自然的一步。