8045da2dbe1e43aacf6c313a57796315887456e0
AdGuard Monitor
Monitoring service for AdGuard DNS queries with notifications sent to Home Assistant.
Who is this for?
This is for me mainly, so let's see if you need it too. Adguard Monitor is designed for openclaw, which should usually NEVER make a request that needs to be blocked. If it does, I want to know about it immediately.
Features
- Multi-Client Support: Monitor specific IP addresses and receive nicknamed notifications (e.g., "BLOCKED: My Laptop").
- Strict Configuration: Fails fast if environment variables are missing.
- Home Assistant Notifications: Native mobile push messages for blocked queries.
- Custom Domain Monitoring: Monitor specific domains using list.txt (wildcards supported).
- Structured Logging: UTF-8 encoded logging for unicode emoji support.
Setup
-
Clone the repository.
-
Install dependencies:
pip install -r requirements.txt -
Configure environment: Copy
.env.exampleto.envand fill in your details:cp .env.example .env -
Custom Domains (Optional): Copy list.example.txt to
list.txtand add domains:cp list.example.txt list.txt- Lines starting with
!are negative filters (they will be ignored). - Wildcards like
*.example.comare supported.
- Lines starting with
-
Run the monitor:
python monitor.py --interval 15
Environment Variables
ADGUARD_URL: Full URL of your AdGuard instance (e.g.,http://192.168.1.50).ADGUARD_USER/PASSWORD: API credentials.CLIENTS: A JSON-formatted dictionary mapping IPs to display names.HASS_URL/TOKEN: Home Assistant mobile notification endpoint and Long-Lived Access Token.
Description
Languages
Python
100%