Mailcow vs Stalwart vs Mailu at 10,000 Mailboxes: What Holds Up in Production
Description and use
Stalwart Community Edition handled 10,000 mailboxes with JMAP, clustering, and external storage, while Mailcow and Mailu lack production‑scale multi‑node support without commercial licenses.
Problem
Migrating a university email system to 10,000 mailboxes while ensuring scalability, high availability, and manageable provisioning.
Outcome
Stalwart Community edition successfully handled 10,000 mailboxes with JMAP, clustering, and external storage, while mailcow and Mailu lacked production‑scale multi‑node support or required commercial licenses for advanced features.
Workflow
- 1. Choose Stalwart Community edition for its Rust binary and JMAP support.
- 2. Configure a PostgreSQL database for metadata and a MinIO S3‑compatible store for message blobs.
- 3. Replace IceWarp’s LDAP/AD directory with Stalwart’s domain configuration via the web admin or API.
- 4. Migrate mail using imapsync, calendars and contacts via a custom script, and files via CalDAV/CardDAV/WebDAV copy.
- 5. Set up NATS as the message bus for clustering, HAProxy as a front‑end, and replicate PostgreSQL and MinIO for HA.
- 6. Test per‑user send‑rate limits (not available in Community) by implementing limits in the webmail layer and reverse proxy.
- 7. Validate high availability by simulating node failure and ensuring failover to standby nodes.
Evidence
We run Stalwart for a university with 10,000 mailboxes
Stalwart is a single binary written in Rust that speaks every mail and groupware protocol itself
We keep metadata and settings in PostgreSQL and message blobs in S3-compatible object storage (MinIO)
Version 0.16 changed the configuration model. There's no big config.toml anymore
We wanted a server-side send rate limit per user, so a compromised account talking raw SMTP couldn't blast out mail
Stalwart's Community clustering runs several independent nodes on the same shared stores, coordinated through a message bus
- Record date: 2026-10-14T22:41:12.465Z