Компания жила в Яндекс 360: около ста сорока ящиков на двух доменах плюс примерно пять общих. Всё работало.
Причин уходить было две, и обе не технические. Своё железо и мини-серверная уже стояли — платить за облако поверх этого не хотелось. И хотелось полного контроля над тем, где лежит переписка.
Требования оказались короткими. Работают люди в основном через веб. Нужны личные — именно личные, не общие — календари и адресные книги по CalDAV и CardDAV.
Дальше был выбор из четырёх вариантов, и я хочу рассказать не столько про сами варианты, сколько про критерий. Потому что критерий у меня был не тот, с которого обычно начинают.
Коротко
- Сравнивал iRedMail, Zimbra OSE, связку Postfix + Dovecot и mailcow.
- Выбрал mailcow: Docker, SOGo с CalDAV/CardDAV из коробки, встроенный rspamd.
- Критерий был не «что мощнее и гибче», а «что переживёт меня в этой роли».
- Голый Postfix гибче всех — и именно поэтому проиграл.
Четыре кандидата
Голый Postfix плюс Dovecot. Самый честный вариант: собираешь ровно то, что нужно, без лишнего. Я бы его собрал, и он работал бы лучше всех по гибкости.
Zimbra OSE. Взрослое решение с долгой историей и полноценным групповым функционалом.
iRedMail. Сборка тех же компонентов с установщиком и панелью, ближайший конкурент по духу.
mailcow. Всё в Docker, веб-интерфейс администрирования, SOGo для веб-почты и календарей, rspamd для антиспама.
Если свести сравнение в таблицу, получается вот что:
| Критерий | mailcow | iRedMail | Zimbra OSE | Postfix + Dovecot |
|---|---|---|---|---|
| Установка | docker compose, ~30 мин |
скрипт на чистую ОС | тяжёлая | всё руками |
| Веб-почта | SOGo | Roundcube / SOGo | своя | ставить отдельно |
| CalDAV/CardDAV | из коробки (SOGo) | через SOGo | есть | ставить отдельно |
| Антиспам | rspamd встроен | Amavis / SpamAssassin | встроен | ставить отдельно |
| Обновление | update.sh |
вручную | сложно | вручную |
| Ресурсы на ~140 ящиков | 8 ГБ хватает | меньше | больше | меньше всего |
Обратите внимание на последнюю строку. По ресурсам mailcow проигрывает двум вариантам из четырёх — и это честная цена за то, что всё остальное идёт в комплекте. Восемь гигабайт памяти сегодня дешевле, чем человеко-часы на сборку и последующее сопровождение того же набора вручную.
Почему победил mailcow
Ни одного признака, по которому он выиграл бы с разгромом. Выиграл по сумме.
Всё живёт в Docker. Это значит предсказуемое обновление и предсказуемый перенос. Не «запустил скрипт и надеешься», а понятный набор контейнеров, который можно поднять заново.
SOGo даёт веб-почту и CalDAV с CardDAV из коробки. Вот это было решающим по требованиям: личные календари и адресные книги нужны были сразу, и городить их отдельным сервисом поверх почты не хотелось.
rspamd встроен. Антиспам не надо прикручивать, настраивать интеграцию и потом отдельно вспоминать, как она устроена.
Масштаб совпал. Сто сорок ящиков — это не три и не десять тысяч. mailcow ложится на такой размер спокойно.
А теперь про критерий
Обычно выбирают по вопросу «что мощнее и гибче». По этому вопросу победил бы голый Postfix с Dovecot, причём уверенно: нет ничего гибче, чем собрать систему из кирпичей самому.
Но гибкость не бесплатна. Её оплачивает тот, кто будет это эксплуатировать через год, когда детали забудутся — в том числе я сам, но уже не помнящий, почему в конфиге написано именно так. У самосборной системы нет документации, кроме твоей памяти, и нет сообщества, которое ответит на вопрос про твою конкретную сборку.
Поэтому вопрос я себе задал другой: что переживёт меня в этой роли. Не «что я смогу настроить», а «что останется понятным, когда настраивать будет некому».
С такой формулировкой Zimbra на сто сорок ящиков оказалась из пушки по воробьям: много возможностей, которые никто не попросит, и вес, который придётся носить. iRedMail шёл вплотную с mailcow, но ничего не добавил на весы — а раз не добавил, победил тот, у кого докерная модель и SOGo уже в комплекте.
Голый Postfix проиграл именно тем, чем был лучше всех.
Что получилось
mailcow развёрнут и работает. Второй домен уже в боевой эксплуатации, пользователи подключаются.
Оговорюсь честно: это не значит, что self-hosted почта — хорошая идея вообще. Для большинства компаний это плохая идея, и решение принималось не из любви к искусству: железо уже стояло, требования были понятны, бюджет считался. Если всего этого нет, облако почти наверняка дешевле и спокойнее.
Но если решение уже принято, то выбирать стоит не по списку возможностей, а по тому, кто и чем будет за них платить в эксплуатации.
О том, что было дальше — как я готовил виртуалку, почему не выпускался сертификат и почему у людей в почтовом клиенте папки оказались пустыми, — пишу отдельными разборами.