A containerized DNS solution combining Unbound DNS, AdGuard Home, and Redis for efficient DNS resolution and ad blocking.
- Unbound DNS: A validating, recursive, and caching DNS resolver
- AdGuard Home: Network-wide ads & tracking blocking DNS server
- Redis: In-memory cache for Unbound DNS
- DNS over TLS (DoT) support
- DNS caching with Redis backend
- Ad blocking and custom filtering through AdGuard Home
- Configurable upstream DNS providers
- Container-optimized configuration
- 53 (TCP/UDP): DNS
- 853 (TCP): DNS-over-TLS
- 3000 (TCP): AdGuard Home web interface
- 443 (TCP): HTTPS for web interface (when TLS is enabled)
AdGuard Home web interface:
- URL:
http://localhost:3000
- Default credentials:
- Username:
admin
- Password:
admin
- Username:
Important: Change the default password after first login for security or bring your own config.
The container uses three main configuration directories:
/config/unbound/
: Unbound DNS configuration/config/AdGuardHome/
: AdGuard Home configuration/config/redis/
: Redis cache configuration
Default configurations are provided and copied to these locations on first run.
The container uses the following build arguments:
UNBOUND_VERSION
: Version of Unbound DNS to installADGUARD_VERSION
: Version of AdGuard Home to install
docker run -d \
--name dns-stack \
-p 53:53/tcp \
-p 53:53/udp \
-p 853:853/tcp \
-p 3000:3000/tcp \
-v /path/to/config:/config \
cpreda/dns-stack:latest