SMTP рядом с HomeMaster
SMTP — самостоятельный Compose-проект mail: PostgreSQL, секреты и конфигурация в локальном Docker volume mail_state; blobs и backup — в собственном NAS-каталоге. Unit mail-stack.service запускается по локальному runtime. Файлы HomeMaster установщик не меняет. Docker socket в контейнеры SMTP не передаётся. Остановка HomeMaster не останавливает SMTP, но отключение его DNS/NPM нарушает соответствующий доступ.
Схема сверена с D:\Git\HomeMaster: Technitium слушает 192.168.1.2:53; Public NPM из /home/kotik-root/ngnix работает в proxy; Internal NPM — в homelab_internal_proxy, с LAN IP 192.168.1.4. Адреса являются значениями вашего примера конфигурации: проверьте фактические адреса на сервере.
1. Установка и подключение сетей
2. DNS в Technitium и публичной зоне
Граница изоляции
| Сеть | Контейнеры SMTP | Назначение |
|---|---|---|
| mail_mail, internal | PostgreSQL, Stalwart, Roundcube, временный provision | БД и почтовые протоколы |
| mail_egress | Stalwart | DNS, SMTP2GO, входящие опубликованные порты |
| mail_frontend, internal | web, Roundcube | HTTP webmail |
| mail_admin_backend, internal | admin, Stalwart | Проверяемый HTTPS к Stalwart |
| proxy, external | Только web, alias smtp-web | Публичный NPM |
| homelab_internal_proxy, external/internal | Только admin, alias smtp-admin | Внутренний NPM |
Публичный шлюз не подключён к БД и Stalwart, не слушает админский порт и не получает TLS-ключи. На внешних сетях нет PostgreSQL, Roundcube и Stalwart. SMTP не вступает в homelab_management. Public NPM нельзя подключать к homelab_internal_proxy.
Это изоляция сетей, данных и жизненного цикла контейнеров на общем Docker-хосте. Администратор Docker имеет доступ ко всем контейнерам. Любой участник общей proxy может обращаться к публичному web-шлюзу; любой участник внутренней proxy-сети — к шлюзу админки, где всё равно требуется вход Stalwart. Для изоляции на уровне ядра нужна отдельная VM; внешняя bridge-сеть между хостами не переносится.