Mailcow
Mailcow is an open-source mail server platform that lets you run a secure, modern email system on your own server. With its intuitive web interface, you can manage mail domains, users, mailboxes, aliases, calendars, and anti-spam features—all in one place. mailcow is ideal for businesses and individuals who want privacy, reliability, and full control over their email.
Core Features
- Modern web interface: manage mail domains, users, and mailboxes with an easy-to-use control panel.
- Anti-spam and antivirus: built-in protection against spam, viruses, and phishing emails.
- Multiple domain support: host unlimited domains, mailboxes, and aliases on one server.
- Calendars and contacts: integrated CalDAV and CardDAV for calendar and contact sync.
- Groupware features: shared mailboxes, global address lists, and collaborative tools.
- Automatic SSL certificates: easy management of secure connections with Let’s Encrypt.
- Backup and restore: built-in backup tools to keep your data safe and easily recoverable.
- Self-hosted and open-source: deploy mailcow on your own server for privacy and total control.
Deployment Features
Installation timeTime | OS | RAM | Disk |
---|---|---|---|
20–30 min | 4Gb | 40Gb |
- Installed software:
Docker CE
Docker Compose
- Used containers:
docker.io/robbertkl/ipv6nat
ghcr.io/mailcow/watchdog
ghcr.io/mailcow/acme
ghcr.io/mailcow/nginx
docker.io/mcuadros/ofelia
ghcr.io/mailcow/rspamd
ghcr.io/mailcow/dovecot
ghcr.io/mailcow/postfix
ghcr.io/mailcow/phpfpm
docker.io/redis
docker.io/mariadb
ghcr.io/mailcow/clamd
ghcr.io/mailcow/dockerapi
ghcr.io/mailcow/unbound
ghcr.io/mailcow/netfilter
ghcr.io/mailcow/olefy
ghcr.io/mailcow/sogo
docker.io/memcached
- Open ports:
80
,443
– Web access (HTTP/HTTPS)25
(SMTP),465
(SMTPS),587
(SMTP Submission)993
(IMAPS),995
(POP3S),143
(IMAP),110
(POP3)4190
– Sieve mail filtering (ManageSieve)
- Files path:
/opt/mailcow-dockerized
If your server has less than 3 GB RAM, the following components will be automatically disabled to ensure stable operation:
- ClamAV — an antivirus scanner for email attachments. It helps protect your mailboxes from malware, but requires a significant amount of RAM and CPU resources.
- Flatcurve (FTS Engine) — enables full-text search in your mailboxes. This feature allows you to quickly search through email contents, but also consumes considerable system memory.
By default, we install the latest stable version of the software from the developer's website or official repositories.
Getting Started After Mailcow Deployment
After completing your payment, you will receive an email at the address provided during registration notifying you that your server is ready. This email will include the IP address of your VPS and login credentials to access the Mailcow web interface:
- Link: https://example.com/admin
- User: admin
- Password: ****** (Sent via email)
To access Mailcow, log in with your administrator account. Enter your username and password on the login page to securely manage and server settings.


The access credentials for your VPS are listed in the "Virtual Servers" section — select your server and click "Instructions." This information is also provided in the email you receive after installation.
Initial Setup
After logging into Mailcow, you’ll see a dashboard with key server stats, resource usage graphs, and a list of active mail services and containers. The side and top menus provide fast access to all email server management tools — everything is grouped for easy navigation and daily administration:


- Dashboard: Overview of server status, CPU/memory/disk usage, uptime, and version info.
- System & Containers: Monitor and manage all mailcow services running in Docker containers.
- Resource graphs: Real-time charts for CPU and memory usage, helping you spot load spikes or issues.
- Mail services: See the current status of all essential mailcow components: SMTP, IMAP, webmail, spam filter, antivirus, and more.
- Logs & events: Access server and container logs for troubleshooting and monitoring.
- GUID & license: Unique server identifier and license status, helps with updates and support.
- Server info: Hostname, architecture, time zone, IP check settings, and mailcow version.
- Service actions: Start, stop, or restart individual containers and services directly from the dashboard.
Detailed information on the main Mailcow settings can be found in the developer documentation.
Updating Mailcow
When a new version of Mailcow is released, you can safely update the container — only the application version will change, while all your settings and data will be preserved. You can learn about new releases on the official website.
cd /opt/mailcow-dockerized
./update.sh
If it needs to, it will ask you how you wish to proceed. Merge errors will be reported. Some minor conflicts will be auto-corrected (in favour of the mailcow-dockerized repository code).
Update options
# Check for updates and show changes
./update.sh --check
# Do not start mailcow after applying an update
./update.sh --skip-start
# Skip ICMP Check to public DNS resolvers (use if you've blocked any ICMP connections to your mailcow machine)
./update.sh --skip-ping-check
# Switch your mailcow updates to the unstable (nightly) branch.
./update.sh --nightly
# Switch your mailcow updates to the stable (master) branch. Default unless you changed it with --nightly.
./update.sh --stable
# Switch your mailcow updates to the legacy branch.
./update.sh --legacy
# Force update (unattended, but unsupported, use at your own risk)
./update.sh --force
# Run garbage collector to cleanup old image tags and exit
./update.sh --gc
# Update with merge strategy option "ours" instead of "theirs". Will solve conflicts in favor of your local changes (should be avoided).
./update.sh --ours
# Don't update, but prefetch images and exit
./update.sh --prefetch
Opening SMTP Ports
For security reasons, outgoing TCP ports (25
, 465
, and 587
) are blocked by default on all VPS servers. This measure aims to prevent spam distribution. To lift the block, follow these steps:
- Register your domain zone. The A-record for your domain must point to your server’s IP address.
- Submit a request to technical support specifying that you need to open outgoing SMTP ports for sending email and the domain (or subdomain) from which it will be sent.
- After analyzing your domain name, we will make a decision on opening the SMTP ports and notify you.
Opening SMTP ports may require additional details about your domain name and its intended use.