Releases: StackExchange/dnscontrol
v4.21.0
Greetings, DNS fans!
What's new? GCORE and NS1 now handle zone creation and listing better. I'm also excited to announce the new "providers page" (which is auto-generated). It is much more readable. Many people were involved in this change, with @chicks-net taking the lead and writing the code. View the results here: https://docs.dnscontrol.org/provider/index
There were many documentation updates and bugfixes.
Reminder: get-certs
(cert renewals) and the MSDNS
provider are scheduled to be removed in July 2025. See below.
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all our contributors!
Sincerely,
Tom
Changelog
Provider-specific changes:
- cdbd540: GANDI_V5: BUGFIX: Uppercase labels fail to update (#3582) (@tlimoncelli)
- 113c1ac: GCORE: Implement ListZones to allow auto create zones (#3588) (@xddxdd)
- 08a6af8: NS1: Add missing ListZones() (#3600) (@costasd)
Documentation:
- 87cd4f4: DOCS: generate smaller tables for feature matrix (2nd try) (#3589) (@chicks-net)
- 8c69cee: DOCS: Update providers and registrars list to latest (#3580) (@matteotrubini)
- 52e7caa: DOCS: Update reference to providers index in PR submission checklist (#3575) (@jbelien)
- e140acb: CNR: Update docs with proper Nameserver example (#3592) (@mejofi)
- 6e96b76: DOCS: Add Porkbun as supported registrar and update usage examples (#3578) (@matteotrubini)
- 1d148f4: DOCS: document redirect types (#3585) (@willpower232)
CI/CD:
- c32432e: BUILD: GoReleaser changelog dependencies regex (#3593) (@cafferata)
- 75a66e4: Build(deps): Bump alpine from 3.21.3 to 3.22.0 (#3599) (@dependabot[bot])
- bf5a425: Build(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.9.0 to 1.10.0 (#3595) (@dependabot[bot])
- d7d5a6b: Build(deps): Bump github.com/digitalocean/godo from 1.146.1 to 1.150.0 (#3596) (@dependabot[bot])
- b7df6d5: Build(deps): Bump github.com/huaweicloud/huaweicloud-sdk-go-v3 from 0.1.148 to 0.1.152 (#3598) (@dependabot[bot])
- cffa7e4: Build(deps): Bump github.com/mittwald/go-powerdns from 0.6.6 to 0.6.7 (#3594) (@dependabot[bot])
- 9af2e8a: Build(deps): Bump github.com/oracle/oci-go-sdk/v65 from 65.91.0 to 65.92.0 (#3597) (@dependabot[bot])
- 437e46f: Build(deps): Bump tar-fs from 3.0.8 to 3.0.9 (#3601) (@dependabot[bot])
Dependencies:
- 217f410: CHORE: Update dependencies (#3602) (@tlimoncelli)
- df7bf9f: CHORE: Update dependencies (#3604) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.20.0
Greetings, DNS fans!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all our contributors!
Changelog
Provider-specific changes:
- be081cd: AUTODNS: Enable "get-zones" (ListZones, EnsureZoneExists, GetRegistrarCorrections) (#3568) (@flokli)
- 5e4d68b: CLOUDFLAREAPI: Enable inserting DS records at the domain apex (even if they may be rejected) (#3571) (@tlimoncelli)
- 97bbc80: INWX: BUGFIX: ALIAS RRs updates are broken due to trailing dot issue (#3564) (@eliheady)
- 277a260: ROUTE53: BUGFIX converting alias to cname causes failure (#3567) (@tlimoncelli)
Other changes and improvements:
- 7882326: CHORE: generate-all.sh (#3572) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.19.0
Greetings DNS fans!
This is mostly a bugfix release. INWX adds AutoDNSSEC and ALIAS support, plus a bunch of other cleanups thanks to @eliheady!
NEWS: Github Discussions has been enabled. We hope it will become the best place for questions and discussions!
REMINDER: get-certs
(SSL cert generation via ACMV/LetsEncrypt) and the MSDNS
provider will be removed in a few months. Most likely late July.
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all our contributors!
Best,
Tom
Changelog
General changes:
- 7a4c16f: BUGFIX: REV fails in D_EXTEND for IPv6 addresses (#3552) (@tlimoncelli)
Provider-specific changes:
- cf971b8: AXFRDDNS: Ignore ZONEMD records (#3551) (@gucci-on-fleek)
- e2c4a4a: AZURE: populate zone cache after creating zone (#3329) (@das7pad)
- 6974335: AZURE_DNS: Dedupe nameserver (#3526) (@vatsalyagoel)
- 5715b84: BUNNY_DNS: Support DNSSEC and fix Null MX parsing (#3547) (@ppmathis)
- 25fa91c: DESEC: Properly support punycode domains (#3479) (@networkException)
- 1c04aff: INWX: Add AutoDNSSEC support (#3534) (@eliheady)
- cfaa82f: INWX: Fix Null MX handling (#3524) (@eliheady)
- 76e1d38: INWX: populate zone cache after creating zone (#3334) (@das7pad)
- c204cce: INWX: support ALIAS records (#3499) (@tennox)
- 07ffb3a: INWX: use domain ACE encoding as cache key (#3519) (@eliheady)
- 03932c9: NAMECHEAP: fix support for url etc records (#3538) (@willpower232)
- 605ec55: PORKBUN: Add support for SVCB and HTTPS record types. (#3527) (@jcjones)
- 6322a62: POWERDNS: Add support for DNAME, HTTPS, SVCB, and DNSKEY record types (#3525) (@vfreex)
Documentation:
- c4f5bda: DOCS: add for CONCURRENCY_VERIFIED (#3510) (@gotjoshua)
- 6a008a9: DOCS: Added requested providers Netim (#3517) (@cafferata)
- e41a6ba: DOCS: Fix link to contributor responsibilities (#3528) (@tlimoncelli)
- 9c7fafa: DOCS: Reclassify providers concurrency status (#3518) (@cafferata)
Other changes and improvements:
- bb7f881: BUG: Fixed concurrency verified matrix builder (#3537) (@cafferata)
- d0fffaf: BUGFIX: types fix: CAA_BUILDER accepts string[] or string for issue (#3546) (@eliheady)
- cf26268: CHORE: Update dependencies (#3560) (@tlimoncelli)
- ba67db2: CHORE: generate-all.sh (#3561) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.18.0
Greetings DNS fans!
This is mostly a bugfix release. Some highlights include:
- 475f99b: D_EXTEND works better with REV, some bugs still remain (#3488) (@tlimoncelli)
- 7661175: typescript improvements for require_glob optional (#3508) (@labrown)
- 0097b63: CLOUDFLARE: Changed how CF_REDIRECT names are generated. Your next "push" will rename things.
- 14c3acb: CLOUDFLARE: SINGLE_REDIRECT now permits 307 redirects too (#3514) (@tlimoncelli)
- fef79fb: AUTODNS: enable concurrent gathering of zones (#3494) (@arnoschoon)
- eec0f49: AUTODNS: fix error when restoring existing MX or SRV records (#3492) (@arnoschoon)
- 6bf1fda: INWX: Rewritten to use the modern diff2 system! (#3501) (@eliheady)
- e0e3021: INWX: use provisioned nameservers, fall back to hardcoded defaults (#3502) (@eliheady)
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all our contributors!
Best,
Tom
Changelog
Provider-specific changes:
- 14c3acb: CLOUDFLARE_API: SINGLE_REDIRECT permits more than 301/302 redirects (#3514) (@tlimoncelli)
- fef79fb: AUTODNS: enable concurrent gathering of zones (#3494) (@arnoschoon)
- eec0f49: AUTODNS: fix error when restoring existing MX or SRV records (#3492) (@arnoschoon)
- 0097b63: CLOUDFLARE: CF_REDIRECT "name" should be 3-digits so it sorts better (#3495) (@tlimoncelli)
- 6bf1fda: INWX: move to diff2 for record corrections (#3501) (@eliheady)
- e0e3021: INWX: use provisioned nameservers, fall back to hardcoded defaults (#3502) (@eliheady)
Documentation:
- 5dafc9c: DOCS: Add fmt for .js files to releng process (#3490) (@tlimoncelli)
- 47abf99: DOCS: Added requested providers BookMyName, IPv64 and Spaceship (#3496) (@cafferata)
- 839d510: DOCS: Fix typo in IGNORE.md (#3512) (@gucci-on-fleek)
- 1e5acba: DOCS: language-reference/D: fix broken link (#3486) (@pataquets)
- 7661175: META: typescript: Mark recursive parameter of require_glob optional (#3508) (@labrown)
CI/CD:
- 0d8dcea: BUILD: Move regen steps to a script (#3491) (@tlimoncelli)
- 5d4f286: Build(deps): Bump actions/cache from 4.2.2 to 4.2.3 (#3505) (@dependabot[bot])
- 9ff73df: Build(deps): Bump actions/upload-artifact from 4.6.1 to 4.6.2 (#3506) (@dependabot[bot])
- 00c9c62: Build(deps): Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 (#3503) (@dependabot[bot])
- c5b3ccc: CICD: Detect broken HTML links in the documentation as part of the pipeline (#3439) (@cafferata)
Other changes and improvements:
- 5ad2df1: BUG: fix panic message (#3489) (@tlimoncelli)
- d536805: CHORE: Update dependencies (#3504) (@tlimoncelli)
- 587519e: CHORE: Update dependencies (#3515) (@tlimoncelli)
- 475f99b: bug(rev) D_EXTEND does not work with REV (#3488) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.17.0
Greetings DNS fans!
This is mostly a bugfix release. Most notable is that @eliheady fixed how split horizon domains work with the push --domains
flag. Not only are the bugs fixed, but wildcards now work! See https://docs.dnscontrol.org/commands/preview-push for details.
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all our contributors!
Best,
Tom
Changelog
Major features:
Provider-specific changes:
- 2c56f68: CLOUDFLAREAPI: Future-proof how ALIAS is handled (#3436) (@tlimoncelli)
- ea645bf: DNSMADEEASY: populate zone cache after creating zone (#3333) (@das7pad)
- ad308f6: OVH: Bugfix: Native DMARC records rejected for subdomains (#3440) (@masterzen)
- 063d8b0: BUNNY_DNS: Add support for
Redirect
record (#3472) (@stevenrombauts)
Documentation:
- f3bdb17: DOCS: Fix quoting issue in D.md (#3446) (@labrown)
- e91289b: DOCS: Fixes broken GitHub badge (#3438) (@cafferata)
- 83a36a6: DOCS: SOA RNAME description isn't accurate (#3481) (@jpmens)
- 5c18be2: DOCS: Update migrating.md to match BIND's current behavior (#3454) (@udf2457)
- e0e32ca: DOCS: fix broken links (#3437) (@imlonghao)
- 0d92d7a: DOCS: fix link to writing-providers.md (#3430) (@nyanotech)
CI/CD:
- 59183f3: Build(deps): Bump actions/cache from 4.2.0 to 4.2.1 (#3459) (@dependabot[bot])
- bd2c940: Build(deps): Bump actions/cache from 4.2.1 to 4.2.2 (#3480) (@dependabot[bot])
- 6aeacc6: Build(deps): Bump actions/upload-artifact from 4.6.0 to 4.6.1 (#3458) (@dependabot[bot])
- 38fd85a: Build(deps): Bump alpine from 3.21.2 to 3.21.3 (#3478) (@dependabot[bot])
- 1962fb8: Build(deps): Bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 (#3465) (@dependabot[bot])
Dependencies:
- 8c3903e: CHORE: update deps; go generate (#3455) (@tlimoncelli)
Other changes and improvements:
- b0bc29c: BUG: get-zones not generating SOA() statements properly (#3464) (@tlimoncelli)
- f8ae1ee: Bug: HASH() outputs debug info (#3483) (@jpmens)
- c01bfdc: CHORE: Future proof CAA integration test (#3449) (@tlimoncelli)
- f281698: CHORE: Update dependencies (#3484) (@tlimoncelli)
- 311b6d8: REFACTOR: Split integration_test.go (it should mostly contain data tables) (#3420) (@tlimoncelli)
- 3f8f9e7: refactor(RecordConfig): Use ChangeType() instead of assignment (#3441) (@tlimoncelli)
- 2c4cc0c: refactor(current-domain) Remove dot from current-domain (#3433) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.16.0
Greetings, DNSControl fans!
Welcome to v4.16.0!
Big change: As announced in October 2024, this release removes the old non-concurrent preview/push code. The new code is faster, easier to maintain, easier to add new features. This release removes: ppreview
, ppush
and --cmode=legacy
command-line options. Providers marked as unable to run concurrently run one zone at a time. Thanks to everyone for all the testing, comments, and suggestions!
This release has one other notable new feature: Azure DNS authentication is now modernized and supports OIDC. Thanks to @lckz!
This is a community project and we couldn't do it without all our contributors! This release has PRs from 10 people. Thanks! We couldn't do it without you!
Thanks!
Tom
Changelog
Major features:
- 15a22ae: FEATURE: Enable OIDC support for Azure DNS provider (#3398) (@lckz)
- 304515d: FEATURE: Remove ppreview/ppush and cmode=legacy (#3412) (@tlimoncelli)
Provider-specific changes:
- 4f5655e: NS1: remove deprecated NS1_URLFWD (#3400) (@costasd)
- f80c1c0: POWERDNS: Allow editing the SOA record (#3404) (@Veratil)
Documentation:
- 4d94fcc: DOCS: Provider request: Vercel DNS (#3416) (@cafferata)
CI/CD:
- defa4dc: Build(deps): Bump alpine from 3.21.0 to 3.21.2 (#3410) (@dependabot[bot])
- 93467a4: CICD: GoReleaser archives format_overrides deprecation (#3417) (@cafferata)
Other changes and improvements:
- f264047: BUG: create zones on push regardless of --populate-on-preview=false (#3402) (@das7pad)
- 5b9f304: CHORE: Update dependencies (#3414) (@tlimoncelli)
- 4d7b485: CHORE: Update dependencies (#3418) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.15.6
Hello DNS fans!
Apologies for the many releases this week.
This one fixes a bug with the MSDNS provider. If you don't use MSDNS, there's no reason to rush to upgrade.
I'm experimenting with Github's "pre-release" feature as a way to do more testing before releases are official. This release will be published but not marked "production" until after those tests are complete. I don't know how long that will take. There's a chance this release will be cancelled as I learn how this feature works.
Tom
Changelog
Provider-specific changes:
- 70e9659: MSDNS: Provider is failing due to lint fix gone wrong (#3396) (@tlimoncelli)
Other changes and improvements:
- 901a3ac: CHORE: Update dependencies (#3397) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.15.5
Hello DNSControl fans!
Sadly a performance regression that affects CLOUDFLAREAPI and HETZNER users was observed shortly after v4.15.4 shipped. Please ignore v4.15.4 and jump directly to v4.15.5.
Apologies! We're updating our release process to avoid this particular situation in the future.
Tom
Changelog
Other changes and improvements:
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.15.4
Hello DNSControl fans!
Tons of great contributions this time!
Global features:
- The most visible change is that
preview
will create missing zones at a provider. Disable this with--populate-on-preview=false
. - PTR fans will appreciate that magic PTRs now support RFC4183-style names.
- Plus many documentation improvements, code fixes, and smaller bugs fixed.
Provider improvements:
- CLOUDFLARE: TTL=300 hasn't been special for a long time. Now our code reflects that.
- CNR adds ALIAS support, better error checking, and is significantly faster in general.
- GCLOUD is now more resilient as it will attempt a one retry on 502 errors.
- HEXONET: Add error handling for MX and SRV record priority
- INWX now supports SRV "." targets
- POWERDNS fixes preview/push of non-existent zones.
- ROUTE53 now supports HTTPS, SSHFP, SVCB, and TLSA record types.
- TRANSIP is a lot faster and supports rate-limiting.
On the code side: Many warnings from golangci-lint have been fixed; a ZoneCache primitive has been added which will make it easier for providers to safely cache the list of zones at a provider (currently in use by CLOUDFLAREAPI and HETZNER; we'll convert other providers in the future).
This is a community project and we couldn't do it without all our contributors! This release has PRs from 10 people. Thanks! We couldn't do it without you!
Tom
REMINDER: "ppreview" and "ppush" are going away in Release v4.16 (the next release!). See #3142
Changelog
Major features:
- ab00797: FEATURE: Extend PTR magic handling to support RFC4183 names (#3364) (@tomhughes)
Provider-specific changes:
- 0d5b3c2: CLOUDFLARE: adopt ZoneCache (#3373) (@das7pad)
- 3556439: CLOUDFLAREAPI: No longer treat TTL=300 as special (#3368) (@tlimoncelli)
- a3d6c51: CNR: Add support for ALIAS record type (#3360) (@AsifNawaz-cnic)
- a631c5b: CNR: Initial Performance improvement; golint review (#3391) (@KaiSchwarz-cnic)
- c348e35: GCLOUD: CICD: Skip the pager1201 integration test (#3383) (@tlimoncelli)
- f666af8: GCLOUD: Re-try on 502 errors (#3376) (@tlimoncelli)
- 67db0e2: GCLOUD: remove (irrelevant) slow test (#3384) (@tlimoncelli)
- 2ef2362: HETZNER: adopt ZoneCache (#3372) (@das7pad)
- b5b2873: HEXONET: Add error handling for MX and SRV record priority parsing (#3355) (@AsifNawaz-cnic)
- 4956d3d: HEXONET: Skip unneeded test to speed up CICD (#3348) (@tlimoncelli)
- 1a1a4bf: INWX: Enable SRV to have "." target (#3380) (@tlimoncelli)
- 89c65b6: INWX: Permit "." target for SRV records (#3377) (@tlimoncelli)
- d13cf0f: POWERDNS: fix preview/push of a non-existent zone (#3338) (@Veratil)
- cc366d4: ROUTE53: Add HTTPS, SSHFP, SVCB, and TLSA record types (#3316) (@bdd)
- 8a2cf1f: TRANSIP: Change to zone-based updates to dramatically improve speed of updates (#3362) (@blackshadev)
- 5cfb907: TRANSIP: Pause when rate-limited (#3378) (@tlimoncelli)
Documentation:
- 519e4f8: DOCS: Provider URI redirect (#3307) (@cafferata)
- f971885: DOCS: Rackspace Cloud DNS provider request (#3322) (@cafferata)
CI/CD:
- 16159f3: Build(deps): Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#3356) (@dependabot[bot])
- 9e88b6a: CICD: Make pager tests more visible (#3387) (@tlimoncelli)
- fc2c506: CICD: Warn user if -provider does not match profiles.json:TYPE (#3375) (@tlimoncelli)
Other changes and improvements:
- 556926a: BUG: Create zones ahead of gathering data (#3337) (@das7pad)
- 5dbe5e8: CHORE: Fix lint warnings from golangci-lint (#3311) (@tlimoncelli)
- 1742e65: CHORE: Rename
-provider
to-profile
within the GitHub integration tests. (@cafferata) - 533c7e0: CHORE: Rename
-provider
to-profile
within the documentation. (@cafferata) - e8bf7c7: CHORE: Rename
-provider
to-profile
within the integration tests. (@cafferata) - b87fb50: CHORE: Rename
providers.json
toprofiles.json
within the documentation. (@cafferata) - 59afd10: CHORE: Rename
providers.json
toprofiles.json
within the integration tests. (@cafferata) - e1c9785: CHORE: Update dependencies (#3385) (@tlimoncelli)
- 5c9b170: FEAT: Add ZoneCache primitive (#3365) (@das7pad)
- 2461f3d: REFACTOR: prettysort should unify FQDN to "@" earlier (#3323) (@tlimoncelli)
- 6926338: TESTING: Improve AXFRDDNS integration tests (#3317) (@hnrgrgr)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.15.3
Hello and happy new year, DNS fans!
This is mostly a bugfix release but 2 of the bugfixes are very important. It is strongly recommended that you upgrade immediately if you use NAMEDOTCOM at all, and if you use IGNORE*()
features on AUTODNS, BIND, MYTHICBEASTS, REALTIMEREGISTER, or SAKURACLOUD
Major bugs:
-
(#3259) NAMEDOTCOM: TXT records were not generated properly. Quotes were added around the text. This went unnoticed for months (years?). Thanks to @tkurki for reporting this! (FYI: This provider needs a volunteer maintainer. See below!)
-
(#3227) IGNORE() deletes ignored records when used with providers that use the
diff2.ByZone()
function: This affects AUTODNS, BIND, MYTHICBEASTS, REALTIMEREGISTER, SAKURACLOUD only. This was extremely difficult to find but thanks to some smart detective work by @rmc47 we not only found the problem, but developed an entirely new technique for testing IGNORE(). I now have greater confidence in IGNORE() and believe it is bug-free for all cases except when a third-party is updating the zone at the same time (something that can't be fixed because DNS doesn't have transactional locking).
Other news:
-
AXFRDDNS got a long-needed update from (@gucci-on-fleek) who fixed a number of small problems, enabled LOC records, and added it to The List of AutoTested Providers!
-
MYTHICBEASTS is now on The List of AutoTested Providers thanks to @tomfitzhenry!
Speaking of The List of AutoTested Providers: These are the providers that get fully tested with each release:
- AXFRDNS, AZURE_DNS, BIND, CLOUDFLAREAPI, CNR
- DIGITALOCEAN, GANDI_V5, GCLOUD, HEDNS, HEXONET
- MYTHICBEASTS, NAMEDOTCOM, NS1, ROUTE53
- SAKURACLOUD, TRANSIP
All other providers are not tested as often. Want your provider added to this list? Here's how: https://docs.dnscontrol.org/developer-info/byo-secrets
Changelog
Provider-specific changes:
- d0d9926: AXFRDDNS: Add support for LOC records (#3269) (@gucci-on-fleek)
- 9c3a161: AXFRDDNS: Enable automated testing (#3290) (@tlimoncelli)
- e664dae: AXFRDDNS: Modernize, Update supported capabilities (#3294) (@gucci-on-fleek)
- 76bbdc1: GANDI_V5: Increase error verbosity (#3267) (@tlimoncelli)
- fb3adf9: MYTHICBEASTS: Add MYTHICBEASTS to automated tests (#3277) (@tomfitzhenry)
- 43bb75e: MYTHICBEASTS: CHORE: fix code formatting (#3281) (@tlimoncelli)
- a8990ae: NAMEDOTCOM: BUGFIX: TXT records add unneeded quotes (#3260) (@tlimoncelli)
Documentation:
- 35ac9a9: DOCS: Add dep updates steps to rel-eng (#3265) (@tlimoncelli)
- aa93615: DOCS: Add fmtjson and "get co main" to releng docs (@tlimoncelli)
- 2f55b6c: DOCS: How to test a branch (feedback) (#3268) (@cafferata)
- 71539d4: DOCS: Shoutrrr added list of notification services (#3242) (@cafferata)
CI/CD:
- 6d5bfe9: Build(deps): Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#3270) (@dependabot[bot])
- f265dba: Build(deps): Bump alpine from 3.20.3 to 3.21.0 (#3289) (@dependabot[bot])
- ea5e571: CICD: Update docs/comments after file renames (#3278) (@tomfitzhenry)
- 513b8be: CICD: json files should be strictly formatted (#3282) (@tlimoncelli)
Other changes and improvements:
- dd26354: Add .git-blame-ignore-revs (@tlimoncelli)
- a341022: BUGFIX: IGNORE() deletes ignored records on ByZone() platforms (#3263) (@tlimoncelli)
- f202433: CHORE: Remove debug statements (#3293) (@tlimoncelli)
- 1ffd38f: CHORE: Update dependencies (#3266) (@tlimoncelli)
- 2c2d7a1: CHORE: Update dependencies (#3288) (@tlimoncelli)
- 4489295: CHORE: Update dependencies (@tlimoncelli)
- af9e214: CI/CD: Make titles easier to read (#3274) (@tlimoncelli)
- 7f477d8: CI/CD: Run integration tests and GoReleaser concurrently (#3258) (@tlimoncelli)
- 1a1e592: DOC: NEW: How to test a branch (#3264) (@tlimoncelli)
- e232501: TESTING: parse_tests: Generate post-processed json files (@tlimoncelli)
- e9ff430: TESTING: parse_tests: reformat/regenerate .js .json files (@tlimoncelli)
- 876451b: empty (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.