Настройки nginx Proxy Manager
Public NPM, сеть proxy
Создайте Proxy Host:
| Поле | Значение |
|---|---|
| Domain Names | webmail.example.com — имя, указанное в setup |
| Scheme | http |
| Forward Hostname / IP | smtp-web |
| Forward Port | 8080 |
| SSL | Публичный сертификат для webmail.example.com, Force SSL |
В Advanced добавьте client_max_body_size 20m;. Проксируйте весь сайт: / — портал, /mail/ — Roundcube, /docs/ — документация. Отдельных Custom Locations не требуется. На этом upstream нет Stalwart API и админки. Не создавайте публичный Proxy Host к smtp-admin или портам Stalwart.
Internal NPM, сеть homelab_internal_proxy
| Поле | Значение |
|---|---|
| Domain Names | smtp-admin.lan |
| Scheme | http |
| Forward Hostname / IP | smtp-admin |
| Forward Port | 8080 |
| Websockets Support | Включить |
| SSL | Внутренний сертификат HomeMaster с SAN smtp-admin.lan, Force SSL |
В Advanced добавьте client_max_body_size 20m;. Открывайте https://smtp-admin.lan/admin. Используйте существующую PKI HomeMaster: сертификат должен покрывать новое имя, CA должна быть доверенной на клиенте. Публичный Let's Encrypt для .lan не подходит. При Access List учитывайте LAN и VPN и фактический адрес клиента после NAT.
Не используйте upstream 192.168.1.2:18444: macvlan Internal NPM изолирован от хоста. Docker DNS smtp-admin:8080 решает эту проблему. Сам шлюз проверяет сертификат Stalwart по локальной CA; на общем HTTP-сегменте NPM→шлюз TLS не применяется.
Сертификат Public NPM защищает только браузерный HTTPS. Для IMAPS/Submission остаётся собственный TLS SMTP: установите CA SMTP на почтовые клиенты либо замените серверный сертификат по руководству TLS. Не копируйте приватный ключ NPM в публичный web-контейнер.