Files
SHiNE-server/deploy/SETUP_TURN_SERVER.md
T

2.1 KiB

Настройка TURN-сервера

TURN-хосты SHiNE должны использовать домены:

  • turn1.shineup.me
  • turn2.shineup.me
  • turn3.shineup.me

IP не фиксировать в документах и скриптах как основной идентификатор.

1. DNS

Создать или обновить DNS A/AAAA для нужного turnX.shineup.me.

2. Пакеты

sudo apt update
sudo apt install -y coturn caddy

Можно использовать вспомогательный скрипт на самом TURN-хосте:

sudo bash deploy/scripts/setup_turn_coturn.sh --realm turn1.shineup.me --secret CHANGE_ME_LONG_RANDOM_SECRET

3. coturn

Секреты не хранить в git. Настраивать на сервере через /etc/turnserver.conf или отдельный secret/override.

Минимальная схема:

listening-port=3478
tls-listening-port=5349
fingerprint
lt-cred-mech
realm=turn1.shineup.me
server-name=turn1.shineup.me
use-auth-secret
static-auth-secret=<secret-on-server-only>
no-multicast-peers
no-cli

Включить сервис:

sudo systemctl enable coturn
sudo systemctl restart coturn

4. Caddy

Caddy можно использовать для HTTPS health/check endpoint и автоматического TLS на домене.

Пример:

turn1.shineup.me {
  respond /health "ok" 200
}

Проверка:

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl restart caddy
curl -I https://turn1.shineup.me/health

5. Проверка портов

sudo systemctl --no-pager --full status coturn caddy
sudo ss -lntup | grep -E ':(3478|5349)'

6. Важное

  • TURN credentials и shared secret не коммитить.
  • Если TURN домен переносится на другой VPS, менять DNS, а не код приложения.
  • После изменения TURN-адресов обновить серверные/UI настройки, где они используются.