Repository navigation
Greetings DNS fans!
New provider!
DNSControl now supports CloudPress DNS! Thanks to @arnoschoon for submitting this!
Experimental: Try the new D() syntax!
We're experimenting with a new registrar/dns provider syntax. Try out this newer, more concise format:
D("example.com",
REGISTRAR("gandi_main"),
SERVICE("gandi_main"),
A("@", "192.0.2.1")
);
No REG_* or DSP_* variables. No muss, no fuss.
- More examples here.
- Please test it and share feedback!
- The old NewRegistrar()/NewDnsProvider()/DnsProvider() syntax still works, of course. We'll support those forever.
Like it? Hate it? Join the discussion here: https://github.com/orgs/DNSControl/discussions/4949
Unless someone finds a major problem, this will probably become the default in all documentation in a coming release. Until then, the format might change slightly.
Thanks!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
Sincerely,
--Tom Limoncelli
Monthly video call!
Everyone is invited to the Monthly DNSControl Community Video Conference Call on the 2nd Tuesday of each month. Join whether you are a new user with questions or an experienced developer that wants to discuss DNSControl internals... or anything in between! Meeting details on
GitHub Discussions.
Changelog
Provider-specific changes:
- 89188fe: feat(p/BUNNYDNS): make the provider safe to run concurrently (#4980) (@jfexyz)
- 2b9883e: feat(p/DNSOVERHTTPS): mark the provider as verified for concurrency (#4981) (@jfexyz)
New features:
- 7e201d7: feat(cloudpress): add CloudPress DNS provider (#4390) (@arnoschoon)
- c16964f: feat: Stage 5: Add SupportedTypes and exhaustive provider validation (#4967) (@TomOnTime)
- 1a6b48a: feat: Stage 6a: support domain-specific DNS provider metadata (#4975) (@TomOnTime)
- b45d6dd: feat: Suppress "Serially checking"/"Serially Gathering " messages unless --full flag used (#4978) (@jfexyz)
- 0136f8c: feat: add SKIP_AUDIT modifier (#4971) (@GZTimeWalker)
- c9bf25d: feat: reduce messages if all providers are concurrent (--full overrides) (#4979) (@TomOnTime)
- 8d96a60: feat: stage 6b: add direct REGISTRAR/SERVICE syntax (#4976) (@TomOnTime)
Refactoring:
- d2f5fb9: refactor: Stage 2: Adopt new way for providers to register, test with 4 providers (#4956) (@TomOnTime)
- 93b3df7: refactor: Stage 3: Migrate remaining providers to providers.Register (#4965) (@TomOnTime)
- 76ddb69: refactor: Stage 4: Remove legacy provider registrations, accessors, etc (#4966) (@TomOnTime)
- ed4a220: refactor: Stage 6: Adopt SupportedTypes across providers (#4968) (@TomOnTime)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 sometime after v5.0 is released. This is a breaking change. Warnings are output if your configuration is affected. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM, OPENSRS and SOFTLAYER need maintainers! These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
Install
macOS and Linux
Install with Homebrew (recommended)
brew trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/dnscontrolUsing with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol previewAnywhere else
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
go install github.com/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.