/FilterLists

:shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Primary LanguageC#MIT LicenseMIT

Twitter License BuiltWithDot.net MadeWithReactJS.com
FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Table of Contents

Background

FilterLists helps to protect your privacy and security when using the internet. It provides a comprehensive directory of subscription lists to block advertisements, malware, trackers, and other general annoyances. First, install one of the software tools that supports these lists. Then you can subscribe to a set of these lists inside of that software. If you need help or have a comment/question, start a Discussion.

Using a software firewall or adblocker has become a key tool in protecting one's privacy online. While the current business model of the "free" internet relies upon advertising revenue, publishers have become too flippant about tracking users without their consent. Advertising networks track users' browsing habits around the internet building lucrative profiles to exploit for targeted marketing or big data research. Until internet publishers develop more transparency or a new business model, we must continue to take the protection of our privacy into our hands.

Typical adblockers run as an extension in popular web browsers. As we browse the internet, they compare HTTP requests to their list of hosts and filters to selectively block advertisements, trackers, and malware. This filtering helps to protect the surfer's privacy, prevents malvertising attacks, and reduces bandwidth requirements. Thousands of contributors work hard to maintain these FilterLists for anyone to use. Locating and selecting these lists, however, has not historically been very easy. This project was launched in 2015 to solve that problem.

Services

Service Description More
Website A React & TypeScript UI built with Ant Design. Website Website Azure DevOps builds Website Azure DevOps releases Website Docker Image Website Security Headers
Directory API An ASP.NET Core API serving the core FilterList information. Directory API Swagger UI Directory API OpenAPI Specification Directory API Azure DevOps builds Directory API Azure DevOps releases Directory API Docker Image Directory API Security Headers
Archival API An ASP.NET Core API archiving and serving copies of FilterLists for mirrors and analysis. Archival API Swagger UI Archival API OpenAPI Specification Archival API Azure DevOps builds Archival API Azure DevOps releases Archival API Docker Image Archival API Security Headers
Reverse Proxy An NGINX instance forwarding requests to the respective services above. Reverse Proxy Azure DevOps builds Reverse Proxy Azure DevOps releases Reverse Proxy Mozilla HTTP Observatory Grade Reverse Proxy Chromium HSTS preload

Contributing

Adding or Updating Lists

To submit a new list or update data about an existing list, please submit a pull request to data in conjunction with the data model described here. Once you open the pull request, our Migrate bot will create an Entity Framework Core migration with your changes and test them. Please ensure to grant the bot permissions to push to your pull request branch. You can find more details on this process here.

Alternatively, you can open a new issue providing information for all of the fields described in the data model.

In the future, we hope to have an easier form UI to submit updates. Follow this issue for any progress on that feature.

Note: Since the primary FilterLists.com site does not support Internet Explorer, we also have a separate page for tracking protection lists (TPL) here and viewed here.

Adding or Updating Rules

FilterLists does not maintain any of these lists. It serves only as a discovery tool to direct users to lists that they may want to use. If you want to request addition, modification, or removal of a rule from a list, you will need to contact the maintainers of that list directly. FilterLists provides a variety of ways you can get in contact with the maintainers to do so.

Building and Running Locally

We have containerized FilterLists to make it as easy as possible for contributers to get the project up and running locally.

  1. Install Docker CE. Docs
  2. Install the current version of Node.js. Docs
  3. Clone the FilterLists git repository to your computer. Docs
  4. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  5. Start the APIs:
    docker-compose -f docker-compose/docker-compose.yml -f docker-compose/docker-compose.override.yml up -d
    You can then view the API docs and execute API calls here: http://localhost:8080/api/
  6. Start the Web app:
    npm i --cwd web && npm start --prefix web
    You can then view the Web app calling your local instance of the Directory API here: http://localhost:3000

Acknowledgements

  • Imre Kristoffer Eilertsen @DandelionSprout : major contributor
  • Raymond Hill @gorhill : uBlock Origin owner, advised on some technical aspects of FilterLists
  • Andrey Meshkov @ameshkov : AdGuard CTO, advised on some technical aspects of FilterLists
  • More contributors

Miscellany

Disclaimer

FilterLists does not condone subscribing to any particular FilterList or blocking any particular advertisement network. Make sure to financially support your favorite sites in some way if you choose to block their advertisements. FilterLists is also in no way officially affiliated with any of the software vendors or list maintainers referenced on this site.

Privacy

We respect your privacy. That is the whole point of this project. The only minor data we collect about visitors is what our infrastructure providers collect. These include: