CLI de infraestructura como código que planifica y aplica archivos de configuración declarativos para crear, modificar y versionar recursos de servicios y en la nube.
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
Instala DNSControl desde los paquetes o el código fuente siguiendo las instrucciones oficiales
- 2
Ejecuta el asistente de configuración interactivo para crear creds.json y dnsconfig.js
dnscontrol init - 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
Meshery es un gestor cloud native de código abierto para diseñar, desplegar y operar infraestructura y aplicaciones de Kubernetes en varios clústeres y nubes.
Panel de control autohospedado para implementar aplicaciones web y gestionar bases de datos, contenedores Docker, DNS, copias de seguridad y seguridad en un VPS o servidor dedicado.
Herramienta declarativa de entrega continua GitOps que sincroniza aplicaciones de Kubernetes con el estado definido en repositorios Git.
Plataforma de feature flags nativa de Git que almacena las flags en tus propios repositorios y las despliega junto con el código.
Orquestación open source de IaC que ejecuta Terraform y OpenTofu en tu CI actual, con plan y apply desde comentarios en pull requests.