Skip to content
Tech News
← Back to articles

Armadillo – A DNS Server in Gleam for Homelab Use

read original more articles
Why This Matters

Armadillo offers a lightweight, self-hosted DNS server tailored for homelab enthusiasts, enabling local domain resolution and customizable upstream forwarding. Its ease of deployment and flexible configuration make it a valuable tool for improving network management and privacy. This development highlights the growing trend of DIY network infrastructure, empowering consumers and tech enthusiasts alike.

Key Takeaways

Armadillo

A self-hosted DNS server for homelab use, written in Gleam.

armadillo.showcase.mp4

Configure it once on your router as the DNS resolver and every device on the network resolves your local domains automatically.

How it works

When a DNS query arrives, the server checks its local record store first. If a matching record exists, it responds immediately with the configured IP. If no record matches, the query is forwarded to a configurable upstream resolver, the response is cached by TTL, and returned to the client.

Local records are stored in a DNS zone file and loaded into ETS on startup. All query resolution at runtime goes through ETS only, the zone file is never read during query handling.

Container image

Available at ghcr.io/vshakitskiy/armadillo:latest .

Variable Default Description DNS_PORT 53 Port the DNS server listens on DNS_UPSTREAM 8.8.8.8 Upstream resolver for unknown domains DNS_TTL 300 Default TTL for zone records in seconds DNS_SOA_MINIMUM 3600 SOA minimum TTL for negative caching in seconds API_PORT 3000 Port for the web UI and REST API API_SECRET_KEY_BASE random key Secret used to sign session cookies ZONE_FILE /data/local.zone Path to the DNS zone file

... continue reading