GitHub 预览部署
预览部署允许 Coolify 在 GitHub 仓库中有人打开拉取请求 (PR) 时自动部署应用程序的新版本。
一旦关联的拉取请求被合并或关闭,这些预览部署将自动删除,确保环境整洁。
功能
预览部署选项
- 预览 URL 模板: 每个预览部署都根据此模板获得其自己的唯一 URL。
- 使用
{{random}}在每次部署 PR 时生成一个随机子域名。 - 使用
{{pr_id}}将拉取请求 ID 用作子域名。
- 使用
重要
您需要为用于预览部署的子域名设置一个通配符 A 记录,指向您的服务器 IP 地址。例如,要使用 https://123.preview.shadowarcanist.com,请为 *.preview.shadowarcanist.com 创建一条指向您服务器 IP 地址的 A 记录。
- 加载拉取请求: 允许您手动获取仓库中所有打开的拉取请求。如果您在设置预览部署之前已经有打开的 PR,这将非常有用。
信息
Coolify 不会为在启用预览部署之前打开的拉取请求自动部署预览版本。您需要通过点击预览部署页面中拉取请求列表上的“部署”按钮来手动部署这些。
作用域部署
如果任何人都可以通过创建拉取请求来触发新的预览部署,他们可能会直接在您的环境中运行任意代码,从而可能获得对您环境或密钥的访问权限。
Coolify 允许您配置谁可以触发新的预览部署以防止这种情况:
- 预览部署: 启用预览部署功能,只有仓库成员、协作者和贡献者可以触发 PR 部署。
- 允许公开 PR 部署: 任何人都可以触发 PR 部署。
作用域密钥
Coolify 将生产环境和预览部署的环境变量分开,保护您的密钥安全。
- 生产环境变量: 这些变量仅在主部署中使用。它们完全隔离,永远不会暴露给从拉取请求触发的预览部署。
- 预览部署环境变量: 一组仅用于基于 PR 的预览部署的单独变量。这些变量可以安全地包含非敏感或有限范围的数值,确保贡献者的拉取请求无法访问生产密钥。
自动评论
Coolify 会在拉取请求上发布包含部署状态的评论,并在状态更改时自动更新它们。
重要
自动评论仅在您使用 GitHub 应用进行预览部署时有效。
设置方法
在 Coolify 上有两种设置预览部署的方法:
使用 GitHub 应用设置
我们有一份专门用于设置 GitHub 应用的指南,请先按照它操作:/applications/ci-cd/github/setup-app。
作为设置的一部分,请确保正确配置了预览部署。步骤取决于您使用的是自动设置还是手动设置,如下所示。

在点击“立即注册”之前,启用“预览部署”选项。就这样!

在为 GitHub 应用设置权限时,请执行以下操作:
- 在“权限”部分下,点击“仓库权限”。
- 将
Pull Requests的访问权限设置为Read and write。 - 向下滚动到“订阅事件”部分。
- 启用
Pull requests选项。
就这样!
如果您已经设置了 GitHub 应用但未启用“预览部署”功能,请按照以下步骤操作:
- 在您的 Coolify 仪表板中,从侧边栏点击 Sources,然后选择您的 GitHub 应用。
- 在“权限”部分点击 Update 按钮(这将重定向到您 GitHub)。
- 在“权限”部分下,点击“仓库权限”。
- 将
Pull Requests的访问权限设置为Read and write。 - 向下滚动到“订阅事件”部分。
- 启用
Pull requests选项。
使用 Webhook 设置
- 输入一个 GitHub webhook 密钥(这必须是一个随机字符串;您可以使用像 Random String Generator 这样的工具)。
- 将 webhook URL 保存在安全的地方——我们稍后需要用到它。
重要
webhook 密钥就像密码一样。只有当密钥匹配时,Coolify 才会接受 webhook。
- 转到您的仓库设置页面。
- 从侧边栏点击 Webhooks。
- 点击 Add webhook 按钮。
- 在“Payload URL”字段中输入之前从 Coolify 复制的 webhook URL。
- 在“Secret”字段中输入来自 Coolify 的 webhook 密钥。
- 启用“Enable SSL verification”。
- 选择“Let me select individual events”。
- 选择“Pull Requests”。
- 启用“Active”。
- 点击 Add webhook 按钮。
点击“Add webhook”后,您将看到如下页面:
就这样!当创建新的拉取请求时,Coolify 将自动部署预览版本。
