Variables d'environnement
L’installeur règle la plupart de ces variables automatiquement. Vous n’avez en général à y toucher que pour du réglage fin. Les valeurs « (aucune) » signifient qu’il n’y a pas de défaut (la variable est facultative ou fournie par l’installeur).
Réseau et WebRTC
Section intitulée « Réseau et WebRTC »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_EXTERNAL_IP | (aucune) | Adresse IP publique annoncée aux clients (candidat ICE, traversée de NAT) |
VUISIO_UDP_PORT_BASE | 16384 | Port UDP de base des threads SFU |
VUISIO_STUN_URL | (aucune) | Serveur STUN à annoncer aux clients |
VUISIO_TURN_URL | (aucune) | Serveur(s) TURN (séparés par des virgules) |
VUISIO_TURN_SECRET | (aucune) | Secret des identifiants TURN éphémères |
VUISIO_TURN_CREDENTIAL_TTL | 86400 | Durée de vie des identifiants TURN (secondes) |
VUISIO_ALLOWED_ORIGINS | (aucune) | Origines CORS autorisées (séparées par des virgules) |
VUISIO_TRUSTED_PROXIES | (aucune) | IP des reverse-proxies de confiance (pour X-Forwarded-For) |
Hôtes et ports
Section intitulée « Hôtes et ports »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_HTTP_HOST | 0.0.0.0 | Adresse d’écoute du serveur HTTP |
VUISIO_GRPC_HOST | 0.0.0.0 | Adresse d’écoute des serveurs gRPC |
VUISIO_REGISTRY_PORT | 50050 | Port gRPC du registre de modules |
Le port HTTP du SFU est fixé à 3000.
Persistance et secrets
Section intitulée « Persistance et secrets »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_REDIS_URL | (aucune) | URL Redis. Sans elle, les salles sont éphémères (en mémoire) |
VUISIO_ENCRYPTION_KEY | (aucune) | Clé AES-256-GCM (base64, 32 octets) chiffrant les données Redis |
VUISIO_ALLOW_INSECURE | false | Autoriser le démarrage sans clé de chiffrement (développement seulement) |
VUISIO_METRICS_TOKEN | (aucune) | Jeton bearer de l’endpoint /metrics (absent = endpoint désactivé) |
VUISIO_GRPC_AUTH_TOKEN | (aucune) | Jeton d’authentification des services gRPC |
Médias et capacité
Section intitulée « Médias et capacité »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_SFU_THREADS | processeurs logiques moins 1 jusqu’à 4, moins 2 au-delà | Nombre de threads de traitement WebRTC. L’installeur l’écrit d’après la machine ; les processeurs laissés de côté servent au réseau du système, à nginx et au reste, et c’est ce qui garde le serveur réactif s’il est poussé au-delà de sa capacité |
VUISIO_MAX_PARTICIPANTS_PER_ROOM | 0 | Plafond de participants par salle. 0 veut dire sans limite, et c’est le défaut : posez une valeur si vous voulez un plafond |
VUISIO_ROOM_CREATIONS_PER_MINUTE | 30 | Salles qu’une même adresse IP peut créer par minute (on crée une salle en rejoignant une salle qui n’existe pas encore). Rejoindre une salle existante n’est jamais compté : une classe derrière l’adresse de son école entre aussi vite qu’elle clique. Au-delà, le serveur répond « trop de requêtes » et le client web réessaie seul. 0 = sans limite, par exemple sur un serveur dédié à un test de charge |
VUISIO_VIDEO_SUBSCRIPTIONS | activé | Le client web déclare au serveur les caméras qu’il affiche et la taille de chaque tuile. Le serveur ne lui relaie que celles-là, chacune à la qualité de sa tuile, sans plafond de nombre : seul le réseau du participant abaisse la qualité. 0 ou false ignore ces déclarations et remet tout le monde sous VUISIO_LAST_N_VIDEO, un retour arrière sans nouvelle version |
VUISIO_LAST_N_VIDEO | 4 | Nombre de caméras relayées à un participant qui ne déclare pas celles qu’il affiche : un client web d’avant les déclarations, un robot de charge, ou tout le monde si VUISIO_VIDEO_SUBSCRIPTIONS est coupée. Ce sont les caméras des derniers orateurs. 0 = toutes |
VUISIO_SDP_DEFLATE | activé | Compresse les négociations (SDP) échangées avec un client qui le demande, ce que fait le client web. Sans compression, dans une salle de plus de 90 personnes environ, un participant n’entend pas les voix suivantes et ne reçoit aucune caméra. 0 ou false : négociations non compressées pour tous |
VUISIO_AUDIO_RED | 1 | Audio redondant (RED) : chaque paquet audio porte aussi la trame précédente, si bien qu’un paquet perdu isolé se reconstitue au lieu d’être masqué. 1 : activé pour chaque participant qui perd 2 % des paquets ou plus, retiré sous 0,5 %. 0 : jamais, pas même proposé. force : toujours, pour mesurer son coût. Voir Audio sur un réseau qui perd des paquets |
VUISIO_DISCARD_SILENCE | true | Cesse de relayer l’audio d’un participant muet (son micro coupé). Le premier paquet de parole repasse immédiatement, aucune attaque de voix n’est coupée |
VUISIO_DIAG_AUDIO_SECS | (aucune) | Diagnostic, coupé par défaut. Écrit toutes les N secondes une ligne de journal par participant qui publie : nombre de paquets audio, paquets sans extension de niveau, histogramme des niveaux et tours de parole ouverts et fermés. Sert à comprendre un temps de parole qui ne ressemble pas à la réunion. Rien n’en paraît côté navigateur ni dans le bilan d’une réunion |
VUISIO_OPUS_PTIME | 20 | Durée d’une trame audio en millisecondes (10, 20, 40 ou 60). Une valeur plus élevée divise le nombre de paquets, au prix d’un peu de latence |
VUISIO_BWE_INITIAL_KBPS | 1000 | Débit initial de l’estimation de bande passante (kbps) |
VUISIO_SPEAKER_COOLDOWN_MS | 1500 | Délai minimal avant changement d’orateur actif (ms) |
VUISIO_SPEAKER_ALPHA | 0.3 | Lissage du suivi des niveaux audio |
VUISIO_REORDER_VIDEO | 8 | Taille du tampon de réordonnancement vidéo (paquets) |
VUISIO_STATS_INTERVAL_SECS | 2 | Intervalle de collecte des statistiques (secondes) |
Interactions
Section intitulée « Interactions »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_HAND_RAISE_TIMEOUT_SECS | 120 | Délai avant qu’une main levée retombe (secondes) |
VUISIO_REACTION_RATE_LIMIT | 5 | Réactions maximum par fenêtre et par client |
VUISIO_REACTION_RATE_WINDOW_SECS | 10 | Fenêtre de la limite de réactions (secondes) |
NEXT_PUBLIC_GUEST_EXIT_URL | (aucune) | Où atterrit un invité qui quitte une réunion. Se pose sur le client web. Vide, on retourne au hall, comme avant |
Sessions, modules et répertoires
Section intitulée « Sessions, modules et répertoires »| Variable | Défaut | Rôle |
|---|---|---|
VUISIO_SESSIONS_DIR | /var/lib/vuisio/sessions | Répertoire des données de session (JSON) |
VUISIO_SESSIONS_RETENTION_DAYS | 30 | Jours de conservation d’une réunion terminée ; 0 conserve indéfiniment |
VUISIO_RECORDINGS_DIR | /var/lib/vuisio/recordings | Répertoire des métadonnées d’enregistrement |
VUISIO_PUBLIC_URL | (aucune) | Origine publique du serveur, pour les liens de tableau de bord servis à une application tierce |
VUISIO_ROOM_DEFAULTS_FILE | (aucune) | Fichier TOML des défauts de salle et options de modules |
VUISIO_TENANTS_FILE | (aucune) | Fichier JSON du registre des clés API par locataire. Sans lui, une seule clé primaire issue de VUISIO_ROOM_API_TOKEN. Géré par vuisio tenant ; voir Multi-locataires |
VUISIO_DEFAULT_MAX_PARTICIPANTS | 0 | Plafond par défaut si absent du fichier de défauts. 0 veut dire sans limite |
VUISIO_MODULES_ENABLED | (tous) | Liste des modules autorisés (séparés par des virgules) |
VUISIO_MODULES_STARTUP_TIMEOUT | 30 | Attente de l’enregistrement des modules au démarrage (secondes) |
VUISIO_MODULE_CONNECT_TIMEOUT_MS | 3000 | Délai maximal pour ouvrir une connexion vers un module (ms) |
VUISIO_MODULE_CALL_TIMEOUT_MS | 10000 | Délai maximal d’un appel de l’orchestrateur vers un module, réponse comprise (ms). Les appels qui le dépassent sont comptés dans vuisio_module_call_timeouts_total |
VUISIO_MODULES_DIR | modules | Répertoire de découverte des interfaces de modules |
VUISIO_WEBCLIENT_DIR | modules/webclient/out | Répertoire des fichiers statiques du client web |