The video walks through building a network-wide ad and malware blocker on a Raspberry Pi, ending with pi-hole blocking roughly 221,000 domains, resolving its own uncached lookups through a locally run Unbound service rather than a third-party DNS provider, and serving every device on the network (including separate guest and IoT subnets) via the router's DHCP settings.
Preparing the hardware. The host notes the project is not resource-intensive — he installs it on a Raspberry Pi 4 with 2GB of RAM, calling even that overkill — and says it runs just as well in a Docker container or VM for anyone who can't find a Pi in stock, pointing to a "Pi locator" tool for stock alerts. He flashes Raspberry Pi OS Lite 64-bit with the Raspberry Pi Imager, pre-configuring a hostname, SSH access, and credentials before writing the card.
Installing pi-hole and choosing block lists. After an apt update/upgrade and setting a static IP (either a DHCP reservation or a manual dhcpcd.conf edit), he runs the pi-hole installer, accepting the default Steven Black unified block list and enabling full query logging. He then supplements that list using the Firebog, a curated index of block lists graded by maintenance quality, taking the top two "green" (safe, well-maintained) lists from each category. Running "update gravity" afterward raises the blocked-domain count from about 158,000 to 221,000. He cautions against adding too many lists, since over-blocking breaks ordinary browsing and tends to get pi-hole disabled rather than tuned.
Serving the whole network. Rather than configuring DNS on each device, he points his DHCP server's DNS settings at the pi-hole's IP (and a second existing pi-hole as backup). Because his network has separate LAN, guest, and IoT subnets, he also changes pi-hole's DNS interface setting from "only allow local requests" to "respond only on interface eth0" so it will answer queries from those other VLANs. He flags that without a firewall rule, a tech-savvy user can bypass pi-hole by manually setting a device's DNS to something else, and recommends blocking outbound port 53 to anywhere but the pi-hole.
Adding Unbound for private resolution. To stop any upstream provider from logging the household's DNS history, he installs Unbound, drops in a configuration file from the pi-hole documentation, and confirms it resolves queries on 127.0.0.1 port 5335 using the "dig" command. He then repoints pi-hole's upstream DNS setting at that local address and port instead of Cloudflare.
Verifying and upkeep. Testing against an ad-blocking test site, he shows pi-hole blocking 93% of tracking/ad hosts, versus 61% when the same device is switched to plain Google DNS. He closes with routine maintenance: running "sudo pihole -up" to update, and a scripted URL for temporarily disabling blocking (which he's wired to a Stream Deck button) for troubleshooting false blocks across multiple pi-holes.