Bedrud Dokumentation

Diese Anleitung erklärt, wie Sie Bedrud auf einem Produktionsserver bereitstellen.

Bereitstellungsoptionen

MethodeAm besten für
Paketverwaltung (apt/AUR)Verwaltete Installation auf unterstützten Linux-Distributionen
Automatisierte CLISchnelles Remote-Setup
Manuelle InstallationVolle Kontrolle über die Konfiguration
DockerContainerisierte Umgebungen
Appliance-ModusSingle-Binary-All-in-One-Setup

Paketverwaltung

Installieren Sie Bedrud auf Debian/Ubuntu oder Arch Linux über den nativen Paketmanager. Dies ist die empfohlene Methode für dauerhafte Serverbereitstellungen, bei denen Sie automatische Updates über apt upgrade oder das AUR wünschen.

Siehe die Paketinstallationsanleitung für vollständige Anweisungen, einschließlich des Hinzufügens des apt-GPG-Schlüssels und des Repositorys.

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

Führen Sie nach der Installation das interaktive Installationsprogramm aus, um TLS, systemd-Dienste und die Datenbank zu konfigurieren:

sudo bedrud install

Automatisierte CLI-Bereitstellung

Der schnellste Weg zur Bereitstellung. Führen Sie es von Ihrem lokalen Rechner aus:

Voraussetzungen: Python 3.10+, uv und SSH-Zugriff auf den Zielserver.

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

Dies wird:

  1. Das Backend-Binary lokal erstellen
  2. Es komprimieren und per rsync hochladen
  3. Konfliktreiche Webserver entfernen
  4. Die Firewall konfigurieren
  5. Dienste auf dem Server installieren und starten

CLI-Optionen

FlagBeschreibung
--ipServer-IP-Adresse
--userSSH-Benutzer (Standard: root)
--auth-keyPfad zum privaten SSH-Schlüssel
--domainDomainname für Let’s Encrypt
--acme-emailE-Mail für Let’s Encrypt
--uninstallBedrud vom Server entfernen

Manuelle Installation

1. Binary erstellen

make build-dist

Dies erzeugt dist/bedrud_linux_amd64.tar.xz.

2. Auf den Server hochladen

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

3. Installieren

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

Siehe die Installationsanleitung für alle Installationsszenarien.

4. Administrator erstellen

Benutzer zum Admin befördern

Registrieren Sie sich über die Web-UI unter Ihrer Server-URL und befördern Sie den Benutzer anschließend zum Admin:

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

Docker-Bereitstellung

Erstellen und Ausführen mit Docker:

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

Ein vorgefertigtes Image ist ebenfalls verfügbar:

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

Siehe die Docker-Anleitung für vollständige Details inklusive Volumes, Konfiguration und Docker Compose.


Produktionsarchitektur

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)"]

Für WebRTC-Konnektivität öffnen Sie zusätzlich diese Ports in der Firewall:

PortProtokollZweck
3478UDPTURN/UDP + STUN
5349TCPTURN/TLS (oder 443 verwenden)
7881TCPICE/TCP-Fallback
50000-60000UDPRTC-Medienstreams

Siehe WebRTC-Konnektivität für den vollständigen Konnektivitäts-Stack.

Systemd-Dienste

Das Installationsprogramm erstellt zwei systemd-Dienste:

Dienst Befehl Zweck
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + Web
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml Mediaserver

Dienste verwalten

# Check status
systemctl status bedrud livekit
 
# Restart
systemctl restart bedrud
 
# View logs
journalctl -u bedrud -f
tail -f /var/log/bedrud/bedrud.log

Dateipfade (Produktion)

PfadInhalt
/usr/local/bin/bedrudBinary
/etc/bedrud/config.yamlServerkonfiguration
/etc/bedrud/livekit.yamlLiveKit-Konfiguration
/var/lib/bedrud/bedrud.dbSQLite-Datenbank
/var/log/bedrud/bedrud.logAnwendungsprotokolle

CI/CD

Release-Pipeline

Der release.yml-Workflow wird bei Versions-Tags (v*) ausgelöst und erzeugt:

ArtefaktBeschreibung
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzServer-Binaries (Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debDebian/Ubuntu-Pakete (Server)
Docker-Image (ghcr.io/bedrud-ir/bedrud)Multi-Arch-Container-Image, pushed to GHCR
bedrud-desktop-linux-x86_64.AppImageDesktop - universelles Linux-AppImage
bedrud-desktop-linux-x86_64.debDesktop - Debian/Ubuntu-Paket
bedrud-desktop-linux-x86_64.tar.xzDesktop - Linux-portables Tar-Archiv
bedrud-desktop-windows-x86_64-setup.exe / -arm64-setup.exeDesktop - Windows-NSIS-Installer
bedrud-desktop-windows-x86_64.zip / -arm64.zipDesktop - Windows-portabel
bedrud-desktop-macos-x86_64.tar.gz / -arm64.tar.gzDesktop - macOS-portabel (nicht signiert)
Android APK (Debug + Release, pro Arch)Android-Client-Builds
iOS IPA (optional, Signierung erforderlich)iOS-Client-Archiv

Alle Artefakte werden an das GitHub-Release angehängt.

Nightly-Builds

Der dev-nightly.yml-Workflow erzeugt zeitgesteuerte Development-Builds.

CI-Prüfungen

Bei jedem Push auf main und jedem Pull Request werden folgende Prüfungen ausgeführt:

PrüfungPlattform
go vet + Build + Testsubuntu-latest (Go 1.24)
Typprüfung + Buildubuntu-latest (Bun)
Lint + Unit-Testsubuntu-latest (JDK 17)
Build + Testmacos-15 (Xcode)