bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Установка Mailcow на VPS: Полный гид по self-hosted почте с Docker и Let's Encrypt

calendar_month Jun 01, 2026 schedule 20 мин. чтения visibility 33 просмотров
Установка Mailcow на VPS: Полный гид по self-hosted почте с Docker и Let's Encrypt
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Установка Mailcow на VPS: Полный гид по self-hosted почте с Docker и Let's Encrypt

TL;DR

В этом подробном руководстве мы шаг за шагом настроим полноценный почтовый сервер Mailcow на вашем Virtual Private Server (VPS), используя Docker и автоматически генерируемые SSL-сертификаты от Let's Encrypt. Вы получите полный контроль над своей электронной почтой, обеспечивая приватность, надежность и гибкость, что идеально подходит для разработчиков, соло-фаундеров и компаний, стремящихся к независимости от сторонних почтовых провайдеров.

  • Настройка Mailcow на VPS позволяет создать собственный почтовый сервис с полным контролем над данными.
  • Использование Docker упрощает развертывание, изоляцию и обновление всех компонентов Mailcow.
  • Автоматическая интеграция Let's Encrypt обеспечивает бесплатные и актуальные SSL/TLS сертификаты для защиты трафика.
  • Гид охватывает все этапы: от выбора VPS и базовой настройки сервера до установки Mailcow, конфигурации DNS, резервного копирования и устранения типичных проблем.
  • Вы получите полностью функциональный почтовый сервер, включающий веб-интерфейс, антиспам, антивирус и поддержку современных протоколов.
  • Все команды и настройки актуальны на 2026 год и предназначены для немедленного выполнения.

Что мы настраиваем и зачем

Схема: Что мы настраиваем и зачем
Схема: Что мы настраиваем и зачем

В этом руководстве мы будем устанавливать и настраивать Mailcow, комплексное решение для создания собственного почтового сервера. Mailcow — это мощный, полностью контейнеризированный (на базе Docker) почтовый сервис, который предоставляет все необходимые компоненты для работы с электронной почтой: SMTP, IMAP/POP3, веб-интерфейс (SOGo), антиспам (Rspamd), антивирус (ClamAV), календарь, контакты, а также интеграцию с Let's Encrypt для автоматической выдачи SSL/TLS сертификатов.

Задача состоит в том, чтобы развернуть Mailcow на вашем собственном VPS или выделенном сервере, что даст вам полный контроль над вашей почтовой инфраструктурой. В итоге вы получите надежный и безопасный почтовый сервер, который сможет обслуживать домены и пользователей по вашему выбору. Вы сможете создавать почтовые ящики, управлять алиасами, настраивать правила фильтрации спама и быть уверенными в конфиденциальности ваших данных, поскольку они будут храниться на вашем собственном оборудовании, а не у стороннего провайдера.

Почему self-hosted почта на VPS, а не облачные сервисы?

Существует множество альтернатив self-hosted почте, таких как Gmail, Outlook 365, ProtonMail или Yandex.Mail для домена. Они предлагают удобство и простоту в использовании, но имеют свои недостатки:

  • Контроль данных: При использовании облачных сервисов ваши данные хранятся на серверах третьих лиц, что может вызывать вопросы конфиденциальности и безопасности. Self-hosted решение дает вам полный контроль над тем, где и как хранятся ваши электронные письма.
  • Гибкость и кастомизация: Облачные сервисы предлагают ограниченные возможности настройки. Mailcow, будучи развернутым на вашем сервере, позволяет тонко настраивать все аспекты работы почты, от правил фильтрации до интеграции с другими системами.
  • Стоимость в долгосрочной перспективе: Для больших команд или множества почтовых ящиков стоимость облачных почтовых сервисов может значительно возрастать. Собственный сервер, при правильной настройке, может быть более экономически выгодным решением.
  • Независимость: Вы не зависите от политики, сбоев или изменений в работе сторонних провайдеров. Ваш почтовый сервер будет работать так, как вы его настроили.

Этот гид идеально подходит для тех, кто ценит приватность, хочет полный контроль над своей инфраструктурой или имеет специфические требования, которые не могут быть удовлетворены стандартными облачными предложениями. Разработчики могут поднять почту для своих проектов, стартаперы — для командной коммуникации, а криптоэнтузиасты — для обеспечения приватности.

Какой VPS-конфиг нужен под эту задачу

