Mail-in-a-Box and mailcow are the two names that come up first when an IT team decides to run its own mail server on Linux. Both are free, both are open source, and both bundle Postfix and Dovecot into something you can actually install in an afternoon. After that, they go in opposite directions: Mail-in-a-Box takes the whole machine and makes every decision for you, while mailcow runs in Docker containers and gives you a full admin interface with a great many switches.
This comparison uses the projects’ own documentation as checked in September 2026: Mail-in-a-Box v76 (released 24 May 2026) and mailcow: dockerized release 2026-09 (21 September 2026).
The short answer
Choose Mail-in-a-Box if you want a small mail server for a handful of domains, have a spare 1 GB virtual server, and are happy to let the box run DNS for your domain and never touch its configuration. Choose mailcow if you need groupware, per-domain policies, antivirus scanning or ActiveSync-style clients, you already run Docker, and you have a server with at least 6 GB of RAM. If your mail server has to be on Windows, neither applies — look at hMailServer instead.
Mail-in-a-Box vs mailcow at a glance
| Feature | Mail-in-a-Box | mailcow: dockerized |
|---|---|---|
| Current release | v76, 24 May 2026 | 2026-09, 21 September 2026 |
| Licence | Free, public domain (CC0) | Free, open source (GPL v3); paid support available from the developer |
| Developer | Joshua Tauberer and contributors | The Infrastructure Company GmbH and contributors |
| Operating system | Ubuntu 22.04 x64 server only, fresh install | Debian 11–13, Ubuntu 22.04+, Alma Linux 8/9, Rocky Linux 9 (Alpine with manual changes) |
| Architecture | x86-64 | x86-64 and ARM64 |
| Minimum RAM | 512 MB (1 GB recommended) | 6 GB plus 1 GB swap with the default configuration |
| Runs in Docker | No — containers are not supported | Yes — Docker is the only way it runs |
| Webmail | Roundcube | SOGo (webmail, calendars, contacts) |
| Contacts and calendars | Nextcloud | SOGo |
| Spam filtering | SpamAssassin and Postgrey greylisting | Rspamd |
| Antivirus | Not included | ClamAV (can be switched off) |
| DNS | Runs authoritative DNS for your domain and sets SPF, DKIM, DMARC and MTA-STS itself | You create the records at your DNS provider; the UI generates the DKIM key |
| Configurability | “Basically no configuration options” by design | Extensive admin UI: domains, quotas, aliases, 2FA, access controls |
| Upgrades | Run the setup script again | Run ./update.sh in the mailcow folder |
Philosophy: appliance vs toolkit
Mail-in-a-Box is best understood as an appliance. Its guide says it must be installed on a fresh machine dedicated to it, and that you cannot modify the box after installation. In return, it does something no other project does as thoroughly: it becomes the nameserver for your domain and writes every mail-related record for you. The records people most often get wrong — SPF, DKIM, DMARC, MTA-STS — are correct from the first day, and the control panel’s status checks tell you what is still missing, usually reverse DNS.
mailcow is a toolkit that happens to come preassembled. Postfix, Dovecot, SOGo, Rspamd, ClamAV, Nginx, Redis and Unbound each run in their own container, and the web interface lets you manage many domains, mailboxes, aliases, quotas, forced two-factor authentication and per-user limits on ActiveSync and DAV access. It does not touch your DNS at all: the documentation lists A, MX, PTR, SPF, DKIM, DMARC, autodiscover/autoconfig CNAMEs and SRV records that you add yourself.
Requirements: the deciding factor for most people
Mail-in-a-Box requirements are modest on hardware and strict on everything else: Ubuntu 22.04 x64 server edition, at least 512 MB of RAM (1 GB recommended), a registered domain, glue records for ns1 and ns2 on the box’s hostname, reverse DNS set by your cloud provider, and open ports 22, 25, 53 (TCP and UDP), 80, 443, 465, 993, 995 and 4190. The hostname should be a subdomain such as box.example.com, not your main website.
mailcow requirements are heavier on hardware and looser on the platform: a 1 GHz CPU, 6 GB of RAM plus 1 GB of swap, 20 GB of disk before mail storage, and one of the supported distributions on real or fully virtualised hardware (KVM, ESX, Hyper-V). The documentation explicitly rules out NAS devices, OpenVZ, LXC and other container platforms as hosts. If memory is tight, ClamAV and the Flatcurve full-text search engine are the two components it names as the biggest consumers, and both can be disabled.
Docker
This is one of the most searched questions, so it deserves a straight answer. Mail-in-a-Box does not run in Docker; its site states that containers and modified images are not supported. Any Docker image carrying its name is not something the project supports. mailcow is Docker — the full name is mailcow: dockerized, and it is installed and updated through Docker Compose. If your organisation standardises on containers, that settles the choice.
Day-to-day administration
- Updates. Mail-in-a-Box: rerun the setup script on the box. mailcow:
./update.sh, which can also check for updates first and switch between stable and other branches. Both projects ship security fixes for bundled components in most releases, so staying current matters more than with a typical desktop program. - Backups. Mail-in-a-Box makes encrypted backups by itself, locally, over rsync or to S3-compatible storage — keep the encryption key somewhere else. mailcow provides
helper-scripts/backup_and_restore.sh, which backs up mail, keys, Redis, Rspamd, Postfix and the database, and is meant to be run from cron. - Upgrading the operating system. Mail-in-a-Box supports only one Ubuntu release at a time; when the project moves on, you build a new box and restore onto it. mailcow’s list of supported distributions is wider, so the host can be upgraded on its own schedule.
Whichever you pick, a server alone is not an archive. If you also need a searchable copy of mailboxes, our guide to free mail server and archiving tools covers the options; for a single person’s mail on Windows, MailStore Home is free for private use.
How to choose
- Is the server Windows? Then neither — use hMailServer or a commercial Windows server.
- Do you have less than 6 GB of RAM to spare? Mail-in-a-Box fits; mailcow will struggle with default settings.
- Can the mail server be the nameserver for the domain? If your DNS must stay with an existing provider or a corporate DNS team, mailcow’s “you add the records” model is easier to live with.
- Do users need shared calendars, ActiveSync-type clients or antivirus scanning? mailcow.
- Do you want to tune spam rules, relays or policies? mailcow. Mail-in-a-Box will overwrite your edits.
- Do you want the smallest possible amount of ongoing thought? Mail-in-a-Box, on a dedicated machine you never log into except to update.
Neither project can guarantee that large providers accept your mail. Both will get the records right; the rest depends on the reputation of the server’s IP address, which is why neither should be run on a home connection.
For a detailed walkthrough of the appliance route, see our page on Mail-in-a-Box.
FAQ
Mail-in-a-Box or mailcow — which is better?
Neither is better in general. Mail-in-a-Box is simpler and runs on 1 GB of RAM but cannot be configured; mailcow needs about 6 GB of RAM and Docker but offers groupware, antivirus and a full admin interface.
Can Mail-in-a-Box run in Docker?
Not officially. The project says containers and modified images are not supported; it expects a fresh Ubuntu 22.04 x64 machine.
What are the Mail-in-a-Box requirements?
Ubuntu 22.04 x64 server edition on a dedicated machine, at least 512 MB of RAM (1 GB recommended), a domain with glue records, reverse DNS, and the listed ports open.
Is Mail-in-a-Box free?
Yes. It is released under the CC0 public domain dedication, so commercial use is unrestricted.
Is mailcow free for commercial use?
Yes. mailcow is GPL v3 open source. The developer sells optional support contracts, but the software itself has no paid edition you need for business use.
How do I update Mail-in-a-Box?
Log in to the box over SSH and run the setup script again; it upgrades the installation to the current release.


