Сайты
Предпросмотр развертываний для запросов на извлечение
Preview deploys give every pull request its own live URL, built from that branch's code, so reviewers can click through the actual change instead of reading a diff and guessing. Each preview updates…
Предварительные развертывания дают каждому pull request собственный живой URL, построенный из кода этой ветки, чтобы рецензенты могли кликнуть по фактическому изменению вместо чтения diff и предположений. Каждый предпросмотр обновляется при отправке нового коммита и автоматически очищается при закрытии pull request.
Где находятся предварительные развертывания
Откройте Websites, нажмите на сайт, откройте меню Environments в полосе вкладок сайта и выберите Preview. Страница озаглавлена Preview deploys.
Предпросмотры отделены от промежуточной среды. Staging, это одна долгоживущая копия сайта, на которую вы намеренно отправляете код; предпросмотр, это недолговечная среда, созданная для каждого pull request и удаляемая впоследствии. Многие команды используют обе. См. Промежуточные среды для другой части.

Сначала настройте развертывание из Git
Предварительные развертывания, это не отдельная функция. Они повторно используют ключ развертывания и команду сборки производственного сайта, поэтому сайт должен иметь рабочую конфигурацию Git Deploy перед включением предпросмотров.
Если Git Deploy не настроен, на странице отображается Set up Git deploy first и предлагается кнопка Go to Git deploy вместо формы включения. Следуйте инструкциям в разделе Развертывание сайта из Git, затем вернитесь.
Если Git Deploy подключен, но не имеет команды сборки, на странице Preview отображается предупреждение. Предпросмотры будут предполагать, что репозиторий уже собран, со статическими файлами в корне. Это верно для простого HTML-сайта и неправильно для всего, что компилируется, поэтому установите команду сборки на странице Git Deploy, если ваш проект в этом нуждается.
Включение предпросмотров
- В карточке Enable preview deploys введите репозиторий в форме
owner/repo. Не URL, не SSH-адрес: просто два сегмента, напримерacme/marketing-site. - Нажмите Enable.
Все, что не совпадает с owner/name, отклоняется с ошибкой Repo must be in owner/name format.
Сразу после включения KPanel показывает секрет подписи webhook в карточке с заголовком Copy your webhook secret now, с предупреждением, что вы его больше не увидите.
Скопируйте секрет перед тем, как покинуть страницу. Он генерируется один раз и не может быть восстановлен впоследствии. Если вы его потеряете, решение, восстановить его, что делает старый недействительным и означает обновление вашего webhook репозитория в любом случае.
Добавление webhook в ваш репозиторий
Настроенная карточка показывает Webhook URL для вставки в параметры вашего репозитория в разделе Webhooks. Настройте его с помощью:
- Payload URL: URL webhook, показанный на странице.
- Secret: значение, которое вы только что скопировали.
- Content type: JSON.
- Events: события pull request, плюс pushes, чтобы новые коммиты в открытом pull request перестраивали предпросмотр.
После этого открытие pull request собирает предпросмотр в течение нескольких минут. Фоновое задание проверяет наличие новой работы предпросмотра каждую минуту, поэтому нет необходимости нажимать что-либо в KPanel.
URL предпросмотра
Каждый предпросмотр получает собственное имя хоста вида pr-<pull-request-number>-<site-id>.kapsulecloud.app, покрытое подстановочным сертификатом, чтобы он обслуживался через HTTPS без необходимости выполнения каких-либо действий с сертификатом с вашей стороны.
Надежный способ открыть его, кнопка Open в строке предпросмотра в Recent previews, которая содержит точный URL, который был подготовлен для этой сборки. Вставьте эту ссылку в pull request, чтобы рецензенты вообще не должны были искать KPanel.
Чтение списка последних предпросмотров
Раздел Recent previews содержит список наиболее свежих предпросмотров, новейшие в первую очередь. Каждая строка показывает номер и название pull request, ветку, коммит и статус:
| Статус | Значение |
|---|---|
| BUILDING | Клонирование и сборка в данный момент |
| LIVE | Обслуживается по URL предпросмотра |
| FAILED | Сборка ошибочна; разверните журнал, чтобы увидеть причину |
| DESTROYED | Очищено, обычно потому что pull request закрыт |
Нажмите Toggle build log на строке, чтобы развернуть вывод сборки встроенно. Этот журнал, первое место, которое следует посмотреть, когда предпросмотр не удается, и это тот же вывод, который ваша сборка выдаст локально.
Если список пуст, на странице об этом сказано: откройте pull request в репозитории и предпросмотр будет собран в течение нескольких минут.
Ротация секрета webhook
Нажмите Regenerate secret в настроенной карточке. KPanel попросит вас подтвердить, и явно указывает, что текущий секрет перестает работать немедленно и вам потребуется обновить его в параметрах webhook вашего репозитория после этого.
Новый секрет показывается один раз, в той же карточке одноразового использования, что и раньше. Скопируйте его, затем обновите webhook в вашем репозитории. Между этими двумя моментами входящие доставки webhook отклоняются, поэтому выполните два шага подряд.
Восстановите секрет, когда кто-то с доступом администратора репозитория уходит, или если секрет когда-либо был вставлен где-то, где ему не следует быть, например в общем канале чата или в тикете.
Отключение предпросмотров
Нажмите Disable. Конфигурация отключается и сохраненный секрет удаляется. Существующие предпросмотры перестают перестраиваться.
Очистите, также удалив webhook в вашем репозитории. Он начнет выдавать ошибки, а не что-либо вредное, но webhook, который вечно возвращает ошибки, это шум в журнале доставок вашего репозитория.
Расходы и контроль
Предпросмотры собирают и обслуживают реальный код, поэтому они используют те же ресурсы, что и любое другое развертывание на сайте. Две привычки держат это под контролем:
- Закрывайте pull request, над которыми вы больше не работаете. Закрытый pull request имеет свой предпросмотр автоматически очищен.
- Не указывайте на предпросмотры учетные данные производства. Дайте им тестовые ключи через вкладку Secrets preview окружения, которое существует именно для того, чтобы конфигурация предпросмотра и производства не могла быть перепутана.
URL предпросмотра не является приватным. Это реальное, общедоступное имя хоста с действительным сертификатом, и любой, у кого есть ссылка, может его открыть. Не используйте предпросмотр для проверки чего-либо, содержащего реальные данные клиентов, и не заполняйте среды предпросмотра дампом производственной базы данных.
Устранение неполадок
Ничего не собирается при открытии pull request. Проверьте последние доставки webhook в вашем репозитории. Код 401 или 403 означает, что секрет не совпадает, поэтому восстановите его и обновите обе стороны. Отсутствие доставки вообще означает, что webhook не подписан на события pull request.
Предпросмотр собирается, но показывает список каталога или 404. Выходной каталог на странице Git Deploy не совпадает с местом, где ваша сборка фактически пишет. Предпросмотры наследуют этот параметр из производства.
Сборка не удается только в предпросмотре. Наиболее распространенной причиной является зависимость или переменная окружения, которая существует в производстве, но никогда не была добавлена в среду предпросмотра. Проверьте вкладку preview на странице Secrets.
URL предпросмотра перестает работать. Посмотрите на статус в его строке. DESTROYED означает, что pull request закрыт и окружение было освобождено, что является предусмотренным поведением.
Где дальше идти
- Развертывание сайта из Git, необходимая конфигурация.
- Хранение секретов приложения для сайта для учетных данных для каждой среды.
- Промежуточные среды для постоянной предпроизводственной копии.