n8n是一个强大的工作流自动化工具,可以帮助你连接不同的应用程序和服务,无需编写复杂的代码。本指南将带你完成在本地计算机上部署n8n的完整过程。
什么是n8n?
n8n(发音为"n-eight-n")是一个开源的工作流自动化工具,类似于Zapier或Make(原Integromat),但具有更高的灵活性和自定义能力。它允许你通过可视化界面创建复杂的工作流,连接各种应用程序和服务。
为什么选择本地部署?
虽然n8n提供了云托管版本,但本地部署有以下优势:
-
完全控制你的数据和隐私
-
无需支付云服务费用
-
可以离线使用
-
自定义配置更灵活
准备工作
在开始之前,请确保你的系统满足以下要求:
-
Node.js 16.x 或更高版本
-
npm 或 yarn
-
至少2GB RAM(复杂工作流需要更多)
-
稳定的互联网连接(用于安装和连接外部服务)
安装方法
方法1:使用npm/yarn全局安装
这是最简单的安装方式:
# 使用npm
npm install n8n -g
# 或使用yarn
yarn global add n8n
安装完成后,运行:
n8n
n8n服务将启动,默认监听http://localhost:5678
。
方法2:使用Docker
如果你更喜欢使用Docker,可以运行以下命令:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
这将在Docker容器中运行n8n,并将数据持久化到本地目录。
方法3:从源代码运行
如果你想使用最新开发版本:
# 克隆仓库
git clone https://github.com/n8n-io/n8n.git
# 进入目录
cd n8n
# 安装依赖
npm install
# 构建项目
npm run build
# 启动n8n
npm run start
配置n8n
n8n提供了多种配置选项,可以通过环境变量或配置文件进行设置。
基本配置
创建.env
文件并添加以下内容:
N8N_PORT=5678
N8N_HOST=localhost
N8N_PROTOCOL=http
N8N_EDITOR_BASE_URL=http://localhost:5678
安全配置
为了增加安全性,建议设置:
# 基本认证
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=你的用户名
N8N_BASIC_AUTH_PASSWORD=你的密码
# 或JWT认证
N8N_JWT_AUTH_ACTIVE=true
N8N_JWT_AUTH_HEADER=Authorization
N8N_JWT_AUTH_HEADER_VALUE_PREFIX=Bearer
N8N_JWKS_URI=https://your-domain.com/.well-known/jwks.json
访问n8n界面
启动n8n后,打开浏览器访问:
http://localhost:5678
如果是第一次访问,系统会提示你创建管理员账户。
创建你的第一个工作流
-
点击"Workflows" > "New workflow"
-
为工作流命名(例如"我的第一个工作流")
-
点击"Add first step"按钮
-
从列表中选择一个触发器(如"Manual"或"Schedule")
-
添加一个操作节点(如"HTTP Request"或"Email")
-
配置每个节点的参数
-
点击"Execute Node"测试工作流
-
满意后点击"Active"激活工作流
持久化设置
默认情况下,n8n使用SQLite内存数据库,重启后数据会丢失。要持久化数据:
使用SQLite文件数据库
DB_TYPE=sqlite
DB_SQLITE_VACUUM_ON_STARTUP=true
DB_SQLITE_DATABASE=/path/to/n8n.db
使用PostgreSQL
DB_TYPE=postgresdb
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_USER=username
DB_POSTGRESDB_PASSWORD=password
高级配置
电子邮件设置
要接收工作流错误通知:
N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST=smtp.your-email.com
N8N_SMTP_PORT=587
N8N_SMTP_USER=your-email@example.com
N8N_SMTP_PASSWORD=your-password
N8N_SMTP_SENDER=your-email@example.com
外部Webhook URL
如果你想让n8n接收外部Webhook:
N8N_HOST=your-public-ip-or-domain
N8N_WEBHOOK_URL=https://your-domain.com/
使用nginx反向代理
在生产环境中,建议使用nginx作为反向代理:
server {
listen 80;
server_name n8n.your-domain.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
备份与恢复
手动备份
-
停止n8n服务
-
备份数据库文件(如果是SQLite)
-
备份
~/.n8n
目录(包含工作流配置)
自动备份
可以创建一个定期运行的n8n工作流,将数据备份到云存储。
常见问题解决
问题1:端口冲突
-
解决方案:修改
N8N_PORT
环境变量或停止占用端口的其他服务
问题2:内存不足
-
解决方案:增加系统内存或限制n8n内存使用(Docker可使用
-m
标志)
问题3:节点执行失败
-
检查节点配置
-
查看执行日志获取详细错误信息
-
确保所有必需的API密钥和权限已设置
性能优化
-
数据库优化:对于生产环境,使用PostgreSQL而非SQLite
-
缓存设置:配置Redis缓存
-
负载均衡:在高负载情况下运行多个n8n实例
-
定期维护:清理旧执行数据
结论
本地部署n8n为你提供了一个强大、灵活且私密的自动化平台。通过本指南,你应该已经成功在本地计算机上安装并配置了n8n,并创建了第一个工作流。随着你对n8n的熟悉,你可以探索其丰富的节点库,构建更复杂的自动化流程。
n8n的社区非常活跃,遇到问题时可以在官方论坛或GitHub仓库寻求帮助。
祝你自动化之旅愉快!