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.

arm-unknown-linux-gnueabihfARMv6 hard-floatconfig/pi-zero.toml

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.

GET THE SOURCE
git clone https://github.com/dre-zouhair/dns-deny.git
cd dns-deny

2. Build for the original Zero

RUN FROM THE REPOSITORY ROOT
make build-pi-zero
# Or: package the binary with the small-board preset
make release-deb-pi-zero
ArtifactOutput
Binarytarget/arm-unknown-linux-gnueabihf/release/dns-deny
Packagetarget/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

ResourcePi Zero preset
L1 / L2 cache5,000 entries / 16 MiB
Tracked rate-limit client IPs1,000
Log queue / retention5,000 entries / 7 days
Blocklist fetch concurrency1
DNSSEC, sinkhole discovery, scoringDisabled
Primary forwardingDNS-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

RUN FROM THE REPOSITORY ROOT
make release-deb-pi-zero-no-api
# Or: JSON API without the dashboard
make release-deb-pi-zero-api-only

Binary 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.

Free software. Built in Rust. Run by you.

← All installation options