Wikielele. DNS · self-hosted DNS analytics
docs for
back to the dashboard

Quick start

One command, on a box that can run Docker. Ten minutes including the pull.

everyoneAssumes a home network and that you have heard of DNS.page 2 of 24

One command on any Linux box that can run Docker. It installs AdGuard Home as well if you do not already run one, wires the two together, and hands back two URLs.It points at the Pi-hole you already run, verifies it can read the query log, and hands back a URL.

Install#

curl -fsSL https://dns.elele.dev/install.sh | sudo bash

Piping a URL into a root shell deserves a second’s hesitation every time. The script is 600 commented lines and does nothing clever; read it first, or download it, read it and run it yourself:

curl -fsSL https://dns.elele.dev/install.sh -o install.sh
less install.sh
sudo bash install.sh

What it asks you#

  1. 01

    Whether to install Docker

    Only if it is missing. Uses the official get.docker.com script.
  2. 02

    Where your resolver is

    Whether to install AdGuard Home, skipped entirely if it finds one already running on this machine or if you passed --agh-url.Nothing to install: pass --pihole-url and it takes that as given. It does check the version, because v5 will fail later rather than here.
  3. 03

    Whether to free port 53

    Only on systems where is holding . See Troubleshooting for what that change actually does. Skipped when pointing at an existing Pi-hole, which is already bound to it.
  4. 04

    Your credentials

    The AdGuard Home admin username and password.Pi-hole’s password — no username; v6 exchanges the password alone for a session. Prefer an application password from Settings → Web interface / API: it can be revoked on its own and it works with 2FA. Verified against the API before anything is written to disk, so a typo fails here rather than in a container that restarts forever.

Then point your router at it#

This is the step no installer can do for you, and the one people forget. Until your router hands out the box’s address as the network’s DNS server, nothing is being filtered and both dashboards stay empty.

Your devices

ask whatever DHCP told them

Router

DNS → your ISP

AdGuard HomePi-hole

installed, idle

nothing is filtered · both dashboards stay empty

Until the router hands out the box’s address as the network’s DNS server, queries never reach AdGuard HomePi-hole and both dashboards stay empty. Remove any secondary DNS entry while you are there: a second resolver is a way for devices to quietly bypass the first.

In your router’s settings, set the primary DNS server to the machine you just installed on. Remove any secondary: a second resolver is a way for devices to quietly bypass the first.

What happens next#

The dashboard starts immediately: it walks the resolver’s buffer backwards until it runs out, which usually takes a few minutes and yields a few hours of history. From then on it polls every five seconds. The first hour explains what the numbers are doing while that happens.

See also