跳至内容

在Heroku上托管n8n#

本托管指南向您展示如何在Heroku上自托管n8n。它使用:

  • Docker Compose 用于创建和定义应用程序组件及其协同工作方式。
  • Heroku的PostgreSQL服务用于托管n8n的数据存储。
  • 一个一键部署到Heroku按钮,只需简单配置即可完成部署。

自托管知识先决条件

自托管n8n需要具备以下技术知识:

  • 设置和配置服务器及容器
  • 管理应用程序资源和扩展
  • 保护服务器和应用程序安全
  • 配置n8n

n8n 建议专家用户自行托管。操作失误可能导致数据丢失、安全问题和服务中断。如果您没有服务器管理经验,n8n 推荐使用 n8n Cloud

最新版本和下一版本

n8n 每周都会发布一个新的次要版本。latest 版本适用于生产环境。next 是最新发布的版本。您应该将 next 视为测试版:它可能不稳定。如需报告问题,请使用 论坛

当前 latest: 1.92.2
当前 next: 1.93.0

使用部署模板创建Heroku项目#

在Heroku上部署n8n的最快捷方式是使用Deploy to Heroku按钮:

Deploy

这将打开Heroku上的创建新应用页面。为项目设置名称,并选择要部署项目的区域。

配置环境变量#

Heroku会预先填充app.json文件中env部分定义的配置选项,这些选项同时也为n8n使用的环境变量设置了默认值。

您可以根据需要修改这些值。必须更改以下值:

  • N8N_ENCRYPTION_KEY,n8n使用该密钥在加密用户账户详情后存入数据库。
  • WEBHOOK_URL 应与您创建的应用程序名称匹配,以确保webhook具有正确的URL。

部署n8n#

选择部署应用

Heroku构建并部署应用后,会提供管理应用查看应用程序的链接。

Heroku与DNS

请参考Heroku文档了解如何将您的域名连接到Heroku应用程序。

修改部署模板#

您可以通过分叉代码库并从您的分叉部署来修改部署模板。

Dockerfile文件#

默认情况下,Dockerfile会拉取最新的n8n镜像,如果你想使用不同或固定版本,请更新Dockerfile文件顶行的镜像标签。

Heroku与端口暴露#

Heroku不允许基于Docker的应用程序使用EXPOSE命令定义暴露端口。相反,Heroku提供了一个PORT环境变量,该变量在应用程序运行时动态填充。entrypoint.sh文件覆盖了默认的Docker镜像命令,改为设置Heroku提供的端口变量。然后您就可以在Web浏览器中通过80端口访问n8n。

Heroku上的Docker限制

阅读本指南了解更多关于在Heroku上使用Docker的限制详情。

配置Heroku#

heroku.yml 文件定义了您想在 Heroku 上创建的应用程序。它包含两个部分:

  • setup > addons 定义了要使用的Heroku附加组件。在本例中,是PostgreSQL数据库附加组件。
  • build 部分定义了 Heroku 如何构建应用程序。在本例中,它使用 Docker buildpack 基于提供的 Dockerfile 来构建 web 服务。

下一步#

优云智算