n8n 教程:轻松上手强大的开源自动化工具
你是否曾想过让不同的应用程序为你协同工作,自动处理那些重复乏味的任务?比如,当你的网站有新用户注册时,自动发送一封欢迎邮件,并在你的团队聊天工具中收到通知。这就是自动化工具的魅力所在,而 n8n 就是其中一款强大、灵活且开源的佼佼者。
本文将带你从零开始,轻松上手 n8n,并通过一个实用的案例,让你真正体验到自动化工作流的便利。
什么是 n8n?
n8n 是一个开源的、可视化的工作流自动化工具。你可以通过拖拽节点、连接服务,来创建复杂的自动化任务,而无需编写大量代码。你可以将它看作是 IFTTT 或 Zapier 的一个更强大、更可定制的开源替代品。
为什么选择 n8n?
- 开源免费:你可以完全控制你的数据,可以自托管在自己的服务器上。
- 可视化编辑器:通过直观的拖拽界面,让创建和理解工作流变得简单。
- 强大的灵活性:支持超过 200 种不同的应用集成,并且允许你通过代码节点执行自定义逻辑。
- 社区驱动:拥有一个活跃的社区,不断有新的节点和功能被添加进来。
安装 n8n
n8n 提供了多种安装方式,包括云版本、桌面应用和自托管。对于大多数开发者来说,使用 Docker 是最方便、最推荐的自托管方式。
使用 Docker 安装
-
创建
docker-compose.yml文件在你的项目目录中,创建一个名为
docker-compose.yml的文件,并填入以下内容:“`yaml
version: ‘3.8’services:
n8n:
image: n8nio/n8n
restart: unless-stopped
ports:
– “5678:5678”
volumes:
– ~/.n8n:/home/node/.n8n
environment:
– TZ=Asia/Shanghai # 设置你的时区
“`这个配置会:
* 使用官方的 n8n 镜像。
* 将容器的 5678 端口映射到你主机的 5678 端口。
* 将 n8n 的数据(工作流、凭证等)持久化到你主目录下的.n8n文件夹,防止容器重启后数据丢失。 -
启动 n8n
在
docker-compose.yml文件所在的目录中,运行以下命令:bash
docker-compose up -d -
访问 n8n
现在,打开你的浏览器,访问
http://localhost:5678。你就应该能看到 n8n 的主界面了。
n8n 核心概念
在开始创建工作流之前,我们先来了解几个核心概念:
- 工作流 (Workflow):一个完整自动化任务的蓝图,由一系列相互连接的节点组成。
- 节点 (Node):工作流的基本构建块,每个节点执行一个特定的操作。例如,一个节点可以用来接收数据,另一个可以用来发送邮件。
- 触发节点 (Trigger Node):每个工作流的起点,它决定了工作流何时开始执行。例如,“当收到一个 webhook 请求时”或“每小时执行一次”。
- 连接 (Connection):连接线将节点串联起来,定义了数据的流向。数据从一个节点的输出端流向下一个节点的输入端。
- 凭证 (Credentials):用于安全地存储访问各种服务(如 GitHub, Google, Discord)所需的认证信息(如 API 密钥、用户名密码等)。
实战教程:GitHub 提交自动通知到 Discord
接下来,让我们通过一个实际的例子来体验 n8n 的强大功能:当你的 GitHub 仓库有新的代码提交时,自动在你的 Discord 频道发送一条通知。
第 1 步:创建新工作流并添加 GitHub 触发器
- 在 n8n 界面中,点击 “Add workflow” 创建一个新的工作流。
- 点击 “+” 按钮,在节点列表中搜索 “GitHub” 并选择它。
- 在 GitHub 节点的 “Event” 字段中,选择 “Push”。
- n8n 会为你生成一个 Webhook URL。复制这个 URL。
第 2 步:在 GitHub 仓库中设置 Webhook
- 打开你的 GitHub 仓库页面,进入 “Settings” -> “Webhooks”。
- 点击 “Add webhook”。
- 将从 n8n 复制的 URL 粘贴到 “Payload URL” 字段中。
- “Content type” 选择 “application/json”。
- 在 “Which events would you like to trigger this webhook?” 中,选择 “Just the push event”。
- 确保 “Active” 已勾选,然后点击 “Add webhook”。
第 3 步:测试 GitHub 触发器
回到 n8n 界面,点击 GitHub 节点下方的 “Execute Node” (或 “Fetch test event”)。然后向你的 GitHub 仓库推送一次代码提交 (git push)。如果一切正常,n8n 的 GitHub 节点会捕获到这次 push 事件,并显示出详细的数据。
第 4 步:添加 Discord 节点并配置
- 在 n8n 工作流中,点击 GitHub 节点右侧的 “+” 按钮,搜索 “Discord” 并添加它。
- 你需要一个 Discord Webhook URL 来让 n8n 发送消息。
- 在你的 Discord 服务器中,进入频道设置 -> “Integrations” -> “Webhooks”。
- 创建一个新的 Webhook,并复制 “Webhook URL”。
- 回到 n8n,在 Discord 节点的 “Webhook URL” 字段中,粘贴你刚刚复制的 URL。
- 现在,我们可以定制要发送的消息内容。在 “Content” 字段中,我们可以使用来自上一个节点(GitHub 节点)的数据。
- 点击 “Content” 字段右侧的表达式编辑器图标
{=}。 - 你可以通过
{{$json.body...}}的方式来引用上一个节点的数据。例如,要获取提交信息和作者,你可以这样写:
New commit by {{$json.body.head_commit.author.name}}: {{$json.body.head_commit.message}} - 你还可以添加 “Embeds” 来发送格式更丰富的消息。
- 点击 “Content” 字段右侧的表达式编辑器图标
第 5 步:连接并激活工作流
- 将 GitHub 节点的输出端(右侧的小圆点)连接到 Discord 节点的输入端(左侧的小圆点)。
- 点击右上角的 “Activate” 开关,激活你的工作流。
现在,每当你向配置好的 GitHub 仓库推送新的提交时,你的 Discord 频道就会立即收到一条包含提交信息的通知!
更多探索
我们刚刚只触及了 n8n 功能的皮毛。你还可以探索:
- 错误处理:设置当工作流执行失败时要执行的操作。
- Code 节点:使用 JavaScript 或 Python 编写自定义逻辑来处理数据。
- 定时任务:使用 “Cron” 节点来按计划执行工作流。
- 丰富的应用集成:浏览节点列表,看看你还能连接哪些你喜欢的应用。
总结
n8n 是一个非常强大的自动化工具,它通过可视化的方式,极大地降低了实现复杂自动化的门槛。无论你是开发者、市场营销人员还是普通用户,都可以通过 n8n 将你的创意变为现实,从重复性的工作中解放出来,专注于更有价值的事情。
希望这篇教程能帮助你开启 n8n 的自动化之旅。现在就动手尝试,创建属于你自己的第一个自动化工作流吧!