厌倦了AI自动化平台的工作流限制和按Token计费模式?n8n是一款采用"公平代码"许可协议的自动化平台,你可以将其部署在自己的设备或服务器上,彻底摆脱云端平台的使用限制。

TechRadar此前已对n8n有过介绍,如需了解更多信息,可参阅我们的新手入门指南和兼容托管方案列表。本文将带你逐步完成使用Docker、Docker Compose以及Linux虚拟机或服务器搭建n8n自托管环境的全过程。

所需环境准备

一台至少配备2个虚拟CPU和4GB内存的虚拟机、服务器或NAS设备,若运行较重的工作负载,建议配置更多CPU核心和内存。

服务器上需安装兼容的Linux系统,如Ubuntu、Debian或Raspberry Pi OS,同时也支持CentOS Stream、Fedora和RHEL。

通过Linux发行版的包管理器访问Docker和Docker Compose仓库,所有组件均可通过Linux终端安装完成。

若计划运行生产级工作流,可选配一套托管的Kubernetes集群(可选)。

第一步:安装Docker

打开Linux终端,运行以下命令更新软件包列表:

sudo apt-get update

完成后,执行下一条命令安装Docker和Docker Compose及所需依赖:

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

可通过以下命令手动确认Docker引擎是否已安装并正常运行:

docker --version

docker compose version

第二步:配置n8n

新建一个目录用于存放n8n配置文件,并进入该目录:

mkdir n8n-compose

cd n8n-compose

在该目录下创建一个.env文件,内容如下:

DOMAIN_NAME=example.com

SUBDOMAIN=n8n

GENERIC_TIMEZONE=Europe/London

SSL_EMAIL=you@example.com

请将上述字段替换为你自己的域名、时区和邮箱地址。若在本地设备上运行n8n,可删除域名、子域名和SSL邮箱字段,仅保留GENERIC_TIMEZONE一项。

接下来,在同一目录下创建compose.yaml文件,内容如下:

services:

n8n:

image: docker.n8n.io/n8nio/n8n

restart: always

ports:

- "127.0.0.1:5678:5678"

environment:

- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}

- N8N_PORT=5678

- N8N_PROTOCOL=https

- NODE_ENV=production

- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/

- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}

- TZ=${GENERIC_TIMEZONE}

volumes:

- n8n_data:/home/node/.n8n

- ./local-files:/files

volumes:

n8n_data:

此配置将n8n映射到设备的5678端口,并将工作流、凭证和加密密钥存储于Docker卷中。若为本地安装,可删除N8N_HOST、N8N_PROTOCOL和WEBHOOK_URL这几行。

在同一目录下创建local-files文件夹,用于存储工作流文件:

mkdir local-files

第三步:启动n8n

使用以下单行命令同时启动所有Docker Compose容器:

docker compose up -d

稍等约一分钟后,运行以下命令检查容器是否正常运行:

docker compose logs -f n8n

随后即可在本地设备上通过任意浏览器访问 https://localhost:5678 打开n8n编辑器。

第四步:创建账号

首次在浏览器中打开n8n编辑器时,系统会提示你创建新账号。输入邮箱、姓名以及至少包含一个大写字母和一个数字的密码。完成注册后,你将成为该实例的所有者,相当于n8n中的超级管理员。

该账号拥有访问所有工作流和凭证的完整权限。如果计划让其他人使用你的实例并希望追踪变更记录,建议为其创建普通成员级别的账号。

第五步:搭建工作流

完成账号创建后,即可进入n8n的工作流编辑器。这是一个基于节点的可视化界面,外观类似流程图,支持添加触发器和动作来构建复杂的自动化流程。如果你曾使用过Zapier或Make,上手基础操作不会花太多时间。

n8n支持在编辑过程中通过"执行步骤"按钮触发工作流的各个环节,便于测试和排错。确认一切运行正常后,保存工作流并将其开启,使其保持持续激活状态。

注意事项

关于许可协议,n8n并非开源软件,但在特定条件下可免费使用。其采用公平代码许可协议,允许个人或企业内部工作流免费使用该平台。若希望将其作为面向消费者的商业产品,则需购买商业许可证。

关于成本,搭建n8n自托管环境虽有一定费用,但远低于订阅云端自动化平台的开销。唯一的支出是服务器托管费用,若本地设备性能足够强劲,也可自行运行工作流,从而省去这笔费用。

关于数据库,n8n默认预装SQLite,适合内部使用场景。若需运行生产级工作流,建议切换至PostgreSQL,它能更好地支持复杂的多用户工作流场景。

关于安全,务必通过HTTPS而非普通HTTP运行n8n实例。若使用外部服务器或多人共享的本地网络,需格外注意加密密钥的安全性,切勿直接写入.env文件。根据服务器配置,可使用Azure Key Vault或Google Cloud Secret Manager等密钥管理工具,防止攻击者通过扫描明文源代码获取API密钥。

Q&A

Q1:n8n自托管和云端版本有什么区别?

A:自托管版本允许用户将n8n部署在自己的服务器或设备上,无需按使用量付费,也没有工作流数量限制,只需承担服务器托管成本。云端版本则按订阅或使用量计费,操作更简便但受平台规则约束。自托管更灵活,适合有一定技术能力的用户或企业内部使用。

Q2:n8n自托管对服务器配置有什么要求?

A:最低配置为2个虚拟CPU和4GB内存,推荐使用Ubuntu、Debian等Linux系统。若运行较复杂的工作流或多用户场景,建议配置更高的CPU和内存,并将数据库从默认的SQLite切换为PostgreSQL以获得更好的性能和稳定性。

Q3:n8n自托管的数据安全如何保障?

A:建议强制使用HTTPS连接运行n8n实例,避免将加密密钥明文写入.env文件。在多人共享的网络环境下,可借助Azure Key Vault或Google Cloud Secret Manager等专业密钥管理工具存储API密钥,防止敏感信息因源码扫描而泄露。

TechRadar