macOS
brew install dnscontrollocal Homebrew formula metadata
sudo port install dnscontrolMacPorts ports tree · sysutils/dnscontrol/Portfile · source: api.github.com
brew
Synchronize your DNS to multiple providers from a simple DSL. Version 4.42.0 via Homebrew; verified 2026-06-18.
install
brew install dnscontrollocal Homebrew formula metadata
sudo port install dnscontrolMacPorts ports tree · sysutils/dnscontrol/Portfile · source: api.github.com
sudo apk add dnscontrolAlpine Linux edge package indexes · dnscontrol · source: dl-cdn.alpinelinux.org
nix profile install nixpkgs#dnscontrolnixpkgs package indexes · pkgs/by-name/dn/dnscontrol/package.nix · source: api.github.com
winget install --id StackExchange.DNSControl -eWindows Package Manager source index · StackExchange.DNSControl · source: cdn.winget.microsoft.com
overview
Synchronize your DNS to multiple providers from a simple DSL
history
DNSControl is an infrastructure-as-code tool for managing DNS records across multiple registrars and DNS providers. It uses a JavaScript-like DSL in dnsconfig.js, provider credentials in creds.json, and commands such as preview and push to turn repository-managed DNS intent into provider changes.
Stack Overflow introduced DNSControl publicly in 2017 as the system it built to manage DNS with a describe-once, use-anywhere model. The project grew from Stack Exchange's operational needs into an open-source tool with provider plugins, a compiler-like intermediate representation, and a documentation site for the DSL and provider ecosystem.
DNSControl's adoption story is unusually package-nerdy because its own README cites Stack Overflow using it for hundreds of domains and subdomains. That production pedigree, plus support for many providers, made it attractive to teams that wanted DNS changes reviewed, tested, and applied like code.
A typical workflow is to keep dnsconfig.js, creds.json, and optional zone files in a Git repository, run dnscontrol preview to inspect changes, and run dnscontrol push to apply them. The getting-started guide explicitly walks users through creating a config directory, dnsconfig.js, creds.json, and a zones directory for local testing.
DNSControl matters to package and ops people because it turns DNS into a reproducible artifact with reviewable diffs. It also represents the CLI packaging sweet spot: a Go binary, strong docs, release automation, Docker support, Homebrew availability, and enough provider plugins to justify distro packaging.
security posture
No matching local secret-handling manifest was found for dnscontrol. Nucleus package metadata is still published here so future coverage has a stable package URL.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
./dnsconfig.jsCredential-bearing paths to review before unattended agent runs.
./creds.jsonexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
dnscontrol | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/DNSControl/dnscontrol
install metadata
| Package key | brew:dnscontrol |
|---|---|
| Version | 4.42.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/dnscontrol |
| Homepage | https://dnscontrol.org/ |
| Repository | https://github.com/DNSControl/dnscontrol |
| Upstream docs | https://dnscontrol.org/ |
| License | MIT |
| Source archive | https://github.com/DNSControl/dnscontrol/archive/refs/tags/v4.42.0.tar.gz |
| Last updated | 2026-06-18T21:40:25Z |
| Pulse | updated |
| Build dependencies | go |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
| Caveats | dnscontrol bash completion depends on the bash-completion package. |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | dnscontrol |
| Version Scheme | 1 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
dnscontrol
nix profile install nixpkgs#dnscontroldnscontrol 4.41.0-r0
Synchronize your DNS to multiple providers from a simple DSL
sudo apk add dnscontroldnscontrol-doc 4.41.0-r0
Synchronize your DNS to multiple providers from a simple DSL (documentation)
sudo apk add dnscontrol-docdnscontrol
sudo port install dnscontrolStackExchange.DNSControl
winget install --id StackExchange.DNSControl -esource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.