Files
vps-docs/15-livekit.md
2026-04-08 16:15:11 +02:00

2.5 KiB

15. LiveKit (Teleconsultation Video)

Prerequis

  • Docker installe
  • Sous-domaine pour LiveKit (ex: video.<PROJET_DOMAINE>)
  • Certificats SSL

DNS et sous-domaine

  1. DNS A video -> <IP> (dans la zone du projet)
  2. 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>