Схема: Какой VPS-конфиг нужен под эту задачу
Схема: Какой VPS-конфиг нужен под эту задачу

Для успешного и стабильного развертывания Mailcow критически важно выбрать подходящий VPS или выделенный сервер. Mailcow, хотя и оптимизирован для работы в контейнерах, является достаточно ресурсоемким приложением из-за множества включенных компонентов (база данных, веб-сервер, антиспам, антивирус и т.д.).

Минимальные требования (для 1-5 пользователей, небольшой трафик):

  • CPU: 2 ядра x86-64. Современные процессоры с высокой тактовой частотой предпочтительнее.
  • RAM: 4 ГБ. Это абсолютный минимум; при активном антиспаме и антивирусе может быть недостаточно. Часть ОЗУ будет использоваться Docker и ОС.
  • Диск: 50 ГБ SSD. SSD критически важен для производительности базы данных и быстрого доступа к файлам почты. Учитывайте, что письма быстро заполняют дисковое пространство.
  • Сеть: 100 Мбит/с с неограниченным трафиком или большим объемом (минимум 1 ТБ/мес). Стабильный IP-адрес, желательно без истории спама.

Рекомендуемый VPS-план (для 5-20 пользователей, умеренный трафик):

  • CPU: 4 ядра x86-64.
  • RAM: 8 ГБ. Это обеспечит комфортную работу всех компонентов, включая Rspamd и ClamAV.
  • Диск: 100-200 ГБ SSD. С запасом для роста почтовых ящиков и хранения логов.
  • Сеть: 1 Гбит/с с неограниченным трафиком.

Для таких характеристик можно рассмотреть VPS с указанными характеристиками. При выборе всегда обращайте внимание на тип диска (только SSD) и наличие неограниченного или большого объема трафика.

Когда нужен dedicated, а не VPS?

Выделенный сервер (dedicated server) становится необходим, если:

  • Большое количество пользователей: Более 50 активных пользователей, генерирующих значительный трафик.
  • Высокий объем почты: Сервер обрабатывает сотни тысяч писем в день.
  • Требования к производительности: Нужна максимальная производительность для антиспама, антивируса или специфических интеграций.
  • Строгие SLA и изоляция: Требуется полная физическая изоляция для безопасности и стабильности, а также гарантированные ресурсы без "шумных соседей".
  • Хранение большого объема данных: Почтовые ящики с терабайтами данных.

Для таких сценариев целесообразно рассмотреть подходящий dedicated, который предоставляет полный контроль над аппаратным обеспечением и гарантирует выделенные ресурсы.

Локация: на что влияет

Выбор локации сервера может влиять на несколько факторов:

  • Задержка (latency): Чем ближе сервер к большинству ваших пользователей, тем меньше будет задержка при доступе к веб-интерфейсу и IMAP/POP3.
  • Законодательство: Законы о хранении данных и приватности различаются в разных странах. Выбирайте локацию, соответствующую вашим требованиям и регулирующим нормам.
  • Репутация IP-адреса: Некоторые IP-диапазоны в определенных странах могут иметь худшую репутацию у спам-фильтров, что может влиять на доставляемость вашей почты. Предпочтительно выбирать провайдеров с хорошей репутацией и возможностью получения "чистого" IP-адреса.
  • DNS-резолвинг: Близость к основным узлам интернета может немного ускорить DNS-запросы, но это менее критично, чем задержка для пользователей.

Обычно рекомендуется выбирать локацию, максимально близкую к вашей основной аудитории или местоположению вашего бизнеса.

Подготовка сервера

Схема: Подготовка сервера
Схема: Подготовка сервера

Перед установкой Mailcow необходимо выполнить базовую подготовку сервера. Мы будем использовать Ubuntu 24.04 LTS как стабильную и широко используемую операционную систему. Убедитесь, что у вас есть SSH-доступ к серверу с правами root или пользователя с sudo.

1. Обновление системы и установка базовых утилит

Первым делом обновим систему и установим необходимые пакеты.


sudo apt update                                 # Обновляем список пакетов
sudo apt upgrade -y                             # Обновляем установленные пакеты
sudo apt install -y curl wget git               # Устанавливаем базовые утилиты: curl, wget, git

2. Создание нового пользователя с sudo-правами (рекомендуется)

Работа под root не рекомендуется для повседневных задач. Создадим нового пользователя и добавим его в группу sudo.


