Auch verfügbar in: DE Deutsch

AdGuard Home

Inhalt

DNS filter with statistics via REST API + Basic Auth.

What the integration can do

  • AdGuard widget with block rate (24 h), DNS queries, top adlists, blocked domains today
  • Status colour based on block rate (yellow >50 %, red >80 %)

Prerequisites

  • AdGuard Home 0.107 or newer (older versions have different fields in the stats endpoint)
  • Web UI credentials (no separate API token in AdGuard)
  • AdGuard is reachable from the container network

Setup in Mesh

  1. Admin → Integrations → AdGuard
  2. Fields:
    • baseUrl — e.g. http://192.168.1.30:3001 (AdGuard web UI)
    • username + password — web UI login
  3. Save → connection is tested against /control/status

Using the widget

Admin → Content → Widgets → "AdGuard Home". Settings:

  • integrationId — optional, in case multi-instance support is added later (currently single)
  • wideThreshold — column count from which the widget shows the wide layout (default 8)

Compact mode shows only block rate + status dot — useful for narrow widgets.

Troubleshooting

  • Statistics are 0 — AdGuard's /control/stats returns the last 24 h as an array. Mesh reads the aggregate fields num_dns_queries + num_blocked_filtering. Updating to AdGuard 0.107+ fixes this if you are on a very old version.
  • Auth failed — username + password as in the AdGuard WebUI. If you have 2FA enabled: unfortunately not supported by the API → temporarily disable 2FA or create a separate user without 2FA.
  • *`.local` (mDNS) hostname** — the container usually cannot resolve mDNS. Use an IP instead.

API endpoints (for debugging)

Endpoint Purpose
GET /control/status Health + version
GET /control/stats DNS queries, block rate, top domains
GET /control/filtering/status Active filter lists (adlists)

With Basic Auth: curl -u admin:password http://192.168.1.30:3001/control/status.