mirror of
https://github.com/Nezumi-2711/cloudflare-gateway-pihole-scripts.git
synced 2026-09-22 20:01:04 +00:00
GitHub Actions filter list updater
This commit is contained in:
@@ -42,4 +42,13 @@ Cloudflare Gateway allows you to create custom rules to filter HTTP, DNS, and ne
|
||||
|
||||
This project can be run in GitHub Actions so your filter lists will be automatically updated and pushed to Cloudflare Gateway.
|
||||
|
||||
[work in progress]
|
||||
1. Create a new empty, private repository. Forking or public repositories are not recommended - although the script never leaks your API keys and GitHub Actions secrets are automatically redacted from the logs, it's better to be safe than sorry.
|
||||
2. Create the following GitHub Actions secrets in your repository settings:
|
||||
|
||||
- `CLOUDFLARE_API_KEY`: Your Cloudflare API key
|
||||
- `CLOUDFLARE_ACCOUNT_ID`: Your Cloudflare account ID
|
||||
- `CLOUDFLARE_ACCOUNT_EMAIL`: Your Cloudflare account email
|
||||
- `CLOUDFLARE_LIST_ITEM_LIMIT`: The maximum number of items allowed in a list. Use 300000 for the free plan or if you're unsure.
|
||||
|
||||
3. Create a new file in the repository named `.github/workflows/main.yml` with the contents of `auto_update_github_action.yml` found in this repository. The default settings will update your filters every week at 3 AM UTC. You can change this by editing the `schedule` property.
|
||||
4. Enable GitHub Actions in your repository settings.
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
name: Update Filter Lists
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 3 * * 1'
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
cgps:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Clone repository
|
||||
run: git clone https://github.com/mrrfv/cloudflare-gateway-pihole-scripts.git
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm ci
|
||||
working-directory: cloudflare-gateway-pihole-scripts
|
||||
|
||||
- name: Download recommended filters
|
||||
run: bash ./get_recommended_filters.sh
|
||||
working-directory: cloudflare-gateway-pihole-scripts
|
||||
|
||||
- name: Delete old rules and lists
|
||||
run: |
|
||||
node cf_gateway_rule_delete.js
|
||||
node cf_list_delete.js
|
||||
working-directory: cloudflare-gateway-pihole-scripts
|
||||
env:
|
||||
CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
|
||||
CLOUDFLARE_ACCOUNT_EMAIL: ${{ secrets.CLOUDFLARE_ACCOUNT_EMAIL }}
|
||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||
CLOUDFLARE_LIST_ITEM_LIMIT: ${{ secrets.CLOUDFLARE_LIST_ITEM_LIMIT }}
|
||||
|
||||
- name: Create new rules and lists
|
||||
run: |
|
||||
node cf_list_create.js
|
||||
node cf_gateway_rule_create.js
|
||||
working-directory: cloudflare-gateway-pihole-scripts
|
||||
env:
|
||||
CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
|
||||
CLOUDFLARE_ACCOUNT_EMAIL: ${{ secrets.CLOUDFLARE_ACCOUNT_EMAIL }}
|
||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||
CLOUDFLARE_LIST_ITEM_LIMIT: ${{ secrets.CLOUDFLARE_LIST_ITEM_LIMIT }}
|
||||
Reference in New Issue
Block a user