1861 字
9 分钟

n8n + Notion

摘要#

本笔记旨在提供一个从零开始部署、配置并使用自托管 n8n 的完整指南。内容涵盖了两种主流的安装方式(Node.js 与 Docker)、首次启动设置、一个从 RSS 订阅同步数据至 Notion 的实战工作流,并最终解决了在中国大陆环境下使用 AI 节点时最关键的网络代理配置问题。


1. n8n 的安装:两种核心方式#

选择合适的安装方式是稳定使用 n8n 的第一步。

方式一:使用 Node.js (npm) 安装 (适合快速体验)#

这种方式最直接,适合想快速在本地电脑上体验 n8n 功能的场景。

  • 前置要求:

    • 已安装 Node.js (建议使用 LTS 版本)。
  • 安装命令: 打开您的终端 (Terminal / CMD / PowerShell),运行以下命令进行全局安装:

    Terminal window
    npm install -g n8n
  • 启动命令: 安装完成后,直接在终端中运行:

    Terminal window
    n8n
NOTE

优点: 安装简单快捷,无需额外软件。
缺点: n8n 进程会与您的本地环境耦合,且关闭终端窗口通常会中止 n8n 服务。不适合作为长期运行的生产服务。

方式二:使用 Docker 安装 (推荐用于长期稳定运行)#

Docker 提供了一个隔离、可移植的环境,是自托管 n8n 的最佳实践。它能确保 n8n 及其依赖项独立运行,并且便于管理和数据持久化。

  • 前置要求:
    • 已安装 Docker 和 Docker Compose。

方法一:使用 Docker Run 命令#

  1. 打开命令提示符或 PowerShell
    您可以在开始菜单中搜索 “Command Prompt” 或 “PowerShell” 并打开它。

  2. 执行以下命令来启动 n8n 容器

Terminal window
docker run -it --rm --name n8n -p 5678:5678 n8nio/n8n
  1. 访问 n8n
    当您在命令行中看到类似 “Editor is now accessible” 的消息时,说明 n8n 已经成功启动。打开您的浏览器并访问 http://localhost:5678 即可开始使用。

方法二:使用 Docker Compose#

  • 配置 docker-compose.yml:

    1. 在您希望存放 n8n 数据的文件夹中,创建一个名为 docker-compose.yml 的文件。
    2. 将以下内容粘贴到文件中:
    version: '3.7'
    services:
    n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
    # 将 n8n 的 5678 端口映射到您电脑的 5678 端口
    - "127.0.0.1:5678:5678"
    volumes:
    # 将 n8n 的数据持久化到本地,防止容器重启后数据丢失
    - n8n_data:/home/node/.n8n
    environment:
    # 设置时区,避免时间错乱问题
    - GENERIC_TIMEZONE=Asia/Shanghai
    volumes:
    n8n_data:
  • 启动命令: 在存放 docker-compose.yml 文件的目录下,打开终端并运行:

    Terminal window
    docker-compose up -d

    n8n 将会在后台稳定运行。

TIP

数据持久化: volumes 的配置至关重要,它将 n8n 的所有工作流、凭证等数据保存在您电脑的一个 Docker 数据卷中,名为 n8n_data


2. 首次启动与设置#

无论使用哪种方式启动,后续步骤都是相同的。

  1. 访问 n8n: 打开浏览器,访问 http://localhost:5678
  2. 创建所有者账户: 您会看到一个欢迎页面,引导您创建第一个用户。这个用户是该 n8n 实例的所有者 (Owner),拥有最高权限。
  3. 填写信息: 按照提示填写您的姓名、邮箱和密码。
  4. 登录: 完成注册后,系统将自动登录,您会进入 n8n 的主仪表盘,准备好创建您的第一个工作流。

3. 创建第一个工作流:RSS 订阅同步至 Notion#

