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.
- Toutes architectures.
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
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>/).# La base n'a pas de page d'accueil : 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]# STUN public opéré en Europe.stun_url = "stun:stun.nextcloud.com:443"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 »La base installée n’inclut pas encore d’interface graphique pour créer et gérer des salles. Aujourd’hui, nous conseillons de piloter la création et la gestion des salles par l’API, en installant le module API BBB (compat-api) :
- 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…).
Un module de lobby, pour créer des salles depuis une interface graphique, sera proposé gratuitement à l’avenir.
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.