OKВсе сервисы работают штатно
InfrawireЛоготип InfrawireДокументация

Установка и защита mailcow на VPS Linux

mailcow: dockerized — полноценный стек для своей почты на сервере: Postfix, Dovecot, Rspamd, опционально ClamAV, веб-админка, SOGo, MariaDB, Redis, Nginx и др., на Docker и Docker Compose.

Зачем mailcow

  • Своя почта для доменов под вашим контролем.
  • Домены, алиасы, квоты из одной панели.
  • Поддерживаемая community-сборка вместо ручной склейки Postfix + Dovecot + антиспам + веб-почта.

Официальные лимиты (соблюдайте)

По Prepare your system:

РесурсМинимум в документации
RAM6 ГиБ + 1 ГиБ swap (по умолчанию)
Диск20 ГиБ минимум (без объёма почтовых ящиков)
CPU1 GHz
Архитектураx86_64 или ARM64

Не поддерживается: OpenVZ, Virtuozzo, LXC, NAS Synology/QNAP. Нужна полная виртуализация (KVM, Hyper-V, ESXi и т.д.), желательно 8+ ГиБ RAM при нескольких пользователях / ActiveSync.

Облегчение: в mailcow.confSKIP_CLAMD=y, SKIP_FTS=y.

Перед установкой убедитесь, что порты 25, 80, 110, 143, 443, 465, 587, 993, 995, 4190 свободны на хосте:

Bash
ss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'

DNS до старта

См. prerequisite-dns:

  1. FQDN сервера, например mail.example.com — это MAILCOW_HOSTNAME.
  2. Записи AAAAA при IPv6) на IP VPS.
  3. MX домена на этот FQDN.
  4. PTR публичного IP должен совпадать с FQDN (часто настраивается у хостера, не в зоне домена).
  5. После установки: SPF (TXT), DKIM (из UI mailcow), DMARC (_dmarc).

Инструменты: MXToolbox, Mail-tester.

Шаг 1 — пакеты (Debian / Ubuntu)

Install — System Packages:

Bash
sudo apt update sudo apt install -y git openssl curl gawk coreutils grep jq

Шаг 2 — Docker Engine и Compose v2

Нужны Docker ≥ 24.0.0 и Compose ≥ 2.0. Рекомендуется актуальный Docker Engine:

Bash
curl -sSL https://get.docker.com/ | CHANNEL=stable sudo sh sudo systemctl enable --now docker

Плагин Compose (docker compose без дефиса):

Bash
sudo apt update sudo apt install -y docker-compose-plugin

Проверка:

Bash
docker --version docker compose version

Шаг 3 — клонирование и конфиг

Официально /opt и umask 0022:

Bash
1sudo su 2umask 0022 3cd /opt 4git clone https://github.com/mailcow/mailcow-dockerized 5cd mailcow-dockerized 6./generate_config.sh

Скрипт спросит FQDN и создаст mailcow.conf.

Bash
nano mailcow.conf

Проверьте MAILCOW_HOSTNAME. С версии 2025-09 можно отключить IPv6, если сеть/хостер некорректно обрабатывает IPv6 Docker:

Bash
ENABLE_IPV6=false

После смены IPv6 нужен полный перезапуск стека. См. Disable IPv6.

Шаг 4 — запуск

Из /opt/mailcow-dockerized:

Bash
docker compose pull docker compose up -d

Админка: https://ВАШ_MAILCOW_HOSTNAME/admin

Учётные данные по умолчанию (смените сразу):

  • Пользователь: admin
  • Пароль: moohoo

Сразу после первого входа

  1. Сменить пароль администратора (не оставлять moohoo).
  2. Включить 2FA: Two-Factor Authentication.
  3. NTP / время — обязательно для TOTP: timedatectl status (NTP synchronized: yes). Date and Time.
  4. HTTPS — штатный доступ mailcow; см. при необходимости HTTP to 443.
  5. DKIM / SPF / DMARC — ключ в UI и записи TXT по prerequisite-dns.

UFW, Docker и фаервол

Документация предупреждает: UFW / firewalld на хосте часто плохо стыкуются с правилами Docker; рекомендуется настраивать цепочку DOCKER-USER. См. материалы mailcow и например unrouted.io — Docker firewall.

На стороне провайдера откройте как минимум входящие TCP: 25, 80, 110, 143, 443, 465, 587, 993, 995, 4190 (если не меняли в mailcow.conf).

Облегчение нагрузки (опционально)

В mailcow.conf:

Bash
SKIP_CLAMD=y SKIP_FTS=y

Затем пересоздание/перезапуск сервисов по документации.

MTU ≠ 1500

При уменьшенном MTU в docker-compose.yml:

YAML
networks: mailcow-network: driver_opts: com.docker.network.driver.mtu: 1450

См. Troubleshooting MTU.

Обновления

Используйте update.sh из репозитория. Бэкапьте volumes Docker и каталог mailcow-dockerized (mailcow.conf, data/).

Сброс пароля админа

Reset Passwords:

Bash
cd /opt/mailcow-dockerized ./helper-scripts/mailcow-reset-admin.sh

Полезные ссылки

На VPS Infrawire заранее проверьте ресурсы и тип виртуализации под требования mailcow.