Почтовый сервер состоит из нескольких программ, каждая из которых отвечает за свою задачу: Postfix принимает и отправляет письма, Dovecot хранит их и выдает по IMAP и POP3, Rspamd фильтрует спам, Roundcube обеспечивает доступ к почте через браузер. Обычно их устанавливают и настраивают по отдельности, согласовывая конфигурации между собой.
Mailu – готовая сборка этих же программ: они запускаются в Docker-контейнерах, уже настроены на совместную работу, а домены и ящики управляются через веб-панель.
В этой статье мы рассмотрим установку Mailu на облачный сервер Beget, настройку DNS-записей домена, создание почтовых ящиков и проверку доставляемости писем. Команды выполняются от имени пользователя root. В качестве примера используется домен betutorial.ru и IP-адрес сервера 81.200.119.42 – замените их на свои значения.
Подготовка сервера
Mailu следует размещать на отдельном VPS, где не работают другие сайты и сервисы. Сборка занимает порты 25, 80, 110, 143, 443, 465, 587, 993, 995 и 4190. Кроме того, от репутации IP-адреса зависит доставляемость писем, поэтому его не стоит использовать для других проектов.
Достаточной конфигурацией будет 2 ГБ оперативной памяти. Сама установка занимает около 5 ГБ дискового пространства, дальнейший расход зависит от объема переписки и количества ящиков, поэтому диск подбирается под предполагаемый объем хранимых писем. Если планируется использовать антивирус ClamAV, потребуется не менее 4 ГБ оперативной памяти и раздел подкачки. В качестве операционной системы будем использовать Ubuntu 24.04.
Подключитесь к серверу по SSH и обновите список пакетов:
apt update && apt upgrade -yЗадайте серверу имя, которое будет использоваться в качестве адреса почтового сервера:
hostnamectl set-hostname mail.betutorial.ruУстановите часовой пояс сервера – от него зависят отметки времени в системных журналах и вывод команд, показывающих дату и время. Укажите свой часовой пояс, в примере используется московское время:
timedatectl set-timezone Europe/MoscowПроверить текущие настройки времени можно командой timedatectl.
Убедитесь, что необходимые Mailu порты свободны:
ss -tlnp | grep -E ':(25|80|110|143|443|465|587|993|995|4190)\b'Вывод команды должен быть пустым. Если какой-либо порт занят, в последнем столбце будет указана использующая его программа – остановите и отключите соответствующую службу.
Дополнительно стоит убедиться, что доступны исходящие соединения по порту 25: через него серверы обмениваются письмами между собой. На облачных серверах Beget он открыт по умолчанию, дополнительно настраивать ничего не требуется. Проверить соединение можно командой:
timeout 5 bash -c "</dev/tcp/gmail-smtp-in.l.google.com/25" && echo OKЕсли команда вывела OK, соединение устанавливается.
Установка Docker
Контейнеры Mailu запускаются средствами Docker, установите его из официального репозитория:
curl -fsSL https://get.docker.com | shПроверьте, что Docker и Docker Compose установлены корректно:
docker version
docker compose versionНастройка A-записи и обратной зоны
До запуска Mailu необходимо направить домен почтового сервера на IP-адрес VPS – без этого не удастся автоматически получить SSL-сертификат.
На стороне NS-серверов, которым делегирован домен, создайте для поддомена mail A-запись, указывающую на IP-адрес сервера.
Проверить результат можно командой:
dig A mail.betutorial.ru +shortДополнительно потребуется настроить PTR-запись – обратное соответствие IP-адреса имени сервера. Большинство почтовых систем проверяют ее наличие и при несовпадении отклоняют письма или помещают их в спам. PTR-запись настраивается на стороне владельца IP-адреса, поэтому создайте тикет из панели управления аккаунта с просьбой указать для IP-адреса вашего сервера значение mail.betutorial.ru.
Проверить установленную PTR-запись можно командой:
dig -x 81.200.119.42 +shortУстановка Mailu
Конфигурационные файлы Mailu формируются веб-конфигуратором по заданным параметрам: настройки Postfix, Dovecot и остальных компонентов создаются автоматически.
Создайте директорию, в которой будут храниться данные почтового сервера, и перейдите в нее:
mkdir /mailu
cd /mailuОткройте в браузере страницу setup.mailu.io и выберите версию сборки с пометкой stable – на момент написания статьи это 2024.06. Версию master выбирать не следует, это ветка разработки.

