# Конфигурация coturn. Верифицировано по официальной документации # (github.com/coturn/coturn/wiki/turnserver, docker/coturn/README.md). # Запускается с network_mode: host в docker-compose.yml (рекомендация coturn # для широких диапазонов UDP relay-портов). # # coturn подставляет $(VAR) при старте ТОЛЬКО когда вызывается через # CLI-флаги entrypoint'а образа — при передаче файла конфигурации (как # здесь, `-c /etc/coturn/turnserver.conf`) подстановка не работает. Поэтому # реальные static-auth-secret/realm/external-ip рендерятся из этого шаблона # в turnserver.conf скриптом deploy/render-templates.sh (envsubst) ПЕРЕД # `docker compose up`. Не редактируйте turnserver.conf напрямую — правки # затрутся при следующем рендере. listening-port=3478 # TLS-порт объявлен всегда; реально слушать TLS coturn начинает только когда # заданы cert/pkey ниже (блок TLS-CERT) — без них строка ничего не включает. tls-listening-port=5349 # Диапазон relay-портов для TURN-аллокаций. min-port=49160 max-port=49200 # --- Long-term credential mechanism через shared secret (TURN REST API) --- use-auth-secret static-auth-secret=${TURN_STATIC_AUTH_SECRET} realm=${TURN_REALM} # Обязателен для WebRTC-клиентов (добавляет STUN FINGERPRINT атрибут). fingerprint # Без CLI/telnet admin-интерфейса в этой поставке. no-cli # Блок ниже рендерится ТОЛЬКО когда в .env задан TURN_TLS_HOST (см. # render-templates.sh) — тогда coturn-certs-init (docker-compose.yml) уже # скопировал fullchain/privkey из /etc/letsencrypt в volume coturn-certs. # Без TURN_TLS_HOST маркеры и всё, что между ними, вырезаются целиком — # в файле не остаётся ни следа cert/pkey, а не просто закомментированных строк. # BEGIN-TLS-CERT cert=/etc/coturn/certs/cert.pem pkey=/etc/coturn/certs/key.pem # END-TLS-CERT log-file=stdout simple-log # Внешний IP сервера — обязателен для клиентов вне docker-сети # (network_mode: host здесь не даёт coturn определить публичный IP # автоматически). Для локальной разработки (без внешних участников) # достаточно 127.0.0.1 (значение по умолчанию в .env.example); в проде — # реальный внешний IP/домен сервера. external-ip=${TURN_EXTERNAL_IP}