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
Built-in installerConfigures systemd, 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

What the Installer Does

When you run bedrud install, the following happens:

Step Action
1 Creates directories: /etc/bedrud, /var/lib/bedrud, /var/log/bedrud
2 Copies binary to /usr/local/bin/bedrud
3 Generates config.yaml with your settings /etc/bedrud/config.yaml
4 Generates livekit.yaml for media server /etc/bedrud/livekit.yaml
5 Creates two systemd services: bedrud.service & livekit.service
6 Enables and starts both services
7 Initializes SQLite database and certificate cache

Service Architecture

After installation, two systemd services run:

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

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
		

Check Service Status

systemctl status bedrud livekit

View Logs

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

Uninstallation

sudo ./bedrud uninstall

This completely removes:

  • Systemd service files
  • Binary from /usr/local/bin/
  • Configuration in /etc/bedrud/
  • Data in /var/lib/bedrud/
  • Logs in /var/log/bedrud