Skip Navigation

What are your opinions of using Pi-hole for DNS within a homelab environment?

I've run Pi-hole in my homelab for years and benefited from using the service. As well as the hands-on education.

With that said, what is everyone else's experience with the software? Do you use Pi-hole in your homelab setup? I would assume many hundreds of thousands of people use Pi-hole.

Edit #1:

The image attached to this post is my RPi 5, which hosts the Pi-hole software. Big supporter of the whole "SBCs for learning and home improvement" mentality.

Edit #2:

It is interesting to see the broad support for Pi-hole and DNS blockers in general. The more options, the healthier the tech ecosystem is, which benefits everyone.

106 comments
  • Sadly, it was very bad. I tried it about five years ago on a Pi 4. In less than a year, the Pi crashed five or more times. Once it was due to a faulty SD card, and on several occasions it was due to other software on the Pi crashing. Each time, the internet went down, which made my family unhappy, especially when I was not at home and could not fix it.

    I also saw little benefit as I already block ads on all my devices, and my smart home stuff has no internet access at router level.

    I haven't tried it since. Should I try again now with redundancy? What are the benefits?

    • A bit of redundancy is key.

      I have my primary DNS, pihole, running on an RPI that's dedicated to it; as well as a second backup version running in a docker container on my main server machine.

      Nebula-Sync keeps the two synchronized with eachother, so if a change is made on one, it automatically syncs to the other. (things like local dns records or changes to blocklists).

      If either one goes down (dead sd cards, me playing with things, power surges, whatever); the other picks up the slack until I fix the broken one, which is usually little more than re-install, then manually sync them using piholes 'teleporter' settings. Worse case, restore a backup (That you're definitely taking. Regularly. Right?)

      Both piholes use Cloudflared (here's their guide *edit: I see I'll have to find a new method for this... Just going to pin the containers to tag '2025.11.1' for now) to translate ALL dns traffic into DOH traffic, encrypting it and using the provider of my choice, instead of my ISP or any other plain DNS. The router hands out both local DNS IPs with DHCP because Port 53 outbound (regular dns) is blocked at the router, so all LAN devices MUST use the local DNS or their own DOH config. Plain DNS won't make it out.

      DNS adblocking isn't perfect, but it's a really nice tool to have. Then having an internal DNS to resolve names for local-only services is super handy. Most of my subdomains are only used internally, so pihole handles those DNS records, while external DNS only has the records for publicly accessible things.

  • I run Pihole on physical Pi's and once configured to my liking has been quite nice. I've even had family compliment that they miss the ad blocking when they leave the home :)

    • Ugh, I wish my wife would see this. She's been complaining that she couldn't open her Google search results because the links go through some adserver PiHole is blocking (probably their sponsored links). I put her phone on the "don't block anything at all" list and she's been happy ever since 🤷

      • Yep, that's exactly what is happening; I've seen the same and just kept reminding everyone not to click on ads. Took a while but they actually got it.

  • To anyone having issues running on a pi it’s likely either or both of the following item -cheap 5v power supply. Yes you can use an old phone charger but it won’t cut it for long term usage. Get a quality unit or better yet the branded pihole charger. We ended up with a Poe hat that it runs off. Sorted Ethernet and power supply.

    -memory card. Buy a quality, fast card and you will be fine.

    Going on 8 years with my current pi setup. One failure around 6 years in which was the memory card

  • Maybe a controversial take, but I like pihole for blocking only - I have a pair of powerDNS servers set up for my internal name resolution. They recurse to Pihole, but can fall back to internet DNS servers if Pihole isn't responsive.

    I tried pihole for local resolution and found it to be a fairly large pain to automate. Plus kubes has PDNS hooks for auto-updating DNS entries.

  • I love it! It took me a bit to iron out all the kinks with my network, but I am completely happy with it now.

  • My pi 1b handles the internal DNS for my game servers, which at this point is actually just minecraft because PSO:BB was way harder to setup than I thought. It works and it is extremely easy and it still holes all the tracking stuff too.

  • The number one rule of selfhosting unbound. Make two.

    You won't be happy one morning if you don't. I run unbound with adblocking on OpenWRT, but if my router dies, my whole network does anyway, so... Eh.

  • I run 2 instances of pihole/unbound as lxcs on my main server and local back up, works great.

    If I didn't have the two big boxes I'd use my pi4/zero2 to run two instances of pihole/unbound.

    If I didn't have my pis, I'd run 2 instances of pihole/unbound on literally anything I could install it on.

    What I'm saying is that I consider pihole/unbound to be essential infrastructure at this point. I'm also trying to say I've broken my only instance of pihole enough times to understand the importance of redundancy.

    I use Pis as a (sort of) hardware key to get family and friends onto my Tailscale VPN. They all have pihole too. I haven't convinced any of them to get a pi0 as a redundant box, but I'm sure they'll learn eventually too. No doubt it'll be my problem.

  • I have run Pihole on 2 physical Pi 4s (DietPi OS) with config sync for 3 years now. Core to the house. Very reliable.

  • Depends on how you do it and what you need from it. I've actually moved on from my Pihole instance, for reasons I'll get into later.

    The broad appeal of using Pihole for DNS in a homelab is the ability to route services from domain names on the local host. This can be really useful, especially for "hacking" service availability onto other unintended devices. Additionally, it can be nice for less tech-savvy users who might not be comfortable editing /etc/hosts or just want to check out a service on their phone web browser.

    I would generally recommend using an isolated device for Pihole needs; If you're doing work on your home server, you'll probably want all users on your service to keep their internet connection working to not be a burden to others living in your household (if you have others). A raspberry pi is a really good target for a pihole, and even a cheap old/used one from the interwebs can serve you well (I was using one recently on a pi3b and it was no issue.) Keep in mind that you can't really do fallback dns configuration unless you're ok with losing the key feature of pihole (blocking ads and redirecting domains). Notably, I'm actually not a proponent of running all services on individual compute units generally, I just think DNS is special and you don't really want to tie it into docker services to keep a separation between the services and the server, so to speak.

    This brings me to the second feature: adblocking. This one is really a mixed bag. Ultimately, I turned this feature off only because it doesn't work for the websites that have arguably the most ad content (youtube, twitch) and really only serves to hurt the smaller players. Sometimes it's great for blocking things like SmartTV advertisements or data encroachments, but it's very hard to block ads from a web domain in a way that doesn't outright block the service itself (so blocking youtube ads without blocking youtube is, seemingly, a fools errand.) I'm willing to hear other people's opinion on this, I just couldn't get this working to a satisfactory degree.

    I've abandoned Pihole as a local dns resolver. This is because Tailscale suits my needs and also allows me out-of-house connectivity to things like my music or personal data so my phone never goes out of communication with my home network. When you use tailscale at home, it's generally really good about routing that through your local network instead of the relay, so there shouldn't be that many downsides. Note, I say generally, because there have been times where it goes through a relay unexpectedly which I haven't solved yet (this is likely a local router configuration issue, anyway...)

    I notice that you're already familiar with Pihole, but just thought that it would be best to "explain" my thoughts on it in the form of a recommendation/editorial form.

106 comments