DMARCaroni is free and open source software to do DMARC monitoring
Find a file
2026-06-12 18:56:46 +02:00
dist Remove '/dist' from links 2026-03-30 22:54:09 +02:00
docs/assets/images/sponsors
LICENSES
src Start work on Timeline module and DKIM Selectors graph 2026-06-12 18:56:46 +02:00
CHANGELOG.md
elm-watch.json
elm-watch.json.license
elm.json Improve LineChart + ManagementSummary 2025-12-19 18:18:35 +01:00
elm.json.license
README.md Change 'server' to 'engine' 2026-04-09 16:50:43 +02:00
shell.nix

DMARCaroni

Email dates back over fifty years, but it is still one of the most widely used internet technologies. It is used for many official types of communication, but also for example for mission critical functions like resetting passwords, activating accounts and sending invoices.

Email is on the inside of our processes and our behavioural patterns. After a period where many organisations were outsourcing their critical email infrastructure as if it didn't matter, in recent times there is a renewed interest in running such core infrastructure in-house. This makes a lot of sense, because involving a third party email provider implicitly means sharing a flood of (often sensitive) information about ones customers, business partners, investors, staff (and their relatives), students, citizens etc.

From a security, commercial, societal and privacy perspective it isn't just the confidentiality of emails themselves we should be concerned about. On top of the traditional email stack meanwhile another layer of infrastucture has been put in place to combat spam, phishing and spoofing of email. This layer levers standards like SPF, DKIM and DMARC - standards set by the Internet Engineering Task Force.

What was lacking until now was reliable free and open source software to properly manage the resulting information flows. This is what DMARCaroni delivers: a set of tools for processing DMARC reports and turning the wealth of information into actionable overviews and reports. DMARCaroni is written in Haskell, Rust and Elm. This repository concerns the Elm client, there is also a engine component.

DMARCaroni logo

Build the DMARCaroni Elm Client

Compile from source files

Download the tarball or ZIP file containing this repository, or for more flexibility clone the repository containing all the source files.

$ git clone https://git.disroot.org/lnrs/dmarcaroni-client

Or if you have an account on this server:

$ git clone git@git.disroot.org:lnrs/dmarcaroni-client

Then install Elm for your platform, or (when using Nix) conveniently type:

$ nix-shell

Once Elm is installed we can compile to JavaScript:

$ elm make --output="dist/main.js" src/Main.elm

Or if you want to work yourself with the Elm code, run both elm-watch and elm reactor in two separate shells:

$ npx elm-watch hot
$ elm reactor --port=8002

Run DMARCaroni Elm Client

The client depends on data produced by the DMARCaroni Haskell Server. If you haven't done so already, configure and run the engine. Then open the index.html file in your browser to analyze your aggregated DMARC data.

Sponsors

The ongoing development of DMARCaroni is made possible with the support of its backers. If you'd like to help, please get in touch.

DMARCaroni would especially like to acknowledge the generous support from SIDN Fonds, ProcoliX and Vietsch Foundation.

SIDN Fonds ProcoliX Vietsch Foundation