Skip to content

在 Heroku 上托管 n8n#

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

/// 注意 | 自托管知识前提条件 自托管 n8n 需要具备以下技术知识:

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

n8n 建议仅由专业用户进行自托管。配置不当可能导致数据丢失、安全问题和服务中断。如果您缺乏服务器管理经验,n8n 推荐使用 n8n Cloud。 ///

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

当前 latest 版本: 1.95.3
当前 next 版本: 1.97.1 ///

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

将 n8n 部署到 Heroku 的最快方式是使用 一键部署到 Heroku 按钮:

部署

这会打开 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 提供的端口变量。之后您就可以在浏览器中通过 80 端口访问 n8n。

Heroku 的 Docker 限制

阅读本指南 了解 Heroku 使用 Docker 的更多限制细节。

配置 Heroku#

heroku.yml 文件定义了要在 Heroku 上创建的应用,包含两个部分:

  • setup > addons 定义要使用的 Heroku 插件。本案例中使用的是 PostgreSQL 数据库插件。
  • build 部分定义 Heroku 如何构建应用。本案例中使用 Docker buildpack 基于提供的 Dockerfile 构建 web 服务。

后续步骤#