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.
- 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.
- Backend: Python 3.12+ (FastAPI, SQLite, dnspython)
- Frontend: React (Vite, Recharts, Lucide, Tailwind-free CSS)
- Package Management:
uv(Python) andpnpm(Node.js)
- Python 3.12+
- Node.js 18+
uv(Python package manager)pnpm(Node package manager)
-
Clone the repository:
git clone https://github.com/jonzobrist/DMARC-Report-Manager.git cd DMARC-Report-Manager -
Setup the Backend:
# Install dependencies and create virtualenv uv sync -
Setup the Frontend:
cd frontend pnpm install
-
Start the Backend API:
# From project root uv run uvicorn backend.web.api:app --reload --port 8000 -
Start the Frontend Dev Server:
# From frontend/ directory pnpm devOpen your browser to
http://localhost:5173.
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/- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.