sudo adduser mailuser                           # Создаем нового пользователя 'mailuser'
sudo usermod -aG sudo mailuser                  # Добавляем пользователя 'mailuser' в группу 'sudo'

Теперь выйдите из сессии root и войдите как mailuser. Все дальнейшие команды, требующие привилегий, будут выполняться с sudo.

3. Настройка SSH-ключей (опционально, но крайне рекомендуется)

Для повышения безопасности рекомендуется использовать SSH-ключи вместо паролей. Если у вас еще нет пары ключей, сгенерируйте их на локальной машине:


ssh-keygen -t rsa -b 4096                       # Генерируем новый SSH-ключ на локальной машине

Затем скопируйте публичный ключ на сервер:


ssh-copy-id mailuser@ВАШ_IP_СЕРВЕРА           # Копируем публичный ключ на сервер для 'mailuser'

После этого можно отключить аутентификацию по паролю в файле /etc/ssh/sshd_config, установив PasswordAuthentication no и перезапустив SSH-сервис.

4. Настройка файрвола (UFW)

Установим и настроим UFW (Uncomplicated Firewall) для защиты сервера. По умолчанию все входящие соединения будут запрещены, кроме тех, что мы явно разрешим.


sudo apt install -y ufw                         # Устанавливаем UFW
sudo ufw default deny incoming                  # Запрещаем все входящие соединения по умолчанию
sudo ufw default allow outgoing                 # Разрешаем все исходящие соединения по умолчанию
sudo ufw allow ssh                              # Разрешаем SSH (порт 22)
sudo ufw enable                                 # Включаем файрвол
sudo ufw status                                 # Проверяем статус файрвола

На этом этапе сервер готов к установке Docker и Mailcow.

Установка ПО — пошагово

Схема: Установка ПО — пошагово
Схема: Установка ПО — пошагово

Mailcow работает на Docker, поэтому первым шагом будет установка Docker Engine и Docker Compose. Мы будем использовать актуальные версии для 2026 года.

1. Установка Docker Engine

Установим Docker Engine, используя официальный репозиторий Docker, чтобы всегда получать актуальные версии.


# Добавляем GPG ключ Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавляем репозиторий Docker в APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker Engine, Docker CLI и containerd
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Проверяем установку Docker
sudo docker run hello-world                     # Запускаем тестовый контейнер для проверки установки Docker

Добавим вашего пользователя в группу docker, чтобы не использовать sudo с каждой командой Docker:


sudo usermod -aG docker $USER                   # Добавляем текущего пользователя в группу 'docker'
newgrp docker                                   # Применяем изменения группы без перезахода

Теперь Docker установлен и готов к работе. Версия Docker Engine будет примерно 26.x - 27.x, а Docker Compose Plugin 2.24.x - 2.27.x, что является актуальным для 2026 года.

2. Клонирование репозитория Mailcow-Dockerized

Перейдем в директорию, где вы хотите хранить файлы Mailcow (например, /opt/mailcow-dockerized), и клонируем официальный репозиторий Mailcow.


sudo mkdir /opt/mailcow-dockerized              # Создаем директорию для Mailcow
sudo chown $USER:$USER /opt/mailcow-dockerized  # Устанавливаем владельца директории на текущего пользователя
cd /opt/mailcow-dockerized                      # Переходим в созданную директорию
git clone https://github.com/mailcow/mailcow-dockerized . # Клонируем репозиторий Mailcow в текущую директорию

3. Генерация файла конфигурации Mailcow

Mailcow использует файл mailcow.conf для своих настроек. Его можно сгенерировать с помощью скрипта.


./generate_config.sh                            # Запускаем скрипт для генерации mailcow.conf

Скрипт задаст несколько вопросов:

  • Hostname (FQDN): Введите полное доменное имя вашего почтового сервера, например, mail.yourdomain.com. Это будет основное имя, по которому будет доступен ваш сервер.
  • Timezone: Выберите вашу часовую зону.

После ответа на вопросы будет создан файл mailcow.conf. Откройте его и убедитесь, что все настройки соответствуют вашим потребностям. Особое внимание уделите переменным, связанным с портами и сетью, если у вас есть специфические требования.

4. Настройка DNS-записей

