在 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 按钮:
这将在 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)。