Repolode
DNSControl

DNSControl/dnscontrol

Infraestructura como código para DNS: define registros DNS en una configuración basada en JavaScript y publícalos en varios proveedores.

Estrellas
3,979
Forks
550
Issues abiertos
32
Último commit
ayer

¿Qué es?

DNSControl gestiona los registros DNS como código. Describe zonas y registros en un archivo de configuración compatible con JavaScript, y DNSControl compara ese estado deseado con lo que tiene actualmente cada proveedor; luego muestra una vista previa y aplica las diferencias mediante la API del proveedor.

Incluye plugins para alrededor de 77 proveedores y registradores de DNS, como Amazon Route 53, Cloudflare, Gandi, Google Cloud DNS y opciones autohospedadas como ISC BIND y PowerDNS. Una sola configuración puede publicar los mismos registros en varios proveedores a la vez, lo que reduce los riesgos de cambiar de proveedor o probar uno nuevo. La herramienta funciona en Linux, macOS y Windows, y su modelo de proveedores permite añadir otros nuevos como plugins.

El proyecto está escrito en Go y suele ejecutarse desde la línea de comandos, en un contenedor Docker o mediante una GitHub Action, para que los cambios de DNS se puedan revisar en pull requests y desplegar mediante CI.

Funciones clave

  • 01Describe zonas y registros DNS en un archivo de configuración compatible con JavaScript.
  • 02Muestra una vista previa de los cambios en los proveedores activos antes de aplicarlos con push.
  • 03Sincroniza los mismos registros con varios proveedores de DNS desde una sola configuración.
  • 04Admite alrededor de 77 proveedores y registradores de DNS mediante plugins.
  • 05Ofrece variables y macros para reutilizar IP, configuraciones SPF y MX en distintos dominios.
  • 06Funciona en Linux, macOS y Windows, y está disponible como imagen de Docker.

Casos de uso

  • Gestionar registros DNS de muchos dominios mediante Git y revisiones de pull requests.
  • Migrar una zona de un proveedor de DNS a otro y mantener ambos sincronizados durante las pruebas.
  • Automatizar cambios de DNS en pipelines de CI/CD con la GitHub Action oficial.
  • Mantener bajo control de versiones los registros DNS de servidores BIND o PowerDNS autohospedados.

Inicio rápido

  1. 1

    Instala DNSControl desde los paquetes o el código fuente siguiendo las instrucciones oficiales

  2. 2

    Ejecuta el asistente de configuración interactivo para crear creds.json y dnsconfig.js

    dnscontrol init
  3. 3

    O ejecútalo sin instalarlo mediante el contenedor de Docker

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

Antes de usarlo

  • A partir de la versión 5.0, REV() cambiará de RFC2317 a RFC4183. Es un cambio incompatible.
  • Los proveedores NAMEDOTCOM, OPENSRS y SOFTLAYER no tienen actualmente ningún mantenedor.

Temas

Preguntas frecuentes

¿Qué es dnscontrol?
Infraestructura como código para DNS: define registros DNS en una configuración basada en JavaScript y publícalos en varios proveedores. DNSControl gestiona los registros DNS como código. Describe zonas y registros en un archivo de configuración compatible con JavaScript, y DNSControl compara ese estado deseado con lo que tiene actualmente cada proveedor; luego muestra una vista previa y aplica las diferencias mediante la API del proveedor.
¿dnscontrol es gratuito? ¿Qué licencia tiene?
dnscontrol es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿dnscontrol sigue mantenido?
Mantenimiento activo. El último commit de dnscontrol fue el 21 oct 2026.
¿Para qué puedo usar dnscontrol?
Gestionar registros DNS de muchos dominios mediante Git y revisiones de pull requests. Migrar una zona de un proveedor de DNS a otro y mantener ambos sincronizados durante las pruebas. Automatizar cambios de DNS en pipelines de CI/CD con la GitHub Action oficial. Mantener bajo control de versiones los registros DNS de servidores BIND o PowerDNS autohospedados.
¿Cómo se instala dnscontrol?
Instala DNSControl desde los paquetes o el código fuente siguiendo las instrucciones oficiales Ejecuta el asistente de configuración interactivo para crear creds.json y dnsconfig.js: dnscontrol init O ejecútalo sin instalarlo mediante el contenedor de Docker: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
¿Dónde consigo dnscontrol?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/DNSControl/dnscontrol

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados