A black hole for Internet advertisements
Find a file
2017-10-06 20:39:01 +11:00
.github Add link for EUPL 2017-09-02 21:52:54 +10:00
.idea accidentally the idea file 2017-02-20 21:36:27 +00:00
advanced Update access rules to block all root '.' files 2017-09-22 09:29:00 -04:00
automated install Fix LIGHTTPD_ENABLED dupes in setupVars.conf 2017-09-22 19:14:11 +10:00
block hulu ads ATV Hulu domain add 2016-02-02 12:20:30 -05:00
test Remove index.js test 2017-09-19 01:04:04 +10:00
.editorconfig Update .editorconfig 2017-04-06 14:55:21 -07:00
.gitattributes linux style line endings enforced 2017-02-20 21:12:04 +00:00
.gitignore Revert reversion. 2017-02-20 13:25:28 -08:00
.pullapprove.yml Merge pull request #1533 from pi-hole/dschaper-patch-1 2017-06-17 12:23:04 -04:00
.travis.yml add travis and python requirements 2016-11-01 23:53:11 -05:00
adlists.default newline 2017-03-31 21:12:17 +01:00
autotest setupVar tests passing for debian & centos 2016-10-10 23:14:39 -05:00
CONTRIBUTING.md Match the Pi-hole brand (#1358) 2017-04-03 17:29:57 +02:00
gravity.sh Update gravity.sh 2017-09-26 09:25:47 +04:00
LICENSE Update LICENSE of the project to EUPL v1.2 2017-06-03 15:06:00 +02:00
pihole Correctly retrieve IPv4/6 addresses for tailFunc() 2017-09-23 11:27:40 +10:00
README.md Remove placeholder URL 2017-10-06 20:39:01 +11:00
requirements.txt add travis and python requirements 2016-11-01 23:53:11 -05:00


Network-wide ad blocking via your own Linux hardware

Core: Command Line Interface

Summary

The Pi-hole blocks ads via a DNS sinkhole, so all your devices are protected without the need to install client-side software.

  • Easy-to-install: our versatile installer walks you through the process, and takes less than ten minutes
  • Resolute: ads are blocked in non-browser locations such as ad-laden mobile apps and smart TVs
  • Fast: speeds up the feel of everyday browsing by caching DNS queries, saving bandwidth
  • Lightweight: runs smoothly and requires minimal resources
  • Robust: a command line interface for those preferring CLI, and/or wanting to automate tasks
  • Informative: a beautiful and secure Web Interface dashboard to control your Pi-hole
  • Versatile: can optionally function as a DHCP server, ensuring your devices will not need configuring individually
  • Scalable: capable of handling hundreds of millions of queries when installed on powerful hardware
  • Modern: blocks ads over both IPv4 and IPv6
  • Free: open source software which helps ensure you are the sole person in control of your privacy

One-Step Automated Install

  1. Install a supported operating system
  2. Run the following command

curl -sSL https://install.pi-hole.net | bash

Alternative Install Methods

Piping to bash can be dangerous, so we understand the importance of giving people the option to review our code! Our installer is found here, if you wish to read it before running.

You can install Pi-hole via one of the two alternative methods:

Clone our repository and run the automated installer from your device

git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
bash basic-install.sh

Manually download and execute the install file

wget -O basic-install.sh https://install.pi-hole.net
bash basic-install.sh

Post-install: Make your network take advantage of Pi-hole

Once the installer has been run, you will need to configure your router to have DHCP clients use the Pi-hole as their DNS server so that any device that connects to your network will have ads blocked without any further intervention.

If your router does not support setting the DNS server, you can use Pi-hole's built in DHCP server; just be sure to disable DHCP on your router first (if it has that feature available).

As a last resort, you can always manually set each device to use Pi-hole as their DNS server.


Pi-hole is free, but powered by your support

There are many reoccuring costs involved with maintaining free, open source and privacy respecting software; expenses which our volunteers pitch in to cover out-of-pocket. This is just one example of how strongly we feel about our software, as well as the importance of keeping it maintained.

Make no mistake: your support is absolutely vital to help keep us innovating!

Donations

Sending a donation using our links below is extremely helpful in offset a portion of our monthly costs:

Alternative support

If you'd rather not donate (which is okay!), there are other ways you can help support us:

Contributing via GitHub

We welcome everyone to contribute to issue reports, suggest new features and create pull requests.

If you have something to add - anything from a typo through to a whole new feature, we're happy to check it out! Just make sure to fill out our template when submitting your request; the questions that it asks will help the volunteers quickly understand what you're aiming to achieve.

You'll find that the install script and the debug script have an abundance of comments, which will help you better understand how Pi-hole works. They're also a valuable resource to those who want to learn how to write scripts or code a program! We encourage anyone who likes to tinker to read through it, and submit a pull request for us to review.

Presentations about Pi-hole

Word-of-mouth continues to help our project grow immensely, and we'd like to help those who are going to be presenting Pi-hole at a conference, meetup or even a school project. If you'd like some free swag to hand out to your audience, get in touch with us.


Getting in touch with us


Features

The Command Line Interface

The pihole command has all the functionality necessary to be able to fully administer the Pi-hole.

Pi-hole ASCII Logo

Some of the features include:

You can read our Core Feature Breakdown, as well as read up on example usage for more information.

The Web Interface Dashboard

This optional dashboard allows you to view stats, change settings, and configure your Pi-hole. It's the power of the Command Line Interface, with none of the learning curve!

Pi-hole Dashboard

There are several ways to access the dashboard:

  1. http://<IP_ADDPRESS_OF_YOUR_PI_HOLE>/admin/
  2. http:/pi.hole/admin/ (when using Pi-hole as your DNS server)
  3. http://pi.hole/ (when using Pi-hole as your DNS server)

The Faster-Than-Light Engine

The FTL Engine is a lightweight purpose-built daemon used to provide statistics needed for the Web Interface, and its API can be easily intergrated into your own projects. As the name implies, FTL does this all very quickly!

Some of the statistics you can intergrate include:

  • Total number of domains being blocked
  • Total number of DNS queries today
  • Total number of ads blocked today
  • Percentage of ads blocked
  • Unique domains
  • Queries forwarded (to your chosen upstream DNS server)
  • Queries cached (served by Pi-hole)
  • Unique Pi-hole clients

The API can be accessed via telnet, the Web (admin/api.php) and Command Line (pihole -c -j). More details are found here.


Technical Details

To summarize into a short sentence, the Pi-hole is an advertising-aware DNS/Web server. While quite outdated at this point, this original blog post about Pi-hole goes into great detail about how it was setup and how it works. Syntactically, it's no longer accurate, but the same basic principles and logic still apply to Pi-hole's current state.


Pi-hole Projects


Coverage