DnsControl is an opinionated platform for seamlessly managing your DNS configuration across any number of DNS hosts, both in the cloud or in your own infrastructure. It manages all of the domains for the Stack Overflow network, and can do the same for you!
Maintain your DNS data as a high-level DS, with macros, and variables for easier updates.
Super extensible! Plug-in architecture makes adding new DNS providers and Registrars easy!
Eliminate vendor lock-in. Switch DNS providers easily, any time, with full fidelity.
Reduce points of failure: Easily maintain dual DNS providers and easily drop one that is down.
Supports 10+ DNS Providers including BIND, AWS Route 53, Google DNS, and name.com
Apply CI/CD principles to DNS: Unit-tests, system-tests, automated deployment.
All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs.
Optimize DNS with SPF optimizer. Detect too many lookups. Flatten includes.
Runs on Linux, Windows, Mac, or any operating system supported by Go.
Enable/disable Cloudflare proxying (the "orange cloud" button) directly from your DNSControl files.
Assign an IP address to a constant and use the variable name throughout the configuration. Need to change the IP address globally? Just change the variable and "recompile."
Keep similar domains in sync with transforms, macros, and variables.
Information for new users and the curious.
Language resources and procedures.
It is easy to add features and new providers to DNSControl. The code is very modular and easy to modify. There are extensive integration tests that make it easy to boldly make changes with confidence that you'll know if anything is broken. Our mailing list is friendly. Afraid to make your first PR? We'll gladly mentor you through the process. Many major code contributions have come from first-time Go users!
Icons made by Freepik from www.flaticon.com