Coolify logoCoolify

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 应用设置权限时,请执行以下操作:

  1. 在“权限”部分下,点击“仓库权限”。
  2. Pull Requests 的访问权限设置为 Read and write
  3. 向下滚动到“订阅事件”部分。
  4. 启用 Pull requests 选项。

就这样!


如果您已经设置了 GitHub 应用但未启用“预览部署”功能,请按照以下步骤操作:

  1. 在您的 Coolify 仪表板中,从侧边栏点击 Sources,然后选择您的 GitHub 应用。
  2. 在“权限”部分点击 Update 按钮(这将重定向到您 GitHub)。
  1. 在“权限”部分下,点击“仓库权限”。
  2. Pull Requests 的访问权限设置为 Read and write
  3. 向下滚动到“订阅事件”部分。
  4. 启用 Pull requests 选项。

使用 Webhook 设置

  1. 输入一个 GitHub webhook 密钥(这必须是一个随机字符串;您可以使用像 Random String Generator 这样的工具)。
  2. 将 webhook URL 保存在安全的地方——我们稍后需要用到它。

重要

webhook 密钥就像密码一样。只有当密钥匹配时,Coolify 才会接受 webhook。

  1. 转到您的仓库设置页面。
  2. 从侧边栏点击 Webhooks
  3. 点击 Add webhook 按钮。
  1. 在“Payload URL”字段中输入之前从 Coolify 复制的 webhook URL。
  2. 在“Secret”字段中输入来自 Coolify 的 webhook 密钥。
  3. 启用“Enable SSL verification”。
  4. 选择“Let me select individual events”。
  5. 选择“Pull Requests”。
  6. 启用“Active”。
  7. 点击 Add webhook 按钮。

点击“Add webhook”后,您将看到如下页面:

就这样!当创建新的拉取请求时,Coolify 将自动部署预览版本。

On this page