Services

infra / running

AdGuard Home

Network-wide DNS resolver and ad blocker — also the source of truth for every internal hostname.

What it is

AdGuard Home is a DNS server with ad-blocking and parental-control features built in. Every DNS query from my main workstation goes through it: ad/tracker domains return 0.0.0.0, internal hostnames get rewritten to a local IP, and everything else gets forwarded encrypted to a public resolver.

Why I run it

Two jobs. First, ad-block at the DNS layer — kills ads everywhere on the machine without per-browser extensions and without breaking apps the way some content-blockers do. Second, and this is the operationally important one: AdGuard owns the wildcard rewrite that lets *.lab resolve to my reverse proxy. Without that single rewrite, none of the internal hostnames in this catalog would work.

How I use it

The rewrite list is famously short: one wildcard entry, *.lab → <NPM IP>. That single line means I can add a new service to the catalog with one entry in Nginx Proxy Manager and no DNS change at all. Adding new internal hostnames used to mean updating two places (DNS + proxy) and the two would drift; the wildcard collapses the problem.

Upstreams are configured as DNS-over-HTTPS to Cloudflare and Google (parallel resolution mode), bootstrapped via Quad9 over plain DNS so the encrypted connections can establish. Two blocklists are active: AdGuard's built-in filter (~166k rules) and OISD Big (~250–300k rules). Optimistic caching is on.

Setup notes

Runbook