wl·solution
Гайды · Домены и TLS
5 мин чтенияобновлено 2026-06-30

Подключение собственного домена клиента

Как клиент привязывает свой apex (acme.io) к арендованному тенанту: проверка DNS, выпуск TLS, обновление Caddyfile без перезапуска.

По умолчанию тенант получает поддомен на нашем apex (вида brand.apps.wl-solution.com). Когда клиент хочет фирменный URL, в кабинете он вбивает свой домен — и тут начинается короткий, но важный путь.

Шаг 1: пред-проверка DNS

Перед тем как тратить ресурсы на выпуск TLS, мы делаем lookup A-записи: если домен ещё не указывает на VPS клиента, отдаём статус missing или mismatch и говорим клиенту в кабинете, какую запись добавить (см. api/internal/deployments/domains.go, функция checkARecord).

Это спасает от запросов «у меня белый экран» — клиент сразу видит, что DNS не настроен.

Шаг 2: обновление Caddyfile на тенанте

Когда DNS в порядке, в очередь идёт задача deploy.update_domains. Worker генерирует новый Caddyfile с добавленным host, кладёт его на VPS клиента и шлёт reload через Caddy Admin API — без перезапуска и без потери открытых TCP-соединений.

Caddy при первом HTTPS-запросе на новый домен сам выпускает Let's Encrypt-сертификат через TLS-ALPN-01 challenge. От нас — только наличие открытых 80/443 в firewall.

Шаг 3 (опционально): Cloudflare-проксирование

Если клиент хочет CDN/DDoS-защиту через Cloudflare, нужно либо делегировать NS-записи нам (тогда мы создаём proxied = true А-запись автоматически), либо клиент сам добавит запись с серым облаком — Caddy выпустит сертификат, но без CDN.

Мы рекомендуем оранжевое облако — оно блокирует 90% бот-трафика и кеширует /_next/static без настройки.

Шаг за шагом
  1. 1
    Добавить домен в кабинете тенанта
    POST /api/me/deployments/{id}/domains с {hostname: "acme.io"}.
  2. 2
    Прочитать ответ — проверить статус DNS
    В ответе есть dns.status (ok / missing / mismatch). При ok можно ждать выпуск сертификата.
  3. 3
    Дождаться 60 секунд
    Caddy выпустит сертификат на первый https-запрос.
Связанные гайды

Хотите развернуть свой тенант на wl-installer?

Аренда: 5 минут от заказа до боевого URL. Покупка с исходниками: 1–5 рабочих дней.