When running AdGuardian in Docker, all configuration is done via environment variables passed withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/lissy93/adguardian-term/llms.txt
Use this file to discover all available pages before exploring further.
-e. The container exposes no ports and requires no volumes — it is a single static binary running in a scratch image that writes only to the terminal attached to it.
Required: interactive terminal flags
AdGuardian renders a full-screen TUI, so the container must be started with-it (allocate a pseudo-TTY and keep stdin open). Without these flags the terminal will not render correctly.
Basic docker run — required variables only
Full docker run — all variables
The example below additionally sets every optional variable:
| Variable | Default | Purpose |
|---|---|---|
ADGUARD_IP | — | IP address or hostname of your AdGuard Home instance |
ADGUARD_PORT | — | Port AdGuard Home’s HTTP API listens on |
ADGUARD_USERNAME | — | AdGuard Home username |
ADGUARD_PASSWORD | — | AdGuard Home password |
ADGUARD_PROTOCOL | http | http or https |
ADGUARD_UPDATE_INTERVAL | 2 | Dashboard refresh rate, in seconds (minimum 1) |
ADGUARD_TIMEOUT | 5 | Per-request HTTP timeout, in seconds (minimum 1) |
ADGUARD_QUERYLOG_LIMIT | 100 | Max query log entries fetched per update cycle |
Docker Compose
stdin_open: true is the Compose equivalent of -i, and tty: true is the equivalent of -t. Both are required.
Alternative registry: GHCR
The image is published to both Docker Hub and the GitHub Container Registry. If you experience pull-rate limits on Docker Hub, replace the image name with the GHCR equivalent:The Docker image is built on a
scratch base — the smallest possible base image — containing only the statically compiled AdGuardian binary and the CA certificate bundle copied from the Alpine builder stage. The resulting image is approximately 12 MB. There is no shell, no package manager, and no OS userland inside the container.