Stalwart vs Mailcow for Self-Hosted Email: One Rust Server or the Full Docker Suite
Sofia Ferraro
October 16, 2026
Self-hosting email is one of the few homelab projects that experienced administrators still warn people about. The software is not the hard part anymore. The hard part is getting other providers to trust your server, and keeping it running without losing mail. Still, if you have decided to do it, the choice of mail server shapes how much work every month will be.
Two options dominate current discussions. Mailcow is the long-established Docker suite that bundles a dozen proven components into one installation. Stalwart is a newer, all-in-one mail server written in Rust that replaces most of those components with a single program. I spent years running mail for small businesses before running my own, and I have operated both. Here is how they compare in practice.
A suite of components or one program
Mailcow (in its “dockerized” form) is a collection of well-known open-source parts wired together with Docker Compose: Postfix for sending and receiving, Dovecot for mailboxes and IMAP, Rspamd for spam filtering, SOGo for webmail, calendars and contacts, plus a database, cache, web server, optional antivirus and a custom admin interface on top. Each part is mature and widely documented. Mailcow’s job is to configure them consistently and give you one place to manage domains and mailboxes.
Stalwart is a single server that implements the protocols itself: SMTP, IMAP, POP3, JMAP and ManageSieve, with built-in spam filtering, DKIM signing, SPF, DMARC and ARC checks, and a web admin interface. Recent versions have added calendars, contacts and file storage as well. It stores data in an embedded database by default or in Postgres, MySQL or other back ends, with optional object storage for message bodies.
| Stalwart | Mailcow | |
|---|---|---|
| Architecture | One Rust program | Postfix, Dovecot, Rspamd, SOGo and more in Docker |
| Typical memory use | Low, often a few hundred MB | Several GB; antivirus adds more |
| Webmail | Not bundled; add your own | SOGo included |
| Calendars and contacts | Added in recent versions | SOGo, with CalDAV, CardDAV and ActiveSync |
| JMAP | Yes | No |
| Maturity | Young, fast-moving | Many years, large user base |
| Upgrades | Replace one binary or image | Update script pulls many containers |
The server you can afford to run
Resource use is the most visible difference. Mailcow’s documentation recommends several gigabytes of memory, and its antivirus component alone can use a gigabyte or more. Many people turn off antivirus and full-text search to fit it on a smaller VPS, which works but means running a reduced version of what the project tests.
Stalwart typically runs in a few hundred megabytes for a small domain, which makes the smallest VPS plans realistic. Fewer moving parts also means fewer things to monitor: one process, one log, one configuration, instead of a dozen containers that each need to start in the right order.
For a family or a handful of domains, that difference often decides the hosting bill. A VPS with enough memory for Mailcow can cost several times more than one that runs Stalwart comfortably.

Webmail, calendars and the family test
Mailcow includes SOGo, a full webmail with calendars, address books and ActiveSync support for phones. For a household or small office where people expect a webmail login and shared calendars, Mailcow is complete from day one. Users can also connect any IMAP client or phone mail app.
Stalwart does not bundle a classic webmail. Most people pair it with a separate webmail such as Roundcube or SnappyMail, or simply use desktop and phone clients over IMAP. Its JMAP support is a modern protocol that some clients use for faster sync, though most mail apps still speak IMAP. Calendars and contacts are newer in Stalwart, so check how your devices handle them before moving a household’s calendars.
If everyone in your house uses phone and desktop mail apps, Stalwart’s lack of webmail does not matter. If someone insists on a browser login from any computer, plan for a webmail container next to it.
Spam filtering and security
Mailcow uses Rspamd, one of the best open-source spam filters, with sensible defaults, Bayesian learning, greylisting and per-user settings. It is proven against real-world spam at large scale.
Stalwart’s spam filter is built in and borrows many ideas from Rspamd-style rule sets, with scoring, DNS block lists, Bayesian classification and reputation tracking. In my experience it is effective, but it is newer, so expect to tune it more and to read release notes for filter changes.
Both handle DKIM signing, SPF and DMARC checks, TLS certificates through ACME, and two-factor authentication for the admin interface. Stalwart being written in Rust removes whole categories of memory-safety bugs, which is a real security advantage for an internet-facing service, though maturity and configuration matter more in day-to-day risk.
Deliverability does not care which you choose
The hardest part of self-hosted email is identical with both. Your server’s IP address needs a good reputation, a matching reverse DNS record (PTR), correct SPF, DKIM and DMARC records, and a provider that allows outgoing connections on port 25. Many home internet connections and some VPS providers block that port or have poor IP reputations, and large mail providers may still send your mail to spam until your server has a history.
Some people solve this by receiving mail on their own server but sending through a relay service, which trades some independence for reliable delivery. Both Stalwart and Mailcow support relays. A frank look at when hosting your own email is worth it at all is in Fastmail vs hosting your own email, and the DNS pitfalls behind all-in-one stacks are in Mail-in-a-Box vs Stalwart Mail.

