Pi-hole installation, blocklist management, DNS-over-HTTPS setup, DHCP integration, local DNS records, and troubleshooting broken DNS resolution on a home network.
This skill is a hands-on reference for standing up and operating Pi-hole, a network-wide DNS ad and malware blocker, on a Raspberry Pi or any Linux host. It solves the problem of ads, trackers, and malicious domains reaching every device on a home network by routing all DNS queries through Pi-hole, which returns null responses for blocked domains and forwards the rest to an upstream resolver. It also addresses the common failure mode where devices lose internet access after Pi-hole is introduced, offering troubleshooting guidance.
The skill covers two installation paths — a pinned Docker Compose deployment and a bare-metal install on Raspberry Pi OS, Debian, or Ubuntu — plus how to point a network at Pi-hole via router DHCP, per-device DNS, or Pi-hole acting as the DHCP server. It documents blocklist (adlist) management and gravity updates, whitelisting false positives, reading the live query log, configuring DNS-over-HTTPS upstreams with cloudflared, and creating local DNS records for homelab services. Throughout, it emphasizes security-conscious practices: pinning release tags instead of using latest, storing the web password in a chmod-600 .env file kept out of git, and inspecting the installer script before running it.
It is aimed at homelab enthusiasts, self-hosters, and privacy-minded users who administer their own home network and want automatic, network-wide blocking without browser extensions. Typical use cases include first-time Pi-hole setup, migrating DNS to Pi-hole, adding blocklists, encrypting DNS queries from the ISP, and diagnosing broken DNS resolution.
A Raspberry Pi or any Linux host running Raspberry Pi OS, Debian, or Ubuntu. The bare-metal install requires assigning a static IP first, and the Docker route needs Docker/Docker Compose. NET_ADMIN capability is only needed if Pi-hole will serve DHCP.
The recommended method is changing the DNS server in your router's DHCP settings to the Pi-hole IP, so all devices pick it up on their next DHCP renewal. The skill also documents per-device DNS for testing and running Pi-hole as the DHCP server (after disabling router DHCP to avoid conflicts).
Yes. The skill walks through installing cloudflared as a local DNS-over-HTTPS proxy on port 5053 and pointing Pi-hole's custom upstream at 127.0.0.1#5053, with guidance to pin the cloudflared version and verify its checksum before installing.
Add the domain to the Pi-hole whitelist via the admin UI. The skill also shows how to watch the live Query Log to see what is being blocked or allowed in real time.
Yes, troubleshooting broken DNS resolution after a Pi-hole rollout is one of its listed use cases, including notes on DHCP renewal, upstream fallbacks, and the tradeoffs of a public secondary DNS.
Quick Setup:
.claude/skills/Repository
affaan-m/everything-claude-code