Giter Club home page Giter Club logo

cloudflare-gateway-pihole's Introduction

CF_logo_stacked_whitetype

English | Việt Nam

Pihole styled, but using Cloudflare Gateway

For Devs, Ops, and everyone who hates Ads.

Create your ad blocklist using Cloudflare Gateway

Credit goes there.


First inspired by IanDesuyo/CloudflareGatewayAdBlock.

Thanks alot to @nhubaotruong for his contributions.

Readme by @minlaxz.

Added dynamic domain filter (whitelist and blacklist) idea (please check ini files, as you may also need to modify those.)

Supported styles


https://raw.githubusercontent.com/bigdargon/hostsVN/master/option/hosts-VN

or

[Hosts-Urls]
hostsVN = https://raw.githubusercontent.com/bigdargon/hostsVN/master/option/hosts-VN

How to set this up?


  1. Fork this repository to your account.

  2. Grab your Cloudflare Account ID (which after https://dash.cloudflare.com/) from ➞ https://dash.cloudflare.com/?to=/:account/workers

  3. Create your API Token from ➞ https://dash.cloudflare.com/profile/api-tokens with 3 permissions

    1. Account.Zero Trust : Edit
    2. Account.Account Firewall Access Rules : Edit
    3. Account.Access: Apps and Policies : Edit
  4. Add Repository Secrets to your forked repository ➞ https://github.com/<username>/<forked-repository>/settings/secrets/actions

    1. Set Cloudflare Account ID to CF_IDENTIFIER
    2. Set API Token to CF_API_TOKEN

Note


Github Actions: it has 2 dependent backup workflows re-run and re-run2 in case if the main workflow fails,

They will retry after 5 minutes one after another only if the main workflow has been failed (not cancelled - if you cancelled the main workflow manually, they will not be triggered anyway).

How to set up using Termux?


  • Download the GOAT Termux

  • Here're commands need to be run one after another to setup python

if you know how to do, you can skip this step.

yes | pkg upgrade
yes | pkg install python-pip
yes | pkg install git
# Clone your forked repo. #
  • Enter folder

cd <your forked name>

  • Edit .env (required)
nano .env

CTRL + X + Y + ENTER to save it

  • Command to upload (update) your DNS list.
python -m src

You may also check this out termux-change-repo in case if you run into trouble setting things up.

Note


  • The limit of Cloudflare Gateway Zero Trust free is 300k domains so remember to pay attention to the workflow logs, if it is exceeded, the script will stop

  • If you have uploaded lists using another script, you should delete them using the delete feature of the uploaded script or delete them manually

  • I have updated the feature to delete lists when you no longer need to use the script. Go to main.py as follows:

async def main():
    adlist_urls = utils.read_urls_from_file("./lists/adlist.ini")
    whitelist_urls = utils.read_urls_from_file("./lists/whitelist.ini")
    adlist_name = "DNS-Filters"
    cloudflaremanager = CloudflareManager(adlist_name, adlist_urls, whitelist_urls)
    await cloudflaremanager.leave()  # Leave script
    # await cloudflaremanager.run()

Note from @minlaxz:

  1. Domain list style: I personally preferred second one in blacklist styles, which has more readablity and concise.
  2. Dynamic domain list: You can also update your dynamic (fluid) whitelist and blacklist using dynamic_blacklist.txt and dynamic_whitelist.txt
  3. Deprected using .env : Setting sensitive information inside a public repository is considered too dangerous use-case, since any unwanted person could easily steal your Cloudflare credentials from that .env file.

🥂🥂 Cheers! 🍻🍻

cloudflare-gateway-pihole's People

Contributors

luxysiv avatar duc2ht avatar nhubaotruong avatar rhoggs-bot-test-account avatar minlaxz 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.