INSTALL / ARMV6
Build DNS Deny for Raspberry Pi Zero
For the original Raspberry Pi Zero and Zero W: a 32-bit ARMv6 processor and 512 MB RAM. Cross-build on a capable host, then transfer the result.
1. Prepare a cross-build host
Use Rust 1.90+, Cargo, a working cross installation, and Docker. Package builds also require dpkg-deb (Debian/Ubuntu package dpkg-dev). The Makefile does not install these prerequisites.
git clone https://github.com/dre-zouhair/dns-deny.git
cd dns-deny2. Build for the original Zero
make build-pi-zero
# Or: package the binary with the small-board preset
make release-deb-pi-zero| Artifact | Output |
|---|---|
| Binary | target/arm-unknown-linux-gnueabihf/release/dns-deny |
| Package | target/dns-deny_0.1.0_pi-zero_armhf.deb |
The Makefile binary targets require cross. The package wrapper can fall back to Cargo, but only with a correctly configured ARMv6 compiler and linker.
3. Keep the lightweight preset
| Resource | Pi Zero preset |
|---|---|
| L1 / L2 cache | 5,000 entries / 16 MiB |
| Tracked rate-limit client IPs | 1,000 |
| Log queue / retention | 5,000 entries / 7 days |
| Blocklist fetch concurrency | 1 |
| DNSSEC, sinkhole discovery, scoring | Disabled |
| Primary forwarding | DNS-over-TLS |
The package includes config/pi-zero.toml as its seed. Manual installs must select that file themselves. Start with its curated lists; monitor memory during refresh before adding more. List sizes change, and the cache budget is only part of process memory.
Choose a variant
make release-deb-pi-zero-no-api
# Or: JSON API without the dashboard
make release-deb-pi-zero-api-onlyBinary equivalents are make build-pi-zero-no-api and make build-pi-zero-api-only. Read the Pi Zero guide for resource notes and historical measurements.
Install the build
Continue with the Debian package or manual binary guide to configure and start the service. Before first start, replace the sample password, restrict DNS clients, and choose your HTTPS setup. Existing state.db settings survive restarts; editing the seed does not replace them. See configuration and restarts.