ijhuang / allowlist

A simple tool to add commonly white listed domains to your Pi-Hole setup.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Allowlist


Collection of commonly allow-listed domains for
Pi-Hole®

A robust collection of commonly allow-listed websites borrowed from various sources including Pi-Hole subreddit, Pi-Hole forum, Pi-Hole GitHub repository and more! Add these domains to your Pi-Hole setup by running a script or manually and make your setup trouble-free! Want to report a new domain? Want to report existing one? Feel free to file an issue.

 

Allowlist install demo gif


Table of contents

Features

  • The entire repo is curated.
  • New domains are added frequently.
  • Supports Pi-Hole Docker installation.
  • Comes with a simple install/uninstall scripts i.e. you can add all domains with comments automatically at an instant.
  • Domains are categorized and are included in 3 different files.
  • All the domains will have comments to let you know about the domain.
  • If you are a beginner to Pi-Hole, adding these sites will solve issues with host files that block legit websites.

Overview


File Name Domain Count Description Update Frequency Raw Link
whitelist.txt 191 This file contain domains that are safe to allowlist i.e. it does not contain any tracking or advertising sites. Adding this file fixes many problems like YouTube watch history, videos on news sites and so on. If you want to report additional domain feel free to file an issue. Occasionally link
referral-sites.txt 75 People who use services like Slickdeals and Fatwallet needs a few sites (most of them are either trackers or ads) to be allowlisted to work properly. This file contains some analytics and ad serving sites like doubleclick.net and others. If you don't know what these services are, stay away from this list. Occasionally link
optional-list.txt -- This file contain domains that are needed to be allowlisted depending on the service you use. It may contain some tracking site but sometimes it's necessary to add bad domains to make a few services to work. Currently there is no script for this list, you have to add domains manually to your Pi-Hole. Occasionally link

Installation

Make sure you have python3 installed on your machine. You can simply install it by using sudo apt install python3

For whitelist.txt

git clone https://github.com/ijhuang/allowlist.git
sudo python3 allowlist/scripts/whitelist.py

For referral-sites.txt

git clone https://github.com/ijhuang/allowlist.git
cd allowlist/scripts
sudo ./referral.sh

If you are using Pi-hole 5.0 or later, the comment field has a unique string - qjz9zk to uniquely identify the domains added by this script so the user can remove the domains without affecting other allowlisted sites.

For optional-list.txt

You can add it manually depending upon the service you use.

For Docker installation (with Python3 support)

Access you running Pi-Hole container by docker exec -it <container-ID> bash and proceed with the steps given below:

git clone https://github.com/ijhuang/allowlist.git
sudo python3 allowlist/scripts/whitelist.py
git clone https://github.com/ijhuang/allowlist.git
cd allowlist/scripts
sudo ./referral.sh

For Docker installation (without Python3 support) or /etc/pihole on different directory

You can pass two optional arguments to whitelist.py, uninstall.py, and referral.sh:

 -d or --dir to specify the Pi-hole etc directory (in normal install should be /etc/pihole)
 -D or --docker to specify if Pi-hole is running as Docker container
git clone https://github.com/ijhuang/allowlist.git
sudo python3 allowlist/scripts/whitelist.py --dir /home/docker/pihole/etc-pihole/ --docker
git clone https://github.com/ijhuang/allowlist.git
cd allowlist/scripts
sudo ./referral.sh --dir /home/docker/pihole/etc-pihole/ --docker

Note: You don't have to clone the repo every time you need to update allowlist file. Navigate to allowlist/scripts and run it again `sudo python3 whitelist.py

Uninstall

Allowlist uninstall demo gif

As mentioned earlier, the unique string (qjz9zk) will come in handy while removing the domains from the database. It uses LIKE operator of the SQLite to match the wildcard string present in the comment section.

DELETE FROM domainlist WHERE type = 0 AND comment LIKE '%qjz9zk%'

This statement will remove the domain only if it is present in the exact allowlist section and having the string qjz9zk. Domains in the regex list will not be removed by this script.

The older version of the Pi-hole uses a simple text file to store the entries. In this case the script will match the domains present in your Pi-hole to the domains present in the GitHub repo and removes them accordingly.

To remove the domains: sudo python3 uninstall.py

Automated Update

cd /opt/
sudo git clone https://github.com/ijhuang/allowlist.git

Make the script to run the script at 1AM on the last day of the week

sudo nano /etc/crontab

Add this line at the end of the file:

0 1 * * */7     root    /opt/allowlist/scripts/whitelist.py

CTRL + X then Y and Enter

sudo python3 allowlist/scripts/whitelist.py

How do I determine an ad domain?

  • Adam:ONE Assistant (formerly DNSthingy Assistant): This browser extension will list all of the domains that are queried when a web page is loaded. You can often look at the list of domains and cherry pick the ones that appear to be ad-serving domains.
  • Using inbuilt Developer tool: For Chrome and Firefox, ctrl+shift+I will land you in Developer tools menu.
  • Using an Android app: Net Guard is an Android app that can be used to monitor any specific apps, works on unrooted devices too.

License

Copyright for portions of project Allowlist are held by [Anudeep ND, 2020] as part of project Bar. All other copyright for project Allowlist are held by [ijhuang, 2021].

MIT License

Copyright (c) 2021 ijhuang

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

A simple tool to add commonly white listed domains to your Pi-Hole setup.

License:Other


Languages

Language:Python 92.1%Language:Shell 7.9%