{"repo":"smck83/expurgate-solo","free":true,"listed":false,"github":"https://github.com/smck83/expurgate-solo","clone":"git clone https://github.com/smck83/expurgate-solo.git","description":"A single self-hosted dockerized SPF solution built on rbldnsd to simplify, hide and exceed limits with SPF records.","language":"Python","stars":12,"topics":[],"license":"GPL-3.0","category":"self-hosted-apps","readme_excerpt":"A single-container, self-hosted SPF flattening solution. Expurgate Solo combines the resolver and DNS server into one Docker image — simpler to deploy, with a built-in supervisord web interface for process management. - 🌐 Don't want to self-host? Try spf.guru - 🐳 Want separate containers? See Expurgate (multi-container) For full background on how SPF flattening works, see the Expurgate README. --- Table of Contents - How It Works - Quick Start - Run with Docker - Amazon Lightsail - DNS Setup - Supervisord Web Interface - Environment Variables - Video Tutorial --- How It Works Expurgate Solo runs two processes in a single container via supervisord: Process Role --- --- expurgate-resolver Reads your source SPF record from a private subdomain, resolves all hostnames to IPs, and writes an rbldnsd config file. Reruns every DELAY seconds. rbldnsd DNS server that answers SPF macro queries using the generated config. Listens on UDP/53. Your public SPF record is replaced with a macro: When a receiving mail server evaluates this, it queries your Expurgate Solo instance directly — which responds with just the relevant IP, not your full vendor list. --- Quick Start Step 1 — Copy your SPF record to a private subdomain Pick an obscure subdomain prefix (e.g. sd6sdyfn ) and publish your existing SPF record there. This becomes the source of truth that Expurgate reads from: Step 2 — Create DNS records pointing to your instance Step 3 — Run the container Run with Docker Open UDP port 53 on yo","default_branch":null,"files":null,"tree":[],"storefront":"/r/smck83","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/smck83/expurgate-solo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}