selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

dmarcguard logo

Self-host dmarcguard

v1.7.2

DMARC aggregate report parser with built-in dashboard

ReleaseOpen SourceApache-2.0
Updated14 hours ago
LanguageGo
Setup difficultyModerate
ThemeDark mode
Stars
223
Ports
8080 (HTTP dashboard and API), 8081 (MCP HTTP server (optional))
Docker
dmarcguard/parse-dmarc
Install with Docker
Parse DMARC dashboard showing pass rate, message volume and top sending sources

What is dmarcguard?

Parse DMARC is a self-hosted tool for processing DMARC aggregate reports. It connects to an IMAP mailbox or reads a local Maildir, extracts gzip, zip, and raw XML attachments, and saves the parsed data into a single SQLite database. A web UI displays pass rates, message volumes, and top sending sources with the ability to inspect individual records. The software also generates DMARC TXT records, exposes 28 Prometheus metrics with a ready-made Grafana dashboard, and runs an MCP server so AI assistants can query the data. It ships as one static Go binary in a minimal container, configured through environment variables or a JSON file. There is no built-in authentication, so the dashboard should sit behind a reverse proxy or VPN. The project is developed by the same team behind the hosted DMARCguard service, but the codebases are separate and Parse DMARC stays fully Apache-2.0 licensed.

Should you self-host dmarcguard?

dmarcguard scores 50/100 on selfhost.directory (how scoring works) and ranks #56 of 106 in Email. It has 223 GitHub stars.

It shipped 18 stable releases in the past year. The latest, v1.7.2, came out on 25 October 2026. New versions land roughly every 8 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Listmonk (80/100, 24 019 stars). It scores higher overall, so compare the two before you pick. See dmarcguard vs Listmonk side by side.

Features

  • DMARC aggregate report parsing
  • DMARC record generator
  • Grafana Dashboard
  • HTTP APINo authentication; keep behind reverse proxy or VPN
  • IMAP and Maildir intake
  • MCP Server
  • Prometheus Metrics
  • SQLite Storage
  • Web Dashboard

dmarcguard README

How to install dmarcguard

Install dmarcguard with Docker

Environment variables
IMAP_HOST, IMAP_PORT, IMAP_USERNAME, IMAP_PASSWORD, IMAP_MAILBOX, IMAP_USE_TLS, IMAP_STARTTLS, IMAP_TLS_CA_FILE, IMAP_TLS_SKIP_VERIFY, IMAP_MARK_AS_SEEN, IMAP_PROCESSED_MAILBOX, MAILDIR_PATH, IMAP_DEADLETTER_BOX, DATABASE_PATH, SERVER_HOST, SERVER_PORT, FETCH_INTERVAL, LOG_LEVEL

docker run -d --name parse-dmarc -p 8080:8080
-e IMAP_HOST=imap.gmail.com
-e IMAP_PORT=993
-e IMAP_USERNAME=dmarc@example.com
-e IMAP_PASSWORD='your-app-password'
-v parse-dmarc:/data
dmarcguard/parse-dmarc

Named volume for database persistence

How to configure dmarcguard

  • DATABASE_PATH~/.parse-dmarc/db.sqlite, /data/parse-dmarc.db in DockerSQLite database file path

    SQLite database file path

  • FETCH_INTERVAL300Seconds between fetch cycles

    Seconds between fetch cycles

  • IMAP_DEADLETTER_BOXDEADLETTERMaildir deadletter mailbox

    Maildir deadletter mailbox

  • IMAP_HOSTIMAP server hostname

    IMAP server hostname

  • IMAP_MAILBOXINBOXMailbox to read reports from

    Mailbox to read reports from

  • IMAP_MARK_AS_SEENtrueMark fetched mail as seen

    Mark fetched mail as seen

    values: true,false

  • IMAP_PASSWORDIMAP password or app password

    IMAP password or app password

  • IMAP_PORT993IMAP server port

    IMAP server port

  • IMAP_PROCESSED_MAILBOXMove processed mail to this mailbox

    Move processed mail to this mailbox

  • IMAP_STARTTLSfalseUse STARTTLS on plaintext port

    Use STARTTLS on plaintext port

    values: true,false

  • IMAP_TLS_CA_FILEInternal CA bundle in PEM format

    Internal CA bundle in PEM format

  • IMAP_TLS_SKIP_VERIFYfalseSkip certificate verification

    Skip certificate verification

    values: true,false

  • IMAP_USERNAMEIMAP username

    IMAP username

  • IMAP_USE_TLStrueUse implicit TLS

    Use implicit TLS

    values: true,false

  • LOG_LEVELinfoLog level

    Log level

  • MAILDIR_PATHMaildir path for local intake instead of IMAP

    Maildir path for local intake instead of IMAP

  • SERVER_HOSTall interfacesHTTP listen host

    HTTP listen host

  • SERVER_PORT8080HTTP listen port

    HTTP listen port

dmarcguard releases & version history

More in Email

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…