n8n 是一个”fair-code”(源码可见)的工作流自动化平台,允许您通过视觉化画布构建复杂的自动化流程,连接超过 1500+ 应用和服务。它原生支持AI能力,可与多种模型(OpenAI、Anthropic、Google等)集成,并支持自托管或云端部署。


1. 部署方式选择

n8n 提供了多种部署方式,您可以根据自己的需求和技术栈选择:

部署方式 适用场景 难度
快速安装脚本(推荐) 新手快速体验,使用Docker ⭐ 简单
Docker(手动) 熟悉Docker的用户,生产环境 ⭐⭐ 中等
npm安装 开发者本地测试或集成 ⭐⭐ 中等
源码构建 开发贡献或深度定制 ⭐⭐⭐ 较复杂

2. 前提条件

根据您选择的部署方式,需要准备以下环境:

  • Docker方式:安装 Docker 和 Docker Compose(可选)。
  • npm方式
    • Node.js:版本 18.x 或 20.x(推荐 LTS)。
    • npm:随 Node.js 安装。
  • 源码构建
    • 需要 Node.jspnpmRust(部分原生依赖)等,具体请参考项目文档。

3. 安装与部署步骤

3.1 方式一:快速安装脚本(使用Docker)

这是最简单、最快捷的方式,适合快速体验。

  1. 打开终端(Terminal),执行以下命令:

    1
    curl -fsSL https://get.n8n.io | sh
    • 此脚本会自动检测系统、安装 Docker(如果未安装)并启动 n8n 容器。
    • 脚本运行过程中会显示进度,等待完成即可。
  2. 启动完成后

    • 在浏览器中访问 http://localhost:5678
    • 您将看到 n8n 的编辑界面,可以开始创建工作流。

3.2 方式二:手动使用Docker

如果您已经安装了 Docker,可以更精细地控制容器运行。

  1. 创建持久化数据卷(用于存储工作流、凭证等):

    1
    docker volume create n8n_data
  2. 运行 n8n 容器

    1
    2
    3
    4
    5
    docker run -it --rm \
    --name n8n \
    -p 5678:5678 \
    -v n8n_data:/home/node/.n8n \
    docker.n8n.io/n8nio/n8n
    • -p 5678:5678:将容器的5678端口映射到主机的5678端口。
    • -v n8n_data:/home/node/.n8n:将数据卷挂载到容器内配置目录,确保数据持久化。
  3. 后台运行(守护模式)
    如果要让容器在后台持续运行,可以将 -it --rm 替换为 -d

    1
    2
    3
    4
    5
    6
    docker run -d \
    --name n8n \
    -p 5678:5678 \
    -v n8n_data:/home/node/.n8n \
    --restart unless-stopped \
    docker.n8n.io/n8nio/n8n
  4. 访问 http://localhost:5678

3.3 方式三:使用npm全局安装(本地运行)

此方式适合在本地开发环境或服务器上直接运行 Node.js 进程。

  1. 全局安装 n8n

    1
    npm install n8n -g
  2. 启动 n8n

    1
    n8n start
  3. 指定数据目录(可选,默认在用户目录下):

    1
    n8n start --data-directory=/path/to/your/data
  4. 访问:浏览器打开 http://localhost:5678

注意:使用 npm 安装的方式,数据库默认使用 SQLite。如需使用 PostgreSQL 等生产级数据库,需要通过环境变量配置(见下文)。

3.4 方式四:从源码构建(面向开发者)

如果您想修改源码或参与开发,可以按以下步骤构建。

  1. 克隆仓库

    1
    2
    git clone https://github.com/n8n-io/n8n.git
    cd n8n
  2. 安装依赖(项目使用 pnpm):

    1
    pnpm install
  3. 构建项目

    1
    pnpm build
  4. 启动开发模式(支持热加载):

    1
    pnpm start
  5. 访问http://localhost:5678


4. 高级配置(生产环境)

对于生产部署,建议通过环境变量进行配置,以增强安全性、稳定性和性能。

4.1 基础安全设置

  • N8N_BASIC_AUTH_ACTIVE=true:启用基本身份验证。
  • N8N_BASIC_AUTH_USERN8N_BASIC_AUTH_PASSWORD:设置登录用户名和密码。
  • N8N_ENCRYPTION_KEY:设置加密密钥(用于加密凭证),需是一个32字符的随机字符串。

4.2 数据库配置(使用外部数据库)

默认使用 SQLite。生产环境建议使用 PostgreSQL。

  • DB_TYPE=postgresdb
  • DB_POSTGRESDB_HOST=your-db-host
  • DB_POSTGRESDB_DATABASE=n8n
  • DB_POSTGRESDB_USER=your-user
  • DB_POSTGRESDB_PASSWORD=your-password

4.3 端口与访问

  • N8N_PORT=5678:指定监听端口。
  • N8N_HOST=your-domain.com:指定主机名(用于生成链接)。
  • N8N_PROTOCOL=https:如果使用HTTPS,设置此变量。

4.4 Docker 运行时配置环境变量

在 Docker 运行时,使用 -e 参数传递环境变量:

1
2
3
4
5
6
7
8
9
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=your-password \
-e N8N_ENCRYPTION_KEY=your-32-char-secret-key \
docker.n8n.io/n8nio/n8n

5. 常见问题排查

问题 可能原因 解决方案
无法访问 localhost:5678 服务未启动或端口被占用 检查容器/进程是否运行,确认端口是否被其他程序占用。
Docker 容器立即退出 数据卷权限问题或端口冲突 检查日志:docker logs n8n。确保 v n8n_data 卷挂载正确。
npm 安装失败 Node.js 版本不兼容或网络问题 检查 Node.js 版本(>=18),使用国内镜像源(如淘宝镜像)。
工作流执行失败 凭证配置错误或外部服务不可达 检查各节点的凭证(如API密钥)是否正确,并确保网络连通性。
数据丢失 未挂载持久化数据卷 确保 Docker 运行时使用了 -v 参数挂载卷,或 npm 方式指定了 --data-directory

6. 总结

n8n 是一个功能强大、部署灵活的自动化平台。

核心部署路径

  1. 快速体验:使用官方安装脚本 curl -fsSL https://get.n8n.io | sh,立即通过 Docker 运行。
  2. 手动控制:使用 Docker 命令或 npm install n8n -g 安装,获得更多配置灵活性。
  3. 生产部署:务必配置加密密钥外部数据库(如PostgreSQL)和基本认证,并使用 Docker 的 --restart 策略或系统服务(如 systemd)确保高可用性。
  4. 开发贡献:从 GitHub 克隆源码,使用 pnpm 构建和运行。

成功启动后,您将进入 n8n 的 Web 编辑器,可以通过拖拽节点来创建从简单到复杂的自动化工作流。

项目地址:https://github.com/n8n-io/n8n