DNS
Модуль DNS позволяет вести записи домена прямо из админки и автоматически создавать служебные записи для почты, сайта и игровых серверов. Публиковать записи можно двумя способами: через внешний Cloudflare (по API-токену) или через собственный DNS-сервер (PowerDNS) на этой машине.
Раздел появляется в админке после включения модуля в Админка → Модули.
С чего начать: выбрать бэкенд
Cloudflare — проще и надёжнее: домен уже обслуживается в Cloudflare, CMS только правит записи по API. Anycast и защита провайдера работают из коробки, свой порт 53 держать не нужно. Рекомендуется, если у вас нет причин хостить DNS самому.
Свой PowerDNS — полный self-host: DNS-сервер поднимается на вашей машине, а домен делегируется на неё у регистратора. Больше контроля, но нужно держать открытым порт 53 и следить за сервером самому.
Вариант A. Cloudflare
- В панели Cloudflare создайте API-токен: My Profile → API Tokens → Create Token, шаблон «Edit zone DNS», выберите вашу зону.
- Скопируйте Zone ID со страницы Overview зоны (справа внизу).
- В CMS: DNS → Добавить зону, бэкенд Cloudflare, вставьте токен и Zone ID.
Токен хранится в базе в зашифрованном виде.
Вариант B. Свой PowerDNS
- В CMS: DNS → Свой DNS-сервер на этой машине, укажите домен, нажмите
Установить. CMS поставит PowerDNS, включит его локальный API и откроет
порт 53. Кнопка доступна, только если при установке CMS были выданы права
(sudoers) — если её нет, переустановите CMS скриптом
install.sh. - Делегируйте домен у регистратора: пропишите NS-запись на имя этой машины и glue-запись (A) с её внешним IP. Без делегирования зона не будет видна в интернете — этот шаг делается только у регистратора и вручную.
Записи зоны
На странице зоны — таблица всех записей. Они бывают двух видов:
- Вручную — вы добавляете их сами (кнопка «Добавить запись»). Тип, имя
(
@— корень домена), значение, для MX/SRV — приоритет. - Служебные (бейдж
mail/site/srv) — CMS генерирует их сама и пересобирает по кнопке «Пересобрать авто-записи». Редактировать напрямую их нельзя, но можно «Закрепить»: тогда автогенерация перестанет их трогать, и запись станет редактируемой — удобно, если нужно переопределить значение.
Что генерируется автоматически
| Источник | Записи |
|---|---|
| Почта | MX, SPF (TXT), DMARC (TXT), DKIM (TXT), A хоста почты |
| Сайт | A корня домена и www, A для mail./webmail. |
| Серверы | SRV _minecraft._tcp (вход по домену без порта), A-записи хостов серверов и нод панели |
PTR (обратная запись) не публикуется автоматически — её настраивают у хостера VPS.
Публикация: «Синхронизировать»
Записи в таблице — это то, что CMS хочет видеть в зоне. Кнопка «Синхронизировать» отправляет их в выбранный бэкенд. CMS публикует и обновляет только свои записи и удаляет те, что публиковала раньше, но больше не нужны; чужие записи в зоне она не трогает — можно спокойно держать в Cloudflare записи, о которых CMS не знает.
Порядок при изменениях: правите/пересобираете записи → Синхронизировать.
DNSSEC
Кнопка «Включить DNSSEC» активирует подпись зоны на бэкенде и покажет DS-запись — её нужно добавить у регистратора домена, чтобы подпись заработала в интернете.
Wildcard-сертификаты (ACME DNS-01)
Когда домен управляется через модуль DNS, можно выпустить wildcard-сертификат
*.вашдомен — один сертификат на все поддомены (в том числе для публичного
порта нод панели). Выпуск идёт по методу DNS-01: CMS сама создаёт и удаляет
проверочную TXT-запись.
Команда на сервере:
php artisan cert:issue-wildcard вашдомен
Требуется активная DNS-зона, покрывающая домен, и заполненная почта в Настройках → Сертификаты.
Диагностика
- «Синхронизация: ошибка» на карточке зоны — откройте зону и запустите «Синхронизировать» ещё раз: под кнопкой появится лог с причиной (неверный токен, недоступный бэкенд).
- PowerDNS не отвечает — проверьте службу на сервере:
systemctl status pdns. - Записи не видны в интернете (для своего PowerDNS) — не завершено делегирование NS/glue у регистратора.