A self-hosted mail server, webmail client and email tracking in one Docker Compose stack. SMTP, IMAP, JMAP, DKIM, SPF and DMARC, with open and click telemetry — a privacy-first Gmail alternative you own end to end.
Running your own mail is supposed to be the hard problem nobody should attempt. In practice the hard part is not SMTP, it is assembling a server, a webmail client, deliverability records and tracking from five separate projects that were never meant to work together.
Stalwart v0.16 handles the mail protocols — SMTP, IMAP, JMAP, submission and Sieve. A Next.js 15 webmail client sits alongside it, and the whole thing comes up from one Docker Compose file with DKIM, SPF and DMARC configured rather than left as an exercise.
A webmail client that signs in with the same credentials as any IMAP or SMTP client, with no credentials stored in the browser. Delivery telemetry for opens and clicks, signed outbound webhooks, and an optional AI assistant that can be left switched off.
One Compose stack: the mail server on ports 25, 465, 587 and 993, the web client behind Apache with TLS. Backups and DNS records documented as part of the setup rather than discovered later.
MIT licensed and open source, currently at v1.1.0, running as my own production mail on this server.