Upgrades and backups over the years
Mailcow upgrades through its update script, which pulls new container images and migrates configuration. It is well tested and usually smooth, but it involves many containers and occasionally a manual step noted in the release announcement. Backups use Mailcow’s helper script, which saves mail, databases and configuration.
Stalwart upgrades by replacing one binary or container image. Because it is young and moves fast, configuration formats and storage details have changed between versions, so read the upgrade notes carefully and keep backups before each update. Backing up means saving its data store and configuration; with an external database or object storage, back those up too.
Whichever you choose, test restoring a mailbox at least once. A mail server whose backups you have never restored is a mail server you do not really have.
The first week after install
Whichever server you pick, the first week decides whether self-hosted mail works for you. A checklist I use with both:
- Set the PTR record before sending anything. Ask your VPS provider to point the IP’s reverse DNS at your mail hostname, and make sure that hostname resolves back to the same IP.
- Publish SPF, DKIM and DMARC. Both servers generate the DKIM key and show you the record to publish. Start DMARC with a reporting-only policy, read the reports for a couple of weeks, then tighten it.
- Test with external tools. Send messages to a mail-testing service and to accounts at the large providers, and check the headers to confirm SPF, DKIM and DMARC all pass.
- Warm up gently. Send normal personal mail for a few weeks before anything resembling bulk. New IPs with sudden volume look like spam.
- Watch the queue and logs daily. Mailcow shows the Postfix queue and Rspamd history in its interface; Stalwart shows queued messages and delivery reports in its admin panel. Deferred messages are your early warning.
- Monitor from outside. An external check on ports 25, 465, 587 and 993, plus certificate expiry, catches problems before people tell you their mail bounced.
Do this once properly and the monthly effort drops to reading the occasional DMARC report and applying updates.
Moving between them
Mailboxes move between servers over IMAP with tools such as imapsync, so changing your mind later is possible, if tedious for large mailboxes. Plan the move like any mail migration: lower DNS record lifetimes in advance, copy mail, switch MX records, copy again to catch the last messages, and keep the old server running for a few days.
For those comparing Mailcow with its closest Docker-suite competitor, Mailu, the trade-offs are covered in Mailcow vs Mailu.
Matching the server to the mailbox count
One person or a couple, on a small VPS. Stalwart. Its low memory use, single program and modern design make it the easiest full mail server to keep running on modest hardware. Use your existing mail apps, and add webmail only if you need it.
A household or small office that wants webmail, shared calendars and phone sync out of the box. Mailcow. SOGo, Rspamd and years of community experience make it the most complete self-hosted mail suite available, as long as you give it the memory it needs.
Anyone who wants the most battle-tested components. Mailcow again. Postfix and Dovecot have run a large part of the world’s email for decades, and every problem you hit has been solved in a forum somewhere.
Lighter and newer, or heavier and proven
Stalwart is the most exciting thing to happen to self-hosted email in years: one efficient program, modern protocols and a small footprint. Its youth is the cost, so expect changes and read release notes.
Mailcow is the dependable workhorse: heavier, more complex underneath, but complete and proven. Either way, the server software is the smaller part of the job. Get the DNS, reverse DNS and IP reputation right, test restores, and your mail will work with either.