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: Init-Service livekit, erstellt von bedrud install
Implementierung: server/internal/livekit/server.go
--run
Alias für bedrud run mit gleichem --config-Flag-Verhalten. Verwendet von Init-Service bedrud.
bedrud --run --config <path>install
Installiert Bedrud auf einem Debian/Linux-System. Erstellt Init-Services (systemd, OpenRC oder SysV init — automatisch erkannt), 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 LiveKit-Init-Service (außer bei externem LiveKit)
- Erstellt Bedrud-Init-Service
- Aktiviert und startet Services über das erkannte Init-System
- 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/linux.go
Verwandte Dokumentation: Installationsanleitung • Deployment-Leitfaden • Backend-Deployment-Logik
uninstall
Entfernt Bedrud vom System.
bedrud uninstallEntfernt:
- Stoppt und deaktiviert Services über alle Init-Systeme:
bedrud,livekit - Entfernt Service-Dateien für systemd, OpenRC und SysV init
- Entfernt Binärdatei:
/usr/local/bin/bedrud,/tmp/bedrud,/tmp/bedrud-livekit-server - Entfernt Verzeichnisse:
/etc/bedrud,/var/lib/bedrud,/var/log/bedrud - Entfernt den Systembenutzer: bedrud
Implementierung: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)
Verwandte Dokumentation: Installationsanleitung - Deinstallation
user
Verwaltet Benutzer in der Bedrud-Datenbank.
bedrud user [--config <path>] <subcommand> [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 [--config <path>] create --email <email> --password <password> --name <name> [--admin]Erforderliche Flags:
--email: Benutzer-E-Mail-Adresse--password: Benutzerpasswort, vor der Speicherung mit bcrypt gehasht--name: Anzeigename des Benutzers
Optionale Flags:
--admin: Benutzer als Superadmin erstellen
Zugriffsstufe: Standardmäßig user. Verwenden Sie --admin, um einen Superadmin in einem Befehl zu erstellen.
delete
Löscht einen Benutzer anhand der E-Mail-Adresse.
bedrud user [--config <path>] delete --email <email>promote
Legt die Rolle eines Benutzers fest, indem das Zugriffsarray ersetzt wird. Standard: superadmin.
bedrud user [--config <path>] promote --email <email> [--role <role>]| Flag | Standard | Beschreibung |
|---|---|---|
--role | superadmin | Zielrolle: superadmin, admin, moderator, user, guest |
Beispiele:
# Superadmin-Rechte vergeben (Standard)
bedrud user promote --email admin@example.com
# Admin-Rechte vergeben
bedrud user promote --email admin@example.com --role admin
# Moderator-Rechte vergeben
bedrud user promote --email mod@example.com --role moderatorJede Rolle entspricht einem bestimmten Zugriffsarray:
superadmin→['superadmin', 'user']admin→['admin', 'user']moderator→['moderator', 'user']user→['user']guest→['guest']
demote
Entfernt eine bestimmte Rolle von einem Benutzer. Standard: superadmin.
bedrud user [--config <path>] demote --email <email> [--role <role>]| Flag | Standard | Beschreibung |
|---|---|---|
--role | superadmin | Zu entfernende Rolle: superadmin, admin, moderator |
Falls nach der Entfernung keine Rollen übrig bleiben, wird automatisch user-Zugriff hinzugefügt.
Implementierung: server/internal/usercli/usercli.go
cert
TLS-Zertifikate verwalten. Nur relevant bei selbstsignierten Zertifikaten (erzeugt durch bedrud install --self-signed).
bedrud cert [--config <path>] <subcommand>| Globales Flag | Standard | Beschreibung |
|---|---|---|
--config | /etc/bedrud/config.yaml | Pfad zur Bedrud-Konfigurationsdatei |
--algo | "" | Schlüsselalgorithmus: ed25519, ecdsa256, rsa2048, rsa4096 (Standard: aus vorhandenem Zertifikat erkennen) |
renew
Selbstsigniertes TLS-Zertifikat manuell erneuern. Erkennt den Schlüsselalgorithmus des vorhandenen Zertifikats und generiert mit demselben Typ neu (Standard: Ed25519). Das neue Zertifikat ist 1825 Tage (~5 Jahre) gültig.
bedrud cert renew [--config <path>]Der Server erneuert das Zertifikat automatisch täglich über den integrierten Scheduler, wenn weniger als 30 Tage verbleiben. Dieser Befehl ist für manuelle oder außerplanmäßige Erneuerungen gedacht.
SANs: Werden aus der Serverkonfiguration abgeleitet — domain (falls gesetzt), sowie localhost, 127.0.0.1 und ::1.
Implementierung: server/internal/utils/tls.go (RenewSelfSignedCert)
info
TLS-Zertifikat-Metadaten auf stdout ausgeben.
bedrud cert info [--config <path>]Ausgabefelder: subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SANs.
Implementierung: server/internal/utils/tls.go (ValidateTLSCertPair)
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 (single command)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
# Or create a regular user, then promote
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
# Create regular user
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
# Remove a user
bedrud user [--config <path>] delete --email user@example.com
# Remove admin access
bedrud user [--config <path>] 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 Init-System-Services