{"id":15148430,"url":"https://github.com/serverless-dns/blocklists","last_synced_at":"2025-04-05T12:05:42.907Z","repository":{"id":38463364,"uuid":"384383299","full_name":"serverless-dns/blocklists","owner":"serverless-dns","description":"An opinionated collection of blocklists for RethinkDNS.","archived":false,"fork":false,"pushed_at":"2024-09-30T21:13:40.000Z","size":420,"stargazers_count":93,"open_issues_count":32,"forks_count":25,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T11:10:01.618Z","etag":null,"topics":["adblock","ads","blocklists","doh","hostfile","pi-hole","privacy","trackers"],"latest_commit_sha":null,"homepage":"https://rethinkdns.com/configure","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serverless-dns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2021-07-09T09:11:09.000Z","updated_at":"2025-03-25T02:48:57.000Z","dependencies_parsed_at":"2024-09-21T20:00:29.670Z","dependency_job_id":"50bdec46-6fb7-44d9-9d1a-ff1e286b9d54","html_url":"https://github.com/serverless-dns/blocklists","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverless-dns%2Fblocklists","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverless-dns%2Fblocklists/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverless-dns%2Fblocklists/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverless-dns%2Fblocklists/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serverless-dns","download_url":"https://codeload.github.com/serverless-dns/blocklists/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332604,"owners_count":20921853,"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","ads","blocklists","doh","hostfile","pi-hole","privacy","trackers"],"created_at":"2024-09-26T13:03:45.337Z","updated_at":"2025-04-05T12:05:42.887Z","avatar_url":"https://github.com/serverless-dns.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A collection of DNS blocklists used by [rethinkdns/configure](https://rethinkdns.com/configure) for use with any DNS over HTTPS or DNS over TLS client, like the [RethinkDNS + Firewall](https://github.com/celzero/rethink-app/) app for Android. As of Dec 2022, 194 blocklists are ingested with ~13.5 million domain names.\n\n### Adding a new blocklist\nFork and edit [config.json](https://github.dev/serverless-dns/rethink-blocklist-metadata/blob/main/config.json). Then, add a new entry (if not already present) at the **bottom** of the json file, as its *last* entry:\n\n```json\n    {\n      \"vname\": \"Combined Privacy Block Lists: Light (bongochong)\",\n\n      \"group\": \"Privacy\",\n      \"subg\": \"CPBL\",\n\n      \"format\": \"wildcard\",\n      \"url\": \"https://raw.githubusercontent.com/bongochong/CombinedPrivacyBlockLists/master/MiniLists/NoFormatting/mini-cpbl-wildcard-blacklist.txt\",\n\n      \"pack\": [\"liteprivacy\", \"recommended\"],\n      \"level\": [0, 0]\n    }\n```\nwhere,\n1. Name\n    1. `vname`\n        - a string, human-readable name of the blocklist.\n        - may be empty, but preferably not.\n2. Qualifiers\n    1. `group`\n        - a non-empty string, buckets blocklists into a group.\n        - current in-use groups are: `Privacy`, `Security`, `ParentalControl`.\n    2. `subg`\n        - a string, usually the blocklist project itself (like `1Hosts`, `RPi`, `StevenBlack` etc).\n        - may be empty.\n3. Files\n    1. `format`\n        - a non-empty string or a list of strings, identifies the file-format of blocklists (as defined in the `url` field).\n        - supported file-formats: [`domains`](https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt),\n          [`hosts`](https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/gambling-hosts),\n          [`abp`](https://stanev.org/abp/adblock_bg.txt),\n          [`wildcards`](https://raw.githubusercontent.com/bongochong/CombinedPrivacyBlockLists/master/MiniLists/NoFormatting/mini-cpbl-wildcard-blacklist.txt).\n    2. `url`\n        - a non-empty string or a list of strings, points to urls where the blocklists exists.\n        - should be a well-formed http url; example: `https://fanboy.co.nz/r/fanboy-ultimate.txt`,\n          or a list of well-formed http urls `[\"https://url1...\", \"https://url2...\"]`.\n4. Characteristics\n    1. `pack`\n        - an array of strings, tags the blocklists into an overarching category.\n        - some of the categories are `spam`, `spyware`, `malware`, `scams \u0026 phishing`, `adult`, `drugs`, `gambling`,\n          `social-media`, `smart-tv`, `games`, `shopping`, `dating`, `vanity`, `facebook`, `google`, `amazon`,\n          `vpn \u0026 proxies`, `url-shorteners`, `privacy` etc.\n        - may be empty.\n    2. `level`\n        - an array of numbers, one per pack.\n        - denotes an arbitrary calibration of the severity of the blocklist for a given pack, that is (`0` for\n          *lite*, `1` for *aggressive*, `2` for *extreme*); for example, `NSO + others (Amnesty)` blocklist\n          for `Security` is `2` (*extreme*) on `spyware` blocks, but `0` (*lite*) on  `privacy` blocks.\n        - empty only if `pack` is empty.\n\nSubmit a pull-request of your changes to have it considered for an inclusion in the *default* Rethink DNS implementation of both [the client](https://rethinkfirewall.com/) and [the resolver](https://rethinkdns.com/).\n\n### Developing\nIf you're a developer looking to experiment with the code-base or generate your own compressed blocklist:\n\n1. Download blocklists.\n    ```python\n    # parses `config.json` and downloads blocklists in to 'blocklistfiles' dir\n    pip3 install aiohttp\n    python3 download.py\n    ```\n2. Build a compressed, succinct radix-trie of all domains in downloaded blocklists.\n    ```shell\n    # parses downloaded files in the ./blocklistfiles directory to create\n    # a compressed, compact radix-trie and related files in the ./result directory.\n    node --max-old-space-size=16384 ./src/build.js\n    ```\n3. Upload the radix-trie and associated files to S3 / R2.\n    ```shell\n    # set aws environment variables for ubuntu/mac, like so:\n    export AWS_ACCESS_KEY = \"access-key\"\n    export AWS_SECRET_ACCESS_KEY = \"secret-key\"\n    export AWS_BUCKET_NAME = \"bucket-name\"\n    npm i\n    # uploads files in the 'result' dir to S3 / R2.\n    node ./src/upload.js\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverless-dns%2Fblocklists","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserverless-dns%2Fblocklists","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverless-dns%2Fblocklists/lists"}