Repolode
DNSControl

DNSControl/dnscontrol

Infraestrutura como código para DNS: defina registros DNS em uma configuração baseada em JavaScript e envie-os para vários provedores.

Estrelas
3,979
Forks
550
Issues abertas
32
Último commit
ontem

O que é?

O DNSControl gerencia registros DNS como código. Você descreve zonas e registros em um arquivo de configuração compatível com JavaScript, e o DNSControl compara o estado desejado com o que cada provedor mantém no momento. Em seguida, ele mostra uma prévia e aplica as diferenças pela API do provedor.

Ele inclui plugins para cerca de 77 provedores e registradores de DNS, incluindo Amazon Route 53, Cloudflare, Gandi, Google Cloud DNS e opções auto-hospedadas, como ISC BIND e PowerDNS. Uma única configuração pode enviar os mesmos registros para vários provedores de uma só vez, o que reduz os riscos ao trocar de provedor ou testar um novo. A ferramenta funciona em Linux, macOS e Windows, e seu modelo de provedores foi projetado para permitir a adição de novos provedores como plugins.

O projeto é escrito em Go e costuma ser executado pela linha de comando, em um contêiner Docker ou por meio de uma GitHub Action. Assim, as alterações de DNS podem ser revisadas em pull requests e implantadas pelo CI.

Recursos principais

  • 01Descreve zonas e registros DNS em um arquivo de configuração compatível com JavaScript.
  • 02Mostra uma prévia das alterações nos provedores ativos antes de aplicá-las com push.
  • 03Sincroniza os mesmos registros com vários provedores de DNS a partir de uma única configuração.
  • 04Oferece suporte a cerca de 77 provedores e registradores de DNS por meio de plugins.
  • 05Oferece variáveis e macros para reutilizar IPs e configurações de SPF e MX em vários domínios.
  • 06Funciona em Linux, macOS e Windows e está disponível como imagem Docker.

Casos de uso

  • Gerenciar registros DNS de vários domínios usando Git e revisão de pull requests.
  • Migrar uma zona de um provedor de DNS para outro, mantendo ambos sincronizados durante os testes.
  • Automatizar alterações de DNS em pipelines de CI/CD com a GitHub Action oficial.
  • Manter sob controle de versão os registros DNS de servidores BIND ou PowerDNS auto-hospedados.

Início rápido

  1. 1

    Instale o DNSControl por meio de pacotes ou do código-fonte, seguindo as instruções oficiais

  2. 2

    Execute o assistente interativo de configuração para criar creds.json e dnsconfig.js

    dnscontrol init
  3. 3

    Ou execute sem instalar, usando o contêiner do Docker

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

Antes de usar

  • A partir da versão 5.0, REV() mudará de RFC2317 para RFC4183. Essa é uma alteração incompatível.
  • Os provedores NAMEDOTCOM, OPENSRS e SOFTLAYER não têm mantenedores no momento.

Tópicos

Perguntas frequentes

O que é dnscontrol?
Infraestrutura como código para DNS: defina registros DNS em uma configuração baseada em JavaScript e envie-os para vários provedores. O DNSControl gerencia registros DNS como código. Você descreve zonas e registros em um arquivo de configuração compatível com JavaScript, e o DNSControl compara o estado desejado com o que cada provedor mantém no momento. Em seguida, ele mostra uma prévia e aplica as diferenças pela API do provedor.
dnscontrol é gratuito? Qual é a licença?
dnscontrol é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
dnscontrol ainda é mantido?
Manutenção ativa. O último commit de dnscontrol foi em 21 de out. de 2026.
Para que posso usar dnscontrol?
Gerenciar registros DNS de vários domínios usando Git e revisão de pull requests. Migrar uma zona de um provedor de DNS para outro, mantendo ambos sincronizados durante os testes. Automatizar alterações de DNS em pipelines de CI/CD com a GitHub Action oficial. Manter sob controle de versão os registros DNS de servidores BIND ou PowerDNS auto-hospedados.
Como instalar dnscontrol?
Instale o DNSControl por meio de pacotes ou do código-fonte, seguindo as instruções oficiais Execute o assistente interativo de configuração para criar creds.json e dnsconfig.js: dnscontrol init Ou execute sem instalar, usando o contêiner do Docker: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
Onde consigo dnscontrol?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/DNSControl/dnscontrol

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados