cloudflare-gateway-adblocking


Namecloudflare-gateway-adblocking JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/slashtechno/cloudflare-gateway-adblocking
SummaryServerless adblocking via Cloudflare Zero Trust Gateway
upload_time2024-05-12 21:21:32
maintainerNone
docs_urlNone
authorslastechno
requires_python<4.0,>=3.10
licenseMIT
keywords cloudflare dns adblocking serverless
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cloudflare Gateway Adblocking  
![PyPI](https://img.shields.io/pypi/v/cloudflare-gateway-adblocking?style=for-the-badge&logo=python&link=https%3A%2F%2Fpypi.org%2Fproject%2Fcloudflare-gateway-adblocking%2F)    
Serverless adblocking via Cloudflare Zero Trust Gateway  

### What is this?  
This is a serverless adblocking solution that uses Cloudflare's Zero Trust Gateway to block ads by parsing a hosts file and creating a firewall rule to block the domains. It can be used as an alternative to Pi-Hole or other adblocking solutions.  
This project was heavily inspired by [this blog post](https://blog.marcolancini.it/2022/blog-serverless-ad-blocking-with-cloudflare-gateway/)  


### Prerequisites
* Python > 3.10  
* A Cloudflare account with Zero Trust enabled  
* A Cloudflare API tolken with the following permissions:  
    * Zero Trust: Edit  
    * Account Firewall Access Rules: Edit  
    * Access: Apps and Policies: Edit  
* A device with the WARP client installed and configured to use a Zero Trust account  


### Installation  
#### From PyPi  
`pip install cloudflare-gateway-adblocking`  


### Usage   
#### Setting Cloudflare credentials  
##### Environment variables  
The following environment variables can be used to set the Cloudflare credentials:  
* `CLOUDFLARE_ACCOUNT_ID`
* `CLOUDFLARE_TOKEN`  
These can either be set in the environment or in a `.env` file in the current working directory.  
#### Command line flags  
The following command line flags can be used to set the Cloudflare credentials:
* Cloudflare Account ID: `--account-id` / `-a`  
* Cloudflare Token: `--token` / `-t`  
#### Passing blocklists  
Blocklists can be passed to the program via the command line flag `--blocklist` / `-b`. This flag can either point to a hosts file or a directory containing hosts files. If this flag is not passed, the program will look for a file or directory named `blocklists` in the current working directory.  
#### Passing whitelists  
Whitelists can be passed to the program via the command line flag `--whitelist` / `-w`. This flag can either point to a hosts file or a directory containing hosts files. If this flag is not passed, then if a file or directory named `whitelists` exists in the current working directory, it will be used. Domains in this whitelist will be excluded from the blocklists.  
#### Uploading blocklists and creating a firewall policy
To upload the blocklists to Cloudflare and create a firewall policy, use the `upload` subcommand.  
For example:  
`cloudflare-gateway-adblocking upload`  
#### Deleting blocklists and firewall policy  
To delete the blocklists from Cloudflare and delete the firewall policy, use the `delete` subcommand.  
For example:  
`cloudflare-gateway-adblocking delete`  
### Help  
For help, use the `--help` flag.  
### Contributing  
* [Sponsoring](https://github.com/sponsors/slashtechno) via GitHub
* Contributing code via a pull request
* Reporting encoutered issues


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/slashtechno/cloudflare-gateway-adblocking",
    "name": "cloudflare-gateway-adblocking",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "cloudflare, dns, adblocking, serverless",
    "author": "slastechno",
    "author_email": "77907286+slashtechno@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/ad/ab/afb97fea3e654ff3af79b6ba85c6a3281c508503f9b413e2281d9e4cd1b2/cloudflare_gateway_adblocking-0.1.4.tar.gz",
    "platform": null,
    "description": "# Cloudflare Gateway Adblocking  \n![PyPI](https://img.shields.io/pypi/v/cloudflare-gateway-adblocking?style=for-the-badge&logo=python&link=https%3A%2F%2Fpypi.org%2Fproject%2Fcloudflare-gateway-adblocking%2F)    \nServerless adblocking via Cloudflare Zero Trust Gateway  \n\n### What is this?  \nThis is a serverless adblocking solution that uses Cloudflare's Zero Trust Gateway to block ads by parsing a hosts file and creating a firewall rule to block the domains. It can be used as an alternative to Pi-Hole or other adblocking solutions.  \nThis project was heavily inspired by [this blog post](https://blog.marcolancini.it/2022/blog-serverless-ad-blocking-with-cloudflare-gateway/)  \n\n\n### Prerequisites\n* Python > 3.10  \n* A Cloudflare account with Zero Trust enabled  \n* A Cloudflare API tolken with the following permissions:  \n    * Zero Trust: Edit  \n    * Account Firewall Access Rules: Edit  \n    * Access: Apps and Policies: Edit  \n* A device with the WARP client installed and configured to use a Zero Trust account  \n\n\n### Installation  \n#### From PyPi  \n`pip install cloudflare-gateway-adblocking`  \n\n\n### Usage   \n#### Setting Cloudflare credentials  \n##### Environment variables  \nThe following environment variables can be used to set the Cloudflare credentials:  \n* `CLOUDFLARE_ACCOUNT_ID`\n* `CLOUDFLARE_TOKEN`  \nThese can either be set in the environment or in a `.env` file in the current working directory.  \n#### Command line flags  \nThe following command line flags can be used to set the Cloudflare credentials:\n* Cloudflare Account ID: `--account-id` / `-a`  \n* Cloudflare Token: `--token` / `-t`  \n#### Passing blocklists  \nBlocklists can be passed to the program via the command line flag `--blocklist` / `-b`. This flag can either point to a hosts file or a directory containing hosts files. If this flag is not passed, the program will look for a file or directory named `blocklists` in the current working directory.  \n#### Passing whitelists  \nWhitelists can be passed to the program via the command line flag `--whitelist` / `-w`. This flag can either point to a hosts file or a directory containing hosts files. If this flag is not passed, then if a file or directory named `whitelists` exists in the current working directory, it will be used. Domains in this whitelist will be excluded from the blocklists.  \n#### Uploading blocklists and creating a firewall policy\nTo upload the blocklists to Cloudflare and create a firewall policy, use the `upload` subcommand.  \nFor example:  \n`cloudflare-gateway-adblocking upload`  \n#### Deleting blocklists and firewall policy  \nTo delete the blocklists from Cloudflare and delete the firewall policy, use the `delete` subcommand.  \nFor example:  \n`cloudflare-gateway-adblocking delete`  \n### Help  \nFor help, use the `--help` flag.  \n### Contributing  \n* [Sponsoring](https://github.com/sponsors/slashtechno) via GitHub\n* Contributing code via a pull request\n* Reporting encoutered issues\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Serverless adblocking via Cloudflare Zero Trust Gateway",
    "version": "0.1.4",
    "project_urls": {
        "Homepage": "https://github.com/slashtechno/cloudflare-gateway-adblocking",
        "Repository": "https://github.com/slashtechno/cloudflare-gateway-adblocking"
    },
    "split_keywords": [
        "cloudflare",
        " dns",
        " adblocking",
        " serverless"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a544e209c2311c3748abe78a3b946fd93c12e7aa4b2ca5d464526e9f390c5ff6",
                "md5": "697689bad31d1992f50c96534adf9cf5",
                "sha256": "cfef4c83fa0ec26a12f1860c020b1ffc108119177a63449df90b8cd9b8b1469c"
            },
            "downloads": -1,
            "filename": "cloudflare_gateway_adblocking-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "697689bad31d1992f50c96534adf9cf5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 9361,
            "upload_time": "2024-05-12T21:21:31",
            "upload_time_iso_8601": "2024-05-12T21:21:31.940782Z",
            "url": "https://files.pythonhosted.org/packages/a5/44/e209c2311c3748abe78a3b946fd93c12e7aa4b2ca5d464526e9f390c5ff6/cloudflare_gateway_adblocking-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adabafb97fea3e654ff3af79b6ba85c6a3281c508503f9b413e2281d9e4cd1b2",
                "md5": "653a82119d4e69bf5301c6402d8f8065",
                "sha256": "3569d902bff63677b00b70faa169c4978d8fed7fd833d5d1c567f74c7d57c1dc"
            },
            "downloads": -1,
            "filename": "cloudflare_gateway_adblocking-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "653a82119d4e69bf5301c6402d8f8065",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 7649,
            "upload_time": "2024-05-12T21:21:32",
            "upload_time_iso_8601": "2024-05-12T21:21:32.932694Z",
            "url": "https://files.pythonhosted.org/packages/ad/ab/afb97fea3e654ff3af79b6ba85c6a3281c508503f9b413e2281d9e4cd1b2/cloudflare_gateway_adblocking-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-12 21:21:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "slashtechno",
    "github_project": "cloudflare-gateway-adblocking",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cloudflare-gateway-adblocking"
}
        
Elapsed time: 3.69387s