这是一个经典的自动化场景,我们将从 RSS 源获取文章,并将其关键信息存入一个 Notion 数据库。

  • 准备工作:
    1. 一个 RSS 订阅链接 (例如:http://arxiv.org/rss/cs.AI)。
    2. 在 Notion 中创建一个数据库,并包含以下属性:
      • Title (标题)
      • Link (URL)
      • Published Date (日期)

步骤一:创建工作流与 RSS 读取节点#

  1. 在 n8n 仪表盘,点击 “Add workflow”,创建一个空白画布。
  2. 点击 + 号,搜索并添加 RSS Read 节点。
  3. 在右侧配置面板的 URL 字段中,粘贴您的 RSS 订阅链接。
  4. 点击右下角的 Test workflow,n8n 会抓取最新的几条 RSS 条目,您可以在输出中看到数据。

步骤二:数据处理 (Set 节点)#

RSS 返回的数据字段可能不规整,我们需要用 Set 节点进行格式化和映射。

  1. 点击 RSS Read 节点右侧的 + 号,添加 Set 节点。
  2. 开启 “Keep Only Set” 选项,以保持数据流的干净。
  3. 点击 Add Value 添加以下值:
    • Value 1:
      • Name: notion_title
      • Value (表达式): {{ $json.title }}
    • Value 2:
      • Name: notion_link
      • Value (表达式): {{ $json.link }}
    • Value 3 (日期格式化):
      • Name: notion_date
      • Value (表达式): {{ DateTime.fromRFC2822($json.pubDate).toISO() }}
NOTE

pubDate 的原始格式 Notion 不识别,DateTime.fromRFC2822(...).toISO() 表达式使用 n8n 内置的 Luxon 库将其转换为 Notion 接受的标准 ISO 格式。

步骤三:写入 Notion (Notion 节点)#

  1. 点击 Set 节点后的 + 号,添加 Notion 节点。
  2. 配置凭证: 首次使用需点击 “Credential” > “Create New”,按照指引完成对 Notion 的授权。
  3. 配置节点:
    • Resource: Database/Page
    • Operation: Append
    • Database ID: 填入您 Notion 数据库的 ID。
    • Properties: 点击 Add Property,将数据库属性与 Set 节点的输出进行映射:
      • Title -> {{ $json.notion_title }}
      • Link -> {{ $json.notion_link }}
      • Published Date -> {{ $json.notion_date }}

步骤四:测试与激活#

  1. 再次点击 Test workflow,整个流程会完整运行一遍。
  2. 检查您的 Notion 数据库,确认新条目已成功写入。
  3. 点击右上角的开关将其从 Inactive 切换为 Active,工作流将根据您的触发器设置自动运行。

4. 关键技巧:为 n8n 配置网络代理#

当您的工作流需要访问如 OpenAI、Gemini 等在中国大陆无法直接访问的 API 时,必须为 n8n 本身配置网络代理。

为什么需要配置代理?#

n8n 是一个后端服务,它独立于您的浏览器运行。您为浏览器或系统设置的“科学上网”代理,n8n 默认是无法使用的。因此,我们会收到 timeout (连接超时) 错误。解决方案是通过环境变量,明确告知 n8n 使用您的代理服务。

核心:找到你的代理地址#

首先,在您的代理软件 (Clash, V2RayN 等) 中找到其提供的 HTTP 代理端口。

  • 常见地址: 127.0.0.1
  • 常见端口: 7890, 10809, 1080 等。

本文假设您的代理地址为 http://127.0.0.1:7890

配置方法:根据你的安装方式选择#

针对 Node.js / npm 安装#

您需要在启动 n8n 的同一个终端窗口中,先设置环境变量,再启动服务。

Windows (PowerShell):

Terminal window
# 在 PowerShell 中
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"
# 或者在 CMD 中
set HTTPS_PROXY=http://127.0.0.1:7897
set HTTP_PROXY=http://127.0.0.1:7897

macOS / Linux:

Terminal window
export HTTPS_PROXY="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
WARNING

这种方式设置的环境变量仅对当前终端会话有效。关闭窗口后需重新设置。

针对 Docker 安装#

这是更稳定、一劳永逸的方法。我们需要修改 docker-compose.yml 文件。

  1. 打开 docker-compose.yml 文件。
  2. n8n 服务的 environment 部分添加代理变量。
version: '3.7'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
# --- 在这里添加代理配置 ---
- HTTPS_PROXY=http://host.docker.internal:7890
- HTTP_PROXY=http://host.docker.internal:7890
# --- 其他环境变量 ---
- GENERIC_TIMEZONE=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
WARNING

为什么使用 host.docker.internal 在 Docker 容器内部,127.0.0.1 指的是容器自身,而不是您的宿主机(电脑)。host.docker.internal 是一个特殊的 DNS 名称,它会正确地指向您的电脑 IP,从而让容器内的 n8n 能够找到并使用您在电脑上运行的代理服务。

  1. 保存文件后,在终端中重启 n8n 容器以使配置生效:
    Terminal window
    docker-compose down && docker-compose up -d

完成代理配置后,您的 n8n 工作流中的 AI 节点或其他需要代理的节点就能正常工作了。

n8n + Notion
https://neonrain.cn/posts/n8n + Notion/
作者
Pandora
发布于
2025-12-26
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-12-26

目录