A few months ago I went on a quest for a DNS server and was dissatisfied with current maintained projects. They were either good at adblocking (Blocky, grimd…) or good at specifying custom DNS (CoreDNS…).
So I forked grimd and embarked on rewriting a good chunk of it for it to address my needs - the result is leng.
- it is fast
- it is small
- it is easy
- you can specify blocklists and it will fetch them for you
- you can specify custom DNS records with proper zone file syntax (SRV records, etc)
- it supports DNS-over-HTTPS so you can stay private
- it is well-documented
- can be deployed on systemd, docker, or Nix
I have been running it as my nameserver in a Nomad cluster since! I plan to keep maintaining and improving it, so feel free to give it a try if it also fulfils your needs
How does this compare to AdGuard Home?
or piHole.
Or Technitium…
Probably speed. I find pihole really slow, and I’m running it as a VM on a Xeon server.
Talking about a Xeon CPU in a context vacuum is like talking about a car.
A car is anything between 100€ rust bowl on wheels and a multi million € vehicle.
So either we need a benchmark score like Passmark (or other platform of choice) score for single and multicore or your cpu model.
Giving a piHole VM 1 or 2 cores from a CPU with a single core performance equal to a Raspberry Pi 3 is quite obvious why it isnt performing as well as say a shiny new Ryzen 7900X.
Context is key.
Mine runs in docker with full hardware access (no cpu/ram limits) on a i5-1135g7. The performance is (to me) pretty good.
BUT I only tried a comparison with unbound which gave me so-so results.
I am working on adding a feature comparison to the docs. But in the meantime: leng has less features (like no web UI, no DHCP server) which means it is lighter (50MB RAM vs 150MB for adguard, 512MB for pihole), and easier to reproducibly configure because it is stateless (no web UI settings).
I believe blocky and coredns are better comparisons for leng than “tries to achieve it all” solutions like adguard, pihole…
My pihole runs at 40MB in an LXC container…
Same with Adguard Home here sitting at 38MB.
I’ll likely stick with Blocky as it seems to offer similar plus more. But good efforts!
You can script this with nix quite easily without needing a UI. For many this is a big plus.