Перенесли почту компании со стороннего сервиса на свой сервер: экономия 800 000 → 32 000 ₽ в год без потери удобства и защиты.
Почта команды зависела от сторонних сервисов — без контроля над данными, инфраструктурой и настройками безопасности. Нужен был полностью автономный почтовый стек: сервер и веб-клиент под своим управлением, с автонастройкой на всех устройствах и защитой от подбора паролей.
Убрал прямую публикацию портов 80/443 у Stalwart в пользу nginx-proxy-manager, посадил Stalwart и Bulwark в общую docker-сеть без лишних портов на хосте. Переключил ACME-провайдера на dns-01, чтобы автопродление TLS-сертификата не зависело от того, кто держит 443-й порт.
Настроил переменную STALWART_PUBLIC_URL, чтобы OAuth и JMAP discovery за прокси строили ссылки на публичный домен, а не на внутренний docker-хостнейм.
Нашёл и устранил блокировку логина в веб-клиенте: строгая CSP-политика Bulwark запрещала запросы на внутренний http-адрес JMAP-сервера. Переключил конфиг на публичный HTTPS-адрес, уже проксируемый через nginx.
Прошёл проверку на mail-tester.com, донастроил PTR-запись у хостинг-провайдера. Поднял Autodiscover, Autoconfig и .mobileconfig-профиль для автонастройки почты на Outlook, Thunderbird и iPhone. Снял и предотвратил блокировку встроенной защитой Stalwart от брутфорса собственного IP реверс-прокси через stalwart-cli.
Полностью self-hosted почтовый стек — от SMTP до веб-интерфейса — работает предсказуемо за единым реверс-прокси, поддерживает автонастройку на всех основных клиентах и проходит спам-фильтры без проблем.