Giter Site home page Giter Site logo

frogcf / cloudflare-gateway-adblocking Goto Github PK

View Code? Open in Web Editor NEW

This project forked from slashtechno/cloudflare-gateway-adblocking

0.0 0.0 0.0 135 KB

Serverless ad blocking via Cloudflare Zero Trust gateway

Home Page: https://pypi.org/project/cloudflare-gateway-adblocking/

License: MIT License

Python 100.00%

cloudflare-gateway-adblocking's Introduction

Cloudflare Gateway Adblocking

PyPI
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

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.

cloudflare-gateway-adblocking's People

Contributors

deepsource-autofix[bot] avatar deepsource-io[bot] avatar dependabot[bot] avatar frogcf avatar slashtechno avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.