一、n8n 简介
n8n 是一款专为技术团队打造的 开源工作流自动化平台(Workflow Automation Platform),兼具「低代码(No-code)」与「可编程(Pro-code)」双重特性。
它让你可以轻松地将不同系统、API 和服务连接起来,自动执行任务、数据同步、通知、集成 AI 模型等各种流程。
n8n 不仅能节省大量重复性工作,还能在团队内部构建稳定、安全的自动化体系。
🔑 核心功能亮点
功能 | 说明 |
---|---|
🧠 可编程与可视化兼备 | 支持可视化拖拽节点,也能直接编写 JavaScript/Python 逻辑。 |
🤖 AI 原生支持 | 内置 LangChain、OpenAI 接口,可搭建自定义 AI Agent 流程。 |
🧩 400+ 集成节点 | 支持 GitHub、Slack、MySQL、Redis、Google Sheets、Telegram、OpenAI 等常用服务。 |
🔐 完全自托管 | Fair-Code 许可协议,支持本地部署,数据完全掌控在自己手中。 |
🧱 企业级特性 | 提供权限管理、SSO、离线部署(Air-gapped)等企业功能。 |
🌍 活跃社区生态 | 超过 900+ 预制工作流模板,可快速复用。 |
简言之:n8n = 可编程的 Zapier + 自主可控的 Airflow + AI 工作流引擎。
🧰 准备工作
若你的系统尚未安装 Docker,请先一键安装:
Linux Docker & Docker Compose 一键安装
一键安装配置脚本(推荐方案):
该脚本支持多种 Linux 发行版,支持一键安装 Docker、Docker Compose 并自动配置轩辕镜像加速源。
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
二、n8n Docker 镜像来源
你可以在 轩辕镜像 中找到官方同步的 n8n 镜像页面:
👉 https://xuanyuan.cloud/r/n8nio/n8n
镜像完全与官方 docker.n8n.io/n8nio/n8n
同步,支持快速拉取和国内加速。
三、下载 n8n 镜像
3.1 使用轩辕镜像拉取(推荐)
docker pull docker.xuanyuan.run/n8nio/n8n:latest
3.2 拉取后改名(标准命名方式)
docker pull docker.xuanyuan.run/n8nio/n8n:latest \&& docker tag docker.xuanyuan.run/n8nio/n8n:latest n8nio/n8n:latest \&& docker rmi docker.xuanyuan.run/n8nio/n8n:latest
说明:
docker pull
:从轩辕镜像源拉取镜像,速度快且稳定docker tag
:重命名为官方标准名称,方便后续使用docker rmi
:删除临时镜像标签,节省存储空间
3.3 官方方式(可选)
如果网络能直连官方服务器,可直接拉取:
docker pull n8nio/n8n:latest
3.4 验证镜像下载
docker images
出现类似输出即表示成功:
REPOSITORY TAG IMAGE ID CREATED SIZE
n8nio/n8n latest 7b14ac9439f2 2 weeks ago 450MB
四、启动 n8n 容器
4.1 快速启动(适合初学者)
此方式使用默认配置与 SQLite 存储,开箱即用:
docker volume create n8n_datadocker run -it --rm \--name n8n \-p 5678:5678 \-v n8n_data:/home/node/.n8n \n8nio/n8n
启动成功后,访问浏览器:
http://localhost:5678
即可看到 n8n 的可视化工作流界面。
💡 数据将保存在名为
n8n_data
的 Docker 卷中,包含所有工作流、凭证与加密密钥。
4.2 持久化部署(推荐)
适合生产环境,挂载宿主机目录,保证配置与数据持久化。
第一步:创建目录
mkdir -p /data/n8n/{data,files}
第二步:启动容器
docker run -d --name n8n-web \-p 5678:5678 \-e TZ=Asia/Shanghai \-v /data/n8n/data:/home/node/.n8n \n8nio/n8n
说明:
参数 | 含义 |
---|---|
-v /data/n8n/data:/home/node/.n8n |
挂载数据目录,防止重启丢失工作流 |
-e TZ=Asia/Shanghai |
设置时区为北京时间 |
-p 5678:5678 |
映射本地端口 |
4.3 开启公网隧道(测试 Webhook)
Webhook 需要公网访问时,可使用内置的 tunnel 功能(仅限开发测试):
docker run -it --rm \--name n8n-tunnel \-p 5678:5678 \-v n8n_data:/home/node/.n8n \n8nio/n8n start --tunnel
⚠️ 注意:tunnel 模式仅供测试,不应在生产环境使用。
五、与 PostgreSQL 配合使用(高级部署)
默认 n8n 使用 SQLite,可切换为 PostgreSQL 以获得更高性能和数据安全性。
5.1 启动 PostgreSQL(示例)
docker run -d \--name n8n-postgres \-e POSTGRES_USER=n8n \-e POSTGRES_PASSWORD=123456 \-e POSTGRES_DB=n8n \-v /data/postgres:/var/lib/postgresql/data \postgres:15
5.2 启动 n8n 并连接数据库
docker run -d --name n8n-db \-p 5678:5678 \-e DB_TYPE=postgresdb \-e DB_POSTGRESDB_DATABASE=n8n \-e DB_POSTGRESDB_HOST=n8n-postgres \-e DB_POSTGRESDB_PORT=5432 \-e DB_POSTGRESDB_USER=n8n \-e DB_POSTGRESDB_PASSWORD=123456 \-v /data/n8n/data:/home/node/.n8n \--link n8n-postgres \n8nio/n8n
六、使用 Docker Compose 一键部署
适合长期运行与团队协作环境。
6.1 创建 docker-compose.yml
version: '3.8'
services:postgres:image: postgres:15container_name: n8n-postgresenvironment:POSTGRES_USER: n8nPOSTGRES_PASSWORD: 123456POSTGRES_DB: n8nvolumes:- ./postgres:/var/lib/postgresql/datarestart: alwaysn8n:image: n8nio/n8n:latestcontainer_name: n8n-serviceports:- "5678:5678"environment:DB_TYPE: postgresdbDB_POSTGRESDB_HOST: n8n-postgresDB_POSTGRESDB_PORT: 5432DB_POSTGRESDB_DATABASE: n8nDB_POSTGRESDB_USER: n8nDB_POSTGRESDB_PASSWORD: 123456GENERIC_TIMEZONE: Asia/ShanghaiTZ: Asia/Shanghaivolumes:- ./n8n_data:/home/node/.n8ndepends_on:- postgresrestart: always
6.2 启动服务
docker compose up -d
查看状态:
docker compose ps
停止:
docker compose down
七、升级与维护
7.1 拉取最新镜像
docker pull n8nio/n8n:latest
7.2 重启容器
docker stop n8n-web && docker rm n8n-web
docker run -d --name n8n-web -p 5678:5678 -v /data/n8n/data:/home/node/.n8n n8nio/n8n
或使用 Compose:
docker compose pull
docker compose down
docker compose up -d
更新前请务必备份
/data/n8n/data
目录,避免密钥丢失导致凭证无法解密。
八、常见问题
8.1 启动后网页打不开?
- 检查端口是否被占用:
netstat -tulnp | grep 5678
- 检查容器日志:
docker logs n8n-web
- 确认防火墙放行端口:
ufw allow 5678/tcp
8.2 数据丢失?
请确认是否挂载了 /home/node/.n8n
数据卷。若该目录未持久化,重启后将丢失所有工作流。
8.3 如何修改时区?
在运行命令或 Compose 文件中增加:
-e TZ=Asia/Shanghai
-e GENERIC_TIMEZONE=Asia/Shanghai
8.4 密钥丢失导致无法解密?
如 .n8n
目录被误删,n8n 会生成新的密钥,旧凭证无法解密。
建议定期备份 /data/n8n/data
。
九、验证运行状态
docker ps
若状态为 Up
,表示运行成功。
访问浏览器:
http://服务器IP:5678
若能正常打开 n8n 界面并创建工作流,即部署成功 🎉。
🔚 结语
至此,你已掌握 基于轩辕镜像的 n8n Docker 部署全流程 ——
从镜像拉取、快速部署、持久化挂载、数据库集成,到 Compose 管理与版本升级。
- 新手用户:建议先使用 SQLite 快速启动熟悉界面
- 工程师/团队部署:推荐 PostgreSQL + Docker Compose 架构
- 进阶应用:结合 Redis、Webhook、AI 节点构建自动化系统
🚀 n8n 让自动化更智能、更自由,让每个开发者都能构建属于自己的「自托管 Zapier」。