I’ve been a long time user of PiHole: it’s a fantastic and lightweight tool which, used in conjunction with dnscrypt-proxy, elevates the security of your browsing tenfold.
All your DNS queries become encrypted, anonymized and non-traceable.
And, of course, your browsing experience is also vastly improved, both in the browsing itself and the security: by using proper adlists you’ll be able to block trackers, unwanted cookies, malware and so on and so forth.
For this kind of use I’ve always resorted to Alpine Linux as my host OS of choice since it is outrageously small, efficient and fast.
My DNS server runs on an ancient and underpowered Intel Atom N270 single core CPU at 1.60Ghz (which I then downvolted and downclocked to 800Mhz to make it even more efficient) with 512MB of RAM (currently only 207MB is being used) and a 4GB mSATA hard drive.
And it flies on this hardware, boot times are under 10 seconds and I rarely see the CPU go over 10%.
The big caveat is that Alpine uses OpenRC instead of SystemD and musl instead of libc, so some software won’t work right out of the box.
And that’s what happened with PiHole, but luckily yvelon came to the rescue with his fork which worked great… until now.
The project has been seemingly abandoned for more than a year with no signs of activity and no replies to the issues.
This wasn’t a big deal because everything was working alright, but a month ago PiHole updated to version 6 and it was a pretty big rewrite.
To not bore you to death, I’ll keep it straight and simple: PiHole is made of 3 parts, the base code, the web application and the FTL engine.
The FTL engine was the biggest issue on Alpine because in order to work with musl you needed to make some adjustments in the code and recompile… but in v6, PiHole migrated to Alpine Linux for their Docker image so this is not an issue anymore as FTL works right out of the box! Wooohoo!
And the WebApp, being architecture-agnostic, works also fine!
But then, a recent update in the base code broke everything.
And that was it.
No matter how much I talked to the devs of PiHole to try and convince them to make their work fully compatible with Alpine Linux (you already have it working in your Alpine Linux Docker Image!!) they just don’t care or won’t listen.
Yvelon is nowhere to be seen.
Yes, I could take the matter into my hands and make PiHole work on bare metal but, honestly, seeing how the devs don’t give a crap about it, I have absolutely zero will to put any effort into it.
So I moved to Adguard Home which works just as well (honestly, so far it has been working even better than PiHole) and is in the Alpine Linux package repository and haven’t looked back.
Thanks to this guide I moved all my adlists and whitelists to Adguard and that was that.
It’s sad but, in the end, it is what it is.
I have work to do, friends to hang out with and my hobbies to take care of which are now relegated to a very small time frame of my day and I’m not willing to give it up to fix something the developers themselves don’t care about anymore.
So long, and thanks for all the fish I guess.
Let this be a cautionary tale of how responsibility comes first when leading a project that several people use and rely on, no matter your skill level.
“People have forgotten this truth,” the fox said. “But you mustn’t forget it. You become responsible forever for what you’ve tamed. You’re responsible for your rose.”
― The Little Prince