246d5cd587
Signed-off-by: Adam Warner <adamw@rner.email> |
||
---|---|---|
.github | ||
.idea | ||
advanced | ||
automated install | ||
block hulu ads | ||
test | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.pullapprove.yml | ||
.stickler.yml | ||
.travis.yml | ||
adlists.default | ||
autotest | ||
CONTRIBUTING.md | ||
gravity.sh | ||
LICENSE | ||
pihole | ||
README.md | ||
requirements.txt |
Network-wide ad blocking via your own Linux hardware
The Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.
- Easy-to-install: our versatile installer walks you through the process, and takes less than ten minutes
- Resolute: content is blocked in non-browser locations, such as ad-laden mobile apps and smart TVs
- Responsive: seamlessly speeds up the feel of everyday browsing by caching DNS queries
- Lightweight: runs smoothly with minimal hardware and software requirements
- Robust: a command line interface that is quality assured for interoperability
- Insightful: a beautiful responsive Web Interface dashboard to view and control your Pi-hole
- Versatile: can optionally function as a DHCP server, ensuring all your devices are protected automatically
- Scalable: capable of handling hundreds of millions of queries when installed on server-grade 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
Those who want to get started quickly and conveniently, may install Pi-hole using the following command:
curl -sSL https://install.pi-hole.net | bash
Alternative Install Methods
Piping to bash
is controversial, as it prevents you from reading code that is about to run on your system. Therefore, we provide these alternative installation methods which allow code review before installation:
Method 1: Clone our repository and run
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
sudo bash basic-install.sh
Method 2: Manually download the installer and run
wget -O basic-install.sh https://install.pi-hole.net
sudo 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 Pi-hole as their DNS server which ensures that all devices connecting to your network will have content 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 reoccurring costs involved with maintaining free, open source, and privacy respecting software; expenses which our volunteer developers 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 offsetting a portion of our monthly expenses:
Donate via PayPal
Bitcoin Address: 1GKnevUnVaQM2pQieMyeHkpr8DXfkpfAtL
Alternative support
If you'd rather not donate (which is okay!), there are other ways you can help support us:
- Digital Ocean affiliate link
- Vultr affiliate link
- UNIXstickers.com affiliate link
- Pi-hole Swag Store
- Spreading the word about our software, and how you have benefited from it
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 so we are helping make this easier for people.
If you are going to be presenting Pi-hole at a conference, meetup or even a school project, get in touch with us so we can hook you up with free swag to hand out to your audience!
Getting in touch with us
While we are primarily reachable on our Discourse User Forum, we can also be found on a variety of social media outlets. Please be sure to check the FAQ's before starting a new discussion, as we do not have the spare time to reply to every request for assistance.
Breakdown of Features
The Command Line Interface
The pihole
command has all the functionality necessary to be able to fully administer the Pi-hole, without the need of the Web Interface. It's fast, user-friendly, and auditable by anyone with understanding of bash
.
Some notable features include:
- Whitelisting, Blacklisting and Wildcards
- Debugging utility
- Viewing the live log file
- Real-time Statistics via
ssh
or your TFT LCD screen - Updating Ad Lists
- Querying Ad Lists for blocked domains
- Enabling and Disabling Pi-hole
- ... and many more!
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!
Some notable features include:
- Mobile friendly interface
- Password protection
- Detailed graphs and doughnut charts
- Top lists of domains and clients
- A filterable and sortable query log
- Long Term Statistics to view data over user defined time ranges
- The ability to easily manage and configure Pi-hole features
- ... and all the main features of the Command Line Interface!
There are several ways to access the dashboard:
http://<IP_ADDPRESS_OF_YOUR_PI_HOLE>/admin/
http:/pi.hole/admin/
(when using Pi-hole as your DNS server)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 integrated into your own projects. As the name implies, FTL does this all very quickly!
Some of the statistics you can integrate 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
- Unique clients
The API can be accessed via telnet
, the Web (admin/api.php
) and Command Line (pihole -c -j
). You can out find more details over here.
The Origin Of Pi-hole
Pi-hole being a advertising-aware DNS/Web server, makes use of the following technologies:
dnsmasq
- a lightweight DNS and DHCP servercurl
- A command line tool for transferring data with URL syntaxlighttpd
- webserver designed and optimized for high performancephp
- a popular general-purpose web scripting language- AdminLTE Dashboard - premium admin control panel based on Bootstrap 3.x
While quite outdated at this point, this original blog post about Pi-hole goes into great detail about how Pi-hole was originally 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
- The Big Blocklist Collection
- Docker Pi-hole container (x86 and ARM)
- Pi-Hole in the cloud
- Pie in the Sky-Hole [A Pi-Hole in the cloud for ad-blocking via DNS]
- Pi-hole Enable/Disable Button
- Minibian Pi-hole
- CHiP-hole: Network-wide Ad-blocker
- Chrome Extension: Pi-Hole List Editor (Source Code)
- Splunk: Pi-hole Visualiser
- Adblocking with Pi-hole and Ubuntu 14.04 on VirtualBox
- Pi-hole stats in your Mac's menu bar
- Pi-hole unRAID Template
- Copernicus: Windows Tray Application
- Let your blink1 device blink when Pi-hole filters ads
- Pi-hole metrics exporter for Prometheus
- Magic Mirror with DNS Filtering
- Pi-hole Droid: Android client
- Windows DNS Swapper, see #1400
Coverage
- Lifehacker: Turn A Raspberry Pi Into An Ad Blocker With A Single Command
- MakeUseOf: Adblock Everywhere: The Raspberry Pi-Hole Way
- Catchpoint: Ad-Blocking on Apple iOS9: Valuing the End User Experience
- Security Now Netcast: Pi-hole
- TekThing: Raspberry Pi-Hole Makes Ads Disappear!
- Foolish Tech Show
- Block Ads on All Home Devices for $53.18
- Pi-Hole for Ubuntu 14.04
- MacObserver Podcast 585
- The Defrag Show: Endoscope USB Camera, The Final [HoloLens] Vote, Adblock Pi and more
- Adafruit: Pi-hole is a black hole for internet ads
- Digital Trends: 5 Fun, Easy Projects You Can Try With a $35 Raspberry Pi
- Adafruit: Raspberry Pi Quick Look at Pi Hole ad blocking server with Tony D
- Devacron: OrangePi Zero as an Ad-Block server with Pi-Hole
- Linux Pro: The Hole Truth
- CryptoAUSTRALIA: How We Tried 5 Privacy Focused Raspberry Pi Projects
- CryptoAUSTRALIA: Pi-hole Workshop
- Know How 355: Killing ads with a Raspberry Pi-Hole!