← All articles
NETWORKING Self-Hosting AdGuard Home: Network-Wide Ad Blocking ... 2026-02-08 · adguard-home · ad-blocking · dns

Self-Hosting AdGuard Home: Network-Wide Ad Blocking for Your Entire Home

Networking 2026-02-08 adguard-home ad-blocking dns pi-hole privacy

Browser ad blockers work well — for browsers. But they don't cover ads in mobile apps, smart TVs, IoT devices, or any device where you can't install an extension.

AdGuard Home solves this by blocking ads at the DNS level. It acts as your network's DNS server and refuses to resolve known ad and tracking domains. Every device on your network gets ad blocking automatically, with zero configuration on the device itself.

How DNS-Level Ad Blocking Works

When any device on your network tries to load ads.tracker.com:

  1. The device asks your DNS server (AdGuard Home) to resolve the domain
  2. AdGuard Home checks the domain against its blocklists
  3. If blocked, it returns a "not found" response — the ad never loads
  4. If allowed, it forwards the query to an upstream DNS resolver and returns the real IP

This happens for every DNS query from every device on your network. No client software needed.

What it blocks (and what it can't)

Blocks effectively:

Can't block:

DNS blocking catches roughly 70-80% of ads and trackers. For the rest, you still want a browser extension like uBlock Origin.

AdGuard Home vs. Pi-hole

These are the two most popular self-hosted DNS ad blockers. Both work well, but they have different strengths.

Feature AdGuard Home Pi-hole
Setup Single binary or Docker Docker or bare-metal installer
Web interface Modern, clean Functional, older design
DNS-over-HTTPS Built-in Requires additional setup
DNS-over-TLS Built-in Requires additional setup
DHCP server Built-in Built-in
Per-client settings Yes, built-in Limited
Safe browsing / parental Built-in Not included
Blocklist management Simple UI Simple UI
API Yes Yes
Community Large Very large
Resource usage Low Low

Why this guide covers AdGuard Home

Both are excellent. AdGuard Home gets the nod here because:

Pi-hole is a perfectly fine choice too. If you're already running it, there's no reason to switch.

Self-Hosting AdGuard Home: Setup

Server requirements

AdGuard Home is extremely lightweight:

Docker Compose setup

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    ports:
      - "53:53/tcp"     # DNS
      - "53:53/udp"     # DNS
      - "3000:3000/tcp" # Setup UI (first run only)
      - "80:80/tcp"     # Dashboard (after setup)
      - "443:443/tcp"   # DNS-over-HTTPS
      - "853:853/tcp"   # DNS-over-TLS
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf
    restart: unless-stopped
docker compose up -d

Open http://your-server:3000 for the initial setup wizard.

Initial configuration

  1. Set your admin password during setup
  2. Choose upstream DNS servers — Cloudflare (1.1.1.1) or Quad9 (9.9.9.9) are good defaults
  3. Enable DNS-over-HTTPS for encrypted queries to upstream servers
  4. Add blocklists — the default list is good; add more from the suggestions below

Pointing your network to AdGuard Home

You have two options:

Option A: Change your router's DNS (recommended)

Option B: Change individual devices

Recommended Blocklists

AdGuard Home ships with a default list. Add these for better coverage:

List Purpose Domains blocked
AdGuard DNS filter (default) General ads and trackers ~50,000
Steven Black's Unified Ads, malware, fakenews ~80,000
OISD Full Comprehensive, community-curated ~150,000
Hagezi's Pro Balanced blocking, few false positives ~120,000

Don't go overboard. More lists means more chance of false positives (legitimate sites being blocked). Start with the default + one additional list and add more only if needed.

Per-Client Configuration

One of AdGuard Home's best features is per-client rules. Use cases:

Configure this in the AdGuard Home dashboard under Settings → Client Settings.

Dealing with False Positives

Occasionally, a legitimate service stops working because its domain is on a blocklist. When this happens:

  1. Check the Query Log in AdGuard Home's dashboard
  2. Find the blocked domain
  3. Click it and select Unblock

Common services that sometimes get blocked: Spotify (analytics domains), some banking apps, captcha services, and email tracking pixels (which you might actually want blocked).

The Honest Trade-offs

AdGuard Home is great if:

AdGuard Home is not ideal if:

Bottom line: Running a DNS ad blocker is one of the highest-impact, lowest-effort self-hosting projects. Setup takes 15 minutes, it runs on hardware as small as a Raspberry Pi, and every device on your network benefits immediately. If you self-host one thing, this is a strong candidate.

Resources