Конфигуратор состоит из трех шагов. На первом шаге – Step 1 – Initial configuration – задаются основные параметры сервера:
- Mailu storage path – директория для хранения данных. Укажите
/mailu; - Main mail domain and server display name – основной почтовый домен, в нашем примере
betutorial.ru. Он подставляется в адреса ящиков, используется для формирования служебных адресов и в качестве имени, которым сервер представляется при подключении к другим почтовым серверам; - Postmaster local part – локальная часть адреса почтового администратора. Оставьте значение
admin, в результате получится адресadmin@betutorial.ru; - Choose how you wish to handle security TLS certificates – способ получения SSL-сертификата. Следует выбрать
letsencrypt, чтобы сертификат был выпущен и продлевался автоматически; - Authentication rate limit per IP и Authentication rate limit per user – ограничения на количество попыток авторизации, защита от подбора паролей. Оставьте значения по умолчанию;
- Outgoing message rate limit (per user) – ограничение на количество отправляемых писем для одного пользователя, по умолчанию
200в день. Увеличьте, если планируете отправлять больше; - Opt-in for anonymized statistics – отправка обезличенной статистики разработчикам, включается по желанию;
- Website name и Linked Website URL – название и адрес вашего сайта. Название отображается в интерфейсе вместо «Mailu», адрес используется в ссылке в меню панели. На работу почты не влияют;
- Enable the admin UI – панель управления доменами и почтовыми ящиками. Включите этот параметр;
- Enable the API – RESTful API для управления настройками из сторонних программ. Для работы по статье не требуется.

На втором шаге – Step 2 – Pick some features – выбираются дополнительные компоненты:
- Enable Web email client – веб-интерфейс почты. Включите и выберите
roundcube; - Enable the antivirus service – антивирус ClamAV. Он загружает базу сигнатур целиком в оперативную память и занимает около 1 ГБ, поэтому для его использования потребуется сервер с 4 ГБ памяти и разделом подкачки. На конфигурации с 2 ГБ антивирус запускается, но свободной памяти почти не остается. Учитывайте также, что база сигнатур загружается с серверов разработчика ClamAV, доступ к которым ограничен для некоторых регионов, а без нее антивирус не работает;
- Enable the webdav service – хранение контактов и календарей. Для работы по статье не требуется;
- Enable fetchmail – сбор почты с внешних почтовых ящиков по IMAP или POP3. Включается по необходимости;
- Enable oletools – проверка вложенных документов на вредоносные макросы. Потребляет значительно меньше памяти, чем ClamAV, поэтому подходит для сервера с 2 ГБ;
- Enable Tika – поиск по содержимому вложений. Требует значительных ресурсов, оставьте отключенным.
На третьем шаге – Step 3 – expose Mailu to the world – настраивается доступ к серверу извне:
- IPv4 listen address – IP-адрес, на котором сервер будет принимать соединения. Значение по умолчанию
127.0.0.1замените на публичный IP-адрес вашего VPS, в нашем примере это81.200.119.42. Не указывайте здесь общий адрес0.0.0.0: при таком значении внешние подключения поступают к Postfix с внутреннего адреса Docker и считаются доверенными, из-за чего сервер начинает пересылать чужую почту; - Subnet of the docker network – подсеть внутренней сети Docker, оставьте значение по умолчанию;
- Enable IPv6 – включается, если серверу выделен IPv6-адрес;
- Enable an internal DNS resolver (unbound) – встроенный DNS-резолвер. Включите этот параметр: без него спам-фильтр выполняет не все проверки;
- Public hostnames – публичные имена почтового сервера через запятую. Укажите
mail.betutorial.ru. Первое имя в списке должно разрешаться в IP-адрес сервера, а PTR-запись этого IP-адреса – указывать на него же.

