Quick Start
Get BoronDNS running in under 5 minutes using the prebuilt installer, or follow the full build path from source.
Option A — Installer archive (recommended)
Download the static installer archive for your platform from the releases page, then:
tar -xf borondns-0.2.0-x86_64-unknown-linux-musl.tar.xz
cd borondns-0.2.0-x86_64-unknown-linux-musl/
sudo ./install.sh
For unattended setup with a single zone:
sudo BORONDNS_ZONE=example.com. \
BORONDNS_PRIMARY=10.0.0.10:53 \
BORONDNS_NOTIFY_SOURCE=10.0.0.10 \
./install.sh --yes
The installer places the binary at /usr/local/bin/borondns, installs a systemd service unit, and writes a starting config to /etc/borondns-secondary/config.toml.
Option B — Build from source
Prerequisites
- Rust stable toolchain — rustup.rs
- An existing primary nameserver that supports AXFR/IXFR
- A TSIG key shared with the primary (optional but strongly recommended)
Install Rust tools:
rustup toolchain install stable
rustup component add rustfmt clippyClone and build
git clone https://github.com/Integrity-Ltd/borondns.git
cd borondns
cargo build --locked --release -p borondns-cli
sudo install -m 0755 target/release/borondns /usr/local/bin/borondns
Confirm the build:
./target/release/borondns --versionCreate a config
Start from the built-in example config:
sudo install -d -m 0755 /etc/borondns-secondary
borondns --example-config | sudo tee /etc/borondns-secondary/config.toml
$EDITOR /etc/borondns-secondary/config.toml
A minimal working config requires a [[zones]] block with a zone name and primary address:
[interfaces.dns]
# Address to serve authoritative DNS (UDP and TCP)
bind_address = "0.0.0.0"
port = 53
[[zones]]
name = "example.com."
primaries = [{ address = "10.0.0.1", port = 53 }]
notify_sources = ["10.0.0.1"]
tsig_name = "my-primary-key"
[tsig."my-primary-key"]
algorithm = "hmac-sha256"
secret_file = "/etc/borondns-secondary/keys/my-primary-key.key"Validate and start
# Validate config without starting the server
borondns --validate-config /etc/borondns-secondary/config.toml
# Dump effective config (secrets redacted)
borondns --dump-config /etc/borondns-secondary/config.toml
# Start the server
borondns serve --config /etc/borondns-secondary/config.tomlVerify
In another shell, check liveness and zone status:
curl -fsS http://127.0.0.1:8080/livez
curl -fsS http://127.0.0.1:8080/readyz
When zones are loaded and active, /readyz returns HTTP 200.
Next: Installation — packaging, Docker, and systemd service setup.