coturn (nobody:nogroup, без root-фазы в entrypoint) не может сам прочитать приватный ключ Let's Encrypt — coturn-certs-init (по образцу recordings-init/llm-models-init) копирует fullchain/privkey в отдельный volume под правами 644, не трогая права на ключ на хосте. TURN_TLS_HOST в .env — единственный переключатель фичи: пусто (dev-дефолт) вырезает TLS-блоки из turnserver.conf и rtc.turn_servers целиком (маркеры BEGIN/END-TLS-* в *.template, render-templates.sh), непустое значение включает оба сразу — TLS без анонса LiveKit клиентам не имеет смысла (история 0.0.14: coturn работал healthy, но клиенты о нём не знали, и не было ни одной аллокации). Значение обязано быть доменом сертификата, а не IP — иначе браузер не пройдёт TLS-валидацию по имени хоста для turns:. TLS-запись в rtc.turn_servers стоит последней в списке (фолбэк дороже прямого UDP/TCP).
2.9 KiB
2.9 KiB