Это критически важный шаг для работы почтового сервера. Без правильных DNS-записей ваша почта не будет доставляться или будет попадать в спам. Вам нужно будет добавить следующие записи в панель управления DNS вашего домена (yourdomain.com):

  • A-запись для Mailcow FQDN:
    • Имя/Хост: mail (или ваше FQDN, например, mail.yourdomain.com)
    • Тип: A
    • Значение: ВАШ_IP_СЕРВЕРА
  • AAAA-запись для Mailcow FQDN (если используете IPv6):
    • Имя/Хост: mail
    • Тип: AAAA
    • Значение: ВАШ_IPV6_АДРЕС_СЕРВЕРА
  • MX-запись: (указывает на ваш почтовый сервер)
    • Имя/Хост: @ или yourdomain.com
    • Тип: MX
    • Приоритет: 10 (или любое число, чем меньше, тем выше приоритет)
    • Значение: mail.yourdomain.com
  • SPF-запись: (для предотвращения подделки отправителя)
    • Имя/Хост: @ или yourdomain.com
    • Тип: TXT
    • Значение: v=spf1 mx a:mail.yourdomain.com -all
  • DKIM-запись: (для подписи исходящих писем; генерируется Mailcow)
    • После первого запуска Mailcow сгенерирует DKIM-ключи. Вам нужно будет скопировать TXT-запись из веб-интерфейса Mailcow (Configuration -> Domains -> Add domain или Edit domain) и добавить ее в DNS. Формат будет примерно такой: dkim._domainkey.yourdomain.com TXT v=DKIM1; k=rsa; p=ПУБЛИЧНЫЙ_КЛЮЧ
  • DMARC-запись: (для определения политики обработки писем, не прошедших SPF/DKIM)

Убедитесь, что все DNS-записи проиндексированы и доступны (может занять до нескольких часов). Проверить их можно с помощью dig или онлайн-инструментов, например, MXToolbox.


dig A mail.yourdomain.com               # Проверяем A-запись
dig MX yourdomain.com                   # Проверяем MX-запись
dig TXT yourdomain.com                  # Проверяем SPF-запись
dig TXT _dmarc.yourdomain.com           # Проверяем DMARC-запись

5. Запуск Mailcow

Теперь, когда Docker установлен, конфигурация сгенерирована и DNS настроен, можно запустить Mailcow.


cd /opt/mailcow-dockerized                      # Убедитесь, что вы находитесь в директории Mailcow
docker compose pull                             # Загружаем все необходимые Docker-образы (актуальные на 2026)
docker compose up -d                            # Запускаем все контейнеры Mailcow в фоновом режиме

Процесс загрузки образов и запуска контейнеров может занять некоторое время в зависимости от скорости вашего интернет-соединения и производительности сервера. После запуска вы можете проверить статус контейнеров:


docker compose ps                               # Проверяем статус запущенных контейнеров Mailcow

Все контейнеры должны быть в состоянии running.

6. Разрешение портов Mailcow в UFW

Mailcow использует множество портов. Разрешим их в файрволе UFW.


sudo ufw allow 80/tcp                           # HTTP (для Let's Encrypt ACME challenge)
sudo ufw allow 443/tcp                          # HTTPS (для веб-интерфейса и почтовых клиентов)
sudo ufw allow 25/tcp                           # SMTP (для отправки/получения почты)
sudo ufw allow 465/tcp                          # SMTPS (SMTP over SSL/TLS)
sudo ufw allow 587/tcp                          # Submission (SMTP для клиентов с StartTLS)
sudo ufw allow 110/tcp                          # POP3
sudo ufw allow 995/tcp                          # POP3S (POP3 over SSL/TLS)
sudo ufw allow 143/tcp                          # IMAP
sudo ufw allow 993/tcp                          # IMAPS (IMAP over SSL/TLS)
sudo ufw allow 4190/tcp                         # Sieve (фильтрация почты на сервере)
sudo ufw status                                 # Проверяем статус файрвола

Теперь ваш почтовый сервер Mailcow запущен и доступен по указанному FQDN.

Конфигурация

Схема: Конфигурация
Схема: Конфигурация

После успешного запуска Mailcow, основные настройки производятся через веб-интерфейс. Также важно убедиться в корректности DNS-записей и работы TLS.

1. Первый вход в веб-интерфейс Mailcow

