Дефолтный simple-log в coturn не пишет построчно ALLOCATE/CreatePermission/ Refresh даже при реально работающем relay (найдено на релизе 0.0.22: рабочий звонок через TURN, но grep -ci allocate по логам coturn = 0, подтверждение пришлось брать из логов LiveKit). Добавлен флаг verbose (умеренный режим, не Verbose/-V — тот слишком шумный). DEPLOYMENT.md предупреждает, что проверка через grep -ci allocate надёжна только с этим флагом.
64 lines
3.9 KiB
Plaintext
64 lines
3.9 KiB
Plaintext
# Конфигурация 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
|
||
|
||
# Умеренная verbose-логика (`-v`/`verbose` в терминах coturn, НЕ
|
||
# `Verbose`/`-V` — тот режим сам coturn документирует как "very annoying",
|
||
# построчный дамп пакетов). Без этого флага дефолтный уровень логов не
|
||
# печатает ни строки на ALLOCATE/CreatePermission/Refresh, даже когда TURN
|
||
# реально обслуживает relay — проверено на релизе 0.0.22 (`docker logs
|
||
# vidconf-coturn-1 | grep -ci allocate` = 0 при живом рабочем звонке,
|
||
# подтверждение пришлось брать из логов LiveKit). С этим флагом coturn
|
||
# печатает по сессии: create/delete allocation, create permission, refresh —
|
||
# достаточно, чтобы дальше проверять относительно скромный вывод.
|
||
verbose
|
||
|
||
# Внешний IP сервера — обязателен для клиентов вне docker-сети
|
||
# (network_mode: host здесь не даёт coturn определить публичный IP
|
||
# автоматически). Для локальной разработки (без внешних участников)
|
||
# достаточно 127.0.0.1 (значение по умолчанию в .env.example); в проде —
|
||
# реальный внешний IP/домен сервера.
|
||
external-ip=${TURN_EXTERNAL_IP}
|