Adguard Home + Unbound DNS Server + redis in-memory data cache.
10K+
A Docker container combining AdGuard Homeβ , Unboundβ (with DNS prefetching), and Redisβ as an in-memory caching layer β built for speed, privacy, and performance.
This image is multi-architecture and provides native support for both amd64 (PCs, Unraid servers) and arm64 (Raspberry Pi, Apple M-series, etc.) platforms.
Here is a sample docker-compose.yml to get you started.
version: "3.8"
services:
adguard-dns:
image: imthai/adguardhome-unbound-redis:latest
container_name: adguard-dns
# It's recommended to use a dedicated IP (macvlan/ipvlan)
# or, if in bridge mode, map the necessary ports:
ports:
- "53:53/tcp"
- "53:53/udp"
- "3000:3000/tcp" # AdGuard Web UI port
volumes:
# /config is the main volume for all config and data
- ./config:/config
restart: unless-stopped
This container is tailored to work well with Unraid.
/config to your desired Host Path in appdata, e.g., /mnt/user/appdata/adguard-unbound-redis/br0.100) to the container, as port 53 is often occupied by Unraid/Docker.All configuration is persisted in the volume you map to /config. After the first run, this folder will be populated with:
| Directory in your volume | Description |
|---|---|
./AdGuardHome/ | AdGuardHome.yaml config and working data. |
./unbound/ | Configuration files for Unbound. |
./redis/ | Configuration file for Redis. |
./userfilters/ | Place your custom filter files here. |
./data/ | AdGuard Home working directory (logs, stats). |
Default Settings:
http://<your-ip>:3000admin / adminBy default, Unbound is set to forward all DNS requests to public resolvers. Currently, Cloudflare DNS is used.
./unbound/forward-queries.conf file.forward-queries.conf file and restart.You can now add your own filter blocklist files to the container by placing them in the ./userfilters/ folder.
Important:
To enable AdGuard Home to read your custom filter files, you must ensure that your configuration file (./AdGuardHome/AdGuardHome.yaml) contains:
safe_fs_patterns:
- /config/userfilters/*
You can now add your own filter blocklist files to the container by placing them in the /config/userfilters/ folder.
Important:
To enable AdGuard Home to read your custom filter files, you must ensure that your configuration file (AdGuardHome.yaml) contains:
safe_fs_patterns:
- /config/userfilters/*
You have two options:
Option 1: Manual update
Edit AdGuardHome.yaml and add or update the safe_fs_patterns section as shown above. Then restart the container.
Option 2: Auto-generate fresh config
Delete (or move) your existing AdGuardHome.yaml config file and restart the container.
The container will create a new config file with the correct safe_fs_patterns entry by default.
β οΈ Warning: This resets all your AdGuard Home settings!
Afterwards:
Add your local blocklist(s) in AdGuard Homeβs web UI (Filters β DNS blocklists) by specifying the file path, for example: /config/userfilters/myblocklist.txt.
Enjoy faster, smarter, and more private DNS with this all-in-one Docker solution! π‘οΈβ‘
Content type
Image
Digest
sha256:d7a53ec2aβ¦
Size
28.4 MB
Last updated
3 days ago
docker pull imthai/adguardhome-unbound-redis