После нажатия кнопки Setup Mailu конфигуратор сформирует два файла – docker-compose.yml с описанием контейнеров и mailu.env с настройками – и покажет команды для их загрузки. Выполните указанные команды в директории /mailu.

Настройка часового пояса контейнеров
Конфигуратор не запрашивает часовой пояс, поэтому в файле mailu.env он остается равным Etc/UTC. От этого параметра зависят отметки времени в журналах контейнеров и время отправки в заголовках писем.
Откройте файл mailu.env, найдите параметр TZ и укажите свой часовой пояс. В примере используется московское время:
TZ=Europe/MoscowНастройка проверки работоспособности
Docker периодически проверяет состояние контейнеров и отмечает их как исправные или неисправные. У контейнера front в версии 2024.06 такая проверка включает обращение к служебному файлу Dovecot, который создается в другом контейнере. Из-за этого контейнер отображается как неисправный, хотя веб-сервер работает штатно.
Чтобы статус контейнера соответствовал его реальному состоянию, задайте проверку самостоятельно: параметры, указанные в блоке healthcheck файла docker-compose.yml, применяются вместо заданных в образе. Откройте файл, найдите описание сервиса front и добавьте в его конец – на том же уровне отступа, что и volumes, depends_on и dns – следующие строки:
healthcheck:
test: ["CMD-SHELL", "curl -m3 -skfLo /dev/null http://127.0.0.1:10204/health"]
start_period: 60sУбедитесь, что синтаксис файла не нарушен – команда должна вывести OK:
docker compose -p mailu config > /dev/null && echo OKЗапуск
Запустите контейнеры:
cd /mailu
docker compose -p mailu up -dВо время выполнения команды отображается ход загрузки образов контейнеров. После ее завершения контейнеры запускаются: генерируются ключи и запрашивается SSL-сертификат. Проверить их состояние можно командой:
docker compose -p mailu psВ столбце STATUS все контейнеры должны находиться в состоянии Up. У большинства из них дополнительно отображается результат проверки работоспособности: сразу после запуска это health: starting, а после завершения проверки – healthy. У контейнера redis проверка не предусмотрена, поэтому для него указано только Up.
Каждый контейнер отвечает за отдельный компонент почтового сервера:
front– веб-сервер Nginx, принимает внешние соединения и хранит SSL-сертификаты;smtp– Postfix, прием и отправка писем;imap– Dovecot, хранение писем и доступ к ним по протоколам IMAP и POP3;antispam– Rspamd, фильтрация спама и подпись исходящих писем ключом DKIM;webmail– Roundcube, веб-интерфейс почты;admin– панель управления Mailu;redis– хранилище служебных данных антиспама;resolver– DNS-резолвер Unbound, через него выполняются DNS-запросы при проверке писем;antivirusиoletools– проверка вложений, если соответствующие компоненты были включены.
Просмотреть логи отдельного компонента можно, указав его название из столбца SERVICE:
docker compose -p mailu logs -f smtpПервичная настройка
После запуска контейнеров необходимо создать учетную запись администратора. Выполните команду, подставив нужный домен и пароль:
docker compose -p mailu exec admin flask mailu admin admin betutorial.ru 'ваш_пароль'Команда создаст пользователя admin@betutorial.ru с правами администратора. Логин и домен указываются как два отдельных аргумента, без символа @.
POSTMASTER файла mailu.env, должна существовать обязательно. Это значение задается на первом шаге конфигуратора в поле Postmaster local part, в нашем примере – admin. На этот адрес приходят отчеты DMARC и служебные уведомления о проблемах с доставкой писем. Если ящик не создан, такие сообщения будут отвергнуты сервером, и проблемы в работе почты останутся незамеченными.Панель управления доступна по адресу https://mail.betutorial.ru/admin. Откроется общая страница авторизации Mailu – она используется и для панели управления, и для веб-интерфейса почты. Укажите полный адрес администратора и заданный пароль.

