Tech

Why Would Anyone Build a DNS Server in Gleam? Because Homelabs Deserve Better.

Armadillo is quirky, overengineered, and exactly what we need.

Alex Novak|
Why Would Anyone Build a DNS Server in Gleam? Because Homelabs Deserve Better.
Photo by Shovan Datta on Pexels

You’ve heard of DNS. You’ve probably configured it in a hundred boring ways—BIND, Unbound, Pi‑hole. They all work. They all feel like 1990s software that got patched into the 2020s with duct tape and prayer. Then along comes some lunatic who builds a DNS server in Gleam.

Let that sink in. Gleam. The language that runs on the BEAM—Erlang’s battle‑tested virtual machine—but with a type system that doesn’t make you want to cry. It’s designed for concurrent, fault‑tolerant systems. Phone switches, chat servers, distributed databases. And now, DNS for your homelab.

What the Hell Is Armadillo?

Armadillo is a DNS server. It’s on GitHub. It’s open source. It’s written entirely in Gleam. The creator, vshakitskiy, probably got tired of explaining why yet another DNS server exists. But here’s the thing: Armadillo isn’t trying to compete with Cloudflare. It isn’t meant to handle millions of queries per second. It’s for your homelab—the little server rack in your closet that runs Plex, a few game servers, and that weird IoT bridge you don’t talk about at parties.

The README is refreshingly honest. It doesn’t promise world peace or zero‑latency resolution. It says: “A DNS server in Gleam for homelab use.” That’s it. No hype. No buzzwords. Just a practical tool for people who like to tinker.

Why Gleam? Why Now?

If you’ve never heard of Gleam, you’re not alone. It’s a relatively young language—first appeared in 2019—that compiles to Erlang bytecode. It gives you Erlang’s legendary concurrency model (lightweight processes, message passing, “let it crash” philosophy) but with a modern, Rust‑inspired type system. It’s like if Erlang and Elm had a baby, and that baby only cared about reliability.

“The BEAM is the closest thing we have to a magic concurrency fairy. Using it for DNS feels like bringing a nuclear reactor to a campfire—but in the best way.”

For a homelab DNS server, you don’t need raw speed. You need stability. You need something that won’t fall over when your kid accidentally DDoSes it by streaming 4K on three devices. Gleam’s fault‑tolerance means Armadillo can crash‑and‑recover without you noticing. That’s the kind of reliability that makes you forget your DNS server even exists.

The Homelab Connection

Let’s be real: homelab people are a special breed. We spend weekends configuring YAML files, chasing down IP conflicts, and explaining to our partners why the internet “went down” again. We do it because we love control. We want to know exactly how every packet moves. And we want it to be elegant.

Armadillo scratches that itch. It’s small. It’s written in a language that feels fresh. It doesn’t have a thousand features you’ll never use. It resolves names, caches responses, and gets out of the way. It’s the kind of tool you’d write for yourself—and then realize other people might want it too.

Right now, it’s early. The GitHub repo has a handful of stars, zero comments on Hacker News. But that’s the homelab way: you build something because you need it, and if others find it useful, bonus.

Should You Run It?

If your homelab is a single Raspberry Pi running Pi‑hole, you probably don’t need Armadillo. Pi‑hole works. It’s mature. But if you’re the kind of person who runs three Kubernetes clusters in your living room, who has a dedicated DNS resolver just for internal services, who actually enjoys reading RFCs—then Armadillo might be your next distraction.

It won’t replace your production DNS. It probably won’t even replace your secondary resolver. But it’s a chance to run something that doesn’t feel like a relic. It’s a chance to touch the BEAM without writing a chat server. And it’s a reminder that the homelab isn’t about utility—it’s about joy.

The Verdict

Armadillo is a niche project for a niche audience. That’s fine. Not everything needs to be the next Kubernetes. Some things just need to be a DNS server in Gleam, built with care, for a closet full of blinking lights. If that sounds like you, clone the repo. Build it. Break it. Fix it. That’s the point.

And maybe, just maybe, you’ll convince a few more people that DNS doesn’t have to be boring.

Advertisement
#dns#gleam#homelab#open-source#programming
分享到:XfWB