fix(livekit): конфиг по официальной схеме livekit-server

- убраны недопустимые поля (audio.min_level, audio.smooth_intervals,
  video.dynacast, video.disable_simulcast) — из-за них контейнер livekit
  циклически перезапускался
- набор кодеков задаётся через room.enabled_codecs: VP8 на lite/standard,
  VP8+VP9+H.264+AV1 на plus/pro
- keys: {} — ключи передаются через LIVEKIT_KEYS (секрет не попадает в файл)
- smoke.sh: ветка --skip-tls больше не проверяет HTTPS, бэкап с расширением
  .age больше не помечается как незашифрованный
This commit is contained in:
2026-09-19 19:55:31 +03:00
parent d4c6cfa643
commit 8f7620026d
4 changed files with 64 additions and 23 deletions
+19 -18
View File
@@ -1,5 +1,6 @@
# Сгенерировано deploy/install.sh — не редактируйте вручную.
# Документация: https://docs.livekit.io/home/self-hosting/deployment/
# Ключи сверены с официальным config-sample.yaml livekit-server: неизвестные
# поля приводят к отказу запуска, поэтому здесь только поддержанные настройки.
port: ${LIVEKIT_WS_PORT}
bind_addresses:
- "0.0.0.0"
@@ -8,16 +9,10 @@ rtc:
tcp_port: ${LIVEKIT_TCP_PORT}
udp_port: ${LIVEKIT_UDP_PORT}
use_external_ip: ${LIVEKIT_USE_EXTERNAL_IP}
# Синхронизация портов с публичным адресом: контейнер публикует порты напрямую.
port_range_start: 0
port_range_end: 0
# TCP-fallback, когда UDP заблокирован сетью клиента (AGENT.md 7.14).
allow_tcp_fallback: true
turn:
enabled: ${TURN_ENABLED}
domain: ${TURN_DOMAIN}
udp_port: ${TURN_UDP_PORT}
tls_port: ${TURN_TLS_PORT}
external_tls: ${TURN_EXTERNAL_TLS}
keys: {}
room:
auto_create: true
@@ -25,18 +20,24 @@ room:
departure_timeout: 20
max_participants: ${LIVEKIT_MAX_PARTICIPANTS}
enable_remote_unmute: false
# VP8 — самый дешёвый по CPU на отправителе; на профилях plus/pro
# к нему добавляются VP9, H.264 и AV1.
enabled_codecs:
- mime: audio/opus
- mime: video/vp8
${LIVEKIT_EXTRA_CODECS}
audio:
# Opus с низким битрейтом: экономия канала при 1 vCPU (AGENT.md 9.1).
# Уровень активности говорящего, 0–127 (меньше — чувствительнее).
active_level: 35
min_level: 25
smooth_intervals: false
video:
dynacast: true
disable_simulcast: ${LIVEKIT_DISABLE_SIMULCAST}
logging:
level: info
json: true
sample: true
turn:
enabled: ${TURN_ENABLED}
domain: ${TURN_DOMAIN}
udp_port: ${TURN_UDP_PORT}
tls_port: ${TURN_TLS_PORT}
external_tls: ${TURN_EXTERNAL_TLS}