github razvandimescu/numa v0.21.0

10 hours ago

Highlights

🛡️ DNS rebinding protection (opt-in)

Strips private/special-use addresses from upstream answers so a public domain can't point your browser at your router, NAS, or localhost:

[server]
rebind_protect = true

Covers RFC 1918, loopback, link-local, CGNAT/Tailscale ranges, NAT64 and ULA — including glue records and HTTPS/SVCB address hints. Local zones, overrides and .numa domains are never touched.

Running split-horizon DNS (public names → LAN IPs, plex.direct, DNSBL zones)? Stripped queries show up tagged in the dashboard query log with a one-click allow; the allowlist persists across restarts. Also available via REST: GET/PUT /rebind, POST /rebind/allowlist. (#279, #287, #293, #295, #296)

🚫 Manual blocklist from the dashboard

Block any domain (and its subdomains) with one click from the query log — no config edit, no restart, survives restarts. Unblock the same way, or via POST/DELETE /blocking/blocklist. Closes #257. (#294)

Also notable

  • .numa reverse proxy now enforces allow_from and resolves services to the per-client egress IP (#263, #264)
  • Windows: static CRT — numa.exe runs without the VC++ Redistributable (#261, closes #236)
  • Release binary ~42% smaller (fat LTO + strip, single rustls crypto provider) (#269, #270)
  • Dashboard uptime now matches systemd wall-clock (#283)
All changes

Full Changelog: v0.20.0...v0.21.0

Don't miss a new numa release

NewReleases is sending notifications on new releases.