First Build: Pi-hole on a Raspberry Pi 5
How I stopped ads at the DNS level and started my home lab properly.
What is Pi-hole?
Pi-hole is a network-wide ad blocker that runs at the DNS level. Instead of blocking ads in a browser, it blocks them before they even load — for every device on your network. Your phone, TV, laptop — all covered without installing anything on them.
The Hardware
Raspberry Pi 5 Model B (8GB RAM)
32GB SD card
Running Debian GNU/Linux 12 (Bookworm)
Connected via Wi-Fi on my home router (moving to ethernet eventually)
The Pi 5 is overkill for Pi-hole alone, but the plan is to run other things on it down the track — so the headroom is intentional.
Installation
Pi-hole's install is famously simple. One command:
curl -sSL https://install.pi-hole.net | bash
The installer walks you through network interface selection, upstream DNS provider (I went with Cloudflare — 1.1.1.1), and sets up the web dashboard automatically.
Router Configuration
Once Pi-hole is running, you need to tell your router to use it as the DNS server. This is done in your router's DHCP settings — point the DNS to the Pi's local IP address. Every device on the network then automatically routes DNS queries through Pi-hole.
(Note to self: make sure the Pi has a static local IP assigned — otherwise if it changes, everything breaks.)
As a backup, a secondary DNS (8.8.8.8) has been set up in case the Pi goes down, to ensure that there's no downtime at home. Might look at getting another Pi and running another instance of Pi-hole on it as the backup.
What it looks like now
Current versions running:
Core: v6.4
Web: v6.4.1
FTL: v6.5
There are updates available — v6.4.2 core, v6.5 web, v6.6.2 FTL. Updating is on the list.
What I'd do differently
Nothing major on this one — the install was straightforward. The main thing to sort early is the static IP for the Pi, which I'd do before running the installer next time.
What's next
This is the first piece of a bigger home lab build. Ideally, I'll be connecting the Pi directly into my home router via ethernet - will need to make sure that I update the static IP for the wired connection.
Ubuntu server is in progress, and eventually this will all sit on a proper NAS once the drives arrive. More posts to follow as things get built — and broken.

