跳到主要内容

在 Heroku 上托管 n8n

本指南介绍如何在 Heroku 上自托管 n8n,采用以下组件:

  • Docker Compose,创建并定义应用组件及其协作方式。
  • Heroku PostgreSQL 服务,托管 n8n 的数据存储。
  • Deploy to Heroku(部署到 Heroku)按钮,稍作配置即可一键部署。
信息

自托管的知识要求

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

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

n8n 建议有经验的用户选择自托管。操作失误可能导致数据丢失、安全问题和停机。如果不熟悉服务器管理,n8n 建议使用 n8n Cloud。

信息

Stable 与 Beta 版本

n8n 通常每周发布一个新的次版本。stable 版本用于生产环境;beta 是最近发布的版本;beta 版本可能不稳定。如需报告问题,请使用论坛。

当前 stable:2.45.5 当前 beta:2.46.1

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

在 Heroku 部署 n8n,最快的入门方式是使用 Deploy to Heroku 按钮:

部署

点击后会打开 Heroku 的 Create New App(创建新应用)页面。请设置项目名称,并选择部署区域。

配置环境变量 ​

Heroku 会预填 env 部分定义的配置选项,该部分位于 app.json 文件中,该文件也为 n8n 使用的环境变量设置默认值。

可按需更改这些值,但必须更改以下选项:

  • N8N_ENCRYPTION_KEY,n8n 将用户账号详情保存到数据库前,用此密钥加密。
  • WEBHOOK_URL,应与所创建的应用名称匹配,确保 webhook URL 正确。

部署 n8n ​

选择 Deploy app(部署应用)。

Heroku 构建并部署应用后,会提供 Manage App(管理应用)和 View(查看应用)链接。

信息

Heroku 与 DNS

如何将域名连接到 Heroku 应用,请参阅 Heroku 文档。

更改部署模板 ​

可以派生此仓库并从派生仓库部署,以修改部署模板。

Dockerfile ​

Dockerfile 默认拉取最新 n8n 镜像。如果希望使用其他或固定版本,请更新 Dockerfile 首行的镜像标签。

Heroku 与端口暴露 ​

Heroku 不允许基于 Docker 的应用通过 EXPOSE 命令定义暴露端口,而是提供在应用运行时动态填充的 PORT 环境变量。entrypoint.sh 文件覆盖默认 Docker 镜像命令,改为设置 Heroku 提供的端口变量。随后可在浏览器通过端口 80 访问 n8n。

信息

Heroku 的 Docker 限制

在 Heroku 使用 Docker 的限制,请阅读此指南。

配置 Heroku ​

heroku.yml 文件定义要在 Heroku 创建的应用,由两个部分组成:

  • setup > addons 定义要使用的 Heroku 附加组件,此处为 PostgreSQL 数据库附加组件。
  • build 部分定义 Heroku 如何构建应用。此处使用 Docker buildpack 构建 web 服务,依据是提供的 Dockerfile。

后续步骤 ​

相关资源 ​

本文为社区中文翻译。查看对应英文原文