Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - ArenaL5/FilterLists: :shield: The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances. · GitHub
Skip to content

Latest commit

History

3,776 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Twitter FollowDiscourse statusLicenseBuiltWithDot.Net shieldBeerpayBeerpay

FilterLists is the independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.

Website:WebsiteAzure DevOps buildsAzure DevOps releasesDocker Pulls
A React & TypeScript UI built with Ant Design.

API:APIAzure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
An ASP.NET Core API CRUD-ing with a MariaDB instance via EF Core.

Agent:Azure DevOps buildsAzure DevOps testsAzure DevOps releasesDocker Pulls
A .NET Core console application performing crawling, archiving, and URL validation.

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, open an Issue.

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 aims to solve that problem.

Contributing

Community

Discourse posts

Check out the FilterLists Hub, a place for discussing how to write rules, maintain FilterLists, and chat about the state of the adblocking community.

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. Alternatively, you can open a new issue providing information for all of the fields described in the data model.

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.

Up and Running

  1. Install Docker CE for your computer's operating system. Docs
  2. Clone the FilterLists git repository to your computer. Docs
  3. Navigate to the root directory of your locally cloned FilterLists git repository in a command-line interface.
  4. Execute docker-compose up. (Optionally, include the -d flag to launch in detached mode.)
  5. After a minute or so, visit the locally running version of FilterLists in a web browser at http://localhost/.

Configuration

The appsettings*.json files are only used when debugging in Visual Studio outside of Docker (they are not copied into the built runtime images). When running any of the projects in containers via Docker/Docker Compose, the configuration is passed in as environment variables configured in .env and docker-compose*.yml files.

Testing changes to the data (.json files)

Automated

Execute:

docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Api, Services, or Data projects

Automated

  • To run FilterLists.Services.Tests:

    docker volume create test-services-results && docker-compose -f docker-compose.services.tests.yml build api && docker-compose -p test-services -f docker-compose.services.tests.yml run --rm api

  • To run FilterLists.Data.Tests:

    docker volume create test-data-results && docker-compose -p test-data -f docker-compose.data.tests.yml down -v && docker-compose -f docker-compose.data.tests.yml build api && docker-compose -p test-data -f docker-compose.data.tests.yml run --rm api

Manual

  1. Execute docker-compose up -d --build api.
  2. Verify your changes are properly reflected at http://localhost/api.

Testing changes to the Web project

  1. Execute docker-compose up -d --build web.
  2. Verify your changes are properly reflected at http://localhost/.

Testing changes to the Agent project

The Agent takes the following command line arguments:

  • -a Archive copies of all lists in a git repository.
  • -c Validate all URLs in the FilterLists database.

Automated

  • To run FilterLists.Agent.Tests:

    docker volume create test-agent-results && docker-compose -f docker-compose.agent.tests.yml build agent && docker-compose -p test-agent -f docker-compose.agent.tests.yml run --rm agent

Manual

  1. Execute docker-compose build agent && docker-compose run agent [-c] [-v] (don't include the square brackets, they indicate optional command line arguments).
  2. Verify your changes are properly reflected in the console logger.

Debugging

  1. Execute docker container ls -a to find the CONTAINER ID of the container in question.
  2. Execute docker logs [CONTAINER ID] replacing [CONTAINER ID] with the hash from step 1 to view the logs from that container.

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:

Internet Explorer

FilterLists does not support Internet Explorer. To view a smaller, TPL-only archive with subscribable links, visit this page.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages