在您自己的服务器上自托管 n8n
n8n 是一款自动化工具,可以连接各种应用并构建工作流。您可以用 Docker 在自己的 VPS 上运行它。官方文档介绍了 Docker Compose 的安装方式,并建议有技术经验的人自托管。安装指南没有给出 CPU、RAM 或磁盘的数值,所以从小的服务器开始,边观察边升级是合理的。
本文介绍许可证、安装步骤、重要的设置、备份和更新。
用 n8n 能构建什么?
n8n 中的工作流由一个触发器和与之相连的步骤组成。触发器可以是定时计划、webhook,或其他应用中的事件。典型的例子有:把表单提交写入电子表格、通知团队有新订单,或者每天早上汇总一份报告并发邮件。您在浏览器中的可视化编辑器里构建工作流,不必写代码,但如果需要,也可以加入一个代码步骤。
为什么要在自己的服务器上运行?
- 您的工作流和保存的连接信息都留在您自己的服务器上。
- 定时工作流在您自己的电脑关机时依然在服务器上运行,外部也可以通过 webhook 触发它们。
- 您的使用上限取决于服务器的性能,如果不够用,就升级服务器。
- 作为交换,维护由您负责:更新、备份和安全。
许可证:免费使用允许做什么?
n8n 不是开源软件。按它自己的说法,它是“fair-code”软件。源代码可以获得,但 Sustainable Use License 限制商业用途。根据官方的许可证页面,您可以免费将其用于公司内部运营,以及个人或非商业项目。作为有偿咨询为客户构建工作流也可以,只要客户自己不能访问 n8n。如果提供的服务是让客户登录 n8n 来构建或编辑自己的工作流(把 n8n 作为服务托管),则需要商业许可证。对于边界情况,请咨询 n8n 的许可团队。
安装步骤
这些步骤遵循官方的 Docker Compose 指南。该指南通过名为 Traefik 的反向代理获取并续期 HTTPS 证书。
- 准备一台已安装 Docker Engine 和 Docker Compose 的 Linux 服务器。用
docker --version和docker compose version检查。 - 添加一条 A 记录,把您域名的一个子域名(例如
n8n.example.com)指向服务器的 IP 地址。如何绑定您自己的域名会带您完成这一步。 - 在服务器上按官方指南创建
.env和compose.yaml文件。 - 在
.env中填写DOMAIN_NAME、SUBDOMAIN、GENERIC_TIMEZONE和SSL_EMAIL。时区请使用Europe/Istanbul。如果不填,默认是纽约。 - 启动:
docker compose up -d - 在浏览器中打开您的子域名,并马上创建所有者账户。谁先填写这个界面,谁就成为所有者。
需要了解的设置
| 变量 | 作用 |
|---|---|
N8N_HOST、N8N_PROTOCOL | n8n 运行所用的主机名和协议(https) |
N8N_WEBHOOK_URL | 在反向代理后面,n8n 无法判断自己的外部地址。请填入您的公网 HTTPS 地址,这样 webhook 地址才会正确显示。旧名称 WEBHOOK_URL 在当前版本中仍可使用,但已被弃用。在较旧的版本上只适用旧名称,所以请查阅您所用版本的文档。 |
GENERIC_TIMEZONE、TZ | 计划节点所用的时区 |
N8N_ENCRYPTION_KEY | 加密已保存连接信息的密钥 |
Webhook 节点有两个地址:测试地址在您编辑工作流时有效,生产地址在您激活之后有效。请把生产地址提供给外部服务。地址的开头来自 N8N_WEBHOOK_URL 的值,所以如果该值有误,外部服务就无法访问您的工作流。
加密密钥与备份
首次启动时,n8n 会生成一个随机加密密钥,并保存在它的数据文件夹(/home/node/.n8n)中。您保存的连接信息就是用它加密的。恢复的数据库中的连接信息,没有这个密钥就无法解密。请另外保存一份密钥副本。
- 备份什么:数据卷(
n8n_data)中保存着默认的 SQLite 数据库和密钥。复制前请先停止 n8n。如果使用 PostgreSQL,请用它自己的工具单独备份数据库。 - 快速导出:n8n 命令在容器内运行。
docker compose exec n8n n8n export:workflow --backup --output=/home/node/.n8n/backups/workflows/和docker compose exec n8n n8n export:credentials --backup --output=/home/node/.n8n/backups/credentials/会把工作流和连接信息写入数据卷。用户、执行历史和设置不包含在内,所以这不足以做完整恢复。 - 服务器备份:Seturack 每晚备份您的服务器,并保留最近 7 天。这也涵盖 n8n 的数据,但最好再单独导出您的关键工作流。
资源与数据库
官方安装指南没有给出 CPU 或内存的数值。作为经验法则,轻量且不频繁的工作流在小型服务器上就能运行,而处理大文件或大量数据的工作流则需要内存。用 docker stats 观察容器的实际使用情况。默认数据库是 SQLite。重度使用时,可以用 DB_TYPE=postgresdb 切换到 PostgreSQL,同时仍要保留数据文件夹的卷。
如果服务器不够用,请在面板中升级。您的 IP 地址和数据保持不变,webhook 地址也不会改变。
更新
官方指南用三条命令描述更新:docker compose pull、docker compose down 和 docker compose up -d。请先备份并阅读发行说明。安装完成后,操作系统和应用的更新由您负责。
安全
- 只通过 HTTPS 打开 n8n。官方指南也是同样的做法。
- 安装完成后立即创建所有者账户,并选择强密码。
- 在防火墙中只保持 22、80 和 443 端口开放。因为 Docker 会绕过 ufw 规则处理它发布的端口,所以不要把 n8n 的 5678 端口发布到外部。
如果想跳过这些步骤,请选择预装了 n8n 的服务器。如果自己安装,请从装好 Docker 的服务器开始。
评论0
暂无评论
成为第一个分享想法的人。
请登录或注册后发表评论。