Installing AdGuard Home: Blocking Ads in Your Home Network

AdGuard Home in Proxmox LXC!

Harish Thangadurai
6 min readDec 3, 2023

In the previous article, we dived into the step-by-step process of installing Portainer in our Home Lab.

In this article, we will be turning our attention towards AdGuard Home — A Network-wide software for blocking ads and tracking.

AdGuard Home is a network-wide ad and tracker-blocking software designed to run on a local server within our home network. It serves as a DNS sinkhole, meaning it filters out unwanted content like ads, and tracking scripts at the DNS level before they can reach our devices.

It blocks ads and pop-ups on websites preventing them from being loaded. It can also block tracking scripts. It can be used to set up parental controls by blocking access to specific websites or content categories.

AdGuard Home is designed to be installed on a server and can be configured to work with various devices ranging from computers, and smartphones to smart TVs. Overall, it is a network-based powerful ad blocker.

Steps to install AdGuard Home:

  • Since we have already installed Portainer, we can easily use Portainer Stacks to install AdGuard Home in our Home Lab.
  • Portainer Stack is nothing but a stack that gets created when we deploy any services using the docker-compose file.
  • First, let’s head to the respective IP: Port number to log in to our Portainer instance, and then head to our local docker instance by clicking on the local option.
  • Here we can use the Stack option to deploy our AdGuard Home instance using our docker-compose file. Let’s click on the Stacks option.
  • We can click on the Add Stack button on the top right to create a new stack.
  • We can give the name of the stack and then just copy and paste the below docker-compose file of our AdGuard Home instance. Make the needed changes in the docker-compose file based on your needs but this should mostly get the job done.
version: '3'
services:
adguardhome:
container_name: adguardhome
hostname: adguardhome
restart: always
image: adguard/adguardhome
volumes:
- adguard-workdir:/opt/adguardhome/work
- adguard-confdir:/opt/adguardhome/conf
network_mode: "host"
volumes:
adguard-workdir:
adguard-confdir:
  • Once done we can click on the Deploy the Stack button to deploy our AdGuard Home instance.
  • We can see that the stack has been successfully created. We can click on the stack to see the services that got deployed.
  • On viewing it, we can see that our AdGuard Home has been successfully installed and the container has started running.

We have successfully installed AdGuard Home in our Home Lab using the docker-compose file and deploying the same via Portainer Stacks. We now need to configure our AdGuard Home installation before we can start to block the ads for the devices connected to our Home Network.

Configuring AdGuard Home:

  • First, we need to head to the AdGuard Home’s admin console. By default, the admin console would reside on port 3000 for AdGuard Home. We can type in the IP Address: 3000 to open the same.
  • We will be greeted with the above screen. We can click on the Get Started button to proceed further.
  • The default options would work on this screen. But if you need to change the port of the Admin Web Interface it can be done. I’ll just leave the default here on this screen.
  • We now need to give a username and password to log in to the AdGuard Home’s admin console. We can click on Next once done.
  • Now we need to configure our AdGuard Home instance as our DNS server in our router settings. This is done so that ads will be blocked in all the devices connected to the network in which AdGuard Home is installed.
  • We can also configure individual devices separately instead of configuring them in the router. If this approach is taken then ads will be blocked only on those devices in which the DNS was changed to AdGuard Home’s IP address.
  • We can follow the on-screen instructions provided to change the same.
  • Here we can see that I have changed the Primary DNS in my router to the IP Address of the server in which we have installed the AdGuard Home. Once done we can hit the Save button and close our router console.
  • We can hit the Next button on the AdGuard Home page once after changing the DNS setting.
  • We have successfully completed the initial configuration. We can now click on the Open Dashboard button to open the admin console.
  • It would ask us to log in using the username and password that we just configured. Here we can see that there is no port number after the IP address of my server. The reason here is that I left the admin console port to be 80 during our setup. If you have changed the port then the admin console would be available at that port number.
  • Upon typing the username and password we can hit the Sign In button and the dashboard appears.

We have now successfully installed AdGuard Home in our Home Lab. We can add or remove blocklists for the ads, manage parental controls, and configure many more options. Feel free to play around with the different options available in the admin console.

The values would start to appear on the dashboard once it starts blocking the ads as and when you browse. If the dashboard doesn’t get updated then check if the DNS has been correctly configured in the router configuration page.

In this article, we have explored AdGuard Home and went into the step-by-step process of deploying the same in our Home Lab.

In the next article, we will be looking into another service that we will be deploying in our Home Lab. Stay tuned for more detailed instructions on expanding our Home Labbing capabilities.

Happy Homelabbing!!!

--

--

Harish Thangadurai

👨‍💻 Software Engineer | 🌍Tech Explorer | 🧠 Lifelong Learner