I built a tool that automatically finds gaps in pfBlockerNG blocklists
-
I’ve been running pfSense + pfBlockerNG for a long time in my homelab, and one thing always bothered me:
Even with large blocklists enabled, there were still a lot of missing IPs/domains compared to sources like FireHOL and Hagezi.
So I built a self-hosted tool that:
- Reads your active pfBlockerNG lists directly from pfSense
- Compares them against larger threat/blocklist sources
- Finds only the missing entries ("gaps")
- Generates optimized output files for pfBlockerNG
- Shows recommendations in a simple web UI
The goal was to avoid:
- duplicate entries
- giant overlapping lists
- unnecessary downloads
- manually comparing sources
It uses:
- pfSense
- pfBlockerNG
- GitHub Actions
- Python
- GitHub Pages
Current features:
- Automatic gap detection
- DNSBL + IP support
- Recommendation engine
- Daily automated updates
- Self-hosted web interface
Project:
blocklist-manager
Would love feedback, ideas, or feature suggestions from other pfSense / homelab users. -
@ngf said in I built a tool that automatically finds gaps in pfBlockerNG blocklists:
FireHOL
Why don't you just use firehol in the first place?
And PfBlocker is doingmost of the stuffeverything you proclaim for yourself already... -
@ngf I got a question you said this is self-hosted but still you need gethub token to use it. Which makes me already not trust it as self-hosted.
-
@Bob.Dig The tool doesn't replace FireHOL - it uses it as a comparison source.
I already have ET, Spamhaus, Hagezi etc configured - adding FireHOL on top creates massive duplicates. the tool finds only what's missing and outputs a clean file. same coverage, without the mess. -
@musicwizard Fair point but the token goes directly to GitHub API only to read/write your own config file in your own repo. nothing passes through any server of mine and if you're not comfortable with the UI at all, just edit sources.yaml directly in GitHub the automation works without it.
-
Well Yes but why would i have a the config file online? and not offline/own server. if its only for the config file.
If that is the case i don't understand why you would need github at all? -
@musicwizard GitHub serves two purposes here it hosts the config file and runs the automation (GitHub Actions) that does the daily comparison and generates the output files.
You could self-host everything on your own server, but then you'd need a cron job, Python environment, and a web server.
GitHub Actions gives you all of that for free with zero maintenance.