План реализации
Очерёдность
- [x] Разобрать требования и проверить актуальную схему Stalwart 0.16.
- [x] Разнести исходный документ по тематическим файлам; удалить оригинал после переноса.
- [x] Реализовать Compose, отдельные БД, blobs, secrets, лимиты и ротацию логов.
- [x] Реализовать установщик: зависимости, NFS preflight, владельцы, TLS, bootstrap, политики, systemd.
- [x] Добавить обязательный Roundcube Elastic, HTTPS и приятный адаптивный портал.
- [x] Реализовать создание аккаунтов, резервное копирование и восстановление.
- [x] Проверить реальные контейнеры, SMTP/IMAP ACL, веб-интерфейс и сохранность после перезапуска.
- [x] Описать установку, обслуживание, внешние шаги и ограничения проверки.
Интеграция HomeMaster
- [x] Проверить фактическое разделение Public/Internal NPM и Technitium в HomeMaster.
- [x] Изолировать публичный web-шлюз от Stalwart и БД, выделить внутренний admin-шлюз.
- [x] Подключать только шлюзы к существующим внешним сетям, проверять сети перед запуском.
- [x] Добавить миграцию работающей установки без повторного bootstrap и сброса секретов.
- [x] Разнести инструкции DNS, двух NPM, TLS и диагностики по отдельным документам.
- [x] Разрешить отложенную регистрацию SMTP2GO через входящий-only ящик и fail-closed routing.
- [ ] На целевом Linux-хосте настроить Proxy Hosts, DNS и сертификаты; проверить доступ из WAN/VPN.
Критерий завершения разработки
- [x] Перенести PostgreSQL, конфигурацию, секреты и runtime в локальный Docker volume.
- [x] Оставить на NAS только blobs и backup; использовать UID/GID вызывающего sudo пользователя без chown и изменения OMV export.
- [x] Хранить указатель установки и systemd runtime локально; проверять NAS перед запуском.
- [x] Проверить установку, повторный setup, веб-почту, backup и восстановление с запретом файловых операций root на тестовом NAS.
Клон содержит исполняемые сценарии setup/up, документацию и воспроизводимые проверки. Инициализация идёт без публичных mail ports; рабочий запуск невозможен без NAS и завершённой конфигурации. Реальная внешняя доставка и NFS/systemd проверяются на целевом сервере после ввода его реквизитов.
Фактический результат проверок фиксируется в тестировании. Задачи, зависящие от инфраструктуры пользователя, перечислены отдельно в чеклисте.