Vollständige Referenz für die bedrud-Befehlszeilenschnittstelle.
Übersicht
# Subcommand style
bedrud <command> [flags]
# Flag style
bedrud --livekit --config <path>
bedrud --run --config <path>Befehle
run / server
Startet den Bedrud-Meeting-Server mit API, eingebettetem Web-Frontend und eingebettetem LiveKit (falls konfiguriert).
bedrud run [--config <path>]
bedrud server [--config <path>]| Flag | Standard | Beschreibung |
|---|---|---|
--config | $CONFIG_PATH-Umgebungsvariable → "config.yaml" | Pfad zur Bedrud-YAML-Konfigurationsdatei |
Verhalten:
- Lädt die Konfiguration aus dem angegebenen Pfad oder den Standardwerten
- Startet den eingebetteten LiveKit, wenn für den internen Modus konfiguriert
- Initialisiert die SQLite-/PostgreSQL-Datenbank und führt Migrationen durch
- Erstellt einen Fiber-HTTP-Server mit allen API-Routen
- Serviert das eingebettete React-Frontend
- Unterstützt ACME (Let’s Encrypt), selbstsigniertes TLS, manuelles TLS oder Plain HTTP
- Ordungsgemäßes Herunterfahren bei SIGTERM/SIGINT
Implementierung: server/internal/server/server.go
--livekit
Startet nur den eingebetteten LiveKit-Medienserver. Extrahiert die Binärdatei aus dem Go-Embed in ein temporäres Verzeichnis.
bedrud --livekit --config <path>| Flag | Standard | Beschreibung |
|---|---|---|
--config | (erforderlich) | Pfad zur LiveKit-YAML-Konfigurationsdatei |
Verwendet von: systemd livekit.service, erstellt von bedrud install
Implementierung: server/internal/livekit/server.go
--run
Alias für bedrud run mit gleichem --config-Flag-Verhalten. Verwendet von systemd bedrud.service.
bedrud --run --config <path>install
Installiert Bedrud auf einem Debian/Linux-System. Erstellt systemd-Dienste, Konfigurationsdateien, Verzeichnisse und TLS-Zertifikate.
bedrud install [flags]| Flag | Standard | Beschreibung |
|---|---|---|
--tls | false | HTTPS aktivieren (entspricht --self-signed) |
--self-signed | false | Selbstsigniertes TLS-Zertifikat generieren |
--no-tls | false | TLS vollständig deaktivieren (Plain HTTP). Überschreibt --tls und --self-signed |
--ip | automatisch erkannt | Automatisch erkannte Server-IP-Adresse überschreiben |
--domain | "" | Domainname für Let’s Encrypt oder selbstsigniertes Zertifikat |
--email | "" | E-Mail für Let’s Encrypt-Registrierung |
--port | "443" (TLS) / "8090" (HTTP) | Listening-Port überschreiben |
--cert | "" | Pfad zur vorhandenen PEM-Zertifikatsdatei |
--key | "" | Pfad zur vorhandenen PEM-Private-Key-Datei |
--lk-port | "7880" | LiveKit API/WebSocket-Port überschreiben |
--lk-tcp-port | "7881" | LiveKit RTC TCP-Port überschreiben |
--lk-udp-port | "7882" | LiveKit RTC UDP-Port überschreiben |
--fresh | false | Vorhandene Installation vor der Neuinstallation entfernen |
--behind-proxy | false | Server befindet sich hinter CDN/Reverse-Proxy (Cloudflare, nginx) |
--external-livekit | "" | URL eines vollständig externen LiveKit-Servers (andere Maschine) |
--livekit-domain | "" | Separate Domain für lokalen LiveKit-Server (umgeht CDN) |
Was es macht:
- Stoppt und entfernt eine vorherige Installation, wenn
--fresh - Fragt nach IP, Domain, E-Mail, TLS-Modus (wenn nicht-interaktiv und keine Flags angegeben)
- Erstellt Verzeichnisse:
/etc/bedrud,/var/lib/bedrud,/var/lib/bedrud/certs,/var/log/bedrud - Kopiert die Binärdatei nach
/usr/local/bin/bedrud - Generiert Bedrud-Serverkonfiguration unter
/etc/bedrud/config.yaml - Generiert LiveKit-Medienserver-Konfiguration unter
/etc/bedrud/livekit.yaml - Generiert selbstsignierte Zertifikate unter
/etc/bedrud/cert.pem+/etc/bedrud/key.pem(wenn TLS aktiviert und keine benutzerdefinierten Zertifikate) - Erstellt systemd
livekit.service(außer bei externem LiveKit) - Erstellt systemd
bedrud.service - Führt
systemctl daemon-reloadaus, aktiviert und startet beide Dienste - Gibt Zugangs-URLs aus
TLS-Optionen:
--domain+--email→ ACME (Let’s Encrypt)--self-signedoder--tls→ selbstsigniertes Zertifikat--cert+--key→ benutzerdefinierte Zertifikate--no-tls→ nur Plain HTTP
LiveKit-Topologie:
- Standard (eingebettet): LiveKit läuft lokal, proxied über Bedrud unter
/livekit --livekit-domain: LiveKit läuft lokal, aber Clients verbinden sich direkt über eine eigene Domain--external-livekit: Kein lokaler LiveKit; verbindet sich mit einem Remote-Server
Implementierung: server/internal/install/debian.go
Verwandte Dokumentation: Installationsanleitung • Deployment-Leitfaden • Backend-Deployment-Logik
uninstall
Entfernt Bedrud vom System.
bedrud uninstallEntfernt:
- Stoppt und deaktiviert systemd-Dienste:
bedrud,livekit - Entfernt systemd-Unit-Dateien aus
/etc/systemd/system/ - Entfernt Binärdatei:
/usr/local/bin/bedrud,/tmp/bedrud,/tmp/bedrud-livekit-server - Entfernt Verzeichnisse:
/etc/bedrud,/var/lib/bedrud,/var/log/bedrud
Implementierung: server/internal/install/debian.go
Verwandte Dokumentation: Installationsanleitung - Deinstallation
user
Verwaltet Benutzer in der Bedrud-Datenbank.
bedrud user <subcommand> [--config <path>] <flags>| Globaler Flag | Standard | Beschreibung |
|---|---|---|
--config | /etc/bedrud/config.yaml | Pfad zur Bedrud-Konfigurationsdatei (zum Auffinden der Datenbank) |
create
Erstellt einen neuen Benutzer mit lokaler Authentifizierung (bcrypt-gehashtes Passwort).
bedrud user create --email <email> --password <password> --name <name>Erforderliche Flags:
--email: Benutzer-E-Mail-Adresse--password: Benutzerpasswort, vor der Speicherung mit bcrypt gehasht--name: Anzeigename des Benutzers
Zugriffsstufe: user (kein Superadmin). Verwenden Sie promote, um Admin-Rechte zu gewähren.
delete
Löscht einen Benutzer anhand der E-Mail-Adresse.
bedrud user delete --email <email>promote
Gewährt einem Benutzer superadmin-Zugriff.
bedrud user promote --email <email>demote
Entfernt superadmin-Zugriff von einem Benutzer (zurückgesetzt auf user-Ebene).
bedrud user demote --email <email>Implementierung: server/internal/usercli/usercli.go
help
Zeigt die Verwendungsnachricht mit allen Befehlen und Flags an.
bedrud helpWird auch ausgelöst, wenn keine Argumente angegeben werden. Zeigt die printUsage()-Ausgabe an.
Beispiele
Einfacher Entwicklungsserver-Start
# Run with default config.yaml in current directory
bedrud run
# Run with custom config
bedrud run --config /path/to/config.yaml
# Via env var (fallback)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud runInteraktive Installation (fragt nach Eingaben)
bedrud installNicht-interaktive Installation mit Let’s Encrypt
bedrud install --domain example.com --email admin@example.comSelbstsigniertes TLS mit benutzerdefinierten Ports
bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882Hinter CDN mit separater LiveKit-Domain
bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxyNeuinstallation
bedrud install --fresh --domain example.com --email admin@example.comBenutzerverwaltung
# Create first admin user
bedrud user create --email admin@example.com --password secret123 --name "Admin User"
# Grant superadmin access
bedrud user promote --email admin@example.com
# Create regular user
bedrud user create --email user@example.com --password pass456 --name "Regular User"
# Remove a user
bedrud user delete --email user@example.com
# Remove admin access
bedrud user demote --email admin@example.comVerwandte Dokumentation
- Installationsanleitung - Detaillierte
bedrud install-Anleitung, TLS-Topologien, Schritte nach der Installation - Konfigurationsreferenz - Server- und LiveKit-Konfigurationsdateistruktur
- Backend-Deployment-Logik - Wie
installunduninstallintern funktionieren - Deployment-Leitfaden - Vollständige Deployment-Optionen inklusive systemd-Dienste