Features Compare Docs GitHub ↗
Open Source · Raspberry Pi 3B · ~25 MB RAM

Privacy-First DNS
for Your Network

A lightweight, high-performance DNS server built for Raspberry Pi 3B. Blocks ads, manages authoritative zones, syncs across nodes — all in ~25 MB RAM.

~25 MB RAM usage
220k+ Blocked domains
O(1) Blocklist lookup
< 1 ms Query latency
Why DomU DNS

Built because the alternatives weren't enough

Every existing DNS blocker was either too heavy for a Raspberry Pi 3B, or lacked the features needed for a proper home network.

🟥

PiHole

Great at blocking ads, but dnsmasq underneath uses 80+ MB RAM, has no authoritative zone support, and integrating DHCP DDNS requires complex workarounds.

🟧

AdGuard Home

Polished UI and good blocking, but 120+ MB RAM footprint, no authoritative DNS, no zone transfers, and no native DDNS support.

🟧

Technitium

Feature-complete DNS server, but runs on .NET (200+ MB RAM), requires more complex setup, and its file sync isn't designed for Pi hardware.

DomU DNS

Single Go binary, ~25 MB RAM, full authoritative DNS, RFC 2136 DDNS, Split-Horizon, Master/Slave cluster — no database, just JSON files.

Comparison

Feature by Feature

How DomU DNS stacks up against the most popular alternatives on Raspberry Pi 3B.

Feature DomU DNS PiHole AdGuard Technitium
RAM on Pi 3B ~25 MB ~80 MB ~120 MB ~200 MB
Authoritative DNS
RFC 2136 DDNS Partial
Split-Horizon DNS
Zone Transfer AXFR
Master/Slave Cluster
DoH + DoT Partial
DNS Rebinding Protection
No database required
Built-in Dashboard
Runtime Go binary Python + dnsmasq Go .NET
All Features

Everything you need, nothing you don't

Built specifically for resource-constrained hardware without sacrificing functionality.

🛡️

Ad & Tracker Blocking

220k+ domains from curated sources. O(1) hash lookup, wildcard and regex support.

🌐

Authoritative DNS Zones

Full support for A, AAAA, MX, CNAME, PTR, TXT, SRV, CAA, NS records. JSON file backend.

🔄

RFC 2136 DDNS

ISC dhcpd / Kea DHCP integration via TSIG-authenticated DNS updates. Auto PTR records.

🔀

Split-Horizon DNS

Different answers for internal vs external clients. Perfect for accessing services by name.

🔗

Master/Slave Cluster

File-based sync with HMAC-SHA256 authentication. No database, just atomic JSON writes.

🔒

DoH + DoT

DNS over HTTPS (RFC 8484) and DNS over TLS (RFC 7858) with your own certificates.

🚫

DNS Rebinding Protection

Blocks external domains resolving to private IPs. Defends against SSRF attacks.

📊

Built-in Dashboard

Real-time statistics, zone management, query log, cluster status — all in one UI.

Numbers that matter

~25 MB Total RAM on Pi 3B
220k+ Blocked Domains
< 1 ms Avg. Query Time
2 Nodes HA Cluster Support
Quick Start

Up and running in minutes

No database setup. No Docker required. Just copy the binary, write a config file, start the service.

1

Build for Raspberry Pi

Cross-compile for ARMv7 on your local machine.

2

Copy to Pi & configure

Copy the binary and a minimal config file.

3

Start the service

Install the systemd service and start.

bash
# 1. Clone & build for Pi 3B (ARMv7)
git clone https://github.com/mw7101/domudns.git
cd domudns && make build-arm

# 2. Copy binary to Pi
scp build/domudns-arm pi@dns-node-1:/usr/local/bin/domudns
ssh pi@dns-node-1 "chmod +x /usr/local/bin/domudns"

# 3. Install & start service
sudo cp scripts/domudns.service /etc/systemd/system/
sudo systemctl enable --now domudns

# 4. Open dashboard
http://<pi-ip>/setup  # First-time setup wizard

Documentation

Everything you need to get DomU DNS running.