在 Heroku 上托管 n8n#
本托管指南向您展示如何在 Heroku 上自托管 n8n。它使用:
- Docker Compose 来创建和定义应用程序组件以及它们如何协同工作。
- Heroku 的 PostgreSQL 服务 来托管 n8n 的数据存储。
- 部署到 Heroku 按钮提供一键部署,只需少量配置。
自托管知识先决条件
自托管 n8n 需要技术知识,包括:
- 设置和配置服务器和容器
- 管理应用资源和扩展
- 保护服务器和应用
- 配置 n8n
n8n 建议专家用户使用自托管。错误可能导致数据丢失、安全问题和停机。如果您在管理服务器方面经验不足,n8n 建议使用 n8n Cloud。
Latest 和 Next 版本
n8n 几乎每周都会发布新的次要版本。latest
版本用于生产环境。next
是最新的发布版本。您应该将 next
视为测试版:它可能不稳定。如需报告问题,请使用论坛。
当前 latest
:1.107.3
当前 next
:1.108.0
使用部署模板创建 Heroku 项目#
开始将 n8n 部署到 Heroku 的最快方法是使用 部署到 Heroku 按钮:
这会在 Heroku 上打开 创建新应用 页面。为项目设置名称,并选择要部署项目的区域。
配置环境变量#
Heroku 预先填写了在 app.json
文件的 env
部分中定义的配置选项,这也为 n8n 使用的环境变量设置了默认值。
您可以更改任何这些值以满足您的需求。您必须更改以下值:
- N8N_ENCRYPTION_KEY,n8n 用它来在保存到数据库之前加密用户账户详细信息。
- WEBHOOK_URL 应该与您创建的应用程序名称匹配,以确保 webhook 具有正确的 URL。
部署 n8n#
选择 部署应用。
Heroku 构建并部署应用后,它提供 管理应用 或 查看 应用程序的链接。
Heroku 和 DNS
请参考 Heroku 文档 了解如何将您的域名连接到 Heroku 应用程序。
更改部署模板#
您可以通过 fork 存储库 并从您的 fork 进行部署来对部署模板进行更改。
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
服务。
后续步骤#
🚀 与作者交流

📚 教程 💡 案例 🔧 技巧

⚡ 快答 🎯 定制 🚀 支持