AdGuard Home: A Network-Wide DNS Sinkhole With a Built-In Control Plane
Network-wide ads & trackers blocking DNS server
At a glance
- What is it?
- AdGuard Home is a self-hosted DNS server that blocks ads and trackers for every device on your network. It offers granular control and a REST API, but its positioning against Pi-Hole and public AdGuard DNS deserves scrutiny.
- Who is it for?
- AdGuard Home suits home users and small networks who want a self-hosted DNS sinkhole with a polished web UI and a REST API, without assembling separate components. It is not the right tool if you need per-device client-side filtering, or if you prefer a minimal dependency footprint over an integrated suite.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- AdguardTeam/AdGuardHome38,436 ★ · +2,247
| Repository | 2026-08-18 | 2026-11-13 |
|---|---|---|
| AdguardTeam/AdGuardHome | 36.2k | 38.4k |
2,247 Stars in the last 87 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The Problem: Client-Side Blockers Leave Gaps
Traditional ad blockers run inside a browser or as a system service on one device. They miss traffic from smart TVs, game consoles, IoT gadgets, and any device that does not support extensions. AdGuard Home solves this by operating at the network level. It is a DNS server that your router or devices point to, and it answers queries for known ad and tracker domains with a black hole address. The README states that after setup it covers all home devices and you need no client-side software. That is the core value proposition, and it is a real one for households with many non-configurable devices. The intended user is someone who controls their router or can set DHCP options, typically a home network owner or a small office admin. It is not for someone who only wants to block ads in one browser, because the overhead of running a server is unjustified for that case.
Mechanism: DNS Sinkholing With a Configurable Policy
AdGuard Home works by intercepting DNS queries. When a device asks for a domain that matches a blocking rule, the server returns a null route, preventing the connection. The README describes this as re-routing tracking domains to a black hole, and it is the same method used by Pi-Hole. The documentation emphasizes that you can choose exactly what the server blocks and permits, add custom filtering rules, and monitor network activity. That suggests a rule engine that supports both built-in filter lists and user-defined rules, though the README does not specify the rule syntax. The control plane is a REST API, documented in the openapi directory, which allows external integration, such as the Home Assistant integration mentioned in the README. That API is a concrete mechanism for automation, not just a marketing afterthought.
Getting It Running: One-Line Install and Alternatives
The README gives a straightforward automated install path. On Linux, macOS, FreeBSD, or OpenBSD, you can run a curl command that pipes the install script to sh: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v. The script accepts options: -c to select a channel, -r to reinstall, -u to uninstall, and -v for verbose output. Note that -r and -u are mutually exclusive. There is also a Docker image on Docker Hub, a Snap package for Linux, and manual installation instructions on the Wiki. The install script approach is convenient but requires trusting the script from the repository, which is standard for such projects. After installation, you must configure your devices or router to use the server as their DNS resolver, which the Wiki covers.
A Genuine Limitation: DNS-Only Blocking Has Blind Spots
DNS sinkholing only works when the client actually performs a DNS lookup. Modern apps and devices can hardcode IP addresses, use DNS-over-HTTPS directly to a third-party resolver, or embed IPs in connection strings. In those cases, AdGuard Home never sees the query, and the ad or tracker loads anyway. Based on the method, the limitation is inherent: it is not a content filter, it does not inspect packets, and it cannot block traffic that bypasses DNS. Also, if a device is configured to use a public DNS server directly, such as Google's 8.8.8.8, it will bypass AdGuard Home entirely unless you block outbound DNS traffic on your router. That is a real operational constraint that follows from the architecture. Users who need to block ads inside encrypted streams or on apps with pinned IPs will be disappointed.
Comparison: AdGuard Home vs. Pi-Hole vs. Public AdGuard DNS
The README directly compares AdGuard Home to Pi-Hole. Both use DNS sinkholing, and both allow custom blocking rules. The difference is that AdGuard Home bundles features out of the box, whereas Pi-Hole often requires additional software. The README argues that adding those features manually to Pi-Hole does not count as a Pi-Hole feature, which is a fair but partisan point. Against public AdGuard DNS, the difference is control. A public server applies the same policy to all users, while a self-hosted instance lets you choose what to block and monitor your own network activity. The README emphasizes that you are the only one in control, which is the strongest argument for self-hosting. A practical alternative is Pi-Hole if you prefer a modular setup. The choice is between integration and modularity.
Maintenance and Upgrade Cost
The repository metadata lists TypeScript as the primary language, but the backend is Go, as go.mod, main.go and the Go report card badge show. The project is actively maintained, with the last push on 2026-11-02, a stable release v0.107.79 in August 2026, and the betas v0.108.0-b.91 and v1.0.0-b.1 in September 2026. That cadence suggests regular fixes and feature work. The license is GPL-3.0, which means if you modify and distribute the software, you must share your changes under the same license. For personal use, that is irrelevant. For a business, it is a consideration. The install script has a -r reinstall option. You should back up the configuration directory before upgrading.
Who Should Adopt It, and What to Check First
AdGuard Home is a good fit for a home user who wants network-wide blocking without per-device setup and who is comfortable running a small server, whether on a Raspberry Pi, a NAS, or a VPS. It is also suitable for someone who wants to integrate ad blocking with Home Assistant via the official integration, which is a concrete advantage. It is a poor fit for an enterprise that needs per-user policies or detailed audit trails. It is also wrong for users who cannot change their router's DNS settings, because the server would only protect devices that point to it manually. Before adopting, verify that your router allows setting a custom DNS server or that you can configure DHCP to hand out the AdGuard Home address. Check the known limitations section in the README for any protocol-specific constraints. Also, decide whether the beta channel v0.108.0-b.x is worth testing, given that stable v0.107.79 is available.
Editorial conclusion
AdGuard Home suits home users and small networks who want a self-hosted DNS sinkhole with a polished web UI and a REST API, without assembling separate components. It is not the right tool if you need per-device client-side filtering, or if you prefer a minimal dependency footprint over an integrated suite. Before adopting, verify that your router or DHCP server can point clients to a custom DNS server, and check the known limitations in the README before relying on it. The project is actively maintained, with recent releases in 2026, so the codebase is not stagnant, but confirm the version channel you install matches your tolerance for beta features.
Frequently asked questions
What is adguardhome?
AdGuard Home is network-wide software for blocking ads and tracking that runs as a DNS server, re-routing tracking domains to a black hole so devices cannot reach them. Because the filtering happens at the resolver, no client-side software is needed on the devices themselves.
How to install adguardhome?
The scripted route curls install.sh from the repository and pipes it to sh, and the script accepts -c for a channel, -r to reinstall, -u to uninstall and -v for verbose output, with -r and -u mutually exclusive. There are also an official Docker image on Docker Hub, a Snap Store package for Linux, and a manual route described on the project wiki.
How to use adguard home?
Point the network's clients at the server as their resolver, then choose what to block and permit, read the query log, and add your own filtering rules. The project frames the advantages of running your own over using a public AdGuard DNS server as exactly those three things: your own block list, visible network activity, and control.
Which is better, AdGuard Home or Pihole?
The project's own comparison says both block ads and trackers with DNS sinkholing and both allow customising what is blocked, and argues that AdGuard Home's features work out of the box without additional software. It adds that some of those features can be added to Pi-Hole by installing extra software or reconfiguring a utility over SSH, which is the project's own opinion rather than an independent finding.
Official sources
Was this useful?