Documentation

Run DMARC Analyzer yourself.

Everything you need to self-host: a Docker quick start, Kubernetes, the configuration reference, connecting the mailbox your reports arrive in, and day-two operations.

Start here Source on GitHub

What you are running

DMARC Analyzer is one application with two jobs. A polling loop connects outbound to the mailbox your reports arrive in, parses the aggregate XML, and writes the result to PostgreSQL; a web console reads that database and is the part you and your clients look at. Both come out of the same image, so the default deployment is a single container plus a database, and splitting them apart is a decision you can defer until a sync pass is heavy enough to compete with the console for CPU.

None of it needs to face the internet. The application never accepts inbound SMTP and never needs an inbound connection to collect reports, so running it on a private network with no ingress at all is a legitimate choice — the console is the only thing anyone has to reach, and only if you want them to. What gets stored is statistical: sending addresses, message counts and a pass or fail per report, never the contents of anyone's mail.

Three choices shape a deployment — bundled or external PostgreSQL, one container or two, Compose or Kubernetes — and they are independent of each other. Every combination reads the same environment variables, so moving between them is a deployment change rather than a reconfiguration. That is the main reason it is safe to take the defaults now and revisit them once you know how much mail you are actually ingesting.

Getting started

Using the console

Configuration

Operations

Looking for DMARC itself rather than this software? Start with the guides and glossary. Design notes, the roadmap and architecture decisions live in the repository.