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. TURN/TLS is automatically configured for the embedded LiveKit when server TLS is enabled. |
| Built-in installer | Configures init services (systemd/OpenRC/SysV), 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.4Что делает установщик
При установке происходит следующее:
| Шаг | Действие |
|---|---|
| 1 | Создает директории: /etc/bedrud, /var/lib/bedrud, /var/log/bedrud |
| 2 | Копирует бинарник в /usr/local/bin/bedrud |
| 3 | Генерирует config.yaml /etc/bedrud/config.yaml |
| 4 | Генерирует livekit.yaml /etc/bedrud/livekit.yaml |
| 5 | Создает сервисы systemd: bedrud.service & livekit.service |
| 6 | Включает и запускает сервисы |
| 7 | Инициализирует SQLite и сертификаты |
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 */} 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
Выдать права администратора
Зарегистрируйтесь через веб-UI, затем выдайте права:
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 -fUpdating
Upgrade without wiping config or data:
# After placing a newer bedrud binary on the host
sudo bedrud update
# or
sudo bedrud upgradeThis 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 uninstallThis 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