Hardware/Software Requirements


The Installer

Our intelligent installer is tailored to installations at home and behind firewalls. If you are installing Pi-hole in an environment beyond that scope, you will need to take extra security measures when installing it.


Pi-hole is very lightweight as it only handles DNS queries and returns a blank HTML file so it doesn’t need much processing power.

  • ~52MB of free space
  • 512 MB RAM


Pi-hole will run on most Debian-based distro’s and is the preferred platform for it.

We officially support the following:

  • Raspbian: Jessie (Only up to Pi-hole v3.2.1) / Stretch (lite / with pixel)
  • Ubuntu: 16.04 / 16.10
  • Fedora: 26 / 27
  • Debian: 8 / 9
  • CentOS: 7 (not ARM)

IP Addressing

Pi-hole needs a static IP address to properly function (a DHCP reservation is just fine). Users may run into issues because we currently install dhcpcd5, which may conflict with other running network managers such as dhclient, dhcpcd, networkmanager, and systemd-networkd.

As part of our install process, we append some lines to /etc/dhcpcd.conf in order to statically assign an IP address, so take note of this prior to installing.

Please be aware of this fact because it may cause confusion. This is not the ideal situation for us to be in, but since a significant portion of our users are running Pi-hole on Raspbian; and because Pi-hole’s roots began with the Raspberry Pi, it’s a problem that is difficult problem to get away from.

Due to the complexity of different ways of setting an IP address across different systems, it’s a slow process and we need help. If you’re willing to contribute, please let us know.


We need ports 53, 80, and 4711. Port 80 is optional if you decide not to install the Web dashboard during installation.

Port 53 should be used by dnsmasq

If you happen to have another DNS server running, such as BIND, you will need to turn it off in order for Pi-hole to respond to DNS queries.

Port 80 should be used by lighttpd

If you have another Web server already running, such as Apache, Pi-hole’s Web server will not work. You can either disable the other Web server or change the port on which lighttpd listens, which allows you keep both Web servers running.

Port 4711 should be used by pihole-FTL

FTL is our API engine and by default uses port 4711, but will increment if it’s already in use by something else.

PiHole directly on Routers (Tomato, MerlinWRT, DD-WRT, openWRT)
Install on "non-supported" distro?
Seven Things You May Not Know About Pi-hole
Installscript testing for system requirements
Pi Hole stops working
About the Synology category
IP-Hole Arch
Blocking ITV Hub Player Advertisements
Lost password
Pi-hole v3.2 Introduces Long-term Statistics, An Audit Log, Colours, and More!
Make Pi-hole worked anytime on ubuntu when i turn it off
Add Gentoo as a supported OS
Issues with IP address
Web page admin unable to load
Dnsmasq permission denied creating listening socket and no web interface

Pi-hole on raspberry pi

Bumping this one as I believe this excellent HowTo points out some important pitfalls that users experience like conflicting daemons and how lighttpd is used to return a blank ad.

Maybe you could add a “Hostname recommendation” section too as people configure their Pi often with only a short name?
For allot of software, especially the ones depending on DNS resolution, a FQDN is required:

FQDNs can be a requirement

Some things like web servers that use name based virtual hosting or load balancers, etc… absolutely require that you address them via an FQDN or hostname. They determine how to respond to your request based on the FQDN that you are connecting to. Connecting via an IP may not work at all.

SSL certificates are issued based on domain names, so you may not be able to use some SSL enabled services (properly) without DNS.

Its always harder to fix after.


I don’t think it would really be appropriate for this FAQ. Anyone who would need to be setting up virtual hosts or load balancers probably knows how to set a FQDN–having one isn’t a requirement for running a Pi-hole.


I understand.
But its such a small step from Pi-Holing to LBing and playing with anything virtual :wink:


Is 512 MB RAM really a requirement? Seems a bit too high for a very lightweight. I’m running Pi-hole as a virtual machine so every MB counts.


This is dedicated (no other software) Pi-Hole on a Pi B+ :

$ uptime
 21:24:18 up 62 days,  3:22,  2 users,  load average: 0.00, 0.00, 0.00

$ free -h
             total       used       free     shared    buffers     cached
Mem:          434M       222M       212M        26M        39M       122M
-/+ buffers/cache:        60M       374M
Swap:          99M       7.6M        92M

So yeah looks like you can size it down a bit to lets say 300MB if only running Pi-Hole.
But why not try yourself ?
Its a VM so how hard is it to change.

Ps. I can see 512MB as requirement for non VM systems to allow future things to grow.

EDIT: Comment from another KVM Pi-Hole user:

my pihole vm runs with 112MB of RAM and no swap


Forgot to mention but a Linux behaviour that allot of people overlook is caching.
Linux will cache allot until almost all memory is used up before it releases/drops cached bits.



It would not be possible to add the possibility to create a VPN tunnel in the Raspberry PI 3, such as L2TP?

Thank you