INSTALL / AARCH64

Build DNS Deny for ARM64 Linux

For 64-bit ARM Linux servers and Raspberry Pi systems running a 64-bit OS. Match both the CPU and the operating system.

aarch64-unknown-linux-gnu64-bit LinuxRust 1.90+

1. Prepare the build host

Install Rust 1.90+, Cargo, and native build tools (build-essential, pkg-config, and dpkg-dev on Debian/Ubuntu). Get the source:

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

2. Select native or cross compilation

On a native ARM64 Linux host, install the target and build:

RUN FROM THE REPOSITORY ROOT
rustup target add aarch64-unknown-linux-gnu
make release-deb-arm64

On an AMD64 Debian/Ubuntu build host, install and select the ARM64 compiler first:

RUN FROM THE REPOSITORY ROOT
sudo apt-get install -y gcc-aarch64-linux-gnu
rustup target add aarch64-unknown-linux-gnu
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc
make release-deb-arm64

Output: target/dns-deny_0.1.0_arm64.deb.

Or build only the executable

RUN FROM THE REPOSITORY ROOT
BUILD_PACKAGE=false ./deploy/build_deb.sh arm64

Output: target/aarch64-unknown-linux-gnu/release/dns-deny. The same target and linker prerequisites apply.

Build variants

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

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