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.

This quickstart walks you through installing AdGuardian Term, connecting it to a running AdGuard Home instance, and getting the live terminal dashboard up on your screen. By the end you’ll have a fully functional TUI showing real-time DNS queries, block/allow statistics, historical query counts, and your active filter lists — all refreshing automatically every two seconds.
1

Prerequisites

Before you begin, confirm that the following are in place:
  • AdGuard Home v0.107.29 or later is running and accessible. AdGuardian Term checks the version reported by your instance and will exit with an error if it is too old.
  • Network access to the AdGuard Home HTTP API from the machine where you’ll run AdGuardian Term. By default AdGuard Home listens on port 3000.
  • A valid AdGuard Home username and password. These are the same credentials you use to log in to the AdGuard Home web interface.
2

Install AdGuardian Term

Pick whichever installation method fits your environment. Docker and Cargo are shown here; see the Installation page for all options including pre-built binaries, Scoop, and the AUR.
# Pull the latest image from Docker Hub
docker pull lissy93/adguardian
3

Run with credentials

Supply your AdGuard Home connection details via environment variables. The four required variables are ADGUARD_IP, ADGUARD_PORT, ADGUARD_USERNAME, and ADGUARD_PASSWORD.
docker run \
  -e "ADGUARD_IP=192.168.1.1" \
  -e "ADGUARD_PORT=3000" \
  -e "ADGUARD_USERNAME=admin" \
  -e "ADGUARD_PASSWORD=your-password" \
  -it lissy93/adguardian
You can also pass credentials as flags instead of environment variables:
adguardian -- \
  --adguard-ip "192.168.1.1" \
  --adguard-port "3000" \
  --adguard-username "admin" \
  --adguard-password "your-password"
4

Interactive setup (if credentials are missing)

If any of the four required variables — ADGUARD_IP, ADGUARD_PORT, ADGUARD_USERNAME, or ADGUARD_PASSWORD — are not set, AdGuardian Term will prompt you to enter each missing value interactively before proceeding.
  • IP address defaults to 127.0.0.1 if you press Enter without typing a value.
  • Port defaults to 3000 if you press Enter without typing a value.
  • Username and Password have no defaults and must be entered explicitly.
  • The password field uses masked input — characters are not echoed to the terminal as you type.
  • Press Ctrl+C at any prompt to cancel setup and exit cleanly.
Once all four values are collected (from environment variables, flags, or interactive input), AdGuardian Term proceeds to verify the connection.
5

Dashboard is live

With credentials validated, AdGuardian Term runs through a short initialization sequence before opening the dashboard:
  1. Prints the AdGuardian ASCII art and welcome message.
  2. Checks for a newer version on crates.io and reports whether you’re up to date.
  3. Verifies the connection to your AdGuard Home instance — including authentication and a version check — retrying up to 3 times (5 seconds apart) if the initial attempt fails.
  4. Fetches your configured filter lists once at startup.
  5. Opens the full TUI dashboard, which then refreshes every 2 seconds by default.
Inside the dashboard, you’ll see live DNS query logs, block/allow/filtered counters, a 30-day historical query chart, active filter lists, and top domain statistics — all updating in place.To quit, press q or Q, or use Ctrl+C.
AdGuardian Term verifies the connection — including credentials and AdGuard Home version compatibility — before the dashboard opens. If authentication fails or the version is below v0.107.29, the app exits immediately with a descriptive error message rather than opening a broken dashboard.
The defaults are sensible for most setups, but you can tune AdGuardian Term’s behaviour with additional environment variables: ADGUARD_UPDATE_INTERVAL (refresh rate in seconds, default 2), ADGUARD_TIMEOUT (per-request timeout in seconds, default 5), ADGUARD_QUERYLOG_LIMIT (number of query log entries fetched per update, default 100), and ADGUARD_PROTOCOL (connection protocol, default http). See the Configuration section for full details.

Build docs developers (and LLMs) love