Тестовые поддомены
Функция предназначена для тестовых стендов: разные поддомены одного домена направляются в разные контейнеры. Она не собирает приложение и не запускает контейнеры за вас — это должна делать ваша инфраструктура развёртывания.
Схема имён
В режиме «Обратный прокси» включите «Тестовые поддомены». По умолчанию адрес upstream строится по правилу:
{alias}_{subdomain}
Например, при Alias lumen поддомен review-42.preview.example.com направляется в lumen_review-42 на указанный в домене порт. Соответствующий контейнер должен существовать и быть доступен Caddy в сети server.
В пользовательском правиле нужны обе переменные: {alias} и {subdomain}. Остальная часть ограничена буквами латиницы в нижнем регистре, цифрами, дефисом и подчёркиванием. Имена веток с / нельзя напрямую считать подходящими DNS-именами.
Что ещё подготовить
- DNS для основного имени и нужных поддоменов, обычно wildcard-запись на сервер.
- Доступность Caddy и условия выдачи HTTPS-сертификатов.
- Git HTTP URL репозитория GitLab с окончанием
.git— его требует текущая форма. - При необходимости список веток, которые не должны очищаться автоматически.
Для поддоменов Caddy использует on-demand TLS с ask-запросом к Asmy. Это не настройка wildcard-сертификата через DNS-провайдера. Сейчас endpoint ask не проверяет разрешённый список имён; не рассматривайте его как дополнительную защиту выдачи сертификатов.
Ограничения
Функция экспериментальная. Автоматическая очистка стендов связана с публичным GitLab webhook, проверка отправителя которого пока не реализована. Не используйте этот механизм как защищённую границу для удаления важных ресурсов и не подключайте его к рабочим данным.
Настраивайте сценарий только в доверенном тестовом окружении и заранее проверяйте соответствие имён доменов, контейнеров и правил очистки. Для обычного сайта оставьте функцию выключенной и используйте обычный обратный прокси.