Repolode
DNSControl

DNSControl/dnscontrol

Infrastructure as Code для DNS: описывайте DNS-записи в конфигурации на JavaScript и отправляйте их множеству провайдеров.

Звёзды
3,979
Форки
550
Открытые issues
32
Последний коммит
вчера

Что это?

DNSControl управляет DNS-записями как кодом. Опишите зоны и записи в файле конфигурации, совместимом с JavaScript, — DNSControl сравнит это желаемое состояние с текущими данными у каждого провайдера, а затем покажет и применит различия через API провайдера.

В комплект входят плагины примерно для 77 DNS-провайдеров и регистраторов, в том числе Amazon Route 53, Cloudflare, Gandi, Google Cloud DNS и самостоятельно размещаемых решений, таких как ISC BIND и PowerDNS. Одна конфигурация позволяет одновременно отправлять одинаковые записи нескольким провайдерам, упрощая переход к другому провайдеру и тестирование нового. Инструмент работает в Linux, macOS и Windows, а модель провайдеров позволяет добавлять новых в виде плагинов.

Проект написан на Go. Обычно его запускают из командной строки, в Docker-контейнере или через GitHub Action — так изменения DNS можно проверять в pull request и выкатывать с помощью CI.

Ключевые возможности

  • 01Описывает DNS-зоны и записи в файле конфигурации, совместимом с JavaScript.
  • 02Показывает изменения относительно текущих данных у провайдеров перед применением командой push.
  • 03Синхронизирует одинаковые записи у нескольких DNS-провайдеров на основе одной конфигурации.
  • 04Поддерживает примерно 77 DNS-провайдеров и регистраторов с помощью плагинов.
  • 05Предоставляет переменные и макросы для повторного использования IP-адресов и настроек SPF и MX в разных доменах.
  • 06Работает в Linux, macOS и Windows; доступен в виде Docker-образа.

Сценарии использования

  • Управление DNS-записями множества доменов через Git с проверкой изменений в pull request.
  • Перенос зоны от одного DNS-провайдера к другому с синхронизацией обоих провайдеров на время тестирования.
  • Автоматизация изменений DNS в CI/CD-пайплайнах с помощью официального GitHub Action.
  • Хранение DNS-записей для собственных серверов BIND или PowerDNS под контролем версий.

Быстрый старт

  1. 1

    Установите DNSControl из пакетов или исходного кода, следуя официальным инструкциям

  2. 2

    Запустите интерактивный мастер настройки, чтобы создать creds.json и dnsconfig.js

    dnscontrol init
  3. 3

    Или запустите программу без установки с помощью Docker-контейнера

    docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview

Что важно знать

  • Начиная с версии 5.0, REV() переключится с RFC2317 на RFC4183. Это несовместимое изменение.
  • У провайдеров NAMEDOTCOM, OPENSRS и SOFTLAYER в настоящее время нет сопровождающих.

Темы

Частые вопросы

Что такое dnscontrol?
Infrastructure as Code для DNS: описывайте DNS-записи в конфигурации на JavaScript и отправляйте их множеству провайдеров. DNSControl управляет DNS-записями как кодом. Опишите зоны и записи в файле конфигурации, совместимом с JavaScript, — DNSControl сравнит это желаемое состояние с текущими данными у каждого провайдера, а затем покажет и применит различия через API провайдера.
dnscontrol можно использовать бесплатно? Какая у него лицензия?
dnscontrol распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
dnscontrol всё ещё поддерживается?
Активно поддерживается. Последний коммит в dnscontrol — 21 окт. 2026 г..
Для чего можно использовать dnscontrol?
Управление DNS-записями множества доменов через Git с проверкой изменений в pull request. Перенос зоны от одного DNS-провайдера к другому с синхронизацией обоих провайдеров на время тестирования. Автоматизация изменений DNS в CI/CD-пайплайнах с помощью официального GitHub Action. Хранение DNS-записей для собственных серверов BIND или PowerDNS под контролем версий.
Как установить dnscontrol?
Установите DNSControl из пакетов или исходного кода, следуя официальным инструкциям Запустите интерактивный мастер настройки, чтобы создать creds.json и dnsconfig.js: dnscontrol init Или запустите программу без установки с помощью Docker-контейнера: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
Где скачать dnscontrol?
Исходный код и инструкции по установке — на GitHub: https://github.com/DNSControl/dnscontrol

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CLI для управления инфраструктурой как кодом: планирует и применяет декларативные конфигурации для создания, изменения и версионирования облачных ресурсов и сервисов.

50,1 тыс.10,6 тыс.GoOtherОбновлён 4 часа назад

Панель управления для собственного сервера: развёртывание веб-приложений, управление базами данных, Docker-контейнерами, DNS, резервными копиями и безопасностью на VPS или выделенном сервере.

1,8 тыс.179PythonMITОбновлён 9 часов назад