Manual Installation¶
Install Bindizr and a BIND secondary on the same Linux host, then create and query a zone. The package uses SQLite and a systemd service by default.
1. Install a name server¶
Bindizr drives the secondary over standard AXFR, IXFR, NOTIFY and catalog zones, so any server in Secondary Servers will do. BIND is what the rest of this page installs.
2. Download Bindizr and install¶
You can download the latest Bindizr binary from
Release. Each
release also carries THIRD_PARTY_LICENSES.html, the licenses of the crates
the binaries are built from.
To build the binary yourself instead, see Building from Source.
3. Configure Bindizr¶
The package installs /etc/bindizr/bindizr.conf.toml ready to run: SQLite at
/var/lib/bindizr/bindizr.db and DNS on 127.0.0.1:5300, leaving port 53
to the secondary. For MySQL or PostgreSQL, set database.type and that
backend's url; see Configuration.
The service reads the configuration as the bindizr user. Keep its installed
ownership and permissions (0640 root:bindizr) when editing it.
4. Start Bindizr¶
# Start Bindizr service (the package already enabled it at boot)
sudo systemctl start bindizr
# Create and save an admin API token; its secret is shown once.
sudo bindizr token create admin --role admin
Use sudo for CLI commands on a package install: they require the daemon's
user or root.
5. Configure the secondary¶
Follow the BIND setup to register the secondary and configure its catalog zone. Its example uses the same local ports as this guide. For another server, follow Knot DNS, NSD, PowerDNS, or another server.
After restarting the secondary, check the installation:
A failing line names the piece; Troubleshooting has the fix for the common ones.
6. Create a zone and query it¶
# The zone starts with an apex NS record naming ns1.example.com, which a
# secondary needs before it will load the zone; --no-apex-ns leaves that to you.
sudo bindizr zone create example.com --mname ns1.example.com --rname admin@example.com
sudo bindizr record create example.com www --type A --value 192.0.2.1
# The secondary learned the zone through the catalog and pulled it; it answers on 53
dig @127.0.0.1 www.example.com A +short
# Expected answer: 192.0.2.1
# Which serial each secondary serves, against Bindizr's
sudo bindizr zone status example.com
The package also installs shell completions and man bindizr, so the command
surface is reachable without the docs.
From here the CLI and the HTTP API cover the rest. To move zones from a name server you already run, see Migrating an Existing Primary.