在 Hetzner 云上托管 n8n
本托管指南将向您展示如何在 Hetzner 云服务器上自行托管 n8n。它使用:
- Caddy (反向代理)允许从互联网访问服务器。
- Docker Compose用于创建和定义应用程序组件以及它们如何协同工作。
自托管知识前提条件
自托管 n8n 需要技术知识,包括:
- 设置和配置服务器和容器
- 管理应用程序资源和扩展
- 保护服务器和应用程序
- 配置 n8n
n8n 建议资深用户选择自托管。错误操作可能导致数据丢失、安全问题和宕机。如果您缺乏服务器管理经验,n8n 推荐使用
n8n Cloud 。最新版本和下一个版本
n8n 几乎每周都会发布一个新的次要版本。此版本仅供生产使用。这是最新版本。您应该将其视为测试版本:它可能不稳定。如需报告问题,请使用
论坛。当前:1.102.4当前:1.103.1
创建服务器
- 登录Hetzner 云控制台。
- 选择用于托管服务器的项目,或者通过选择+ NEW PROJECT来创建新项目。
- 在要添加服务器的项目图块上选择+ 创建服务器。
您可以更改大多数设置以满足您的需要,但由于本指南使用 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 需要一系列文件夹和配置文件。您可以将这些文件从此
仓库克隆到服务器的根用户文件夹中。以下步骤将指导您更改哪些文件以及进行哪些更改。使用以下命令克隆存储库:
1 | |
并将目录更改为您克隆的存储库的根目录:
1 | |
默认文件夹和文件
主机操作系统(服务器)将您创建的两个文件夹复制到 Docker 容器中,以供 Docker 使用。这两个文件夹分别是:
- :保存 Caddy 配置文件。
- :您使用 n8n 上传或添加的文件的文件夹。
创建 Docker 卷
为了在重启之间保留 Caddy 缓存并加快启动时间,请创建
一个 Docker 卷,以便 Docker 在重启之间重用:1 | |
为 n8n 数据创建 Docker 卷:
1 | |
设置 DNS
n8n 通常作用于子域名。请向您的 DNS 提供商申请,为子域名创建一条 DNS 记录,并将其指向服务器的 IP 地址。具体步骤取决于您的 DNS 提供商,但通常您需要为 n8n 子域名创建新的“A”记录。DigitalOcean 提供了
DNS 术语、组件和概念简介。打开端口
n8n 作为 Web 应用程序运行,因此服务器需要允许非安全流量通过端口 80 进入,而安全流量通过端口 443 进入。
通过运行以下两个命令在服务器的防火墙中打开以下端口:
1 2 | |
配置 n8n
n8n 需要设置一些环境变量,以便传递给 Docker 容器中运行的应用程序。示例文件包含一些占位符,您需要将其替换为您自己的值。
使用以下命令打开该文件:
1 | |
该文件包含内联注释,可帮助您了解要更改的内容。
有关 n8n 环境
变量的详细信息,请参阅环境变量。Docker Compose 文件
Docker Compose 文件( )定义了应用程序所需的服务,在本例中是 Caddy 和 n8n。
- Caddy 服务定义定义了它使用的端口和要复制到容器的本地卷。
- n8n 服务定义定义了它使用的端口、n8n 需要运行的环境变量(一些在文件中定义)以及它需要复制到容器的卷。
Docker Compose 文件使用文件中设置的环境变量,因此您不需要更改其内容,但要查看,请运行以下命令:
1 | |
配置 Caddy
Caddy 需要知道它应该服务哪些域名,以及向外界公开哪个端口。编辑文件夹中的文件。
1 | |
将占位符子域名更改为您自己的域名。如果您按照步骤将子域名命名为 n8n,则您的完整域名类似于。设置中的告诉 Caddy 使用文件中定义的服务定义:
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 | |