2.5 KiB
2.5 KiB
15. LiveKit (Teleconsultation Video)
Prerequis
- Docker installe
- Sous-domaine pour LiveKit (ex:
video.<PROJET_DOMAINE>) - Certificats SSL
DNS et sous-domaine
- DNS A
video-><IP>(dans la zone du projet) - Sous-domaine ISPConfig
video.<PROJET_DOMAINE>(SSL, LE, PHP-FPM)
Ports firewall
ISPConfig > System > Firewall, ajouter :
- TCP :
7880,7881,5349 - UDP :
7882,3478
Recuperer les certificats
# Trouver les certificats generes par ISPConfig
find /var/www/clients/ -name "video.<PROJET_DOMAINE>-le.*"
# Copier
mkdir -p /chemin/projet/docker/livekit/certs
cp /var/www/clients/clientX/webY/ssl/video.<PROJET_DOMAINE>-le.crt /chemin/projet/docker/livekit/certs/fullchain.pem
cp /var/www/clients/clientX/webY/ssl/video.<PROJET_DOMAINE>-le.key /chemin/projet/docker/livekit/certs/privkey.pem
chown -R <USER>:<USER> /chemin/projet/docker/livekit/certs/
Piege : Verifier que la cle privee correspond au certificat :
openssl x509 -noout -pubkey -in certs/fullchain.pem | md5sum openssl ec -pubout -in certs/privkey.pem 2>/dev/null | md5sum # Les deux md5 doivent etre identiques
Configuration
.env
LIVEKIT_API_KEY=<generer avec: openssl rand -hex 16>
LIVEKIT_API_SECRET=<generer avec: openssl rand -base64 32>
TZ=Africa/Abidjan
LIVEKIT_CPU_LIMIT=2.0
LIVEKIT_MEM_LIMIT=2G
livekit-prod.yaml
port: 7880
redis:
address: localhost:6380 # Port different du Redis systeme (6379)
rtc:
udp_port: 7882
tcp_port: 7881
allow_tcp_fallback: true
use_external_ip: false
node_ip: <IP>
turn:
enabled: true
tls_port: 5349
udp_port: 3478
domain: video.<PROJET_DOMAINE>
cert_file: /etc/livekit/tls/fullchain.pem
key_file: /etc/livekit/tls/privkey.pem
room:
auto_create: true
empty_timeout: 300
max_participants: 2
webhook:
api_key: <LIVEKIT_API_KEY>
urls:
- https://<PROJET_DOMAINE>/api/v1/teleconsultation/livekit-webhook
Piege : Le Redis du container doit tourner sur un port different (6380) du Redis systeme (6379) quand on utilise
network_mode: host.
Demarrer
cd /chemin/projet/docker/livekit
docker compose -f docker-compose.prod.yml up -d
Verifier
docker logs djeliba_livekit_server --tail 10
# Chercher "starting LiveKit server" et "Starting TURN server"
Symfony .env
TELECONSULTATION_PROVIDER=livekit
LIVEKIT_URL=wss://video.<PROJET_DOMAINE>:7880
LIVEKIT_API_KEY=<meme valeur>
LIVEKIT_API_SECRET=<meme valeur>