Skip to main content

Documentation 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.

Environment variables are the primary way to configure AdGuardian Term. They can be set directly in your shell before running the binary, declared in a .env file that your shell sources, or passed to a Docker container with the -e flag. AdGuardian reads these variables at startup via Rust’s std::env::var — any change requires a restart to take effect.

Required variables

These four variables must be set before AdGuardian can connect to your AdGuard Home instance. If any of them are missing, AdGuardian will prompt you to enter a value interactively before proceeding.
ADGUARD_IP
string
required
The IP address or hostname of your AdGuard Home instance.When prompted interactively, the default offered is 127.0.0.1. The value is passed directly into the URL as {protocol}://{ADGUARD_IP}:{ADGUARD_PORT}.
ADGUARD_PORT
string
required
The port that AdGuard Home’s HTTP API is listening on.When prompted interactively, the default offered is 3000. The value must be parseable as a valid u16 port number — AdGuardian will re-prompt if it is not.
ADGUARD_USERNAME
string
required
Your AdGuard Home username, used for HTTP Basic authentication against the /control/status and related endpoints.
ADGUARD_PASSWORD
string
required
Your AdGuard Home password. When entered at the interactive prompt, the terminal is switched to raw mode and characters are masked so the value is never echoed to the screen.

Optional variables

These variables have sensible defaults and do not need to be set for AdGuardian to start.
ADGUARD_PROTOCOL
string
default:"http"
The protocol used when constructing the AdGuard Home base URL. Accepted values are http and https. Defaults to http if unset.
ADGUARD_UPDATE_INTERVAL
integer
default:"2"
How often AdGuardian refreshes the dashboard, in whole seconds. The value is clamped to a minimum of 1 — setting it to 0 is treated as 1 to prevent the Tokio interval from panicking. Increase this if you want to reduce API load on your AdGuard Home instance.
ADGUARD_TIMEOUT
integer
default:"5"
The per-request HTTP timeout applied to every call made by the reqwest client, in whole seconds. The value is clamped to a minimum of 1 so that no request can hang indefinitely. Decrease this if you are on a fast local network and want quicker failure detection.
ADGUARD_QUERYLOG_LIMIT
integer
default:"100"
The maximum number of DNS query log entries fetched from AdGuard Home on each update cycle. Parsed as a u32. Increasing this gives you a longer scrollable history in the query log panel at the cost of larger API responses.

Shell example

The following example sets all required variables plus every optional variable, then launches AdGuardian:
export ADGUARD_IP="192.168.180.1"
export ADGUARD_PORT="3000"
export ADGUARD_USERNAME="admin"
export ADGUARD_PASSWORD="bobs-your-uncle"
export ADGUARD_PROTOCOL="http"
export ADGUARD_UPDATE_INTERVAL="2"
export ADGUARD_TIMEOUT="5"
export ADGUARD_QUERYLOG_LIMIT="100"

adguardian
You can also pass them inline for a one-shot run:
ADGUARD_IP="192.168.180.1" \
ADGUARD_PORT="3000" \
ADGUARD_USERNAME="admin" \
ADGUARD_PASSWORD="bobs-your-uncle" \
adguardian
If any of the four required variables (ADGUARD_IP, ADGUARD_PORT, ADGUARD_USERNAME, ADGUARD_PASSWORD) are not set, AdGuardian will not exit with an error — instead it drops into an interactive prompt and asks you to enter each missing value before it attempts to connect. This makes it safe to run the binary directly without pre-configuring anything.
Setting ADGUARD_PASSWORD inline or with export writes the value into your shell history (e.g. ~/.bash_history or ~/.zsh_history). To avoid this, store your credentials in a .env file that is excluded from version control, source it before running (source .env), or use Docker secrets when deploying in a container environment.

Build docs developers (and LLMs) love