Pi-hole
Fedora installation (official Pi-hole installer)
The supported install method for Pi-hole is the official shell installer. These steps show the recommended Fedora flow using the Pi-hole install script.
Install dependencies
Run the official installer
The installer will prompt for configuration options such as: - network interface - static IP address - upstream DNS servers - privacy level - web interface and query logging
Post-install notes
- The installer will set up
lighttpdand the Pi-hole web interface under/var/www/html/admin. - The configuration files are stored under
/etc/piholeand DNS settings are in/etc/dnsmasq.d. - If you need to reconfigure Pi-hole later, use:
Verify the install
The web admin interface is available at http://<pihole-ip>/admin.
DNS server configuration
Set your upstream DNS servers in the Pi-hole admin UI under Settings -> DNS.
Common custom DNS servers to use with this homelab setup:
If you have a local resolver or BIND server, point it at Pi-hole and let Pi-hole forward queries to the upstream servers above.
Paste lists
Use this section when you want to add many blocklist sources at once.
- Open the Pi-hole admin UI.
- Go to
Group Management -> Adlists. - Paste one blocklist URL per line into the Adlist URL field.
- Click
Addfor each list. - After adding all URLs, run
Update Gravity.
Example adlist URLs to paste:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/domains/light.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/domains/tif.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/gambling.txt
If you prefer the command line, add lists directly to /etc/pihole/adlists.list and refresh gravity:
Allowlist
Use the allowlist to permit domains that may be blocked by your blocklists or by the default rules.
- Open the Pi-hole admin UI.
- Go to
Group Management -> Domains. - Select the
Whitelisttab. - Paste allowed domains one per line.
- Save the changes.
Allow these for Apple Devices:
(\.|^)apple\.com$
(\.|^)apple(\.|^)
sw\w*\.apple.com
metrics.icloud.com
mask-api.icloud.com
feedbackws.icloud.com
(\.|^)icloud(\.|^)
Allow these for facebook media (photos/videos):
Tip: Use exact domains in the allowlist to minimize unintended allow rules.