在 Hetzner 云上托管 n8n#
本托管指南向您展示如何在 Hetzner 云服务器上自托管 n8n。它使用:
- Caddy(反向代理)允许从互联网访问服务器。
- Docker Compose 来创建和定义应用程序组件以及它们如何协同工作。
自托管知识先决条件
自托管 n8n 需要技术知识,包括:
- 设置和配置服务器和容器
- 管理应用资源和扩展
- 保护服务器和应用
- 配置 n8n
n8n 建议专家用户使用自托管。错误可能导致数据丢失、安全问题和停机。如果您在管理服务器方面经验不足,n8n 建议使用 n8n Cloud。
Latest 和 Next 版本
n8n 几乎每周都会发布新的次要版本。latest
版本用于生产环境。next
是最新的发布版本。您应该将 next
视为测试版:它可能不稳定。如需报告问题,请使用论坛。
当前 latest
:1.107.3
当前 next
:1.108.0
创建服务器#
- 登录 Hetzner 云控制台。
- 选择用于托管服务器的项目,或通过选择 + NEW PROJECT 创建新项目。
- 在您要添加的项目磁贴上选择 + CREATE SERVER。
您可以更改大多数设置以满足您的需求,但由于本指南使用 Docker 运行应用程序,在 Image 部分,从 APPS 选项卡中选择 "Docker CE"。
类型
创建服务器时,Hetzner 要求您选择一个计划。对于大多数使用级别,CPX11 类型就足够了。
SSH 密钥
Hetzner 允许您在 SSH 和基于密码的身份验证之间进行选择。SSH 更安全。本指南的其余部分假设您使用 SSH。
登录您的服务器#
本指南的其余部分需要您使用终端通过 SSH 登录到服务器。更多信息请参考 使用 SSH/rsync/BorgBackup 访问。您可以在项目中的服务器列表中找到公共 IP。
安装 Docker Compose#
Hetzner Docker 应用镜像没有安装 Docker compose。使用以下命令安装:
1 2 |
|
克隆配置存储库#
Docker Compose、n8n 和 Caddy 需要一系列文件夹和配置文件。您可以将这些文件从此存储库克隆到服务器的 root 用户文件夹中。以下步骤将告诉您要更改哪个文件以及进行哪些更改。
使用以下命令克隆存储库:
1 |
|
并将目录更改为您克隆的存储库的根目录:
1 |
|
默认文件夹和文件#
主机操作系统(服务器)将您创建的两个文件夹复制到 Docker 容器中,使它们可供 Docker 使用。这两个文件夹是:
caddy_config
:保存 Caddy 配置文件。local_files
:用于存放您使用 n8n 上传或添加的文件的文件夹。
创建 Docker 卷#
为了在重启之间保持 Caddy 缓存并加快启动时间,创建一个 Docker 在重启之间重复使用的 Docker 卷:
1 |
|
为 n8n 数据创建 Docker 卷:
1 |
|
设置 DNS#
n8n 通常在子域上运行。使用您的提供商为子域创建 DNS 记录,并将其指向服务器的 IP 地址。具体步骤取决于您的 DNS 提供商,但通常您需要为 n8n 子域创建一个新的 "A" 记录。DigitalOcean 提供了DNS 术语、组件和概念简介。
打开端口#
n8n 作为 Web 应用程序运行,因此服务器需要允许传入访问端口 80(用于非安全流量)和端口 443(用于安全流量)的流量。
通过运行以下两个命令在服务器的防火墙中打开以下端口:
1 2 |
|
配置 n8n#
n8n 需要设置一些环境变量传递给在 Docker 容器中运行的应用程序。示例 .env
文件包含您需要替换为自己值的占位符。
使用以下命令打开文件:
1 |
|
文件包含内联注释来帮助您了解要更改什么。
有关 n8n 环境变量的详细信息,请参考环境变量。
Docker Compose 文件#
Docker Compose 文件 (docker-compose.yml
) 定义了应用程序所需的服务,在这种情况下是 Caddy 和 n8n。
- Caddy 服务定义定义了它使用的端口和要复制到容器的本地卷。
- n8n 服务定义定义了它使用的端口、n8n 运行所需的环境变量(其中一些在
.env
文件中定义),以及需要复制到容器的卷。
Docker Compose 文件使用在 .env
文件中设置的环境变量,因此您不需要更改它的内容,但要查看一下,请运行以下命令:
1 |
|
配置 Caddy#
Caddy 需要知道它应该提供哪些域名服务,以及向外界暴露哪个端口。编辑 caddy_config
文件夹中的 Caddyfile
文件。
1 |
|
将占位符子域名更改为您的子域名。如果您按照步骤将子域命名为 n8n,您的完整域名类似于 n8n.example.com
。reverse_proxy
设置中的 n8n
告诉 Caddy 使用在 docker-compose.yml
文件中定义的服务定义:
1 2 3 4 5 |
|
启动 Docker Compose#
使用以下命令启动 n8n 和 Caddy:
1 |
|
这可能需要几分钟时间。
测试您的设置#
在您的浏览器中,打开由之前定义的子域名和域名组成的 URL。输入之前定义的用户名和密码,您应该能够访问 n8n。
停止 n8n 和 Caddy#
您可以使用以下命令停止 n8n 和 Caddy:
1 |
|
更新#
如果您使用 Docker Compose 文件运行 n8n,请按照以下步骤更新 n8n:
1 2 3 4 5 6 7 8 9 10 11 |
|
后续步骤#
🚀 与作者交流

📚 教程 💡 案例 🔧 技巧

⚡ 快答 🎯 定制 🚀 支持