本地 n8n 搭建教程:从环境准备到工作流测试(新手友好)
n8n是一款开源的可视化工作流自动化工具,支持对接API、数据库、办公软件等2000+节点
一、为什么要本地搭建n8n?
n8n是一款开源的可视化工作流自动化工具,支持对接API、数据库、办公软件等2000+节点,能实现“定时同步数据”“自动发送通知”“API批量调用”等自动化场景。相比云端版本,本地搭建的核心优势在于:
- 数据隐私可控:所有工作流配置、凭证信息都存储在本地,避免敏感数据上传云端;
- 自定义自由度高:可修改源码、扩展节点,适配个性化业务需求;
- 无资源限制:无需担心云端版的流量、节点数量限制,本地硬件足够即可无限使用。
二、前置准备:硬件与软件要求
1. 硬件要求(最低配置)
- CPU:双核及以上(推荐四核);
- 内存:2GB及以上(运行工作流时建议4GB+);
- 硬盘:预留10GB+空闲空间(存储镜像、工作流数据)。
2. 软件要求
根据搭建方案选择对应的工具(推荐新手优先用Docker,步骤更简单):
| 搭建方案 | 需安装软件 | 适用人群 |
|---|---|---|
| Docker | Docker Desktop(Windows/macOS)或Docker Engine(Linux) | 新手、追求快速部署 |
| Node.js | nvm(Node版本管理器)+ Node.js 18.x/20.x | 进阶用户、需自定义源码 |
三、本地搭建方案(两种可选)
方案一:Docker搭建(推荐新手)
Docker能避免环境依赖问题,一步启动n8n,适合绝大多数用户。
1. 安装Docker
- Windows/macOS:下载 Docker Desktop,双击安装后启动(需开启虚拟化,Windows需启用Hyper-V,macOS需允许系统权限);
- Linux(以Ubuntu为例):执行以下命令安装:
# 更新软件源
sudo apt update
安装Docker依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加Docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker Engine
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
# 配置免sudo使用Docker(可选)
sudo usermod -aG docker $USER
安装完成后,执行 docker --version 显示版本号即成功。
2. 拉取n8n镜像并启动
打开终端(Windows用PowerShell,Linux/macOS用终端),执行以下命令:
# 拉取最新版n8n镜像
docker pull n8nio/n8n
#启动n8n容器(核心命令,需注意数据卷路径)
#Windows:数据卷路径改为 //c/Users/你的用户名/.n8n(例://c/Users/ZhangSan/.n8n)
#Linux/macOS:直接用 ~/.n8n(对应/home/用户名/.n8n)
docker run -d
--name n8n \ # 给容器命名为n8n(方便后续管理)
-p 5678:5678 \ # 端口映射:本地5678端口 → 容器5678端口(n8n默认端口)
-v ~/.n8n:/home/node/.n8n \ # 数据卷挂载:本地目录保存n8n配置/工作流(防止数据丢失)
n8nio/n8n # 使用的镜像名
3. 验证启动
- 执行
docker ps,若看到名为“n8n”的容器状态为“Up”,说明启动成功; - 打开浏览器,访问
http://localhost:5678,能看到n8n登录界面即完成部署。
方案二:Node.js搭建(进阶)
若需修改n8n源码或自定义节点,可通过Node.js直接安装(需注意Node版本兼容性)。
1. 安装nvm(Node版本管理器)
nvm能快速切换Node版本,避免版本不兼容问题:
- Windows:下载 nvm-windows,安装后重启终端;
- Linux/macOS:执行命令安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 或用wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装后执行 nvm --version 验证。
2. 安装Node.js并切换版本
n8n要求Node.js版本为18.x或20.x(不支持16.x及以下),执行命令:
# 安装Node.js 18.x(LTS长期支持版)
nvm install 18
# 切换到18.x版本
nvm use 18
# 验证Node版本
node -v # 显示v18.x.x即成功
3. 安装并启动n8n
# 用npm全局安装n8n
npm install -g n8n
#启动n8n(默认端口5678)
n8n start
#若端口被占用,可修改端口(例:改为5679)
PORT=5679 n8n start
启动后访问 http://localhost:5678,进入n8n界面。
四、n8n初始化配置
首次访问n8n会进入初始化流程,按以下步骤操作:
- 创建管理员账号:输入邮箱、密码(建议用强密码,保护本地数据),点击“Create Account”;
- 同意协议:勾选“Terms of Service”和“Privacy Policy”,点击“Continue”;
- 界面熟悉:
- 左侧:工作流列表(My Workflows)、节点库(Nodes)、凭证管理(Credentials);
- 中间:工作流编辑区(拖拽节点即可搭建流程);
- 右侧:节点配置面板(设置节点参数,如API密钥、定时规则)。
五、快速测试:创建第一个工作流
为验证搭建成功,我们创建一个“定时打印日志”的简单工作流:
- 新建工作流:点击左上角“+ New Workflow”,命名为“Test Workflow”;
- 添加“定时触发”节点:
- 在左侧“Nodes”搜索“Schedule”,拖拽到编辑区;
- 右侧配置:“Interval”选择“Every 1 minute”(每1分钟触发一次),点击“Save”;
- 添加“日志输出”节点:
- 点击“Schedule”节点右侧的“+”,搜索“Logger”并添加;
- 右侧配置:“Message”输入“n8n本地搭建成功!当前时间:{{ $now }}”({{ $now }}是n8n的时间变量),点击“Save”;
- 运行工作流:点击右上角“Activate”激活工作流,等待1分钟后,点击编辑区下方“Executions”查看执行记录;
- 验证结果:在“Executions”中找到最新的执行记录,点击进入,若看到“Success”且日志显示“n8n本地搭建成功!当前时间:xxx”,说明工作流正常运行。
六、常见问题与解决方案
1. 访问http://localhost:5678失败
- 原因1:端口被占用 → 用
netstat -ano | findstr :5678(Windows)或lsof -i :5678(Linux/macOS)查看占用进程,关闭该进程或修改n8n端口; - 原因2:Docker容器未启动 → 执行
docker start n8n启动容器; - 原因3:防火墙拦截 → 开放5678端口(Windows在“防火墙高级设置”中添加入站规则,Linux执行
sudo ufw allow 5678)。
2. 重启后工作流数据丢失
- 原因:Docker方案未挂载数据卷 → 重新启动容器时务必加上
-v 本地路径:/home/node/.n8n参数;若已丢失数据,需重新创建工作流。
3. Node.js方案启动报错“Node version not supported”
- 原因:Node版本不符合要求 → 用
nvm use 18切换到18.x版本,再启动n8n。
七、总结与后续探索
本地n8n搭建完成后,可基于业务需求扩展更多场景:
- 数据同步:对接MySQL、PostgreSQL,定时同步不同数据库的数据;
- 办公自动化:对接企业微信、钉钉,自动发送日报、告警通知;
- API集成:调用第三方API(如天气API、电商API),批量处理数据。
若需进一步优化,可考虑:
- 配置HTTPS:用Nginx反向代理n8n,并添加SSL证书(适合局域网内多设备访问);
- 数据备份:定期备份Docker数据卷(~/.n8n目录)或Node.js的n8n数据目录,防止数据丢失。