Откройте веб-браузер и перейдите по адресу вашего FQDN (например, https://mail.yourdomain.com). Вы должны увидеть страницу входа в Mailcow UI.

Дефолтные учетные данные:

  • Логин: admin
  • Пароль: moohoo

ВАЖНО: Сразу после первого входа поменяйте пароль администратора! Перейдите в System > Configuration > Admins, выберите admin и измените пароль.

2. Добавление домена

Перейдите в Configuration > Mail Setup > Domains. Нажмите Add domain и введите ваш домен (например, yourdomain.com). После добавления домена Mailcow автоматически сгенерирует записи DKIM. Скопируйте предоставленную TXT-запись и добавьте ее в DNS-записи вашего домена (если вы не сделали этого ранее).

Пример DKIM-записи (которую вы скопируете из интерфейса):


_dkim.yourdomain.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzQ..."

Убедитесь, что все DNS-записи (A, AAAA, MX, SPF, DKIM, DMARC) корректно настроены и разрешаются. Вы можете использовать раздел Configuration > Mail Setup > ARC/DKIM/SPF в Mailcow UI для проверки статуса ваших DNS-записей.

3. Создание почтовых ящиков

Перейдите в Configuration > Mail Setup > Mailboxes. Нажмите Add mailbox. Введите имя пользователя, выберите домен, установите пароль и задайте квоту. После создания вы сможете использовать этот почтовый ящик для отправки и получения писем.

4. Настройка TLS/HTTPS с Let's Encrypt

Mailcow использует acme.sh для автоматической выдачи и обновления SSL/TLS сертификатов от Let's Encrypt. При первом запуске Mailcow автоматически попытается получить сертификат для вашего FQDN (например, mail.yourdomain.com). Если DNS-записи A и AAAA для вашего FQDN корректны и порты 80/443 открыты, сертификат будет выдан.

Вы можете проверить статус сертификатов в System > Configuration > Certificates. Если сертификат не был выдан, проверьте логи контейнера acme-mailcow:


docker compose logs acme-mailcow                # Просмотр логов контейнера acme-mailcow

Типичные проблемы: неправильные DNS-записи, закрытые порты 80/443, или конфликт с другим веб-сервером на этих портах (чего не должно быть на чистом VPS).

5. Проверка работоспособности

После всех настроек необходимо убедиться, что почтовый сервер функционирует корректно.

Проверка доступности веб-интерфейса:

Откройте https://mail.yourdomain.com в браузере. Убедитесь, что соединение защищено (зеленый замочек) и используется сертификат Let's Encrypt.

Проверка SMTP/IMAP с помощью telnet или openssl:

# Проверка SMTP (порт 25)
telnet mail.yourdomain.com 25                   # Должен ответить 220 mail.yourdomain.com ESMTP Postfix
# Проверка SMTPS (порт 465)
openssl s_client -connect mail.yourdomain.com:465 -crlf # Должен показать информацию о сертификате и SMTP-приветствие
# Проверка IMAPS (порт 993)
openssl s_client -connect mail.yourdomain.com:993 -crlf # Должен показать информацию о сертификате и IMAP-приветствие
Отправка тестового письма:

Создайте почтовый ящик в Mailcow (например, [email protected]) и отправьте с него письмо на внешний адрес (например, Gmail). Затем отправьте письмо с внешнего адреса на [email protected]. Проверьте заголовки полученных писем на внешнем сервисе, чтобы убедиться в корректности SPF, DKIM и DMARC записей (обычно это показывает, что письмо прошло аутентификацию).

Используйте онлайн-инструменты, такие как mail-tester.com, чтобы отправить тестовое письмо и получить подробный отчет о качестве настройки вашего почтового сервера, включая репутацию IP, правильность DNS-записей и оценки спама.

6. Настройка веб-клиента (SOGo)

Mailcow поставляется с веб-клиентом SOGo, доступным по тому же адресу, что и панель администратора. Пользователи могут входить в SOGo, используя свои полные почтовые адреса (например, [email protected]) и пароли.

Веб-клиент SOGo предоставляет доступ к почте, календарю и контактам. Вы можете настроить его внешний вид и некоторые функции через панель администратора Mailcow.

Бэкапы и обслуживание

Схема: Бэкапы и обслуживание
Схема: Бэкапы и обслуживание

Надежное резервное копирование и регулярное обслуживание являются ключевыми для стабильной работы любого сервера, особенно почтового. Mailcow хранит все свои данные в директории data/ внутри каталога установки.

1. Что бэкапить

Для Mailcow необходимо бэкапить следующие компоненты:

  • Директория data/: Это самая важная часть. Она содержит все почтовые ящики, базы данных (MariaDB), конфигурации Rspamd, ClamAV и другие данные контейнеров.
  • Файл mailcow.conf: Содержит основные настройки Mailcow.

2. Простой скрипт автобэкапа

Рекомендуется использовать скрипт, который будет выполнять резервное копирование регулярно, например, ежедневно через cron. Перед началом бэкапа желательно остановить Mailcow, чтобы избежать проблем с целостностью данных, особенно базы данных. Однако, для большинства случаев, если бэкап выполняется быстро, можно обойтись без остановки, но это не гарантирует 100% консистентности. Mailcow также предоставляет встроенную утилиту для бэкапа.


#!/bin/bash

# Путь к директории Mailcow
MAILCOW_DIR="/opt/mailcow-dockerized"
# Директория для хранения бэкапов
BACKUP_DIR="/var/backups/mailcow"
# Дата для имени файла бэкапа
DATE=$(date +%Y-%m-%d_%H-%M-%S)
# Имя файла бэкапа
BACKUP_FILENAME="mailcow_backup_${DATE}.tar.gz"
# Количество дней для хранения старых бэкапов
RETENTION_DAYS=7

# Создаем директорию для бэкапов, если ее нет
mkdir -p "${BACKUP_DIR}"

echo "[$(date)] Starting Mailcow backup..."

# Опционально: Остановка Mailcow для консистентности базы данных
# echo "[$(date)] Stopping Mailcow containers..."
# cd "${MAILCOW_DIR}" && docker compose stop

# Создаем архив с данными Mailcow
echo "[$(date)] Creating archive of Mailcow data..."
tar -czf "${BACKUP_DIR}/${BACKUP_FILENAME}" -C "${MAILCOW_DIR}" data mailcow.conf --remove-files

# Опционально: Запуск Mailcow после бэкапа
# echo "[$(date)] Starting Mailcow containers..."
# cd "${MAILCOW_DIR}" && docker compose start

echo "[$(date)] Mailcow backup completed: ${BACKUP_DIR}/${BACKUP_FILENAME}"

# Удаляем старые бэкапы
echo "[$(date)] Cleaning up old backups (older than ${RETENTION_DAYS} days)..."
find "${BACKUP_DIR}" -type f -name "mailcow_backup_.tar.gz" -mtime +"${RETENTION_DAYS}" -delete
echo "[$(date)] Cleanup complete."

Сохраните этот скрипт, например, как /usr/local/bin/backup_mailcow.sh, сделайте его исполняемым:


sudo chmod +x /usr/local/bin/backup_mailcow.sh

И добавьте его в cron для ежедневного выполнения (например, в 3 часа ночи):


sudo crontab -e                                 # Открываем crontab для root (или для вашего пользователя, если он имеет права)

Добавьте строку:


0 3    /usr/local/bin/backup_mailcow.sh > /var/log/mailcow_backup.log 2>&1

3. Куда складывать бэкапы

Крайне важно хранить бэкапы вне того же сервера, на котором работает Mailcow. В случае сбоя сервера, локальные бэкапы будут утеряны вместе с ним. Рекомендуемые варианты:

  • Внешнее S3-совместимое хранилище: Такие сервисы, как AWS S3, Backblaze B2, DigitalOcean Spaces, предлагают надежное и недорогое хранение объектов. Используйте rclone или aws cli для синхронизации.
  • Отдельный VPS: Вы можете использовать второй, менее мощный VPS в качестве хранилища бэкапов, синхронизируя их по rsync через SSH.
  • Локальное сетевое хранилище (NAS): Если у вас есть собственное сетевое хранилище, можно настроить монтирование и копирование туда.

Пример отправки бэкапов на S3 с помощью rclone (после его установки и настройки):


# Добавьте в скрипт backup_mailcow.sh после создания архива:
echo "[$(date)] Uploading backup to S3..."
rclone copy "${BACKUP_DIR}/${BACKUP_FILENAME}" remote_s3_bucket:mailcow-backups/
echo "[$(date)] Upload to S3 complete."

4. Обновления: rolling vs maintenance window

Mailcow регулярно выпускает обновления, которые включают исправления безопасности, новые функции и улучшения. Поскольку Mailcow основан на Docker, процесс обновления относительно прост.

Процедура обновления:

cd /opt/mailcow-dockerized                      # Переходим в директорию Mailcow
git pull                                        # Обновляем репозиторий Mailcow-Dockerized до последней версии
docker compose pull                             # Загружаем новые версии Docker-образов Mailcow
docker compose up -d                            # Пересоздаем и запускаем контейнеры с новыми образами

После выполнения docker compose up -d Docker Compose сравнит текущую конфигурацию с новой и обновит только те контейнеры, чьи образы или конфигурации изменились. Это обеспечивает относительно "rolling" обновление, минимизируя время простоя.

Maintenance Window:

Хотя процесс обновления Mailcow обычно не требует длительного простоя, для критически важных почтовых систем рекомендуется проводить обновления в заранее определенное "окно обслуживания" (maintenance window). Это позволяет уведомить пользователей о возможном кратковременном отсутствии доступа к почте и дает вам время для устранения непредвиденных проблем, если таковые возникнут.

Перед обновлением всегда рекомендуется сделать полный бэкап. Это позволит быстро откатиться к предыдущей рабочей версии в случае серьезных проблем.

Troubleshooting + FAQ

В этом разделе мы рассмотрим типичные проблемы, с которыми можно столкнуться при установке и эксплуатации Mailcow, а также ответим на часто задаваемые вопросы.

Не могу получить доступ к веб-интерфейсу Mailcow (https://mail.yourdomain.com)

Что проверить:

  1. DNS-запись: Убедитесь, что A-запись (и AAAA, если используете IPv6) для вашего FQDN (mail.yourdomain.com) указывает на IP-адрес вашего сервера. Используйте dig mail.yourdomain.com.
  2. Файрвол: Проверьте, что порты 80 (HTTP) и 443 (HTTPS) открыты в UFW (sudo ufw status) и на уровне провайдера VPS.
  3. Статус Docker-контейнеров: Убедитесь, что контейнеры Mailcow запущены: cd /opt/mailcow-dockerized && docker compose ps. Контейнеры nginx-mailcow и acme-mailcow должны быть в состоянии running.
  4. Логи Nginx: Проверьте логи контейнера nginx-mailcow на наличие ошибок: docker compose logs nginx-mailcow.
  5. Сертификаты Let's Encrypt: Если вы видите ошибку "NET::ERR_CERT_COMMON_NAME_INVALID" или подобную, возможно, не был выдан SSL-сертификат. Проверьте логи acme-mailcow: docker compose logs acme-mailcow. Убедитесь, что порт 80 открыт для ACME-челленджа.

Как фиксить: Исправьте DNS-запись, откройте порты в файрволе, перезапустите Mailcow (docker compose restart), при необходимости вручную запросите сертификат через интерфейс Mailcow или перезапустите контейнер acme-mailcow.

Письма попадают в спам или не доставляются

Что проверить:

  1. DNS-записи (SPF, DKIM, DMARC, MX): Это самая частая причина. Используйте mail-tester.com или mxtoolbox.com, чтобы проверить все ваши DNS-записи. Убедитесь, что MX-запись указывает на ваш FQDN, SPF корректен, DKIM-запись добавлена и совпадает с тем, что сгенерировала Mailcow, и DMARC настроен.
  2. Репутация IP-адреса: Ваш IP-адрес может быть в черных списках. Проверьте его на mxtoolbox.com/blacklists.aspx. Если IP в черном списке, свяжитесь с провайдером VPS или запросите его исключение из списка.
  3. PTR-запись (Reverse DNS): Убедитесь, что для вашего IP-адреса настроена PTR-запись, указывающая на ваш FQDN (mail.yourdomain.com). Это настраивается в панели управления вашего VPS-провайдера.
  4. Логи Postfix/Rspamd: Проверьте логи контейнеров postfix-mailcow и rspamd-mailcow на наличие ошибок при отправке/получении писем.

Как фиксить: Исправьте DNS-записи, настройте PTR-запись, если IP в черном списке - обратитесь к провайдеру или очистите его. Используйте mail-tester.com для пошагового исправления проблем.

Не могу отправлять/получать письма с почтового клиента (Outlook, Thunderbird)

Что проверить:

  1. Настройки клиента: Убедитесь, что вы правильно ввели FQDN сервера (mail.yourdomain.com), порты (IMAP 993 SSL/TLS, SMTP 465 SSL/TLS или 587 STARTTLS), полный адрес электронной почты в качестве логина и корректный пароль.
  2. Файрвол: Проверьте, что порты 465, 587, 993, 143, 110, 995 открыты в UFW и на уровне провайдера.
  3. Статус контейнеров: Убедитесь, что контейнеры postfix-mailcow (SMTP) и dovecot-mailcow (IMAP/POP3) запущены.
  4. Логи: Проверьте логи postfix-mailcow и dovecot-mailcow на наличие ошибок аутентификации или проблем с подключением.

Как фиксить: Скорректируйте настройки почтового клиента, проверьте и откройте необходимые порты, перезапустите соответствующие контейнеры.

Какой VPS-конфиг минимально подойдёт?

Для небольшого количества пользователей (1-5) и умеренного трафика минимальный конфиг должен включать 2 ядра CPU, 4 ГБ RAM и 50 ГБ SSD. SSD-диск критически важен для производительности. Однако, для более комфортной работы и возможности масштабирования рекомендуется иметь 4 ядра CPU, 8 ГБ RAM и 100-200 ГБ SSD. Всегда выбирайте провайдера с хорошей репутацией и возможностью получения "чистого" IP-адреса.

Что выбрать — VPS или dedicated для этой задачи?

Выбор между VPS и выделенным сервером зависит от масштаба вашей задачи. Для большинства индивидуальных пользователей, малых команд (до 20-30 человек) или небольших SaaS-проектов VPS с рекомендуемыми характеристиками будет более чем достаточно и экономически выгоден. Выделенный сервер становится необходим, если вы планируете обслуживать большое количество пользователей (более 50-100), обрабатывать очень высокий объем почты, имеете строгие требования к производительности и полной изоляции ресурсов, или вам необходимо хранить терабайты почтовых данных. Выделенный сервер предоставляет максимальную производительность и контроль, но сопряжен с более высокой стоимостью и необходимостью полного управления оборудованием.

Как обновить Mailcow?

Обновление Mailcow выполняется в три шага: git pull в директории Mailcow для получения последних скриптов и конфигураций, docker compose pull для загрузки новых Docker-образов, и docker compose up -d для их развертывания. Рекомендуется делать это регулярно, чтобы получать обновления безопасности и новые функции. Перед обновлением всегда делайте бэкап.

Как добавить нового пользователя или домен?

Все управление пользователями, доменами, алиасами и группами рассылки осуществляется через веб-интерфейс Mailcow. После входа как администратор, перейдите в Configuration > Mail Setup. Там вы найдете разделы Domains для добавления новых доменов и Mailboxes для создания новых почтовых ящиков. Для каждого нового домена обязательно настройте все необходимые DNS-записи (A, AAAA, MX, SPF, DKIM, DMARC).

Выводы и следующие шаги

Схема: Выводы и следующие шаги
Схема: Выводы и следующие шаги

Поздравляем! Вы успешно установили и настроили Mailcow на своем VPS, получив в полное распоряжение мощный и безопасный self-hosted почтовый сервер. Теперь у вас есть полный контроль над вашей электронной почтой, обеспечивающий приватность, независимость и гибкость, недоступные в облачных решениях. Вы освоили не только установку, но и базовую конфигурацию, а также принципы резервного копирования и обслуживания.

Чтобы максимально эффективно использовать ваш новый почтовый сервер, рекомендуем следующие шаги:

  • Оптимизация антиспама: Изучите настройки Rspamd в веб-интерфейсе Mailcow. Вы можете настроить черные/белые списки, установить более агрессивные правила фильтрации или интегрировать дополнительные источники данных для повышения эффективности борьбы со спамом.
  • Мониторинг сервера: Настройте базовый мониторинг вашего VPS (например, с помощью Prometheus/Grafana или Zabbix) для отслеживания загрузки CPU, RAM, диска и сетевого трафика. Это поможет выявить потенциальные проблемы до того, как они повлияют на работу почты.
  • Дополнительные домены и пользователи: Если вы планируете использовать Mailcow для нескольких проектов или команд, добавьте новые домены и создайте соответствующие почтовые ящики. Убедитесь, что для каждого нового домена корректно настроены все DNS-записи.
  • Изучение документации Mailcow: Официальная документация Mailcow содержит множество полезной информации о продвинутых функциях, интеграциях и решении специфических проблем. Это отличный ресурс для дальнейшего освоения системы.

Поделиться этой записью:

установка mailcow на vps: полный гид по self-hosted почте с docker и let's encrypt
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.