Bedrud Dokumentation

Bedrud is designed to run as a self-contained “appliance” for video meetings. A single executable binary packages everything needed - frontend, backend, and the LiveKit media server.

Key Features

FeatureDescription
Zero external dependenciesNo Node.js, Redis, or separate media server needed
Embedded media serverLiveKit binary included and managed automatically
Embedded frontendReact UI compiled and SSR pre-rendered into the Go binary
SQLite storageNo database server required
Built-in TLSSelf-signed certificates or Let’s Encrypt. TURN/TLS is automatically configured for the embedded LiveKit when server TLS is enabled.
Built-in installerConfigures init services (systemd/OpenRC/SysV), directories, and configs

Running the Binary

Start the Bedrud Server

./bedrud --run --config config.yaml

Start the LiveKit Media Server

./bedrud --livekit --config livekit.yaml

The binary contains both the API server and the media server. Use flags to choose which to start.

Installation

Quick Install (Debian/Ubuntu)

# With Let's Encrypt TLS
sudo ./bedrud install --tls --domain meet.example.com --email admin@example.com
 
# With self-signed certificate
sudo ./bedrud install --tls --ip 1.2.3.4
 
# Plain HTTP (dev only)
sudo ./bedrud install --ip 1.2.3.4

Was das Installationsprogramm tut

Wenn Sie bedrud install ausführen, passiert Folgendes:

Schritt Aktion
1 Erstellt Verzeichnisse: /etc/bedrud, /var/lib/bedrud, /var/log/bedrud
2 Kopiert Binärdatei nach /usr/local/bin/bedrud
3 Generiert config.yaml mit Ihren Einstellungen /etc/bedrud/config.yaml
4 Generiert livekit.yaml für den Mediaserver /etc/bedrud/livekit.yaml
5 Erstellt zwei systemd-Dienste: bedrud.service & livekit.service
6 Aktiviert und startet beide Dienste
7 Initialisiert SQLite-Datenbank und Zertifikatscache

Service Architecture

After installation, two init services run (systemd, OpenRC, or SysV init):

flowchart LR
    BS["bedrud.service<br/>bedrud --run<br/>(API + Web UI)"]
    LS["livekit.service<br/>bedrud --livekit<br/>(WebRTC media)"]
    DB["SQLite database"]
 
    BS */} LS
    BS */} DB

Configuration Files

FilePurpose
/etc/bedrud/config.yamlMain server configuration
/etc/bedrud/livekit.yamlMedia server configuration
/var/lib/bedrud/bedrud.dbSQLite database
/var/log/bedrud/bedrud.logApplication logs

See the Configuration Reference for all options.

Post-Installation

Create Your First Admin

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
		

Check Service Status

systemctl status bedrud livekit

View Logs

tail -f /var/log/bedrud/bedrud.log
journalctl -u bedrud -f

Updating

Upgrade without wiping config or data:

# After placing a newer bedrud binary on the host
sudo bedrud update
# or
sudo bedrud upgrade

This replaces the installed binary, runs database and version migrations if needed, refreshes init units, and restarts services. Secrets and /etc/bedrud/config.yaml are preserved.

See Updating and CLI Reference.

Uninstallation

sudo ./bedrud uninstall

This completely removes:

  • Init service files (systemd/OpenRC/SysV)
  • Binary from /usr/local/bin/
  • Configuration in /etc/bedrud/
  • Data in /var/lib/bedrud/
  • Logs in /var/log/bedrud