openvidu/EASYPANEL-TURN-SERVER.md
Cesar Mendivil 64924f9999
Some checks failed
WebComponent E2E Tests / WebComponent E2E Tests (push) Has been cancelled
WebComponent Unit Tests / WebComponent Unit Tests (push) Has been cancelled
Backend Unit Tests / Backend Unit Tests (push) Has been cancelled
Applied new local config
2025-11-01 00:49:33 -07:00

2.3 KiB

SOLUCIÓN: TURN SERVER PARA EASYPANEL

🔄 TURN Server como alternativa para NAT traversal

¿Qué es TURN?

TURN (Traversal Using Relays around NAT) permite que WebRTC funcione sin exponer miles de puertos UDP.

🏗️ ARQUITECTURA CON TURN

Cliente → Internet → TURN Server → EasyPanel
                      (3 puertos)   (sin UDP)
                      
Vs. directo:
Cliente → Internet → EasyPanel
                     (10,000 UDP) ❌ No posible

📋 IMPLEMENTACIÓN

1. TURN Server en VPS separado

# Instalar Coturn en VPS
apt-get update
apt-get install coturn

# /etc/turnserver.conf
listening-port=3478
tls-listening-port=5349
external-ip=IP_PUBLICA_VPS
realm=turn.tu-dominio.com
lt-cred-mech
user=usuario:password123
verbose

2. Firewall VPS (Solo 3 puertos)

# Solo estos 3 puertos para TURN
ufw allow 3478/tcp    # TURN TCP
ufw allow 3478/udp    # TURN UDP  
ufw allow 5349/tcp    # TURN over TLS
ufw enable

3. LiveKit en EasyPanel con TURN

# livekit.yaml para EasyPanel
port: 7880

keys:
  devkey: tu-secret-32-chars

# SIN puertos UDP locales - usar TURN
rtc:
  # NO port_range - usa TURN
  use_external_ip: false
  
  # Configurar TURN servers
  ice_servers:
    - urls: ["stun:stun.l.google.com:19302"]
    - urls: ["turn:turn.tu-dominio.com:3478"]
      username: "usuario"  
      credential: "password123"
    - urls: ["turns:turn.tu-dominio.com:5349"]
      username: "usuario"
      credential: "password123"

4. Variables EasyPanel

# Solo TCP - SIN UDP
LIVEKIT_URL=wss://tu-app.easypanel.host/livekit
LIVEKIT_API_KEY=devkey
LIVEKIT_API_SECRET=tu-secret-32-chars

5. Nginx en EasyPanel para proxy LiveKit

# nginx.conf - agregar ruta para LiveKit
location /livekit {
    proxy_pass http://openvidu-meet:7880;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

💰 COSTOS

  • TURN VPS: $5-10/mes (pequeño VPS)
  • EasyPanel: Tu plan actual
  • Total: +$5-10/mes vs LiveKit Cloud

VENTAJAS

  • Solo 3 puertos UDP en VPS externo
  • EasyPanel sin UDP
  • NAT traversal garantizado
  • Menor costo que LiveKit Cloud

DESVENTAJAS

  • Configuración más compleja
  • VPS adicional para TURN
  • Latencia adicional (relay)
  • Ancho de banda TURN server