Skip to content

jonzobrist/DMARC-Report-Manager

Repository files navigation

DMARC Report Manager

DMARC Report Manager is a comprehensive toolset for parsing, analyzing, and visualizing DMARC (Domain-based Message Authentication, Reporting, and Conformance) reports. It transforms raw XML/ZIP/GZIP reports into actionable insights, helping you secure your email domain against spoofing.

Features

  • Multi-Format Parsing: Supports XML, GZIP, and ZIP report files.
  • Interactive Dashboard: Visualize DMARC volume, pass/fail rates, and historical trends.
  • Detailed Analysis: Drill down into individual reports to see source IPs, DKIM/SPF results, and failure reasons.
  • Troubleshooting Tool: built-in DNS checker to validate your SPF, DKIM, and DMARC records and suggest fixes.
  • CLI & Web Interface: Use the command line for automation or the Web GUI for visualization.
  • Privacy First: Self-hosted and local-first. No data leaves your machine.

Tech Stack

  • Backend: Python 3.12+ (FastAPI, SQLite, dnspython)
  • Frontend: React (Vite, Recharts, Lucide, Tailwind-free CSS)
  • Package Management: uv (Python) and pnpm (Node.js)

Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • uv (Python package manager)
  • pnpm (Node package manager)

Installation

  1. Clone the repository:

    git clone https://github.com/jonzobrist/DMARC-Report-Manager.git
    cd DMARC-Report-Manager
  2. Setup the Backend:

    # Install dependencies and create virtualenv
    uv sync
  3. Setup the Frontend:

    cd frontend
    pnpm install

Usage

Running the Web Application

  1. Start the Backend API:

    # From project root
    uv run uvicorn backend.web.api:app --reload --port 8000
  2. Start the Frontend Dev Server:

    # From frontend/ directory
    pnpm dev

    Open your browser to http://localhost:5173.

Using the CLI

The project includes a CLI for managing reports directly from the terminal.

# Get help
uv run python -m backend.cli.main --help

# Troubleshoot a domain
uv run python -m backend.cli.main troubleshoot example.com

# Import reports
uv run python -m backend.cli.main import ./path/to/reports/

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

About

DMARC Report Manager view and manage your DMARC reports

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published