3 min read

Beyond Pi-hole

Beyond Pi-hole
Photo by Anthony Rosset / Unsplash

Till recently I had on my network configured a cool open-source project. Pi-hole. It was running on my local network on a small Raspberry Pi Zero W. Was a leftover from some other project in past.

Due to some changes and experiments, I disabled it some time ago. So recently I started looking into getting it back online. Just to find something maybe better. AdGuard. And this is their GitHub, from where I learned most of the things I needed to do. I was really impressed with it and decided to write a small post about it.

Installation is pretty straightforward. Hardware got upgraded to Raspberry Pi 4. With a 32GB SD card, I had around. It was an I used in past to make my own local Kubernetes setup for experimentation and learning. Can highly recommend it as a side project at home. Back to the AdGuard.

As everything moves along, so does the Raspberry Pi foundation with its software. Things are much easier now using their Imager. It's an awesome piece of software that simplifies so much. I have chosen Raspberry Pi OS Lite. Selecting an image where to write is also in the UI.

Main screen with OS Lite selected

Here I would recommend going to that small cog icon in the bottom right corner. There you can configure the local hostname and enable SSH. Which I highly recommend doing.

After this is done, press Save, and then on the main window, Write. Wait till it is completed. It takes a couple of minutes.

After this is done, comes the fun part. On your local network (in the router) you can find the IP address of your machine. For me, I made it static with reservation in my router configuration. After you have the IP, time to SSH into it. The IP below is an example, yours will differ:

ssh [email protected]

The first command with any fresh Unix installation you should run is:

sudo apt update

Command to install the AdGuard:

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Commands in terminal

It is a quick process. After it is done, will prompt you with some information about where you can find the UI. It will be the IP address of your machine where AdGuard is installed and port 3000. And voila:

AdGuard first screen

Now comes the configuration and setting it up. I am still configuring it and experimenting, so gonna just showcase a couple of things I did that worked really nicely.

After you choose how your gonna configure it on your local network (I did it as the first DNS entry on my router settings), you will get to the point to login with configured credentials in the setup above:

AdGuard dashboard

Now at this point, I recommend configuring a couple of things and the rest is up to your preferences. The first one is DNS settings and what upstream DNS services to use. This can be found under Settings > DNS Settings. The AdGuard has a nice list of the DNS servers maintained on this link. I configured mine with 3 and load balancing between them.

The next recommendation is to update your Filter list based on preferences, this is how mine looks like at the moment:

AdGuard filters

There is a number of other settings you can play around with and I do recommend you try them. I am also experimenting and tuning every now and then.

Till next time, block away.