Docker is the easiest way to run AdGuardian with no local dependencies. The image is built from aDocumentation 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.
rust:1.90-alpine builder stage that compiles a statically linked musl binary, then copies only that binary and CA certificates into a scratch runtime image — producing a final image of approximately 12 MB.
The
-it flags (interactive + TTY) are mandatory for every docker run command. AdGuardian is a TUI application that requires an attached terminal to render its interface. Omitting either flag will result in an immediate exit.Quick start
Pull and run the latest image from Docker Hub with a single command:With credentials
Pass your AdGuard Home instance details as environment variables using-e flags so the app connects immediately without prompting:
| Environment Variable | Description | Default |
|---|---|---|
ADGUARD_IP | IP address of your AdGuard Home instance | — |
ADGUARD_PORT | Port AdGuard Home is listening on | — |
ADGUARD_USERNAME | AdGuard Home username | — |
ADGUARD_PASSWORD | AdGuard Home password | — |
ADGUARD_PROTOCOL | Protocol used to contact AdGuard Home (http or https) | http |
ADGUARD_UPDATE_INTERVAL | How often the UI refreshes, in seconds | 2 |
ADGUARD_TIMEOUT | Per-request timeout when contacting AdGuard Home, in seconds | 5 |
ADGUARD_QUERYLOG_LIMIT | Number of query log entries fetched per update | 100 |
Image registries
The same image is published to two registries and kept in sync by the project’s CI pipeline on every release:Docker Hub
GitHub Container Registry
Building the image yourself
If you want to build the image locally from the sourceDockerfile, use docker buildx build:
Dockerfile uses a multi-stage build: the rust:1.90-alpine builder stage compiles the binary with cargo build --release, copies it to /adguardian, and the scratch runtime stage picks it up. The build also installs build-base, cmake, perl, and ca-certificates in the builder, so none of those tools end up in the final image.
For architectures where the musl/scratch build is not supported (32-bit, ppc64le, s390x), use Dockerfile.full instead, which cross-compiles against a debian:bookworm-slim runtime base:
Docker Compose
To manage AdGuardian alongside other services, add it to acompose.yaml file. The stdin_open and tty options are the Compose equivalents of -it:
Image details
| Property | Value |
|---|---|
| Runtime base | scratch (empty image — no shell, no OS packages) |
| Builder base | rust:1.90-alpine |
| Binary type | Statically compiled with musl — no shared libraries |
| CA certs | Bundled from the Alpine builder (/etc/ssl/certs/ca-certificates.crt) and set via SSL_CERT_FILE |
| Runs as | UID 65534 / GID 65534 (the nobody user) |
| Entrypoint | /adguardian |
| Approx. size | ~12 MB |