explaingit

foxcpp/maddy

5,960GoAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

All-in-one self-hosted mail server that handles sending, receiving, storing, and securing email in a single program and config file, replacing the traditional Postfix + Dovecot + OpenDKIM stack.

Mindmap

mindmap
  root((maddy))
    What it does
      Sends email via SMTP
      Receives incoming mail
      Stores messages
      IMAP access for clients
    Security standards
      DKIM signing
      SPF and DMARC policies
      DANE certificate checks
      MTA-STS enforcement
    Tech stack
      Go language
      Single config file
    Use cases
      Self-hosted email domain
      Replace Postfix Dovecot
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run a complete email server for your own domain on a single VPS without installing multiple separate tools.

USE CASE 2

Replace a Postfix + Dovecot + OpenDKIM setup with one program and one configuration file.

USE CASE 3

Enforce modern email security standards like DKIM signing, SPF, DMARC, and MTA-STS for your domain.

USE CASE 4

Use IMAP from any standard email client like Thunderbird to access mail stored on your server.

Tech stack

GoSMTPIMAPDKIMSPFDMARC

Getting it running

Difficulty · hard Time to first run · 1day+

Requires DNS records for MX, SPF, DKIM, and DMARC plus a public-facing server with port 25 open, cloud providers often block this by default.

In plain English

Maddy is a self-hosted mail server that handles everything a complete email setup requires in a single program. Running your own email server normally means installing and configuring several separate tools: one for sending mail, one for receiving it, one for storing it, and several more for security protocols. Maddy replaces all of them with one daemon and one configuration file. On the sending side, Maddy acts as an SMTP relay that routes outgoing messages to other mail servers. On the receiving side, it accepts incoming messages addressed to your domain. Once messages arrive, it stores them and makes them accessible over IMAP, the protocol that email clients like Thunderbird or Apple Mail use to fetch and organize messages. It also implements the security standards that modern email requires: DKIM for signing outgoing messages so recipients can verify they came from you, SPF and DMARC for publishing policies that protect your domain from spoofing, DANE for certificate validation over DNS, and MTA-STS for encrypted transport enforcement. The project explicitly positions itself as a replacement for the combination of Postfix, Dovecot, OpenDKIM, and related tools, trading their individual complexity for a single composable system with lower maintenance overhead. One important caveat: the IMAP storage component is marked as beta. The README suggests that anyone needing a proven, full-featured IMAP implementation consider using Dovecot for that piece while still using Maddy for message delivery. The project is written in Go. A setup tutorial and full documentation are available at maddy.email, and there is an IRC channel and mailing list for support.

Copy-paste prompts

Prompt 1
I want to run Maddy as my self-hosted mail server on a Linux VPS. Walk me through installing it, writing a minimal config file for my domain, and enabling DKIM signing.
Prompt 2
Show me a Maddy configuration file that accepts incoming email for example.com, stores it with IMAP, and relays outgoing mail with DKIM.
Prompt 3
How do I migrate from a Postfix + Dovecot setup to Maddy while keeping existing mailboxes and MX records intact?
Prompt 4
Explain the Maddy config file structure: what does each top-level block do and how do the pieces connect?
Open on GitHub → Explain another repo

← foxcpp on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.