Skip to the content.

AdGuard Home (DNS-level Ad/Tracker Blocking)

A network-wide DNS sinkhole with an easy web UI. This setup is sanitized and designed for a homelab running other services like Nginx Proxy Manager and Cloudflare Tunnel.

Features

Files

Quick Start

cp .env.example .env
docker compose up -d

Access the first-run wizard at:

After the wizard completes, the UI moves to port 80 in the container. We map that to 8081 on the host, so visit:

If port 53 is in use, change ADGUARD_DNS_PORT in .env (e.g., 5353) and point clients to that port, or stop the conflicting DNS service. For full compatibility (DHCP, mDNS, etc.), you can switch to host networking (see comments in compose).

Router / Client Setup

Upstream DNS

In AdGuard Home UI → Settings → DNS set upstreams, e.g.:

1.1.1.1
1.0.0.1
8.8.8.8

(You can also use DoH/DoT upstreams or a local recursive resolver.)

Reverse Proxy (optional)

If you want to reach the UI via a domain:

DHCP (optional)

Only enable AdGuard DHCP if your router’s DHCP is disabled. This will allow per-device naming and network-wide control, but it’s optional.

Backups

Security Notes