Repos / Pi-hole
Most watchedPi-hole
For anyone who wants to block ads on every device at home, including apps and smart TVs, without installing anything on each one.
What it does.
- block ads and unwanted domains for your whole network, with no software on each device
- block outside the browser too, such as in apps and smart TVs
- speed up browsing by caching DNS queries
- see and control everything from a web dashboard with statistics
- optionally act as the DHCP server of your network
Systems: Alpine, Armbian OS, Debian, CentOS Stream, Fedora, Raspberry Pi OS and Ubuntu (actively supported versions). x86_64, armv6/7/8 and riscv64 architectures. There is also an official Docker image.
What you need.
- RAM, minimum: 512 MB Whole service source for this requirement (opens in a new tab)
- Disk, minimum: 2 GB Whole service Free space. source for this requirement (opens in a new tab)
- Disk, recommended: 4 GB Whole service Free space. source for this requirement (opens in a new tab)
- CPU: the docs say it is very light and does not need much processor; they give no core count. source for this requirement (opens in a new tab)
- Static IP: the documentation says it needs one (a DHCP reservation works). source for this requirement (opens in a new tab)
- Port 53 (DNS) free: if another DNS server such as BIND is already running, you must turn it off. source for this requirement (opens in a new tab)
- Ports 80 and 443 for the dashboard; if they are taken, try 8080 and 8443. source for this requirement (opens in a new tab)
Check whether your machine can handle it. It adds up its RAM, CPU and disk together with other repos.
How to install.
Automatic installer (the README itself warns that piping a script into bash is controversial, because you do not read it first):
curl -sSL https://install.pi-hole.net | bashAlternative: download the installer, read it and then run it:
wget -O basic-install.sh https://install.pi-hole.netOnce you have reviewed the script:
sudo bash basic-install.shConfigure your router so DHCP clients use Pi-hole as their DNS server. If your router does not allow it, you can use Pi-hole's DHCP (turning off the router's) or configure each device.
Commands taken from the official documentation. Read them before you run them: it is your machine.
Permissions and data.
- It becomes the DNS server of your network (port 53 TCP/UDP): it sees the domain names your devices look up.
- The installer runs with sudo, that is, as the administrator of the machine.
Limits and warnings.
- It blocks at the DNS level: the documentation describes it as a "DNS sinkhole", not a content filter inside each page.
- It installs only on the listed systems; on untested variants the installation may fail.
- Without configuring the router (or DHCP), your devices do not go through Pi-hole: that step is mandatory.
- It is meant to be used inside your local network; the guide's firewall rules block traffic from the internet.
Real cost and cloud.
- It is free and open source; its volunteers ask for donations to cover expenses.
- It does not require a Raspberry Pi: any machine with a supported system works, and it must be on your network to provide the service.
- Queries it does not block are forwarded to the external DNS you choose, so that provider does see them.
License.
EUPL-1.2 Open source with copyleft
EUPL-1.2: European license with copyleft, applied since Pi-hole 3.0. Code from before that version keeps its previous licenses.
EUPL license since version 3.0; earlier code keeps its previous licenses.
This is a summary to orient you, not legal advice. For commercial use, read the original LICENSE file.
Where all of this comes from.
Checked against the official documentation on October 29, 2026; this is not a lab test. Nothing was installed or measured to write this guide. If something has changed, the project's documentation is the authority.