n8n 工作流自动化平台部署教程
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.js、pnpm、Rust(部分原生依赖)等,具体请参考项目文档。
3. 安装与部署步骤
3.1 方式一:快速安装脚本(使用Docker)
这是最简单、最快捷的方式,适合快速体验。
打开终端(Terminal),执行以下命令:
1
curl -fsSL https://get.n8n.io | sh
- 此脚本会自动检测系统、安装 Docker(如果未安装)并启动 n8n 容器。
- 脚本运行过程中会显示进度,等待完成即可。
启动完成后:
- 在浏览器中访问
http://localhost:5678。 - 您将看到 n8n 的编辑界面,可以开始创建工作流。
- 在浏览器中访问
3.2 方式二:手动使用Docker
如果您已经安装了 Docker,可以更精细地控制容器运行。
创建持久化数据卷(用于存储工作流、凭证等):
1
docker volume create n8n_data
运行 n8n 容器:
1
2
3
4
5docker 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:将数据卷挂载到容器内配置目录,确保数据持久化。
后台运行(守护模式) :
如果要让容器在后台持续运行,可以将-it --rm替换为-d:1
2
3
4
5
6docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
--restart unless-stopped \
docker.n8n.io/n8nio/n8n访问
http://localhost:5678。
3.3 方式三:使用npm全局安装(本地运行)
此方式适合在本地开发环境或服务器上直接运行 Node.js 进程。
全局安装 n8n:
1
npm install n8n -g
启动 n8n:
1
n8n start
指定数据目录(可选,默认在用户目录下):
1
n8n start --data-directory=/path/to/your/data
访问:浏览器打开
http://localhost:5678。
注意:使用 npm 安装的方式,数据库默认使用 SQLite。如需使用 PostgreSQL 等生产级数据库,需要通过环境变量配置(见下文)。
3.4 方式四:从源码构建(面向开发者)
如果您想修改源码或参与开发,可以按以下步骤构建。
克隆仓库:
1
2git clone https://github.com/n8n-io/n8n.git
cd n8n安装依赖(项目使用 pnpm):
1
pnpm install
构建项目:
1
pnpm build
启动开发模式(支持热加载):
1
pnpm start
访问:
http://localhost:5678。
4. 高级配置(生产环境)
对于生产部署,建议通过环境变量进行配置,以增强安全性、稳定性和性能。
4.1 基础安全设置
N8N_BASIC_AUTH_ACTIVE=true:启用基本身份验证。N8N_BASIC_AUTH_USER和N8N_BASIC_AUTH_PASSWORD:设置登录用户名和密码。N8N_ENCRYPTION_KEY:设置加密密钥(用于加密凭证),需是一个32字符的随机字符串。
4.2 数据库配置(使用外部数据库)
默认使用 SQLite。生产环境建议使用 PostgreSQL。
DB_TYPE=postgresdbDB_POSTGRESDB_HOST=your-db-hostDB_POSTGRESDB_DATABASE=n8nDB_POSTGRESDB_USER=your-userDB_POSTGRESDB_PASSWORD=your-password
4.3 端口与访问
N8N_PORT=5678:指定监听端口。N8N_HOST=your-domain.com:指定主机名(用于生成链接)。N8N_PROTOCOL=https:如果使用HTTPS,设置此变量。
4.4 Docker 运行时配置环境变量
在 Docker 运行时,使用 -e 参数传递环境变量:
1 | docker run -d \ |
5. 常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
无法访问 localhost:5678 |
服务未启动或端口被占用 | 检查容器/进程是否运行,确认端口是否被其他程序占用。 |
| Docker 容器立即退出 | 数据卷权限问题或端口冲突 | 检查日志:docker logs n8n。确保 v n8n_data 卷挂载正确。 |
| npm 安装失败 | Node.js 版本不兼容或网络问题 | 检查 Node.js 版本(>=18),使用国内镜像源(如淘宝镜像)。 |
| 工作流执行失败 | 凭证配置错误或外部服务不可达 | 检查各节点的凭证(如API密钥)是否正确,并确保网络连通性。 |
| 数据丢失 | 未挂载持久化数据卷 | 确保 Docker 运行时使用了 -v 参数挂载卷,或 npm 方式指定了 --data-directory。 |
6. 总结
n8n 是一个功能强大、部署灵活的自动化平台。
核心部署路径:
- 快速体验:使用官方安装脚本
curl -fsSL https://get.n8n.io | sh,立即通过 Docker 运行。 - 手动控制:使用 Docker 命令或
npm install n8n -g安装,获得更多配置灵活性。 - 生产部署:务必配置加密密钥、外部数据库(如PostgreSQL)和基本认证,并使用 Docker 的
--restart策略或系统服务(如 systemd)确保高可用性。 - 开发贡献:从 GitHub 克隆源码,使用
pnpm构建和运行。
成功启动后,您将进入 n8n 的 Web 编辑器,可以通过拖拽节点来创建从简单到复杂的自动化工作流。














