3 Commits

Author SHA1 Message Date
991e5cd756 nginx: /openapi.json перехватывался SPA-фолбэком вместо схемы backend
FastAPI отдаёт /openapi.json на корневом пути (маршруты backend объявлены
с явным префиксом /api/... в декораторах, а не через APIRouter(prefix=)),
поэтому запрос попадал в catch-all location / (раздача index.html фронта)
раньше, чем мог бы дойти до backend — снаружи схема API была недоступна,
что мешало отладке.

Добавлен точный location = /openapi.json, проксирующий на backend:8000
(матчится раньше catch-all за счёт приоритета exact-match в nginx).
2026-07-26 02:57:56 +03:00
79003eb56c deploy: harden nginx/coturn/livekit configs (TLS on 443, templates, required secrets)
Переносит рабочие правки продакшен-сервера в репозиторий воспроизводимо:

- nginx: HTTPS-блок на 443 (TLS1.2/1.3, http->https redirect, ACME
  webroot, X-Forwarded-Proto) добавлен в nginx.conf.template. Список
  доменов и имя каталога сертификата — параметры (NGINX_SERVER_NAMES,
  NGINX_CERT_NAME), не хардкод. Рендерится штатным entrypoint'ом образа
  nginx (envsubst-on-templates).
- Самоподписанный dev-сертификат генерируется на старте контейнера
  (docker-entrypoint-certs.sh), если реальный Let's Encrypt не смонтирован
  — иначе `docker compose up` без профиля ломался бы локально без
  реальных сертификатов.
- healthcheck nginx переключён на /healthz (без TLS-редиректа), иначе
  http://127.0.0.1:80/ после добавления 443-редиректа всегда unhealthy.
- coturn/turnserver.conf и livekit/livekit.yaml переведены в *.template —
  оба образа не читают env для статических полей (static-auth-secret,
  use_external_ip/node_ip, webhook.api_key), поэтому реальные файлы
  генерируются перед стартом стека скриптом deploy/render-templates.sh
  (вызывается install.sh). Секреты/IP — только в .env, не в git.
- docker-compose.yml: LIVEKIT_API_KEY/SECRET везде (backend, livekit,
  egress) через ${VAR:?} без небезопасных дефолтов; порт 443 + монтирование
  /etc/letsencrypt (ro) и certbot-webroot у nginx; build-args
  VITE_LIVEKIT_URL/NEXT_PUBLIC_LIVEKIT_URL для frontend (сейчас не
  используются кодом, оставлены про запас).
2026-07-25 21:57:46 +03:00
896455381a Первоначальная версия VidConf 2026-07-23 01:57:27 +03:00