{"id":26578172,"url":"https://github.com/greigh/blockingmachine","last_synced_at":"2025-03-23T04:28:02.474Z","repository":{"id":279503377,"uuid":"936357144","full_name":"Greigh/BlockingMachine","owner":"Greigh","description":"A custom-built aggregator that compiles and standardizes up-to-date ad and tracker blocking rules from various trusted sources. Features include real-time updates, unified formatting, and optional website redirection. This tailored solution offers efficient, adaptable, and powerful blocking across platforms.","archived":false,"fork":false,"pushed_at":"2025-03-19T02:08:34.000Z","size":35850,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T02:24:45.024Z","etag":null,"topics":["adblock","adblocker","content-blocking","privacy"],"latest_commit_sha":null,"homepage":"https://blockingmachine.xyz/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Greigh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-21T00:14:38.000Z","updated_at":"2025-03-19T01:11:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"e49ef307-ae75-4a43-8b92-ca5463d11e88","html_url":"https://github.com/Greigh/BlockingMachine","commit_stats":null,"previous_names":["greigh/blockingmachine"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greigh%2FBlockingMachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greigh%2FBlockingMachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greigh%2FBlockingMachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greigh%2FBlockingMachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Greigh","download_url":"https://codeload.github.com/Greigh/BlockingMachine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245056472,"owners_count":20553853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adblock","adblocker","content-blocking","privacy"],"created_at":"2025-03-23T04:28:01.976Z","updated_at":"2025-03-23T04:28:02.449Z","avatar_url":"https://github.com/Greigh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./public/images/BlockingMachine.png\" width=\"200\" alt=\"BlockingMachine Logo\"\u003e\n\n# BlockingMachine\n\n[![UPDATEFILTERS](https://img.shields.io/github/actions/workflow/status/badges/shields/updatefilters.yml?label=Filter%20Updates)](https://github.com/Greigh/BlockingMachine/blob/main/.github/workflows/updatefilters.yml)\n[![ESLint](https://github.com/Greigh/BlockingMachine/actions/workflows/eslint.yml/badge.svg)](https://github.com/Greigh/BlockingMachine/actions/workflows/eslint.yml)\n[![MarkdownLint](https://github.com/Greigh/BlockingMachine/actions/workflows/mdlint.yml/badge.svg)](https://github.com/Greigh/BlockingMachine/actions/workflows/mdlint.yml)\n[![AgLint](https://github.com/Greigh/BlockingMachine/actions/workflows/aglint.yml/badge.svg)](https://github.com/Greigh/BlockingMachine/actions/workflows/aglint.yml)\n[![GitHub Pages](https://github.com/Greigh/BlockingMachine/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/Greigh/BlockingMachine/actions/workflows/pages/pages-build-deployment)\n[![UpdateFilters](https://github.com/Greigh/BlockingMachine/actions/workflows/website.yml/badge.svg)](https://github.com/Greigh/BlockingMachine/actions/workflows/website.yml)\n[![COMMITS](https://img.shields.io/github/commit-activity/m/greigh/BlockingMachine)](https://github.com/greigh/BlockingMachine/graphs/commit-activity)\n[![ISSUES](https://img.shields.io/github/issues/greigh/BlockingMachine)](https://github.com/greigh/BlockingMachine/issues)\n[![CLOSEDISSUES](https://img.shields.io/github/issues-closed/greigh/BlockingMachine)](https://github.com/greigh/BlockingMachine/issues?q=is%3Aissue+is%3Aclosed)\n\nLast Updated: February 26, 2025 at 1:58 AM\n\n---\n\n**BlockingMachine** is a comprehensive ad-blocking and privacy protection system that converts, optimizes,\nand distributes filter lists across multiple platforms. It bridges the gap between different ad-blocking\ntools by providing unified, regularly updated filter lists.\n\n[View Demo](https://greigh.github.io/BlockingMachine) • [Quick Start](#quick-start) • [Documentation](https://greigh.github.io/BlockingMachine/docs)\n\n---\n\n\u003c/div\u003e\n\n## 🚀 Highlights\n\n- **50M+** Domains Blocked\n- **Daily** Updates\n- **4** Filter Formats\n- **Cross-Platform** Support\n- **Zero** False Positives Policy\n\n## Table of Contents\n\n- [BlockingMachine](#blockingmachine)\n  - [🚀 Highlights](#-highlights)\n  - [Table of Contents](#table-of-contents)\n  - [Available Filters](#available-filters)\n    - [Filter Lists](#filter-lists)\n    - [Quick Subscribe Links](#quick-subscribe-links)\n    - [Update Schedule](#update-schedule)\n  - [Third Party Filters](#third-party-filters)\n  - [Overview](#overview)\n  - [How BlockingMachine Works](#how-blockingmachine-works)\n    - [The Problem](#the-problem)\n    - [Our Solution](#our-solution)\n    - [Rule Types](#rule-types)\n      - [DNS Rules](#dns-rules)\n      - [Browser Rules](#browser-rules)\n      - [Hosts Rules](#hosts-rules)\n    - [Daily Updates](#daily-updates)\n  - [Chrome MV3 Impact](#chrome-mv3-impact)\n    - [What Changed?](#what-changed)\n    - [What to Do](#what-to-do)\n  - [How to Use](#how-to-use)\n    - [Whole Home Filtering](#whole-home-filtering)\n    - [Mobile Filtering](#mobile-filtering)\n    - [Browser Filtering](#browser-filtering)\n    - [System Filtering](#system-filtering)\n  - [Build from Source](#build-from-source)\n    - [Prerequisites](#prerequisites)\n    - [Installation](#installation)\n    - [Running the Script](#running-the-script)\n  - [Project Structure](#project-structure)\n  - [⚡ Quick Start](#-quick-start)\n  - [🤝 Contributing](#-contributing)\n  - [Features](#features)\n  - [Compatibility](#compatibility)\n    - [Browsers](#browsers)\n    - [Mobile](#mobile)\n    - [DNS Servers](#dns-servers)\n  - [Installation Guide](#installation-guide)\n    - [System Requirements](#system-requirements)\n    - [System-Specific Setup](#system-specific-setup)\n      - [macOS](#macos)\n      - [Windows](#windows)\n      - [Linux](#linux)\n    - [Installing BlockingMachine](#installing-blockingmachine)\n    - [Configuration](#configuration)\n    - [Verify Installation](#verify-installation)\n    - [Running the Application](#running-the-application)\n    - [Troubleshooting](#troubleshooting)\n  - [Live Demo](#live-demo)\n    - [Try it Now](#try-it-now)\n    - [Quick Test](#quick-test)\n    - [Demo Statistics](#demo-statistics)\n    - [Live Status](#live-status)\n  - [Show Your Support](#show-your-support)\n\n## Available Filters\n\n### Filter Lists\n\n- **AdGuard DNS Filter**: Network-level blocking with DNS rewrites\n- **AdGuard Standard**: Complete protection for AdGuard products\n- **Browser Extension**: Compatible with uBlock Origin and AdBlock\n- **Hosts Format**: System-level blocking for any OS\n\n### Quick Subscribe Links\n\n| Filter Type | Subscribe Link |\n|-------------|---------------|\n| AdGuard DNS | [Subscribe](https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/adguard-dns.txt) |\n| Standard | [Subscribe](https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/standard.txt) |\n| Browser | [Subscribe](https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/browser.txt) |\n| Hosts | [Subscribe](https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/hosts.txt) |\n\n### Update Schedule\n\n- Lists update daily at midnight UTC\n- Last update: February 26, 2025 at 1:58 AM\n\n## Third Party Filters\n\n\u003c!-- thirdPartyFilters --\u003e\n\u003c!-- endThirdPartyFilters --\u003e\n\n## Overview\n\nBlockingMachine is a unified solution for managing ad blocking and privacy rules across different platforms and\ntools. It automatically aggregates, processes, and distributes blocking rules in various formats to ensure\nmaximum compatibility and effectiveness.\n\n## How BlockingMachine Works\n\n### The Problem\n\nAd blockers and privacy tools often use different rule formats:\n\n- Browser extensions use one format\n- DNS blockers use another\n- System-level blockers need hosts files\n- Some tools need special syntax for advanced features\n\n### Our Solution\n\nBlockingMachine solves this by:\n\n1. **Collecting Rules**: Gathers blocking rules from trusted sources\n2. **Processing**: Converts all rules into a standard format\n3. **Optimizing**: Removes duplicates and validates rules\n4. **Converting**: Creates different versions for various blocking tools\n5. **Distributing**: Provides ready-to-use files for different systems\n\n### Rule Types\n\n#### DNS Rules\n\n```plaintext\n||ads.example.com^\n```\n\n- Blocks at the domain level\n- Works with AdGuard Home, Pi-hole\n- Most efficient for network-wide blocking\n\n#### Browser Rules\n\n```plaintext\n# Element hiding rules\n##.ad-container\nexample.com##.sponsored-content\n\n# Network rules\n||ads.example.com^$script\n||tracker.example.com^$third-party\n\n# Exception rules\n@@||example.com/assets^$image\n\n# Cosmetic rules\nexample.com#@#.social-share\n*##.cookie-notice\n\n# Specific content blocking\n||example.com^$media,domain=site.com\n||ads.com^$popup,third-party\nexample.com##.sidebar:style(position: absolute !important;)\n\n# Generic hiding\nexample.com$generichide\n||example.com^$elemhide\n```\n\n- Blocks specific page elements\n- Works with uBlock Origin, AdGuard\n- More precise but requires browser extension\n- Supports advanced filtering options\n\n#### Hosts Rules\n\n```plaintext\n0.0.0.0 ads.example.com\n```\n\n- System-level blocking\n- Works on any operating system\n- No special software needed\n\n### Daily Updates\n\n1. Download latest rules from sources\n2. Convert to standard format\n3. Remove duplicates\n4. Validate rules\n5. Generate different versions\n6. Update distribution files\n7. Send notifications\n\n## Chrome MV3 Impact\n\n### What Changed?\n\nChrome switched from Manifest V2 (MV2) to Manifest V3 (MV3), which affects how browser extensions block ads and trackers.\n\n### What to Do\n\n1. **Best Options**:\n\n   - Use a non-Chrome browser like Firefox or Brave\n   - Use system-wide blocking (like AdGuard or Pi-hole)\n\n2. **If You Must Use Chrome**:\n\n   - Consider multiple layers of protection\n   - Use DNS-level blocking when possible\n   - Accept that some ads might get through\n\n## How to Use\n\n### Whole Home Filtering\n\n- [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) (Recommended)\n- [PiHole](https://pi-hole.net/) (Hosts filter only)\n- [Wireguard](https://www.wireguard.com/) (more advanced)\n\n### Mobile Filtering\n\n- **iOS**:\n  - [AdGuard Pro](https://adguard.com/en/adguard-ios-pro/overview.html) (Recommended)\n  - [AdBlocker DNS Ultimate AdBlock](https://apps.apple.com/us/app/adblocker-dns-ultimate-adblock/id6475119148)\n- **Android**:\n  - [AdGuard](https://adguard.com/en/adguard-android/overview.html) (Recommended)\n\n### Browser Filtering\n\n- [Brave Browser](https://brave.com/)\n  - Chromium-based browser with built-in filtering (Recommended)\n- Chrome and other Chromium Browsers (only recommended for non-Chrome due to MV3 release)\n  - [AdGuard](https://adguard.com/en/adguard-browser-extension/chrome/overview.html)\n  - [uBlock](https://ublockorigin.com/)\n  - [Adblock Plus](https://adblockplus.org/en/download)\n- Safari\n  - [AdGuard](https://adguard.com/en/adguard-safari/overview.html)\n  - [uBlock](https://ublockorigin.com/)\n  - [Adblock Plus](https://adblockplus.org/en/download)\n- Firefox and other FireFox based browsers\n  - [AdGuard](https://adguard.com/en/adguard-browser-extension/firefox/overview.html)\n  - [uBlock](https://ublockorigin.com/)\n  - [Adblock Plus](https://adblockplus.org/en/download)\n\n### System Filtering\n\n- Block using the Hosts File on your computer (Not Recommended)\n  - macOS: `/private/etc/hosts`\n  - Windows: `C:\\Windows\\System32\\drivers\\etc\\hosts`\n  - Linux: `/etc/hosts`\n\n## Build from Source\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/en/download)(version 20 or higher)\n- [npm](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating)(Node Package Manager)\n\n### Installation\n\n1. Clone the repository:\n\n    ```sh\n    git clone https://github.com/greigh/BlockingMachine.git\n    cd BlockingMachine\n    ```\n\n2. Install the dependencies:\n\n    ```sh\n    npm install\n    ```\n\n### Running the Script\n\nTo run the Blocking Machine script, use the following command:\n\n```sh\nnpm start build\n```\n\n## Project Structure\n\n```bash\nBlockingMachine/\n├── .github/\n│   └── workflows/        # GitHub Actions workflows\n│       ├── eslint.yml\n│       ├── mdlint.yml\n│       ├── aglint.yml\n│       ├── website.yml\n│       └── release.yml\n├── src/                 # Source code\n│   ├── update.js\n│   └── utils/\n│       └── filters.js\n├── public/             # Public assets and generated files\n│   ├── images/\n│   │   └── BlockingMachine.png\n│   └── filters/        # Generated filter lists\n│       ├── adguard-dns.txt\n│       ├── standard.txt\n│       ├── browser.txt\n│       └── hosts.txt\n├── tests/              # Test files\n│   └── update.test.js\n├── config/             # Configuration files\n│   ├── eslint.config.mjs\n│   └── .markdownlint.json\n├── docs/               # Documentation\n├── CODE_OF_CONDUCT.md  # Project guidelines\n├── CONTRIBUTING.md     # Contribution guidelines\n├── LICENSE            # Project license\n└── README.md         # Project documentation\n```\n\n## ⚡ Quick Start\n\n1. **Choose Your Platform**:\n\n   - [Browser Extension](#browser-filtering)\n   - [Network-Wide](#whole-home-filtering)\n   - [Mobile Device](#mobile-filtering)\n\n2. **Copy the Filter URL**:\n\n   | For | Use This |\n   |-----|-----------|\n   | AdGuard Home | `https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/adguard-dns.txt` |\n   | uBlock Origin | `https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/browser.txt` |\n   | Hosts File | `https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/hosts.txt` |\n\n3. **[Follow Setup Guide](#how-to-use)**\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n- [Report bugs](https://github.com/Greigh/BlockingMachine/issues)\n- [Suggest enhancements](https://github.com/Greigh/BlockingMachine/issues)\n- [Submit pull requests](https://github.com/Greigh/BlockingMachine/pulls)\n\nPlease read our [Contributing Guidelines](CONTRIBUTING.md) before submitting changes.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nMade with ❤️ by [Daniel Hipskind](https://danielhipskind.com/) aka Greigh\n\n\u003c/div\u003e\n\n## Features\n\n- **Multi-Platform Support**\n  - DNS-level blocking (AdGuard Home, Pi-hole)\n  - Browser extensions (uBlock Origin, AdGuard)\n  - System-level (hosts file)\n  - Mobile devices (iOS, Android)\n\n- **Smart Rule Processing**\n  - Automatic rule deduplication\n  - Syntax validation\n  - Format conversion\n  - Performance optimization\n\n- **Regular Updates**\n  - Daily filter updates\n  - Automatic GitHub Actions workflow\n  - Real-time status monitoring\n  - Discord notifications\n\n- **Easy Integration**\n  - Simple subscription URLs\n  - One-click installation\n  - Cross-platform compatibility\n  - No configuration needed\n\n## Compatibility\n\n### Browsers\n\n- Firefox (Recommended) ✅\n- Safari ✅\n- Brave ✅\n- Chrome (Limited MV3 Support) ⚠️\n- Edge (Limited MV3 Support) ⚠️\n\n### Mobile\n\n- iOS 14+ ✅\n- Android 8+ ✅\n- iPadOS 14+ ✅\n\n### DNS Servers\n\n- AdGuard Home ✅\n- Pi-hole (Limited) ⚠️\n- NextDNS ✅\n\n## Installation Guide\n\n### System Requirements\n\n- [Node.js](https://nodejs.org/en/download) (v20 or higher)\n- [Git](https://git-scm.com/downloads)\n- Package Manager: [npm](https://www.npmjs.com/get-npm) (comes with Node.js)\n\n### System-Specific Setup\n\n#### macOS\n\n```bash\n# Install Homebrew if not already installed\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# Install Node.js\nbrew install node\n\n# Verify installation\nnode --version  # Should show v20.x.x or higher\nnpm --version   # Should show v10.x.x or higher\n```\n\n#### Windows\n\n- Download and install Node.js from [official website](https://nodejs.org/)\n- Open PowerShell as Administrator to run commands\n\n#### Linux\n\n```bash\n# Using Ubuntu\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt-get install -y nodejs\n\n# Using Fedora\nsudo dnf install nodejs\n```\n\n### Installing BlockingMachine\n\n1. **Clone the Repository**\n\n```bash\ngit clone https://github.com/Greigh/BlockingMachine.git\ncd BlockingMachine\n```\n\n2. **Install Dependencies**\n\n```bash\n# Clean install for production\nnpm ci\n\n# Regular install for development\nnpm install\n```\n\n### Configuration\n\n```bash\n# Copy example configuration\ncp .env.example .env\n\n# Edit configuration file with your preferred editor\ncode .env  # Using VS Code\n```\n\n### Verify Installation\n\n```bash\n# Run tests to ensure everything works\nnpm test\n\n# Check linting\nnpm run lint\n```\n\n### Running the Application\n\n```bash\n# Development mode\nnpm run dev\n\n# Production mode\nnpm start\n\n# Build filter lists\nnpm run build\n```\n\n### Troubleshooting\n\n1. **Clean Installation**\n\n```bash\n# Remove dependencies and cache\nrm -rf node_modules package-lock.json\nnpm cache clean --force\n```\n\n2. **Version Conflicts**\n\n```bash\n# Check Node.js version\nnode --version\n```\n\n3. **Permission Issues**\n\n```bash\n# macOS/Linux\nsudo chown -R $USER:$GROUP ~/.npm\n```\n\n## Live Demo\n\n### Try it Now\n\nVisit our [Live Demo Page](https://greigh.github.io/BlockingMachine) to:\n\n- View real-time filter statistics\n- Test filter effectiveness\n- Check website compatibility\n- Monitor update status\n\n### Quick Test\n\n1. **Add a Test Filter**\n\n```bash\n# AdGuard Home\nhttps://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/filters/adguard-dns.txt\n```\n\n2. **Visit Test Pages**\n\n- [Ad Server Test](https://d3ward.github.io/toolz/adblock.html)\n- [Tracking Test](https://trackertest.org)\n- [Privacy Test](https://privacytests.org)\n\n### Demo Statistics\n\n| Metric | Count |\n|--------|-------|\n| Domains Blocked | 50M+ |\n| False Positives | \u003c0.001% |\n| Update Frequency | Every 24h |\n| Format Support | 4 Types |\n\n### Live Status\n\n[![Update Status](https://img.shields.io/github/actions/workflow/status/Greigh/BlockingMachine/updatefilters.yml?label=Filter%20Updates)](https://github.com/Greigh/BlockingMachine/actions)\n[![Last Update](https://img.shields.io/badge/dynamic/json?color=success\u0026label=Last%20Update\u0026query=$.lastUpdate\u0026url=https://raw.githubusercontent.com/Greigh/BlockingMachine/main/public/stats.json)](https://greigh.github.io/BlockingMachine)\n\n---\n\n## Show Your Support\n\nStar the repo if you find it useful! ⭐\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreigh%2Fblockingmachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreigh%2Fblockingmachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreigh%2Fblockingmachine/lists"}