Skip to content

Закоммитить api.conf.example (vhost панели) + починить доки/certbot-env #68

Description

@friench

Проблема

nginx/user_conf.d/api.conf описан как закоммиченный vhost панели в CLAUDE.md (layout), _docs/deployment.md:68 и _docs/architecture.md (nginx проксирует /admin/* → mail-api), но файла нет и шаблона нет. Присутствует только default.conf (hardened fallback c ssl_reject_handshake).

Влияние (standalone-стек, как отгружается)

  • Свежий docker compose up -d даёт стек без HTTPS-входа к дашборду и /send: единственный 443-сервер — fallback-заглушка. Панель достижима только SSH-туннелем на :3050. При этом задокументированный happy-path (deployment.md §3-4 дёргает https://<api-host>/send) не работает.
  • Когда оператор пишет api.conf руками, нет гайда по обязательным proxy_pass, forwarded-заголовкам (mail-api работает с TRUST_PROXY=1, ждёт ровно один хоп nginx), WebSocket-upgrade, TLS-политике, security-заголовкам и client_max_body_size. Последнее критично: POSTFIX_MESSAGE_SIZE_LIMIT=25MB + вложения, а дефолтный лимит nginx (1 МБ) даст 413 на отправке вложений.

Фикс

  1. Закоммитить nginx/user_conf.d/api.conf.example с харднутым proxy-vhost: TLS 1.2/1.3, HSTS, proxy_pass http://mail-api:3050, proxy_set_header (Host/X-Forwarded-For/Proto), WebSocket-upgrade, client_max_body_size 30m (запас над 25 МБ Postfix), security-заголовки из default.conf.
  2. Поправить CLAUDE.md / _docs/deployment.md — ссылаться на .example и описать шаг «скопировать и подставить хостнейм».
  3. Заодно: закоммитить nginx/nginx-certbot.env.example (на него ссылается deployment.md:25, файла нет).

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions