SHA256
Навести порядок в deploy и документации проекта
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Подключение TURN к SHiNE-серверу
|
||||
|
||||
Клиент звонков запрашивает ICE-конфиг у backend через WS-операцию `GetCallIceConfig` и использует её для `RTCPeerConnection`.
|
||||
|
||||
## Репозиторный конфиг
|
||||
|
||||
В `SHiNE-server/src/main/resources/application.properties` можно хранить только публичные домены и пустые placeholders.
|
||||
|
||||
Пример:
|
||||
|
||||
```properties
|
||||
call.ice.stun.urls=stun:stun.l.google.com:19302
|
||||
call.ice.turn.urls=turn:turn1.shineup.me:3478?transport=udp,turn:turn1.shineup.me:3478?transport=tcp
|
||||
call.ice.turn.ttlSec=600
|
||||
call.ice.turn.userPrefix=shine
|
||||
call.ice.turn.sharedSecret=
|
||||
|
||||
call.ice.turn.servers.1.id=turn1
|
||||
call.ice.turn.servers.1.urls=turn:turn1.shineup.me:3478?transport=udp,turn:turn1.shineup.me:3478?transport=tcp
|
||||
call.ice.turn.servers.1.sharedSecret=
|
||||
```
|
||||
|
||||
## Production override
|
||||
|
||||
Реальные `sharedSecret`, статические логины/пароли и другие секреты задавать только на сервере через внешний `application.properties` или override-конфиг. В git их не хранить.
|
||||
|
||||
Рекомендуемый режим:
|
||||
|
||||
- на coturn включить `use-auth-secret`;
|
||||
- в coturn задать `static-auth-secret=<secret-on-server-only>`;
|
||||
- в SHiNE-сервере задать такой же `call.ice.turn.sharedSecret` или `call.ice.turn.servers.N.sharedSecret`;
|
||||
- сервер будет выдавать короткоживущие `turnUsername` / `turnPassword` с TTL.
|
||||
|
||||
Fallback-режим:
|
||||
|
||||
```properties
|
||||
call.ice.turn.sharedSecret=
|
||||
call.ice.turn.username=turn_user
|
||||
call.ice.turn.password=turn_password
|
||||
```
|
||||
|
||||
Fallback тоже не должен хранить реальные credentials в git.
|
||||
|
||||
## Деплой после изменения TURN-настроек
|
||||
|
||||
Для production сначала обновить бэкап в `deploy/backup/archive/`, затем выполнить нужный server deploy script:
|
||||
|
||||
```bash
|
||||
bash deploy/scripts/production_shineupme_server.sh
|
||||
```
|
||||
|
||||
Если менялись только серверные TURN-настройки во внешнем override-конфиге, достаточно перезапустить соответствующий `shine-server.service`.
|
||||
|
||||
## Проверка звонка
|
||||
|
||||
1. Авторизоваться двумя клиентами.
|
||||
2. Запустить звонок.
|
||||
3. Проверить, что звонок устанавливается в сети, где прямой P2P затруднён.
|
||||
4. В диагностике звонков смотреть `CallDeliveryReport`, `pcIceConnectionState`, `routeLabel`, `configuredTurnHosts*`, `reachableTurnHosts*`.
|
||||
5. Если TURN недоступен, клиент должен откатиться к STUN-конфигу по умолчанию.
|
||||
Reference in New Issue
Block a user