什么是 n8n?为什么我要自托管它?
n8n(读作 nate-n)是一个开源、低代码的工作流自动化平台。它允许你通过拖拽节点的方式,快速连接各种服务、API 和 AI 模型,实现复杂的自动化任务。比如:
- 每天定时抓取
RSS新闻 → 用AI总结 → 发送到微信/邮箱/飞书 - 新增
Google Sheet行 → 自动创建Notion页面 +Slack通知 - 监控
X关键词 → 筛选后推送到Discord或企业微信 - 集成国内大模型(如豆包、
DeepSeek、通义千问)做智能回复、内容生成、RAG问答 - 通过
Webhook接收外部事件,构建自己的mini API或agentic系统
核心优势:
- 完全免费:
Community版无任务限制、无执行次数上限 - 自托管:数据完全掌握在自己手里,隐私安全,不受第三方限流、涨价或服务中断
- 高度可扩展:支持 500+ 官方整合 + 海量社区节点,还能用
JavaScript/Python自定义代码节点 - 强大
AI支持:内置AI Agent节点(基于LangChain),轻松接入OpenAI/Anthropic/国内模型,支持多步agent、自定义工具、内存管理(Simple/Redis/Postgres)、RAG等 - 跨平台部署:
Docker一键部署,支持Linux、NAS、K8s,甚至树莓派或云服务器
缺点:需要自己维护服务器、配置 HTTPS、处理更新;学习曲线稍陡(节点众多);复杂 workflow 可能消耗较多资源。但一旦跑通,性价比极高,尤其适合开发者、独立创作者、中小型团队,甚至大型企业内部工具链。
我选择在火山引擎 ECS 上部署 n8n,是因为国内访问速度快、按量计费便宜、轩辕镜像加速 Docker 拉取方便。整个过程预计 30-60 分钟,下面记录完整流程,供大家参考。
注意事项:
- 本教程使用按量计费
ECS,避免资源浪费。生产环境建议使用PostgreSQL数据库,并配置HTTPS和域名。 - 确保账号有足够余额(至少 100 元,用于
ECS和带宽)。 - 部署后,
n8n默认端口 5678,请在安全组中开放。 - 中国地区用户必须使用轩辕专业版镜像加速(免费版高峰期限流严重)。
一、准备工作
轩辕专业版充值 & 获取专属加速域名
由于 Docker Hub 在国内拉取极慢,且免费版轩辕(docker.xuanyuan.me)高峰期限流、经常出现 size validation failed 等问题,本教程全程使用轩辕专业版。
-
打开官网:
https://xuanyuan.cloud -
注册/登录(手机号或邮箱均可,实名认证可选但推荐)
-
进入「个人中心」或「充值流量」 → 充值
-
选择最小流量包充值(建议先买
50GB,价格约 8 元,按真实下载流量计费,用多少扣多少)支持微信/支付宝,充值后几秒到账
-
充值成功后,页面会显示你的专属加速域名。
-
复制纯域名部分,例如
xxxxxxxx.xuanyuan.run这个域名就是你后续所有
docker pull的前缀,例如:docker pull xxxxxxxx.xuanyuan.run/n8nio/n8n:latest
注意:专业版流量用完会报 402 Payment Required,记得及时充值。日常使用 n8n 拉镜像每月 5-20GB 足够。
火山引擎账号准备
- 已实名认证,有余额 ≥100 元
二、基础配置
创建 ECS 实例
基本信息
| 参数名称 | 推荐值 | 说明 | 是否必填 |
|---|---|---|---|
| 计费类型 | 按量计费 | 适合测试/临时部署,用完可随时释放/停止,避免包年包月锁定时长 | 必填 |
| 地域及可用区 | 与 VPC/子网一致,例如 华南 1 (广州) 可用区 A | 必须匹配之前创建的 VPC 和子网,否则无法绑定 | 必填 |
| 实例规格族 | 通用型 g3i / g4i / g3al | 推荐 g2i 或 g4i 系列,性价比高;n8n 轻量不需 GPU | 必填 |
| 具体实例规格 | ecs.g4i.large(2 vCPU + 8 GiB 内存) | 入门够用(2 vCPU + 4-8 GiB 内存);复杂 workflow 升级到 xlarge | 必填 |
| 镜像类型 | 公共镜像 | 稳定、更新快 | 必填 |
| 镜像 | Ubuntu 24.04(或 20.04) | Docker 安装方便,社区支持好;也可 CentOS 8/Stream,但 Ubuntu 更现代 | 必填 |
| 系统盘类型 | 极速型 SSD 云盘 | 性价比高,IOPS/吞吐量够 n8n + Docker | 必填 |
| 系统盘容量 | 20 GiB(最小值) | 够系统 + Docker + n8n 数据;后期可扩容 | 必填 |
| 数据盘 | 不添加(可选后期添加) | n8n 数据通过 Docker 卷持久化,无需额外数据盘 | 可选 |
创建私有网络(VPC + 子网)
网络配置
| 参数名称 | 推荐值 | 说明 | 是否必填 |
|---|---|---|---|
| 私有网络 | n8n-vpc(之前创建的,下方有创建私有网络的配置) | 必须与子网同一 VPC | 必填 |
| 子网 | n8n-subnet(之前创建的,下方有创建私有网络的配置) | 必须匹配可用区 | 必填 |
| 安全组 | n8n-sg(之前创建的,下方有创建私有网络的配置) | 已开放 TCP 22 (SSH) + 5678 (n8n) + 80/443 (HTTPS) | 必填 |
弹性公网 IP | 分配弹性公网 IP | 必须分配公网 IP,否则无法外部访问 n8n | 必填 |
创建私有网络 - VPC
| 参数名称 | 推荐值 | 说明 | 是否必填 |
|---|---|---|---|
| 地域 | 华南 1 (广州) 或离你最近的(如华东 2 等) | VPC 是地域级资源,必须与后续 ECS、子网一致。Seattle 用户建议选华北 2(北京)降低延迟。 | 必填 |
| 名称 | n8n-vpc 或 automation-vpc | 自定义,便于识别,支持中英文、数字、短横线、下划线,长度 1-128 字符。 | 必填 |
| 描述 | 用于 n8n 自动化部署的私有网络,隔离 ECS 和子网 | 可写用途、项目名,便于后期管理。长度 0-256 字符,支持中英文。 | 可选 |
IPv4 CIDR | 192.168.0.0/16 或 10.0.0.0/16 | VPC 的私有 IP 地址段范围。推荐 192.168.x.x/16(大范围,便于后续创建多个子网)。子网 CIDR 必须在此范围内且不重叠。 | 必填 |
| 所属项目 | n8n-project(新建的专用项目)或 default | 资源分组管理,便于后期按项目查看账单、授权 IAM 子账号、隔离资源。默认是 default 项目(系统预置,不可删)。如果还没项目,先去「项目管理」新建。 | 必填 |
创建私有网络 - 子网
| 参数名称 | 推荐值 | 说明 | 是否必填 |
|---|---|---|---|
| 可用区 | 可用区 A(或与 ECS 匹配的可用区) | 子网绑定到具体可用区,后续 ECS 必须在同一可用区才能直接绑定子网。推荐与 ECS 规格可用区一致。 | 必填 |
| 名称 | n8n-subnet 或 n8n-subnet-az-a | 自定义,便于识别,支持中英文、数字、短横线、下划线,长度 1-128 字符。建议带可用区后缀(如 -az-a)。 | 必填 |
| 描述 | n8n ECS 子网,用于部署自动化服务器 | 可写用途、项目名,便于后期管理。长度 0-256 字符,支持中英文。 | 可选 |
IPv4 CIDR | 192.168.0.0/24 或 192.168.1.0/24 | 子网的私有 IP 地址段,必须在 VPC CIDR 范围内且不重叠(VPC /16 可容纳多个 /24 子网)。推荐 /24(256 IP),够 ECS 使用。 | 必填 |
自定义配置
| 参数名称 | 推荐值 | 说明 | 是否必填 |
|---|---|---|---|
| 登录凭证 | 密码 | 在登录凭证模块选择密码(而非 SSH 密钥)。适合初学者或测试环境,但生产建议密钥对更安全。 | 必选 |
| 登录名 | root | Linux 系统默认管理员账号,控制台自动填充或灰色显示,不可修改。 | 自动填充(不可改) |
| 登录密码 | (自定义强密码) | 长度 8-30 字符,必须包含大写、小写、数字、特殊字符至少三种。用于 SSH 密码登录或 VNC 控制台。创建后可重置。 | 必填 |
| 确认密码 | 与登录密码完全相同 | 必须与上方登录密码一致,控制台实时校验。两次不同时无法继续。 | 必填 |
| 实例名称 | n8n-server-seattle-01 或 n8n-test-001 | 自定义,便于实例列表识别。支持中英文、数字、短横线、下划线,长度 2-128 字符。创建后可修改。 | 必填 |
| 主机名 | n8n-host 或 gordon-n8n-server | 实例内部 hostname(登录后 hostname 命令可见)。建议与实例名称类似,便于管理。长度 1-64 字符,支持字母、数字、短横线。创建后可通过命令修改。 | 可选(推荐填) |
| 所属项目 | n8n-project(你新建的项目)或 default | 从下拉列表选择。资源分组,便于账单分摊、IAM 权限控制。VPC/子网/安全组会继承此项目。 | 必填 |
| 实例描述 | n8n 自动化工作流服务器,Seattle IP 部署,Ubuntu 24.04,按量计费测试环境 | 写用途、位置、备注等。长度 0-256 字符,支持中英文。创建后可编辑。 | 可选(推荐填) |
确认订单
配置完成后,点击 立即购买 并支付,实例创建需 1-2 分钟。
购买完成,恭喜你!
在 ECS 列表中,状态变为 "运行中" 时,记录公网 IP(如 123.45.67.89)。
三、连接到 ECS 实例
选择并使用 SSH 连接工具
使用 SSH 连接服务器进行后续操作。
Windows用户:使用Windows PowerShell或Git Bash。Mac/Linux用户:使用终端。
我是在 Windows 上面操作的,所以步骤如下:
打开 Windows PowerShell 。
直接输入一下命令并回车:ssh root@你的公网IP。
第一次连接会提示「Are you sure you want to continue connecting?」输入 yes 回车。
输入你设置的登录密码(输入时不显示字符,直接输入后回车)。
成功后出现类似 root@gordon-n8n-server:~# 提示符,即连接成功!
更新系统 & 安装工具
登录后立即执行以下命令,确保系统最新并准备好后续安装:
# 更新系统软件包(强烈推荐先做,避免后续安装冲突)
# 更新 Ubuntu 的软件源和所有已安装包
# 可能需要 1–3 分钟,过程中会问是否继续,输入 y 回车
# 完成后会自动重启部分服务,无需重启实例
sudo apt update && sudo apt upgrade -y
# 安装常用工具(可选,但非常实用)
# curl/wget:下载文件
# git:以后可能克隆代码
# vim:编辑文件(nano 也可,但 vim 更强大)
# net-tools:ifconfig 等命令
# htop:更好的进程查看器(top 的升级版)
sudo apt install -y curl wget git vim net-tools htop unzip
# 查看当前时间和时区(确认是否 Asia/Shanghai)
date
timedatectl
# 如果时区不对,设置为上海时区
sudo timedatectl set-timezone Asia/Shanghai
在更新系统软件包的过程中,可能会出现 Configuring openssh-server 的提示:
保留配置文件还是安装维护者版本? (用箭头键选择,回车确认)
常见选项:
Install the package maintainer's version(安装新版本,覆盖旧的)Keep your currently-installed version(保留你当前的配置文件)Show the differences between the versions(查看差异)Start a new shell to examine the situation(打开shell检查)
推荐选择:Install the package maintainer's version(安装维护者版本)
理由:你刚创建的 ECS 实例,基本没改过 sshd_config,保留旧版没意义。新版通常更安全(默认禁用 root 密码登录、启用更严格的加密等)。
更新系统软件包和安装常用工具之后,就可以查看当前时间和时区。
四、安装 Docker & 轩辕专业版加速
这是火山引擎官方推荐的轩辕一键脚本,会自动:
- 安装最新
Docker(通常29.x) - 安装
Docker Compose(v5.x)
执行:
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
- 脚本运行时会显示进度,可能需要 2–5 分钟。
- 完成后会自动重启
Docker服务。 - 如果提示输入
yes/no,直接回车默认即可。
验证 Docker 是否安装成功
运行以下命令检查版本:
docker --version
docker compose version
预期输出示例:
Docker version 29.1.5, build 0e6fee6
Docker Compose version v5.0.1
如果看到类似输出,恭喜!Docker 已就绪。
额外验证:
sudo systemctl status docker
轩辕的 docker.sh 脚本通常会:安装 Docker Engine 和 Docker Compose、配置国内镜像加速源、自动启动 Docker 服务(相当于执行了 systemctl start docker)、自动设置开机自启(相当于执行了 systemctl enable docker)。
所以在脚本运行完成后,Docker 服务很可能已经处于 running 状态且已启用开机自启。
五、部署 n8n
创建 n8n 数据持久化卷
使用 Docker 部署 n8n,支持持久化数据。推荐使用 PostgreSQL 作为数据库(生产环境),但入门可先用默认 SQLite。
docker volume create n8n_data
预期输出:n8n_data。这会创建一个名为 n8n_data 的 Docker 卷,用于存储 n8n 的工作流、凭证、数据库(SQLite)等。
拉取 n8n 镜像(使用轩辕专业版专属域名)
假设你的轩辕专业版专属域名是 xxxxxxxxx.xuanyuan.run(请替换成你自己的真实域名!)
docker pull xxxxxxxxx.xuanyuan.run/n8nio/n8n:latest
预期:看到下载进度条,最终显示:
运行 n8n 容器
直接运行启动命令:
docker run -d --name n8n --restart unless-stopped -p 5678:5678 -e GENERIC_TIMEZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -e N8N_RUNNERS_ENABLED=true -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n bnte7j9sxxxx2z.xuanyuan.run/n8nio/n8n:latest
关键参数解释:
-d:后台运行--restart unless-stopped:自动重启,除非手动stop-p 5678:5678:把容器 5678 端口映射到服务器 5678- 时区变量:确保定时任务正确(
Asia/Shanghai) N8N_SECURE_COOKIE=false:临时禁用secure cookie(因为我们还没上HTTPS)-v n8n_data:/home/node/.n8n:挂载数据卷,持久化所有配置
预期输出:一串长 ID(如 a9f2921a...),表示容器启动成功
检查容器是否正常运行
docker ps
看到类似下面就成功:
查看启动日志(重要!):
docker logs -f n8n
正常会看到类似:
浏览器访问 n8n(首次初始化)
在你的本地电脑浏览器打开:
http://你的公网IP:5678
示例:http://123.45.67.89:5678
首次访问会进入设置向导:
创建 owner 账号(邮箱 + 强密码)然后填写 First Name 和 Last Name(按你喜好)
个性化问题填写:
完成 → 进入 n8n 主界面:
六、总结
全流程回顾(核心步骤)
- 准备:火山引擎实名 + 充值轩辕专业版获取专属域名
- 网络:创建
VPC(192.168.0.0/16)+ 子网(/24)+ 安全组(开放22/5678/80/443) ECS:按量计费、Ubuntu 24.04、2 vCPU+8 GiB、密码登录、绑定网络资源- 连接:
PowerShell/Git Bash SSH→ 更新系统(apt upgrade)→ 处理openssh-server配置(选Install maintainer's version) Docker:轩辕一键脚本安装 + 验证n8n部署:创建卷 → 拉取镜像(专业版域名)→ 一行命令运行容器 → 浏览器访问http://公网IP:5678初始化
总耗时 30–60 分钟,最大坑点:轩辕专业版域名使用、安全组端口、容器命令格式。
n8n 自托管的核心价值
- 零成本无限执行
- 数据完全私有,不被第三方读取或因政策中断
500+节点 +AI Agent+ 自定义代码,轻松实现复杂自动化(尤其是国内大模型集成)- 一次部署,终身可控,适合个人效率工具、内部流程、轻量级企业自动化
一句话:n8n 不是工具,而是把「自动化能力」真正还给自己的基础设施。
后续计划
这篇是部署入门篇,后续会继续更新:
n8n常用工作流实战- 国内大模型深度集成(豆包/
DeepSeek Agent+RAG案例) - 生产优化(
HTTPS+PostgreSQL+ 备份 + 监控) - 进阶玩法(自定义节点、
Webhook API、企业微信联动)
欢迎关注或在评论区留言你的需求,我会优先写你最想看的。
感谢阅读!
愿 n8n 成为你日常效率的超级加速器。