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
| Feature | Description |
|---|---|
| Zero external dependencies | No Node.js, Redis, or separate media server needed |
| Embedded media server | LiveKit binary included and managed automatically |
| Embedded frontend | React UI compiled and SSR pre-rendered into the Go binary |
| SQLite storage | No database server required |
| Built-in TLS | Self-signed certificates or Let’s Encrypt |
| Built-in installer | Configures systemd, directories, and configs |
Running the Binary
Start the Bedrud Server
./bedrud --run --config config.yamlStart the LiveKit Media Server
./bedrud --livekit --config livekit.yamlThe 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.4What 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 --> DBConfiguration Files
| File | Purpose |
|---|---|
/etc/bedrud/config.yaml | Main server configuration |
/etc/bedrud/livekit.yaml | Media server configuration |
/var/lib/bedrud/bedrud.db | SQLite database |
/var/log/bedrud/bedrud.log | Application 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 livekitView Logs
tail -f /var/log/bedrud/bedrud.log
journalctl -u bedrud -fUninstallation
sudo ./bedrud uninstallThis completely removes:
- Systemd service files
- Binary from
/usr/local/bin/ - Configuration in
/etc/bedrud/ - Data in
/var/lib/bedrud/ - Logs in
/var/log/bedrud