在 Heroku 上托管 n8n#
本托管指南向您展示如何在 Heroku 上自托管 n8n。它使用:
- Docker Compose 创建和定义应用程序组件以及它们如何协同工作。
- Heroku 的 PostgreSQL 服务 托管 n8n 的数据存储。
- Deploy to Heroku 按钮提供一键式部署,只需少量配置。
自托管知识先决条件
自托管 n8n 需要技术知识,包括:
- 设置和配置服务器和容器
- 管理应用程序资源和扩展
- 保护服务器和应用程序
- 配置 n8n
n8n 建议专业用户进行自托管。错误可能导致数据丢失、安全问题和停机。如果您在管理服务器方面缺乏经验,n8n 建议使用 n8n Cloud。
Latest 和 Next 版本
n8n 每周发布一个新的次要版本。latest
版本用于生产环境。next
是最新的发布版本。您应该将 next
视为测试版:它可能不稳定。要报告问题,请使用论坛。
当前 latest
:1.97.1
当前 next
:1.98.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
顶行的镜像标签。
Heroku 和公开端口#
Heroku 不允许基于 Docker 的应用程序使用 EXPOSE
命令定义公开端口。相反,Heroku 提供一个 PORT
环境变量,它在应用程序运行时动态填充。entrypoint.sh
文件覆盖默认的 Docker 镜像命令,而是设置 Heroku 提供的端口变量。然后您可以在 Web 浏览器中的端口 80 上访问 n8n。
Heroku 的 Docker 限制
阅读本指南了解有关在 Heroku 中使用 Docker 的限制的更多详细信息。
配置 Heroku#
heroku.yml
文件定义您要在 Heroku 上创建的应用程序。它由两个部分组成:
setup
>addons
定义要使用的 Heroku 插件。在这种情况下,是 PostgreSQL 数据库插件。build
部分定义 Heroku 如何构建应用程序。在这种情况下,它使用 Docker buildpack 基于提供的Dockerfile
构建web
服务。