Настройка DNS-записей домена
Чтобы сервер мог принимать почту, а его письма не попадали в спам, для домена необходимо настроить несколько типов записей. Mailu формирует их значения самостоятельно.
В панели управления перейдите в раздел Почтовые домены, найдите нужный домен и нажмите на значок Подробно в столбце Действия.

Откроется страница Подробности домена. Изначально на ней отображаются записи MX, SPF, а также записи TLSA и записи автонастройки клиентов. Ключи DKIM при установке не создаются – нажмите кнопку Перегенерировать ключи, после чего в списке появятся записи DKIM и DMARC.

Основные ресурсные записи
Настроить следует четыре записи: MX, SPF, DKIM и DMARC. Запись MX необходима для приема почты на домен, остальные три отвечают за доставляемость: без них принимающие серверы с высокой вероятностью отнесут ваши письма к спаму. Добавьте записи на стороне NS-серверов, которым делегирован домен:
- MX-запись указывает другим серверам, куда доставлять почту для домена. Значение
10– приоритет записи. - SPF-запись перечисляет серверы, которым разрешено отправлять письма от имени домена.
- DKIM-запись содержит публичный ключ для проверки подписи исходящих писем.
- DMARC-запись определяет, что делать получателю с письмами, не прошедшими проверку SPF и DKIM.
Mailu предлагает строгий вариант политики для DMARC: параметр p=reject предписывает получателям отклонять такие письма, а adkim=s и aspf=s требуют полного совпадения домена в подписи и в адресе отправителя.
p=none – в этом режиме проверки выполняются, письма доставляются в любом случае, а на адрес из параметра rua приходят отчеты. Через одну-две недели, убедившись по отчетам, что проверки проходят успешно, замените политику на p=quarantine, а затем на p=reject.Изменения DNS вступают в силу не мгновенно – на распространение записей требуется от нескольких минут до нескольких часов. Проверить текущие значения можно командами, заменив домен:
dig MX betutorial.ru +short
dig TXT betutorial.ru +short
dig TXT dkim._domainkey.betutorial.ru +short
dig TXT _dmarc.betutorial.ru +shortОстальные ресурсные записи
Кроме перечисленных выше, на странице Подробности домена отображаются дополнительные записи.
Записи автонастройки почтовых клиентов (DNS client auto-configuration entries). Это записи типа SRV, а также autoconfig и autodiscover типа CNAME. Они позволяют почтовым программам определить параметры подключения автоматически: пользователю достаточно ввести адрес и пароль. Записи autoconfig используются в Mozilla Thunderbird, autodiscover – в Microsoft Outlook. На доставляемость писем они не влияют, поэтому добавляются по усмотрению администратора.
В этой группе встречаются записи со значением 0 0 0 . – точка вместо имени сервера означает, что услуга не предоставляется. Так Mailu сообщает клиентам, что порты 110, 143 и 587 использовать не нужно: в версии 2024.06 они отключены в пользу портов с постоянным шифрованием – 465, 993 и 995.
Вторая запись DMARC. После генерации ключей в списке появится запись вида betutorial.ru._report._dmarc.betutorial.ru. Записи такого вида подтверждают согласие принимать отчеты DMARC и требуются, если отчеты отправляются на адрес в другом домене – тогда вторая часть имени содержит домен получателя. Mailu формирует запись по общему шаблону, подставляя ваш домен в обе части. Поскольку в нашей настройке отчеты приходят на ящик того же домена, подтверждение не требуется и запись добавлять не нужно.
Записи TLSA (DNS TLSA entry). Они относятся к технологии DANE: отправляющий сервер узнает из DNS, какому сертификату вашего почтового сервера можно доверять, и не станет доставлять письмо, если сертификат подменен. Защита работает только совместно с DNSSEC, который подтверждает подлинность самих DNS-ответов, – иначе подменить можно и записи TLSA. NS-серверы Beget не поддерживают DNSSEC, поэтому такие записи применимы только при обслуживании домена сторонними NS-серверами с поддержкой DNSSEC.
Полный список записей, которые ожидает Mailu, можно вывести в консоли:
docker compose -p mailu exec admin flask mailu config-export --dns domainРабота с панелью управления
Добавление домена
Основной домен создается автоматически при установке. Чтобы добавить еще один, перейдите в раздел Почтовые домены и нажмите Новый домен.

