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