HeadlinesBriefing favicon HeadlinesBriefing.com

Gleam‑Based Armadillo DNS Server Hits GitHub

Hacker News •
×

Developer vshakitskiy released Armadillo, a self‑hosted DNS server built with Gleam for homelab environments. Users point their router at the service and any device on the LAN resolves local names without extra configuration. On startup the server loads a zone file into ETS, answers queries from memory, caches upstream responses by TTL, and forwards unknown names to a configurable resolver.

Armadillo stores records in a DNS zone file at /data/local.zone and imports them into ETS once, avoiding disk I/O during lookups. Configuration relies on environment variables such as DNS_PORT (default 53), DNS_UPSTREAM (default 8.8.8.8), DNS_TTL (300 s) and API_PORT (3000) with a secret key for signed cookies. The pre‑built image ghcr.io/vshakitskiy/armadillo:latest runs out of the box, and mounting /data preserves the zone across restarts.

The repository includes Podman quadlet, systemd, and Docker‑Compose setups that pair Armadillo with Caddy as a reverse proxy, simplifying TLS termination. Avoid the .local TLD because it collides with mDNS; .lan or .internal work better for private zones. The project splits into three Gleam packages—server, client UI, and shared—each built separately with commands like gleam run server/. Contributions via issues or pull requests are encouraged.