diff --git a/.env.example b/.env.example index 7f55a77..0461ca3 100644 --- a/.env.example +++ b/.env.example @@ -112,7 +112,7 @@ SMTP_TIMEOUT_S=30 # --- Версия инстанса (релиз v0.0.1) --- # install.sh копирует значение из корневого файла VERSION при каждой # установке/обновлении — руками менять не нужно. -VIDCONF_VERSION=0.0.13 +VIDCONF_VERSION=0.0.14 # --- Профили compose. Дефолт ниже (`media,monitoring`) — только для ручного # `docker compose up` БЕЗ install.sh: медиа (LiveKit+coturn) + мониторинг, diff --git a/CHANGELOG.md b/CHANGELOG.md index 02f5886..3434a6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,34 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/), проект придерживается [семантического версионирования](https://semver.org/lang/ru/). +## [0.0.14] — 2026-07-28 + +TURN-фолбэк для участников из сетей с жёстким NAT. + +### Исправлено +- LiveKit теперь анонсирует клиентам внешний TURN-сервер (`rtc.turn_servers` + в конфигурации, UDP и TCP на 3478). Раньше coturn поднимался и был healthy, + но клиенты о нём не знали: внешний TURN в конфиге объявлен не был, встроенный + выключен, а фронтенд `iceServers` не задаёт. За всё время работы в логах + coturn не было ни одной аллокации — то есть relay не использовался никогда, + и участники из сетей, где прямое UDP-соединение не проходит, теряли связь + (`PEER_CONNECTION_DISCONNECTED`). На нагрузочном тесте 28.07 все такие + разрывы пришлись на внешних участников и ни одного — на офисных. +- Credentials TURN генерируются по механизму TURN REST API из общего + `TURN_STATIC_AUTH_SECRET`, то есть тот же секрет, что и у coturn. + +### Изменено +- `deploy/render-templates.sh` подставляет `TURN_EXTERNAL_IP` и + `TURN_STATIC_AUTH_SECRET` также в конфигурацию LiveKit. +- Раздел 8 руководства по развёртыванию переписан: TURN больше не «план на + будущее», а рабочая конфигурация. Отдельно описано правило ufw для + relay-диапазона `49160:49200/udp` — без него TURN отвечает на запросы, но + релей не работает, причём в логах coturn при этом тишина. + +TURN over TLS (5349/443) по-прежнему не настроен: требует монтирования +сертификата в coturn. Неработающий `turns:` намеренно не анонсируется, иначе +клиент ждал бы таймаута перед переходом к рабочему кандидату. + ## [0.0.13] — 2026-07-28 Снижение нагрузки на сеть: клиент перестаёт получать полное качество всех diff --git a/VERSION b/VERSION index 43b2961..9789c4c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.13 +0.0.14 diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 8c05ebc..cddf0d0 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -82,7 +82,7 @@ services: MEDIA_ROOT: ${MEDIA_ROOT:-/app/media} # Версия инстанса (релиз v0.0.1) — install.sh копирует значение # из файла VERSION (корень репозитория) в .env; отдаётся в GET /api/health. - VIDCONF_VERSION: ${VIDCONF_VERSION:-0.0.13} + VIDCONF_VERSION: ${VIDCONF_VERSION:-0.0.14} # Число процессов uvicorn (см. backend/Dockerfile). Дефолт 2 рассчитан # на 4-ядерный сервер, где ядра делятся с LiveKit. Поднимая значение, # проверьте бюджет соединений с БД: каждый воркер держит свой пул