feat(deploy): TURN/TLS анонсируется именем хоста с сертификатом
Браузеры отклоняют TLS-соединение к TURN по IP, если сертификат выписан на домен: релей с публичным адресом отдавал `turns:<ip>:5349`, и этот эндпоинт был нерабочим. - флаг `--turn-relay-tls-host` (по умолчанию `turn.<домен>`, если он резолвится, иначе адрес релея) попадает в `rtc.turn_servers` как TLS-эндпоинт; - значение сохраняется в `.env` и переиспользуется при `--reconfigure`; - `scripts/test-install.sh` проверяет, что в `livekit.yaml` попали и UDP-адрес, и TLS-имя релея.
This commit is contained in:
+15
-1
@@ -71,7 +71,21 @@ secrets_before="$(docker exec "$CONTAINER" bash -lc '
|
||||
')"
|
||||
printf '%s\n' "$secrets_before"
|
||||
|
||||
run_install "4/5 идемпотентность: повторный запуск с --reconfigure" --reconfigure
|
||||
# Внешний TURN-релей: в livekit.yaml должны попасть UDP-адрес и TLS-имя хоста
|
||||
# (сертификат выписан на домен, поэтому TLS-эндпоинт анонсируется именем).
|
||||
run_install "4/5 идемпотентность: повторный запуск с --reconfigure" --reconfigure \
|
||||
--turn-relay-host 203.0.113.10 --turn-relay-tls-host turn.gl.test.local
|
||||
|
||||
log "4b/5 адреса TURN-релея в livekit.yaml"
|
||||
relay_rendered="$(docker exec "$CONTAINER" bash -lc 'cat /opt/glchat/livekit/livekit.yaml')"
|
||||
printf '%s\n' "$relay_rendered" | grep -A 3 "turn_servers" | head -12
|
||||
for expected in "host: 203.0.113.10" "protocol: udp" "host: turn.gl.test.local" "protocol: tls"; do
|
||||
if ! printf '%s\n' "$relay_rendered" | grep -q "$expected"; then
|
||||
echo "ОШИБКА: в livekit.yaml нет строки \"$expected\"" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
echo "адреса TURN-релея отрендерены: ok"
|
||||
|
||||
log "5/5 секреты после повторного запуска"
|
||||
secrets_after="$(docker exec "$CONTAINER" bash -lc '
|
||||
|
||||
Reference in New Issue
Block a user