Installer un serveur
vuisio-installer est un installeur interactif (interface texte) qui amène un
serveur Debian ou Ubuntu jusqu’à une instance Vuisio en service. Il prend en
charge la détection du serveur, un preset de dimensionnement, le choix du
runtime, la configuration de nginx et du certificat TLS, les réglages système
(sysctl, gouverneur de fréquence, pare-feu), la génération des secrets et les
contrôles de santé.
Choisir un runtime
Section intitulée « Choisir un runtime »L’installeur propose deux runtimes. Le choix se fait pendant l’installation.
Le plus simple. L’installeur tire les images depuis le registre Vuisio et lance
un docker compose dans le répertoire d’installation (/opt/vuisio par
défaut).
- Systèmes supportés : Debian 11 ou plus récent, Ubuntu 22.04 ou plus récent, x86-64 uniquement.
Pour des performances maximales. L’installeur télécharge les artefacts (le
binaire du SFU et le client web) depuis le serveur de releases public, et les
lance comme services systemd (vuisio.target regroupe vuisio-redis,
vuisio-orchestrator et vuisio-webclient) sous l’utilisateur système
vuisio.
- Systèmes supportés : Debian 12 ou plus récent, Ubuntu 24.04 ou plus récent, x86-64 uniquement.
- Le SFU écoute l’UDP directement sur l’hôte, sans pont ni NAT Docker.
- Convient aux conteneurs LXC, où le runtime Docker ne fonctionne pas.
- Disposition des fichiers :
<install_dir>/releases/<tag>/avec un lien symboliquecurrent(bascule atomique à la mise à jour, les anciennes versions sont conservées pour un retour arrière).
Installation pas à pas
Section intitulée « Installation pas à pas »-
Récupérer l’installeur. Le binaire et ses sommes de contrôle sont publiés sur le serveur de releases public (aucune authentification, le cœur est public).
Fenêtre de terminal curl -fsSLO https://releases.vuis.io/latest/vuisio-installercurl -fsSLO https://releases.vuis.io/latest/SHA256SUMSsha256sum --check --ignore-missing SHA256SUMSchmod +x ./vuisio-installer -
Lancer l’installation. En mode interactif, l’installeur détecte le serveur, propose un preset de dimensionnement, puis vous laisse choisir le runtime et renseigner le domaine.
Fenêtre de terminal sudo ./vuisio-installer install -
Laisser l’installeur travailler. Il configure nginx et obtient le certificat TLS (certbot en mode webroot), applique les réglages système, génère les secrets (une seule fois, puis préservés) et vérifie la santé des services.
-
Vérifier. Les sondes interrogent de vraies routes :
/healthsur le SFU et/api/healthsur le client web. La commandedoctorrejoue ces contrôles à tout moment.Fenêtre de terminal vuisio doctor
Serveur STUN/TURN intégré
Section intitulée « Serveur STUN/TURN intégré »Pour rejoindre une réunion, chaque navigateur doit établir un chemin média vers le serveur. Un service STUN aide à découvrir son adresse publique (média direct), et un relais TURN prend le relais quand un chemin direct est impossible (réseaux d’entreprise ou scolaires verrouillés). L’installeur propose de déployer un serveur STUN/TURN Vuisio sur le même serveur, plutôt que de dépendre d’un tiers.
Répondez « oui » à la question de connectivité (elle apparaît quand TLS est activé). L’installeur :
- génère un secret partagé, scellé dans le coffre chiffré et jamais écrit en clair, utilisé à la fois par l’orchestrateur et par le relais ;
- déploie le relais (service systemd en mode natif, conteneur en mode Docker) ;
- expose le relais sur
3478(STUN/TURN) et TURNS sur443, ce qui traverse la plupart des pare-feux stricts ; - oriente automatiquement les navigateurs vers ce serveur.
En mode non interactif, activez-le dans la section [ice] du fichier de réponses
(bundled = true, plus turn_host si vous voulez un autre nom que le défaut).
Installation non interactive
Section intitulée « Installation non interactive »Pour automatiser une installation (CI, déploiements en série), passez les réponses dans un fichier TOML plutôt que de répondre aux questions :
sudo ./vuisio-installer install --non-interactive --answers answers.toml
# Pour visualiser le plan sans rien modifier :sudo ./vuisio-installer install --non-interactive --answers answers.toml --dry-runLes secrets ne figurent pas dans ce fichier : ils sont générés sur le
serveur et préservés entre les exécutions. Seuls external_ip, domain,
preset, le bloc [tls] et le bloc [registry] sont obligatoires, le reste a
des valeurs par défaut.
# Fichier de réponses : vuisio-installer install --non-interactive --answers answers.toml
external_ip = "203.0.113.7"domain = "meet.example.com"
# Dimensionnement : lowpower | standard | large.preset = "standard"
# Runtime : docker (par défaut) | native.# native = services systemd, performances maximales (le SFU écoute l'UDP# directement sur l'hôte) ; nécessite Debian 12+/Ubuntu 24.04+ x86-64.runtime = "docker"
# Répertoire d'installation (défaut /opt/vuisio).# install_dir = "/opt/vuisio"
# Épingler le gouverneur de fréquence sur "performance" (utile sur petits CPU).governor = false
# Où rediriger un visiteur qui ouvre le domaine nu (https://<domaine>/).# Sans page d'accueil (installez le module lobby pour en avoir une), les# participants arrivent par des liens profonds. Vide = servir le client web.home_redirect_url = ""
[tls]# mode : actalis | letsencrypt | own | none.# actalis : autorité européenne (italienne) gratuite, mise en avant ;# email + eab_kid + eab_hmac (compte gratuit Actalis, page Manage with ACME).# letsencrypt : email requis (staging = true pour tester sans entamer le quota).# own : certificate + key (chemins de fichiers).# none : HTTP brut (développement uniquement).mode = "actalis"email = "ops@example.com"eab_kid = "REMPLACER_PAR_LE_KEY_ID_ACTALIS"eab_hmac = "REMPLACER_PAR_LA_CLE_HMAC_ACTALIS"
[ice]# Déployer un serveur STUN/TURN Vuisio sur CE serveur (recommandé pour garantir# la connectivité derrière les pare-feux stricts). Nécessite TLS et un second nom# DNS pour le relais (défaut turn.<domaine>), pointé vers cette machine ; il est# ajouté au certificat automatiquement. Quand bundled = true, les trois valeurs# ci-dessous sont ignorées (dérivées automatiquement) et le secret est généré.bundled = false# Nom DNS du relais pour TURNS sur 443 (vide = turn.<domaine>).turn_host = ""# Mode externe (bundled = false) : pointer vers un serveur STUN/TURN existant.# STUN public opéré en Europe.stun_url = "stun:stun.nextcloud.com:443"# Séparés par des virgules ; pour les pare-feux stricts, incluez une entrée# turns:hote:443?transport=tcp.turn_url = ""turn_secret = ""
[registry]# Registre des images (mode Docker) et des artefacts (mode natif).host = "registry.lab.frogg.it"prefix = "registry.lab.frogg.it/geezot/vuisio"username = "deploy-token-user"# Docker : un token vide réutilise un docker login en cache.# Natif : requis pour télécharger les artefacts.token = ""
# Tableau de bord de supervision (Prometheus + Grafana), désactivé par défaut.[monitoring]enabled = false# allowed_cidrs = ["10.0.0.0/8"] # CIDR autorisés à atteindre /grafana/# grafana_user = "admin"# grafana_password = "" # vide = secret généré automatiquement
# Serveur de releases (à surcharger seulement pour des tests locaux).# [artifacts]# base_url = "http://10.211.75.1:8000"
# Mises à jour automatiques, désactivées par défaut.# [updates]# auto = false# schedule = "daily" # daily | weekly# time = "04:00" # horloge 24 h, heure du serveur# day = "Sun" # hebdomadaire : Mon | Tue | Wed | Thu | Fri | Sat | Sun
# Surcharge ponctuelle des valeurs du preset.# [tuning]# VUISIO_SFU_THREADS = "2"# VUISIO_MAX_PARTICIPANTS_PER_ROOM = "30"
# Options par défaut des nouvelles salles. Chaque option a une valeur de départ# et un drapeau "locked" (verrouillée = imposée, non modifiable dans les salles).# [room_defaults.allow_microphone_on_join]# value = false # les participants arrivent muets# locked = true# [room_defaults.webcams_only_for_moderator]# value = true# locked = falsePiloter l’instance au quotidien
Section intitulée « Piloter l’instance au quotidien »Le binaire est aussi l’outil d’administration, via l’alias court vuisio (un
lien symbolique vers /usr/local/bin/vuisio-installer, créé à l’installation).
Chaque commande lit le runtime depuis le manifeste d’installation et pilote
docker compose ou systemd en conséquence.
| Commande | Rôle |
|---|---|
vuisio status | État des services |
vuisio start et vuisio stop | Démarrer et arrêter |
vuisio restart (alias reboot) | Redémarrer |
vuisio logs [-f] [service] | Journaux (suivi en direct avec -f) |
vuisio doctor | Diagnostiquer l’instance |
vuisio upgrade | Mettre à jour vers la dernière version |
vuisio reconfigure | Reprendre la configuration pré remplie |
vuisio secrets | Afficher ou faire tourner les secrets du coffre chiffré |
vuisio module | Gérer les modules optionnels (lister, ajouter, retirer) |
vuisio completions | Générer la complétion shell (bash, zsh, fish…) |
vuisio uninstall | Désinstaller |
Créer et gérer des salles
Section intitulée « Créer et gérer des salles »Le plus simple est d’installer le module lobby, une page d’accueil gratuite où chacun crée une salle en un clic et la partage par lien d’invitation, sans aucune intégration :
vuisio module add lobbyUne fois installé, le lobby devient la page d’accueil de votre instance. Voir le module lobby pour les détails.
Pour brancher Vuisio sur une plateforme existante, vous pouvez aussi (ou à la place) piloter les salles par l’API, en installant le module compatibilité BBB et Jitsi (compat) :
- depuis un LMS (Moodle, Greenlight…) branché sur cette API ;
- ou avec l’outil API Mate, une page web qui aide à construire et lancer les appels à l’API BigBlueButton (créer une réunion, obtenir un lien de connexion…).
Les secrets
Section intitulée « Les secrets »L’installeur génère une fois pour toutes les secrets nécessaires (clé de chiffrement des données, jetons d’authentification interne, mot de passe Redis), les scelle dans un coffre chiffré en AES-256-GCM, et les préserve à chaque réexécution. La clé de chiffrement des données n’est jamais régénérée automatiquement : sinon, les données déjà stockées dans Redis deviendraient illisibles.
Par défaut, l’installeur met en avant Actalis, une autorité de
certification européenne (italienne), l’équivalent européen de Let’s Encrypt.
Elle délivre gratuitement des certificats de validation de domaine (90 jours)
via ACME. Vous fournissez des identifiants EAB (eab_kid et eab_hmac),
récupérés en créant un compte gratuit chez Actalis, sur la page « Manage with
ACME ». Le certificat est obtenu par certbot en mode webroot (jamais
--nginx).
Trois autres modes sont disponibles :
- Let’s Encrypt : ne demande qu’un email. L’option
--le-stagingpermet de tester sans entamer les quotas. - Votre propre certificat : vous indiquez les chemins du certificat et de la clé.
- Aucun TLS : HTTP brut, via
--skip-tls, réservé aux tests.
Mises à jour
Section intitulée « Mises à jour »Les versions sont découvertes depuis le serveur de releases public
(versions.json : dernière version et changelogs). Par défaut, vuisio upgrade
vise la dernière version, prend un verrou pour éviter les exécutions
concurrentes, et ne fait rien si l’instance est déjà à jour. Pour épingler une
version ou revenir en arrière, utilisez --version-tag. En mode --auto, un
échec des contrôles de santé déclenche un retour arrière automatique.