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.

AdGuardian’s TUI can be exposed in a browser by wrapping it with ttyd, a tool that streams terminal output over WebSockets. This is useful for embedding the dashboard in a homelab portal, sharing it with others on your local network, or accessing it from a machine where you cannot attach an interactive terminal directly.

Quick start with pre-built image

The fastest path to browser access is the third-party Docker image sdjnmxd/adguardian-web, which bundles AdGuardian and ttyd into a single container:
docker run -d \
  -p 7681:7681 \
  -e ADGUARD_IP=your.adguard.ip \
  -e ADGUARD_PORT=80 \
  -e ADGUARD_USERNAME=admin \
  -e ADGUARD_PASSWORD=your_password \
  sdjnmxd/adguardian-web
Then open http://localhost:7681 in any modern browser. The full dashboard renders and responds to keyboard input exactly as it would in a local terminal.
sdjnmxd/adguardian-web is a third-party image not maintained by the AdGuardian-Term project. Review the source repository and its Docker Hub page before running it. Use at your own discretion.

Manual setup with ttyd

If you prefer to install ttyd directly on the host rather than using the pre-built image, follow the ttyd installation instructions, then prepend ttyd to any AdGuardian run command:
# Run a locally installed AdGuardian binary through ttyd
ttyd adguardian

# Or run the official Docker image through ttyd
ttyd docker run -it lissy93/adguardian
ttyd binds to port 7681 by default. Navigate to http://localhost:7681 to access the dashboard.

Build your own ttyd container

The AdGuardian-Term repository includes a ttyd-Dockerfile that builds both AdGuardian and ttyd from source inside a single Debian-based container. This avoids installing ttyd on the host and keeps everything self-contained:
docker build -f ttyd-Dockerfile -t adguardian-web .
docker run -d \
  -p 7681:7681 \
  -e ADGUARD_IP=192.168.180.1 \
  -e ADGUARD_PORT=3000 \
  -e ADGUARD_USERNAME=admin \
  -e ADGUARD_PASSWORD=bobs-your-uncle \
  adguardian-web
The ttyd-Dockerfile clones the AdGuardian-Term repository and the ttyd repository, compiles both, places the adguardian binary at /usr/local/bin/adguardian, and sets ttyd as the container entrypoint exposing port 7681.

Using gotty

gotty is an alternative to ttyd that also streams terminal applications to a browser over WebSockets. It works with AdGuardian in the same way, but requires the -w flag to enable keyboard input — without it the dashboard will display but will not accept any key events:
gotty -w adguardian
By default gotty listens on port 8080. Replace adguardian with docker run -it lissy93/adguardian if you want to run the Docker image rather than a local binary.

Remote access

To make the dashboard reachable outside your local network you can use a tunnelling service such as ngrok to forward the port that ttyd or gotty is listening on:
# Forward ttyd's default port to a public ngrok URL
ngrok http 7681
Exposing AdGuardian on a public URL means your AdGuard Home credentials and DNS traffic data are accessible over the internet. Always protect the endpoint with authentication — ttyd supports HTTP basic auth via the -c username:password flag, and gotty exposes a similar --credential option. Consider restricting access by IP allowlist or placing the service behind a reverse proxy with TLS.

Embedding in homelab dashboards

Because AdGuardian in web mode is just a URL serving a WebSocket terminal, it can be embedded as an iframe widget in any homelab dashboard that supports custom iframes. For example, Dashy — a homelab dashboard application — accepts any URL as an embedded widget.
Dashy already ships a dedicated AdGuard Home block-stats widget that talks directly to the AdGuard Home API. The full AdGuardian TUI in web mode and the Dashy widget serve different purposes: the widget shows summary statistics inline, while the embedded TUI gives the complete real-time query log and filter overview.

Build docs developers (and LLMs) love