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
- Admin → Integrations → AdGuard
- Fields:
baseUrl— e.g.http://192.168.1.30:3001(AdGuard web UI)username+password— web UI login
- 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/statsreturns the last 24 h as an array. Mesh reads the aggregate fieldsnum_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.