Bedrud Documentation

Ce guide explique comment déployer Bedrud sur un serveur de production.

Options de déploiement

MéthodeIdéal pour
Gestionnaire de paquets (apt/AUR)Installation gérée sur les distributions Linux prises en charge
CLI automatiséConfiguration à distance rapide
Installation manuelleContrôle total de la configuration
DockerEnvironnements conteneurisés
Mode ApplianceConfiguration tout-en-un en binaire unique

Gestionnaire de paquets

Installez Bedrud sur Debian/Ubuntu ou Arch Linux en utilisant le gestionnaire de paquets natif. C’est la méthode recommandée pour les déploiements de serveurs persistants où vous souhaitez des mises à jour automatiques via apt upgrade ou l’AUR.

Consultez le guide d’installation par paquet pour les instructions complètes, y compris l’ajout de la clé GPG apt et du dépôt.

# Ubuntu / Debian
sudo apt install bedrud
 
# Arch Linux (AUR)
yay -S bedrud-bin

Après l’installation, exécutez l’installateur interactif pour configurer TLS, les services systemd et la base de données :

sudo bedrud install

Déploiement CLI automatisé

Le moyen le plus rapide de déployer. Exécutez depuis votre machine locale :

Prérequis : Python 3.10+, uv, et accès SSH au serveur cible.

cd tools/cli
uv run python bedrud.py --auto-config \
  --ip <server-ip> \
  --user root \
  --auth-key ~/.ssh/id_rsa \
  --domain meet.example.com \
  --acme-email admin@example.com

Cela va :

  1. Construire le binaire backend localement
  2. Compresser et le télécharger via rsync
  3. Effacer les serveurs web en conflit
  4. Configurer le pare-feu
  5. Installer et démarrer les services sur le serveur

Options CLI

DrapeauDescription
--ipAdresse IP du serveur
--userUtilisateur SSH (par défaut : root)
--auth-keyChemin vers la clé privée SSH
--domainNom de domaine pour Let’s Encrypt
--acme-emailE-mail pour Let’s Encrypt
--uninstallSupprimer Bedrud du serveur

Installation manuelle

1. Construire le binaire

make build-dist

Cela produit dist/bedrud_linux_amd64.tar.xz.

2. Télécharger sur le serveur

scp dist/bedrud_linux_amd64.tar.xz root@server:/tmp/
ssh root@server "cd /tmp && tar xf bedrud_linux_amd64.tar.xz"

3. Installer

ssh root@server
sudo /tmp/bedrud install --tls --domain meet.example.com --email admin@example.com

Consultez le Guide d’installation pour tous les scénarios d’installation.

4. Créer un utilisateur administrateur

Promote User to Admin

Register via the web UI at your server URL, then promote the user to admin:

			
sudo ./bedrud user promote --email admin@example.com
		

Déploiement Docker

Construisez et exécutez avec Docker :

docker build -t bedrud .
docker run -d --name bedrud -p 8090:8090 -p 7880:7880 -v bedrud-data:/var/lib/bedrud bedrud

Une image préconstruite est également disponible :

docker pull ghcr.io/bedrud-ir/bedrud:latest

Consultez le Guide Docker pour tous les détails, y compris les volumes, la configuration et Docker Compose.


Architecture de production

flowchart TB
    NET[Internet] --> TRAEFIK["Traefik (443)<br/>TLS termination, reverse proxy"]
    TRAEFIK --> BEDRUD["Bedrud (8090)<br/>API + Web UI"]
    TRAEFIK --> LIVEKIT["LiveKit (7880)<br/>WebRTC media"]
    BEDRUD --> DB["SQLite<br/>(or PostgreSQL)"]

Pour la connectivité WebRTC, ouvrez également ces ports sur le pare-feu :

PortProtocoleObjectif
3478UDPTURN/UDP + STUN
5349TCPTURN/TLS (ou utiliser 443)
7881TCPICE/TCP fallback
50000-60000UDPFlux média RTC

Consultez Connectivité WebRTC pour la pile de connectivité complète.

Systemd Services

The installer creates two systemd services:

Service Command Purpose
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + web
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml Media server

Gestion des services

# Vérifier l'état
systemctl status bedrud livekit
 
# Redémarrer
systemctl restart bedrud
 
# Voir les journaux
journalctl -u bedrud -f
tail -f /var/log/bedrud/bedrud.log

Emplacements des fichiers (Production)

CheminContenu
/usr/local/bin/bedrudBinaire
/etc/bedrud/config.yamlConfiguration du serveur
/etc/bedrud/livekit.yamlConfiguration LiveKit
/var/lib/bedrud/bedrud.dbBase de données SQLite
/var/log/bedrud/bedrud.logJournaux de l’application

CI/CD

Pipeline de release

Le workflow release.yml se déclenche sur les balises de version (v*) et produit :

ArtefactDescription
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzBinaires serveur (Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debPaquets Debian/Ubuntu (serveur)
Image Docker (ghcr.io/bedrud-ir/bedrud)Image conteneur multi-arch pushée sur GHCR
bedrud-desktop-linux-x86_64.AppImageDesktop - AppImage Linux universelle
bedrud-desktop-linux-x86_64.debDesktop - Paquet Debian/Ubuntu
bedrud-desktop-linux-x86_64.tar.xzDesktop - Archive portable Linux
bedrud-desktop-windows-x86_64-setup.exe / -arm64-setup.exeDesktop - Installateur NSIS Windows
bedrud-desktop-windows-x86_64.zip / -arm64.zipDesktop - Portable Windows
bedrud-desktop-macos-x86_64.tar.gz / -arm64.tar.gzDesktop - Portable macOS (non signé)
APK Android (debug + release, par arch)Builds client Android
IPA iOS (optionnel, nécessite signature)Archive client iOS

Tous les artefacts sont attachés à la release GitHub.

Builds nocturnes

Le workflow dev-nightly.yml produit des builds de développement selon un calendrier.

Vérifications CI

Chaque push vers main et chaque pull request exécute :

VérificationPlateforme
go vet + build + testsubuntu-latest (Go 1.24)
Type check + buildubuntu-latest (Bun)
Lint + tests unitairesubuntu-latest (JDK 17)
Build + testmacos-15 (Xcode)