A few of my friends experienced the glory of PiHole in my home network and asked, if I could install such a thing in their networks as well.
Which I obviously could, but none of them are interested in updating/maintaining such a device. So I would like to collect some suggestions on how to deploy such a box with (ideally) zero interaction from my side until the end of times.
My hardware platform of choice would be a cheap thin client (Futro s920 or something like that) running Ubuntu with unattended updates enabled.
Pihole itself seem to offer an auto-updater, but I’m not sure how stable that runs in the long run - maybe Docker would be better suited here?
If they do not want to maintain and update a pihole, it is better to just use public dns, like adguard.
I’d personally recommend AdGuard Home over PiHole, as it supports DNS-over-HTTPS and DNS-over-TLS out-of-the-box.
Honestly, if I was doing this, I’d probably run it on a VPS or my home server. I’d run at least two instances and configure their router to use them. You’d lose encrypted DNS, but it means they don’t need a device on their local network.
I would like to collect some suggestions on how to deploy such a box
Someone will have to do maintenance eventually. Configure SSH securely (Ed25519 key, password authentication disabled), and SSH in and update it once per month? Charge them a small fee, or do it for free in exchange for them doing something nice for you.
Auto-upgrades are scary since there can be breaking changes between versions.
My hardware platform of choice would be a cheap thin client
Why not a Raspberry Pi? The supply chain issues are clearing up.
You may want two so that there’s redundancy and they don’t lose DNS in case one dies. You can use something like https://github.com/bakito/adguardhome-sync (or the PiHole equivalent) to keep configs in sync across both.
Why not a Raspberry Pi? The supply chain issues are clearing up.
In the US it seems the supply chain issues are alive as ever. Most of the official resellers are sold out on anything but the Pico and Zero boards. Some do have 4B boards for sale if you buy their starter kit with them, increasing the price by $65 on canakit. The supply issues are definitely not resolved for home users no matter what the CEO wants to say.
Ah, interesting. Thanks for the info. I had heard that the supply chain issues were clearing up, but admittedly haven’t checked the stock levels myself.
You can get something similar, like an ODROID.
I run pihole dockerized on Armbian for Rock64, those should be available.
This is the correct answer. Takes a little bit of tinkering to setup but it’s free and works. Just make sure to change the default DNS endpoints from Cloudflare and Google to something more private.
How about to set up a device that works locally at your friends’ house as DNS server, but don’t forget to install something like zerotier, so you can access it without setting up a port forward. With that, you can help them with the maintenance of their DNS server.
I would go a step further and use ansible to manage the devices. Set it up to auto update and you’ll have basically no maintenance.
Rent a cheap VPS, ask your friends to gobble up the 1-2 units of local currency per month. Run a DNS over HTTPS server on the VPS (Adguard Home can do it, I’m not sure about PiHole), then just use browsers that can use a custom DoH resolver.
Don’t open port 53 to the public, that’s just asking for trouble. The bonus with this is the adblocking is in use on the go as well, and you can use the same server yourself.
You could charge a small maintenance contract to keep it up to date!
Spitballing ideas:
- ~Run PiHole on a public facing server/port. You’ll probably need to plan out the security aspects of it, but then your friends could then just set their devices to use the PiHole DNS (much like how people can set their devices to use 1.1.1.1 or 8.8.8.8).~
- Drop a Pi with PiHole in their network that is managed with some fleet/IOT management platform like Balena. That’ll in theory get you PiHole running in a container, and you’ll have a management platform to actually remotely connect to the Pi to manage it.
You may be already aware, but be mindful of the danger associated with having an ounce of responsibility for their DNS uptime. The bonus of option #1 is that you could also empower your friends to “bypass” PiHole should it go belly up.
Edit: Don’t do #1 unless you can properly secure it.