N8N中文教程
部署托管/Installation/Server_setups

在 Heroku 上托管 n8n#

本托管指南将指导你如何在 Heroku 上自托管 n8n。该方案使用:

  • Docker Compose 来创建和定义应用程序组件及其协作方式。
  • Heroku 的 PostgreSQL 服务 来托管 n8n 的数据存储。
  • 一个 Deploy to Heroku 按钮,支持一键部署(需少量配置)。

自托管知识前提

自托管 n8n 需要一定的技术知识,包括:

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

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

最新版本(Latest)与下一个版本(Next)

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

当前 latest:1.115.2 当前 next:1.116.1

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

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

Deploy to Heroku

这将在 Heroku 上打开 Create New App 页面。请为项目设置名称,并选择部署区域。

配置环境变量#

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

你可以根据需要修改这些值,但必须更改以下两个值:

  • N8N_ENCRYPTION_KEY:n8n 使用此密钥在保存到数据库前加密用户账户信息。
  • WEBHOOK_URL:必须与你创建的应用程序名称一致,以确保 webhook 使用正确的 URL。

部署 n8n#

选择 Deploy app(部署应用)。 Heroku 构建并部署应用后,会提供指向 Manage App(管理应用)View(查看) 应用的链接。

Heroku 与 DNS

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

修改部署模板#

你可以通过 Fork 该仓库 并从你的 Fork 中进行部署,来修改部署模板。

Dockerfile#

默认情况下,Dockerfile 拉取最新的 n8n 镜像。如果你想使用其他版本或固定版本,请更新 Dockerfile 第一行中的镜像标签(image tag)。

Heroku 与端口暴露#

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

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

配置 Heroku#

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

  • setup > addons:定义要使用的 Heroku 插件(addons)。此处为 PostgreSQL 数据库插件。
  • build 部分:定义 Heroku 如何构建应用。此处使用 Docker buildpack,基于提供的 Dockerfile 构建一个 web 服务。

下一步#

  • 进一步了解 n8n 的 配置 和 扩展。
  • 或立即体验 n8n:尝试 快速入门指南(Quickstarts)。