Заполните поля:
- Доменное имя, Максимальное число пользователей, Максимальное число псевдонимов – имя домена и ограничения на количество ящиков и алиасов;
- Квота на пользователя – максимальный размер одного ящика в мегабайтах;
- Разрешить регистрацию – самостоятельная регистрация пользователей. Рекомендуется оставить параметр отключенным, иначе завести ящик на вашем домене сможет любой пользователь из интернета.

После добавления домена создайте для него MX-запись со значением mail.betutorial.ru и выполните генерацию ключей DKIM на странице Подробности домена. Ящики нового домена будут работать через тот же почтовый сервер, а пользователи – указывать в почтовых клиентах прежний адрес mail.betutorial.ru.
Если для нового домена нужно отдельное имя почтового сервера, например, mail.newdomain.ru, выполните дополнительно следующие действия:
- Создайте для
mail.newdomain.ruА-запись, указывающую на IP-адрес сервера. - Добавьте новое доменное имя через запятую в параметр
HOSTNAMESфайлаmailu.env. Первым в списке должно оставаться имя, по которому открывается панель управления. - Пересоздайте контейнеры командами
docker compose -p mailu downиdocker compose -p mailu up -d. При запуске будет выпущен SSL-сертификат, включающий оба имени. - Укажите
mail.newdomain.ruв MX-записи нового домена, а остальные ресурсные записи скопируйте со страницы Подробности домена.
Создание почтовых ящиков
В разделе Почтовые домены нажмите на значок письма в столбце Управление, затем – кнопку Добавить пользователя.

Заполните поля:
- Электронная почта – локальная часть адреса, например,
info. Домен подставляется автоматически; - Пароль и Подтвердить пароль – пароль для доступа к ящику;
- Отображаемое имя – имя владельца, которое будет видно получателям писем;
- Включено – состояние ящика. При снятии галочки доступ к ящику блокируется, но письма сохраняются;
- Требовать смену пароля при следующем входе – пользователю будет предложено задать собственный пароль при первом входе. Удобно, когда администратор выдает временный пароль;
- Разрешить доступ через IMAP и Разрешить доступ через POP3 – разрешенные протоколы для почтовых клиентов;
- Разрешить пользователю подменять отправителя – возможность отправлять письма от имени любого адреса. Оставьте отключенным.

Созданные ящики отображаются в списке с информацией об использованной квоте и дате создания.
Создать почтовый ящик на сервере можно также через консоль – локальная часть адреса, домен и пароль указываются отдельными аргументами:
docker compose -p mailu exec admin flask mailu user info betutorial.ru 'ваш_пароль'Отключение и удаление почтовых ящиков
Отключение. В списке ящиков домена откройте нужный ящик на редактирование и снимите галочку Включено. Ящик перестанет принимать почту, а его владелец не сможет войти, при этом письма сохранятся. Такой вариант подходит, когда доступ нужно закрыть, а переписку оставить.
То же самое выполняет команда user-delete без дополнительных параметров:
docker compose -p mailu exec admin flask mailu user-delete info@betutorial.ruУдаление. Кнопки удаления в панели управления нет: Mailu хранит учетную запись, письма и данные веб-почты раздельно, поэтому каждая часть удаляется отдельной командой. Первая команда удаляет учетную запись, вторая – письма из каталога, названного полным адресом ящика, третья – адресную книгу, черновики и настройки пользователя в Roundcube:
docker compose -p mailu exec admin flask mailu user-delete -r info@betutorial.ru
rm -rf /mailu/mail/info@betutorial.ru
docker compose -p mailu exec webmail su mailu -c "/var/www/roundcube/bin/deluser.sh --host=front 'info@betutorial.ru'"Если к ящику в этот момент подключен почтовый клиент, перед удалением каталога с письмами контейнеры можно остановить командой docker compose -p mailu down, а после удаления запустить командой docker compose -p mailu up -d.
Последняя команда может вернуть ответ User not found. – это означает, что владелец ящика ни разу не заходил в веб-интерфейс почты и данных для удаления нет.
Создание алиасов
Алиас – это дополнительный адрес, письма на который попадают в существующий ящик. Отдельный пароль для него не требуется. Например, письма с адреса sales@betutorial.ru могут доставляться в ящик info@betutorial.ru.
Для создания алиаса нажмите на значок псевдонимов в столбце Управление нужного домена, затем – Добавить псевдоним.

