PiHole Notes Revision as of Friday, 19 June 2026 at 21:08 UTC
Maintenance
# Upgrade PiHole and Gravity lists
pihole -up && pihole -g
# Restart DNS Subsystem
pihole restartdns
# If it complains about an old version of the OS, skip the check
curl -sSL https://install.pi-hole.net | PIHOLE_SKIP_OS_CHECK=true sudo -E bash
Logs
tail -f /var/log/pihole.log
Re/Set Password
# If you hit enter here, the web interface will not require a password
pihole setpassword
New Lists
To install, go to Settings -> Blocklists and add them there. Then go to Tools -> Update Gravity.
Historical Note: These used to go in /etc/pihole/adlists.list but, since PiHole 5+ will use SQLite instead of flat text files, you gotta add these via the UI.
Adding lists via the CLI
Could not find a way to do this…
Regexes
Here’s an overview. Added this list.
Additional Blocklists
Find a big list here. Find the “ticked” lists here (these are safe to add and won’t cause issues.)
SmartTV Blocklists
See this GitHub gist. I have Samsung TVs, so some caveats apply about blocking domains like cdn.samsungcloudsolution.com and (especially) time.samsungcloudsolution.com.
Google AMP 🙄
Add this list.
Using PiHole Locally on macOS
This is for M-Series macs. Use UTM to boot up the aarch64 ISO of Alpine Linux on a VM with 256GB memory and 2GB disk space and shared networking (I used alpine-standard-3.24.1-aarch64.iso.) Setting all this up weighed in at around 550MB.
NOTE: Setting this to lower memory leads to weirdness. You either won’t be able to get past the UEFI boot menu or will see this:
error:
/home/buildozer/aports/main/grub/src/grub-2.14/grub-core/loader/efi/linux.c:gru b_arch_efi_linux_boot_image:259:start_image0 returned 0x8000000000000009.
Press any key to continue...
Type root and hit enter twice (there’s no password.) Run setup-alpine. Use all defaults. Create a new user pihole:pihole (user:password). Then remove the ISO and reboot. Log in as root and run these:
apk update
apk upgrade
apk add bash curl wget git procps newt python3 sudo openssl
curl -sSL https://install.pi-hole.net | bash
# I set the password to none.
pihole setpassword
You’ll need a static IP. This is what /etc/network/interfaces looks like:
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet static
address 192.168.64.4
mask 255.255.255.0
gateway 192.168.64.1
iface eth0 inet6 auto
Restart networking with rc-service networking restart.
Headless UTM
Official Docs. You need to right-click the VM -> Edit and then right-click and remove the Display (and Sound while you’re at it.) Then,
sudo ln -sf /Applications/UTM.app/Contents/MacOS/utmctl /usr/local/bin/utmctl
# Then see what's running
utmctl list
# Start shit up
utmctl start pihole