2.7 KiB
2.7 KiB
CONFIGURACIÓN ROUTER - PORT FORWARDING PARA LIVEKIT
🌐 Port Forwarding necesario en tu Router
Puertos a exponer públicamente:
| Servicio | Puerto | Protocolo | IP Interna | Descripción |
|---|---|---|---|---|
| HTTP | 80 | TCP | 192.168.1.19 | Redirect a HTTPS |
| HTTPS/WSS | 443 | TCP | 192.168.1.19 | LiveKit WebSocket Secure |
| LiveKit API | 7880 | TCP | 192.168.1.19 | API directa (opcional) |
| WebRTC Media | 50000-50100 | UDP | 192.168.1.19 | Streams de audio/video |
Configuración típica router:
Regla 1: LiveKit-HTTPS
- Servicio: HTTPS/Custom
- Puerto externo: 443
- Puerto interno: 443
- IP interna: 192.168.1.19
- Protocolo: TCP
- Estado: Habilitado
Regla 2: LiveKit-HTTP
- Servicio: HTTP
- Puerto externo: 80
- Puerto interno: 80
- IP interna: 192.168.1.19
- Protocolo: TCP
- Estado: Habilitado
Regla 3: LiveKit-WebRTC
- Servicio: Custom
- Puerto externo: 50000-50100
- Puerto interno: 50000-50100
- IP interna: 192.168.1.19
- Protocolo: UDP
- Estado: Habilitado
🏠 IP Dinámica - Solución con DuckDNS
Si tu IP pública cambia (típico en casa):
# 1. Crear cuenta en DuckDNS.org
# 2. Crear subdominio: mi-livekit.duckdns.org
# 3. Script de actualización automática
# /home/usuario/update-duckdns.sh
#!/bin/bash
echo url="https://www.duckdns.org/update?domains=mi-livekit&token=TU_TOKEN&ip=" | curl -k -o ~/duckdns.log -K -
# Crontab para actualizar cada 5 minutos
# crontab -e
*/5 * * * * /home/usuario/update-duckdns.sh >/dev/null 2>&1
Configurar dominio en LiveKit:
# livekit-production.yaml
rtc:
external_ip: "mi-livekit.duckdns.org" # En lugar de IP
🔒 Certificado SSL automático con Let's Encrypt
# Instalar certbot
sudo apt install certbot
# Generar certificado para tu dominio
sudo certbot certonly --standalone -d mi-livekit.duckdns.org
# Copiar certificados para Docker
sudo cp /etc/letsencrypt/live/mi-livekit.duckdns.org/fullchain.pem ./ssl/cert.pem
sudo cp /etc/letsencrypt/live/mi-livekit.duckdns.org/privkey.pem ./ssl/key.pem
sudo chown $USER:$USER ./ssl/*.pem
# Auto-renovación (crontab)
0 12 * * * /usr/bin/certbot renew --quiet && docker-compose restart nginx-livekit
📊 Verificación de conectividad
Tests externos:
# Test puertos desde internet
nmap -p 80,443,7880 mi-livekit.duckdns.org
nmap -sU -p 50000-50010 mi-livekit.duckdns.org
# Test WebSocket
wscat -c wss://mi-livekit.duckdns.org
# Test HTTPS
curl -I https://mi-livekit.duckdns.org
URLs finales:
- LiveKit WSS:
wss://mi-livekit.duckdns.org - API HTTP:
https://mi-livekit.duckdns.org - Monitoreo:
https://mi-livekit.duckdns.org/debug