MailcowMailcow

Free
Open Source
Information

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 timeTimeOSRAMDisk
20–30 minAlmaLinux 9Debian 12Rocky Linux 9Ubuntu 24.044Gb40Gb
  • 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
Information

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.

Note

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.

Screenshot of interfaceScreenshot of interface
Note

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:

Screenshot of interfaceScreenshot of interface
  1. Dashboard: Overview of server status, CPU/memory/disk usage, uptime, and version info.
  2. System & Containers: Monitor and manage all mailcow services running in Docker containers.
  3. Resource graphs: Real-time charts for CPU and memory usage, helping you spot load spikes or issues.
  4. Mail services: See the current status of all essential mailcow components: SMTP, IMAP, webmail, spam filter, antivirus, and more.
  5. Logs & events: Access server and container logs for troubleshooting and monitoring.
  6. GUID & license: Unique server identifier and license status, helps with updates and support.
  7. Server info: Hostname, architecture, time zone, IP check settings, and mailcow version.
  8. Service actions: Start, stop, or restart individual containers and services directly from the dashboard.
Note

Detailed information on the main Mailcow settings can be found in the developer documentation.

Updating Mailcow

Information

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.

Commands for updating Mailcow:
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:

  1. Register your domain zone. The A-record for your domain must point to your server’s IP address.
  2. 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.
  3. After analyzing your domain name, we will make a decision on opening the SMTP ports and notify you.
Attention

Opening SMTP ports may require additional details about your domain name and its intended use.

16 June 2025 г.

Join our channel!

Share ideas, vote for features, and stay updated.