在 Heroku 上托管 n8n#
本托管指南将向您展示如何在 Heroku 上自托管 n8n。方案使用:
- Docker Compose 来创建和定义应用组件及其协作方式
- Heroku 的 PostgreSQL 服务 来托管 n8n 的数据存储
- 一键部署到 Heroku 按钮,只需简单配置即可完成部署
/// 注意 | 自托管知识前提条件 自托管 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
服务。