Référence complète pour l’interface en ligne de commande bedrud.
Synopsis
# Style sous-commande
bedrud <command> [flags]
# Style drapeau
bedrud --livekit --config <path>
bedrud --run --config <path>Commandes
run / server
Démarre le serveur de réunion Bedrud avec API, frontend web intégré et LiveKit intégré (si configuré).
bedrud run [--config <path>]
bedrud server [--config <path>]| Drapeau | Par défaut | Description |
|---|---|---|
--config | $CONFIG_PATH env var → "config.yaml" | Chemin vers le fichier de configuration YAML Bedrud |
Comportement :
- Charge la configuration depuis le chemin spécifié ou utilise les valeurs par défaut
- Démarre LiveKit intégré si configuré en mode interne
- Initialise la base de données SQLite/PostgreSQL et exécute les migrations
- Crée le serveur HTTP Fiber avec toutes les routes API
- Sert le frontend React intégré
- Prend en charge ACME (Let’s Encrypt), TLS auto-signé, TLS manuel ou HTTP simple
- Arrêt gracieux sur SIGTERM/SIGINT
Implémentation : server/internal/server/server.go
--livekit
Démarre uniquement le serveur média LiveKit intégré. Extrait le binaire depuis Go embed vers un répertoire temporaire.
bedrud --livekit --config <path>| Drapeau | Par défaut | Description |
|---|---|---|
--config | (requis) | Chemin vers le fichier de configuration YAML LiveKit |
Utilisé par : le service init livekit créé par bedrud install
Implémentation : server/internal/livekit/server.go
--run
Alias pour bedrud run avec le même comportement du drapeau --config. Utilisé par le service init bedrud.
bedrud --run --config <path>install
Installe Bedrud sur un système Debian/Linux. Crée les services init (systemd, OpenRC ou SysV init — détection automatique), fichiers de configuration, répertoires et certificats TLS.
bedrud install [flags]| Drapeau | Par défaut | Description |
|---|---|---|
--tls | false | Activer HTTPS (identique à --self-signed) |
--self-signed | false | Générer un certificat TLS auto-signé |
--no-tls | false | Désactiver TLS entièrement (HTTP simple). Remplace --tls et --self-signed |
--ip | détecté automatiquement | Remplacer l’adresse IP du serveur détectée automatiquement |
--domain | "" | Nom de domaine pour Let’s Encrypt ou certificat auto-signé |
--email | "" | E-mail pour l’enregistrement Let’s Encrypt |
--port | "443" (TLS) / "8090" (HTTP) | Remplacer le port d’écoute |
--cert | "" | Chemin vers un fichier de certificat PEM existant |
--key | "" | Chemin vers un fichier de clé privée PEM existant |
--lk-port | "7880" | Remplacer le port API/WebSocket LiveKit |
--lk-tcp-port | "7881" | Remplacer le port TCP RTC LiveKit |
--lk-udp-port | "7882" | Remplacer le port UDP RTC LiveKit |
--fresh | false | Supprimer l’installation existante avant d’installer |
--behind-proxy | false | Serveur derrière CDN/reverse-proxy (Cloudflare, nginx) |
--external-livekit | "" | URL d’un serveur LiveKit entièrement externe (machine différente) |
--livekit-domain | "" | Domaine séparé pour le serveur LiveKit local (contourne le CDN) |
Ce qu’il fait :
- Arrête et supprime l’installation précédente si
--fresh - Invite pour l’IP, domaine, e-mail, mode TLS (si non interactif et drapeaux non fournis)
- Crée les répertoires :
/etc/bedrud,/var/lib/bedrud,/var/lib/bedrud/certs,/var/log/bedrud - Copie le binaire vers
/usr/local/bin/bedrud - Génère la configuration du serveur Bedrud dans
/etc/bedrud/config.yaml - Génère la configuration du serveur média LiveKit dans
/etc/bedrud/livekit.yaml - Génère des certificats auto-signés dans
/etc/bedrud/cert.pem+/etc/bedrud/key.pem(si TLS activé et pas de certificats personnalisés) - Crée le service init LiveKit (sauf si utilisation de LiveKit externe)
- Crée le service init Bedrud
- Active et démarre les services via le système d’initialisation détecté
- Affiche les URL d’accès
Options TLS :
--domain+--email→ ACME (Let’s Encrypt)--self-signedou--tls→ certificat auto-signé--cert+--key→ certificats personnalisés--no-tls→ HTTP simple uniquement
Topologie LiveKit :
- Par défaut (intégré) : LiveKit s’exécute localement, proxifié via Bedrud sur
/livekit --livekit-domain: LiveKit s’exécute localement mais les clients se connectent directement via son propre domaine--external-livekit: Pas de LiveKit local ; connexion à un serveur distant
Implémentation : server/internal/install/linux.go
Documentation connexe : Guide d’installation • Guide de déploiement • Logique de déploiement backend
uninstall
Supprime Bedrud du système.
bedrud uninstallSupprime :
- Arrête et désactive les services sur tous les systèmes d’initialisation :
bedrud,livekit - Supprime les fichiers de service pour systemd, OpenRC et SysV init
- Supprime les binaires :
/usr/local/bin/bedrud,/tmp/bedrud,/tmp/bedrud-livekit-server - Supprime les répertoires :
/etc/bedrud,/var/lib/bedrud,/var/log/bedrud - Supprime l’utilisateur système : bedrud
Implémentation : server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)
Documentation connexe : Guide d’installation - Désinstallation
user
Gère les utilisateurs dans la base de données Bedrud.
bedrud user [--config <path>] <subcommand> [flags]| Drapeau global | Par défaut | Description |
|---|---|---|
--config | /etc/bedrud/config.yaml | Chemin vers le fichier de configuration Bedrud (pour localiser la base de données) |
create
Crée un nouvel utilisateur avec authentification locale (mot de passe haché avec bcrypt).
bedrud user [--config <path>] create --email <email> --password <password> --name <name> [--admin]Drapeaux requis :
--email: Adresse e-mail de l’utilisateur--password: Mot de passe de l’utilisateur, haché avec bcrypt avant stockage--name: Nom d’affichage de l’utilisateur
Drapeaux optionnels :
--admin: Créer l’utilisateur en tant que superadmin
Niveau d’accès : user par défaut. Utilisez --admin pour créer un superadmin en une commande.
delete
Supprime un utilisateur par adresse e-mail.
bedrud user [--config <path>] delete --email <email>promote
Définit le rôle d’un utilisateur en remplaçant son tableau d’accès. Par défaut : superadmin.
bedrud user [--config <path>] promote --email <email> [--role <role>]| Flag | Défaut | Description |
|---|---|---|
--role | superadmin | Rôle cible : superadmin, admin, moderator, user, guest |
Exemples :
# Accorder superadmin (par défaut)
bedrud user promote --email admin@example.com
# Accorder admin
bedrud user promote --email admin@example.com --role admin
# Accorder moderator
bedrud user promote --email mod@example.com --role moderatorChaque rôle correspond à un tableau d’accès spécifique :
superadmin→['superadmin', 'user']admin→['admin', 'user']moderator→['moderator', 'user']user→['user']guest→['guest']
demote
Supprime un rôle spécifique d’un utilisateur. Par défaut : superadmin.
bedrud user [--config <path>] demote --email <email> [--role <role>]| Flag | Défaut | Description |
|---|---|---|
--role | superadmin | Rôle à supprimer : superadmin, admin, moderator |
Si l’utilisateur n’a plus de rôles après la suppression, l’accès user est ajouté automatiquement.
Implémentation : server/internal/usercli/usercli.go
cert
Gérer les certificats TLS. Pertinent uniquement lors de l’utilisation de certificats auto-signés (générés par bedrud install --self-signed).
bedrud cert [--config <path>] <subcommand>| Drapeau global | Défaut | Description |
|---|---|---|
--config | /etc/bedrud/config.yaml | Chemin vers le fichier de configuration |
--algo | "" | Algorithme de clé : ed25519, ecdsa256, rsa2048, rsa4096 (par défaut : détection depuis le certificat existant) |
renew
Renouveler manuellement le certificat TLS auto-signé. Détecte l’algorithme de clé du certificat existant et régénère avec le même type (par défaut : Ed25519). Le nouveau certificat est valable 1825 jours (~5 ans).
bedrud cert renew [--config <path>]Le serveur renouvelle également le certificat automatiquement chaque jour via son planificateur intégré lorsqu’il reste moins de 30 jours avant l’expiration. Cette commande est destinée au renouvellement manuel ou exceptionnel.
SANs : Dérivés de la configuration du serveur — domain (si défini), ainsi que localhost, 127.0.0.1 et ::1.
Implémentation : server/internal/utils/tls.go (RenewSelfSignedCert)
info
Afficher les métadonnées du certificat TLS sur stdout.
bedrud cert info [--config <path>]Champs de sortie : subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SANs.
Implémentation : server/internal/utils/tls.go (ValidateTLSCertPair)
help
Affiche le message d’utilisation avec toutes les commandes et drapeaux.
bedrud helpDéclenché également lorsqu’aucun argument n’est fourni. Affiche la sortie de printUsage().
Exemples
Démarrage de serveur de développement de base
# Exécuter avec config.yaml par défaut dans le répertoire courant
bedrud run
# Exécuter avec une configuration personnalisée
bedrud run --config /path/to/config.yaml
# Via variable d'environnement (fallback)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud runInstallation interactive (invite pour les entrées)
bedrud installInstallation non interactive avec Let’s Encrypt
bedrud install --domain example.com --email admin@example.comTLS auto-signé avec ports personnalisés
bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882Derrière CDN avec domaine LiveKit séparé
bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxyRéinstallation fraîche
bedrud install --fresh --domain example.com --email admin@example.comGestion des utilisateurs
# Créer le premier utilisateur administrateur (une seule commande)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
# Ou créer un utilisateur régulier, puis promouvoir
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
# Créer un utilisateur régulier
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
# Supprimer un utilisateur
bedrud user [--config <path>] delete --email user@example.com
# Retirer l'accès administrateur
bedrud user [--config <path>] demote --email admin@example.comDocumentation connexe
- Guide d’installation - Guide détaillé de
bedrud install, topologies TLS, étapes post-installation - Référence de configuration - Structure des fichiers de configuration serveur et LiveKit
- Logique de déploiement backend - Fonctionnement interne de
installetuninstall - Guide de déploiement - Options complètes de déploiement incluant les services du système d’initialisation