Админка самописная на python. В истории проекта рассказано, что хотелось как-то освежить и осовременнить стандартный стек почтового сервера. Для этого упаковали всё в контейнеры и заменили PostfixAdmin на новую админку. В принципе, разумный подход. Лично меня в качестве сугубо почтового сервера связка Postfix + Dovecot вполне устраивает. Настраивается просто, работает стабильно, возможности в рамках поддерживаемых протоколов максимальные. Для большей функциональности нужно придумывать свой протокол и почтовый клиент. Бесплатно такого нет. А на базе smtp и imap чего-то большего уже не реализовать.
Из особенностей именно Mailu - конструктор для построения конфигурации. Ответив на простые вопросы на тему имени домена, сервера, каких-то лимитов и т.д. вы получаете
docker-compose.yml и .env. Можно их и вручную при желании сделать.За счёт того, что Mailu полностью упакован в контейнеры и заточен на работу в качестве микросервисного приложения, его можно использовать в Kubernetes. Для этого есть готовый Helm Chart.
По умолчанию Mailu использует SQLite. При желании можно перенести в PostgreSQL или MySQL. Почта хранится в формате maildir.
Я развернул и попробовал Mailu. Установка выглядит так:
1️⃣ Идём на setup.mailu.io и отвечаем на вопросы. В конце получаем готовый конфиг.
2️⃣Переходим в консоль сервера. Ставим Docker и загружаем конфигурацию:
# curl https://get.docker.com | bash -# mkdir /mailu && cd /mailu# wget https://setup.mailu.io/2024.06/file/890ef5ad-efc3-444d-834d-abd1424e8741/docker-compose.yml# wget https://setup.mailu.io/2024.06/file/890ef5ad-efc3-444d-834d-abd1424e8741/mailu.env3️⃣ Смотрим скачанные файлы, что-то можно подправить, заодно увидеть состав сервера. Там следующий набор контейнеров:
- redis
- nginx
- unbound
- admin (админка)
- dovecot
- postfix
- oletools
- rspamd
- fetchmail
- webmail (roundcube)
Запускаем:
# docker compose -p mailu up -d4️⃣ После того, как весь стек запустится, создаём учётку администратора:
# docker compose -p mailu exec admin flask mailu admin adminuser mail.example.com PASSWORD5. Можно идти по имени домена в веб интерфейс и выбирать, логиниться в админку или почтовый клиент. В админке есть русский язык. Выглядит она функционально и современно. Жаль, что она не оформлена отдельно. Я бы её вместо PostfixAdmin с удовольствием использовал.
TLS сертификаты будут получены и настроены автоматически. Для каждого пользователя есть свой личный кабинет, где он может посмотреть настройки для приложений, сменить пароль, включить автоответ, добавить учётку от внешнего сервера, с которого fetchmail будет забирать почту.
Сервер мне максимально понятен и близок по функциональности, потому что используется стек, который я хорошо знаю. Плюс сверху удобная админка. Из минусов лично для меня - Docker. Я почтовые сервера давно настраиваю и знаю, что если его раз настроил, то потом много лет не трогаешь. Он обновляется из пакетов стандартного системного репозитория. Ни масштабировать, ни куда-то переносить между разными окружениями, ни деплоить по 5 раз на дню его не придётся. Живёт он обычно в отдельной виртуалке.
Например, у меня сразу по какой-то причине не заработал веб интерфейс Roundcube. В логах контейнера ошибки:
FastCGI sent in stderr: "PHP message: PHP Warning: stream_socket_client(): Unable to connect to front:10143 (Connection refused)Надо лезть в контейнер и разбираться, что там с ним не так. Без них было бы проще. А так я сходу даже не увидел, где и как используется этот порт. Судя по всему imap внутри другого контейнера не отвечает, но при этом он нормально опубликован во вне.
В целом сервер неплох. Рекомендую.
⇨ 🌐 Сайт / Исходники
#mailserver


