AdGuard Home as container (LXC) in Proxmox VE
After some practical daily challenges, I have decided to give a try to AdGuard Home as local DNS resolver.
One of the big differences is ability to resolve external DNS servers using DNS-over-HTTPS, DNS-over-QUIC, DNSCrypt.
https://github.com/AdguardTeam/AdGuardHome
Login into Proxmox
?? Download Debian distro template for containers. For some reason it might be cancelled or disrupted. As we now, which one template is expecting to find, let's download that manually. Navigate to containers' templates storage, find suitable and hit [Download] button

Download task itself
??
Script location:
https://community-scripts.org/scripts/pihole?id=piholeadguard
Open node shell
Download the script:
export dir="/root/delme/"
mkdir -p ${dir}
cd ${dir}
curl -O https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pihole.adguard.sh
ls -latr
Paste and execute, this will download a script and execute it on hypervisor:
Let's see what is inside of this script
and invoke it's from the shell, when confident:
bashchmod -c+x "$(curladguard.sh
-fsSL https:.//raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pihole.sh)"adguard.sh
Telemetry and diagnostics
First screen is regarding telemetry data, do you choice usingUse [Tab]Down], [Space], [Enter]:Enter


Kind of installation
UseChoose '"Default Install'Install"
Begin, this will look for Debian Linux distro (and if necessary download it):


Installations
Script will downloadsearch containerfor template, and doif configurationit ofis containernot found, begin download
Now, when container is ready, Proxmox's script will invoke Pi-hole script (which is actual application installer)


FinalInstallation questionsuccessful
Applicatin configuration
Check in the browser the URL, which is indicated by installer.installer (HTTPS will not work at this point)
http://10.77.81.110/admin77.184:3000
ConfigurationDo ofnot Pi-holechange isanything, describedproceed inwith anotherdefaults
Create admin user (and note pass to password manager)
Take instructions for other devices. Usually just skip it.
Finalize application initial configuration
Login with user created.
Dashboard
The only change we want to perform is to change IP address. Locate container, open it's network configuration, change from DHCP to STATIC and define desired IP address (remember do define CIDR mask).
Open container's shell , take a note of network address and perform restartrestart. Verify address (there are still old and new):
ip -br -a
Restart container
shutdown -r now
After reboot, Verify again
ip -br -a
ip -br a
shutdown -r now
Last thing, before go: verify that container has "Start on boot" tick box enabled. Thus, we shall be sure that DNS server will be started with hypervisor. That applies to all machines, which need to be started (such as main router :)
Add public public name servers
List available here
https://dox.installanduse.com/books/domain-name-system-dns/page/public-nss-fqdns-to-ipv4-list
Check for "Fastest IP address"
Leave some public NSs to resolve list
Save settings
Next morning, after the first day of DNS traffic
(img)
With no filtering lists loads, DNS server serverd 54% of cached traffic to local clients. That is very good, which means, that local clients received DNS response earlier, rather then for original query.

































