Docker-деплой готов к проде (ТЗ 0.33, M7)
- nginx: client_max_body_size 20m (вложения до 10 МБ падали бы с 413),
  HTTP/1.1-апстрим с keepalive и без буферизации для /api/ и /mcp/ (SSE),
  кэш хэшированной статики на год, gzip
- compose: убраны контейнеры ollama/ollama-init (Ollama — внешний сервер,
  OLLAMA_BASE_URL из .env); restart для db; healthcheck api через
  /api/health (start_period 30s на миграции); модель по умолчанию
  согласована с конфигом (qwen3.5:2b-q4_K_M, открытый вопрос ТЗ 8.5 закрыт)
- mcp_server: FastMCP пропускал только Host localhost — в проде за nginx
  /mcp отвечал 421; разрешённый Host берётся из GAUTH_REDIRECT_URI
  (dev-поведение не изменилось, защита от DNS-rebinding сохранена)
- README: раздел «Деплой» — шаги, внешний TLS-прокси, лимит тела,
  буферизация SSE, почему 1 воркер uvicorn
- ТЗ 0.33: TLS — внешний reverse-proxy; Ollama — внешний сервер

Проверено локально полным стеком (db+api+web на :8135): сборка образов,
SPA/health/SSO-редирект/413/gzip/MCP-флоу (initialize → tools/call),
MCP с чужим Host — 421. 117 backend-тестов, mypy, ruff — чисто.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent a424e89 commit 32d5ae00cc9d97c4fe49a693e854f992ea3a5485
@root root authored 2 hours ago
Showing 6 changed files
View
.env.example
View
README.md
View
backend/app/mcp_server.py
View
docker-compose.yml
View
docs/TZ.md
View
frontend/nginx.conf