В поле Адрес получателя можно указать несколько адресов через запятую – в этом случае письмо получит каждый из почтовых ящиков. Параметр Использовать SQL-подобный синтаксис позволяет создать алиас-маску: например, значение % соберет письма со всех несуществующих адресов домена в один ящик.

Дополнительно рекомендуется создать два алиаса, направленных на ящик администратора:
postmaster– адрес предусмотрен стандартом RFC 2142, по нему обращаются администраторы других почтовых систем при проблемах с доставкой;abuse– адрес для жалоб на рассылку спама с вашего сервера.
Служебные уведомления самого Mailu приходят на адрес, заданный в параметре POSTMASTER, – в нашем примере это admin@betutorial.ru. Перечисленные алиасы предназначены для обращений извне и на его работу не влияют.
Веб-интерфейс почты
Веб-интерфейс почты доступен по адресу https://mail.betutorial.ru/. Введите полный адрес ящика и пароль, затем нажмите кнопку Войти Webmail.

Настройки пользователя
Владелец ящика может войти в панель управления под своим адресом и самостоятельно изменить настройки для своего почтового ящика. Перейти к ним можно из веб-интерфейса почты по кнопке Mailu.

Доступны следующие разделы:
- Настройки – отображаемое имя, чувствительность спам-фильтра и автоматическая пересылка писем на другой адрес;
- Обновить пароль – смена пароля;
- Автоматический ответ – автоответ на время отсутствия;
- Авторизационные токены – пароли приложений. Это отдельные пароли для конкретных программ, которые можно отозвать, не меняя основной пароль ящика.

Подключение почтовых клиентов
Чтобы работать с почтой в программе на компьютере или в мобильном приложении – Mozilla Thunderbird, Microsoft Outlook и других – откройте раздел Настройка клиента в панели управления. В нем приведены адреса серверов входящей и исходящей почты, номера портов и параметры шифрования для вашей установки.
Проверка доставляемости писем
Запущенный сервер еще не гарантирует, что письма будут доходить до получателей. Проверить настройки можно с помощью сервиса mail-tester.com.
Откройте сайт сервиса, скопируйте показанный на нем адрес и отправьте на него письмо из веб-интерфейса почты. Письмо должно содержать тему и осмысленный текст в несколько предложений – пустые письма получают заниженную оценку. Затем вернитесь на сайт и нажмите кнопку проверки.

Сервис выставит оценку по десятибалльной шкале и перечислит замечания, снижающие ее. Наиболее частые из них:
- отсутствует или не совпадает PTR-запись – проверьте обратную зону, при необходимости создайте тикет в поддержку;
- письмо не подписано DKIM – убедитесь, что значение записи скопировано со страницы Подробности домена полностью, без переносов строк;
- не найдена SPF-запись – проверьте наличие TXT-записи для домена;
- IP-адрес находится в черных списках – проверьте наличие IP-адреса VPS-сервера в черных списках. Например, на сервисе mxtoolbox.com.
Если письма продолжают попадать в спам при корректных настройках, учитывайте, что новый домен и новый IP-адрес не имеют репутации у почтовых систем. Она нарабатывается по мере обычной переписки, поэтому в первые недели работы сервера принимающие системы применяют к письмам более строгие критерии.
Дополнительные настройки
Mailu поставляется с готовой конфигурацией, но поведение сервера можно изменить. Основные параметры задаются в файле mailu.env:
MESSAGE_SIZE_LIMIT– максимальный размер письма в байтах;RELAYHOST– внешний SMTP-сервер, через который будет отправляться исходящая почта;WEBMAIL– используемый веб-интерфейс,roundcubeили более легковесныйsnappymail;ANTIVIRUS– включение и отключение ClamAV.
После изменения файла пересоздайте контейнеры:
docker compose -p mailu down
docker compose -p mailu up -d8.8.8.8 или 1.1.1.1. Спам-базы отклоняют запросы, поступающие через них, и часть проверок писем выполняться не будет.Настройки Postfix, Dovecot, Nginx и Rspamd переопределяются файлами в директории /mailu/overrides. После установки в ней созданы пустые подкаталоги – файлы добавляются вручную. Параметры Postfix указываются в файле overrides/postfix/postfix.cf по одной настройке в строке, конфигурация Dovecot – в файле overrides/dovecot/dovecot.conf, правила Rspamd – любыми файлами в каталоге overrides/rspamd. Файлы монтируются в контейнеры в режиме только для чтения, поэтому редактировать их следует на стороне сервера. Изменения сохраняются при обновлении сборки.
Статистика работы спам-фильтра доступна в разделе Антиспам панели управления. Этот раздел открывает веб-интерфейс Rspamd, где можно просмотреть историю проверок, изменить пороговые значения и обучить фильтр на конкретных письмах.

Резервное копирование и обновление
Все данные почтового сервера – письма, база пользователей, ключи DKIM и SSL-сертификаты – хранятся в директории /mailu. Для создания резервной копии остановите контейнеры, заархивируйте директорию и запустите контейнеры снова:
docker compose -p mailu down
tar czf /root/mailu-$(date +%F).tar.gz /mailu
docker compose -p mailu up -d/mailu/dkim в файлах вида betutorial.ru.dkim.key, по одному на каждый домен. Панель управления показывает готовую DNS-запись с публичным ключом, но при потере закрытого ключа потребуется сгенерировать новую пару и заново изменить запись в DNS.Отдельно выгрузить конфигурацию доменов и ящиков можно командой:
docker compose -p mailu exec admin flask mailu config-export --full --secrets -o /data/config-backup.ymlПуть указывается внутри контейнера, поэтому на сервере файл появится в директории /mailu/data.
Резервную копию следует создать до обновления. Документация Mailu также рекомендует ознакомиться со списком изменений в файле CHANGELOG.md проекта и проверить, не изменились ли шаблоны docker-compose.yml и mailu.env.
Версия сборки задана в тегах образов в файле docker-compose.yml, обновления загружаются в пределах выбранной ветки. Загрузите новые образы и пересоздайте контейнеры:
docker compose -p mailu pull
docker compose -p mailu down
docker compose -p mailu up -dЗаключение
В данной статье мы рассмотрели установку почтового сервера Mailu на VPS-сервер Beget, настройку DNS-записей домена и создание почтовых ящиков.
Дальнейшая работа сводится к обслуживанию: регулярному резервному копированию директории /mailu, обновлению сборки по мере выхода новых версий и наблюдению за доставляемостью писем. Отслеживать ее помогают логи контейнера smtp, статистика в разделе Антиспам и отчеты DMARC, которые приходят на адрес администратора.
Узнать, как самостоятельно создать, открыть и удалить почтовые ящики в Beget, а также как настроить почту домена, вы можете из нашей видеоинструкции.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”). Обсудить, как создать свой почтовый сервер, или пообщаться с коллегами по цеху и сотрудниками Beget можно в нашем сообществе в Telegram.