Referencia completa para la interfaz de línea de comandos bedrud.
Sinopsis
# Estilo de subcomando
bedrud <command> [flags]
# Estilo de flag
bedrud --livekit --config <path>
bedrud --run --config <path>Comandos
run / server
Inicia el servidor de reuniones Bedrud con API, frontend web integrado y LiveKit integrado (si está configurado).
bedrud run [--config <path>]
bedrud server [--config <path>]| Flag | Predeterminado | Descripción |
|---|---|---|
--config | $CONFIG_PATH var de entorno → "config.yaml" | Ruta al archivo de configuración YAML de Bedrud |
Comportamiento:
- Carga la configuración desde la ruta especificada o predeterminados
- Inicia LiveKit integrado si está configurado en modo interno
- Inicializa la base de datos SQLite/PostgreSQL y ejecuta migraciones
- Crea el servidor HTTP Fiber con todas las rutas de API
- Sirve el frontend React integrado
- Admite ACME (Let’s Encrypt), TLS autofirmado, TLS manual o HTTP simple
- Apagado elegante en SIGTERM/SIGINT
Implementación: server/internal/server/server.go
--livekit
Inicia solo el servidor de medios LiveKit integrado. Extrae el binario desde Go embed a un directorio temporal.
bedrud --livekit --config <path>| Flag | Predeterminado | Descripción |
|---|---|---|
--config | (requerido) | Ruta al archivo de configuración YAML de LiveKit |
Usado por: el servicio init livekit creado por bedrud install
Implementación: server/internal/livekit/server.go
--run
Alias para bedrud run con el mismo comportamiento del flag --config. Usado por el servicio init bedrud.
bedrud --run --config <path>install
Instala Bedrud en un sistema Debian/Linux. Crea servicios init (systemd, OpenRC o SysV init — detección automática), archivos de configuración, directorios y certificados TLS.
bedrud install [flags]| Flag | Predeterminado | Descripción |
|---|---|---|
--tls | false | Habilitar HTTPS (igual que --self-signed) |
--self-signed | false | Generar certificado TLS autofirmado |
--no-tls | false | Deshabilitar TLS por completo (HTTP simple). Anula --tls y --self-signed |
--ip | autodetectado | Anular la dirección IP del servidor autodetectada |
--domain | "" | Nombre de dominio para Let’s Encrypt o certificado autofirmado |
--email | "" | Correo electrónico para el registro de Let’s Encrypt |
--port | "443" (TLS) / "8090" (HTTP) | Anular el puerto de escucha |
--cert | "" | Ruta al archivo de certificado PEM existente |
--key | "" | Ruta al archivo de clave privada PEM existente |
--lk-port | "7880" | Anular el puerto API/WebSocket de LiveKit |
--lk-tcp-port | "7881" | Anular el puerto TCP RTC de LiveKit |
--lk-udp-port | "7882" | Anular el puerto UDP RTC de LiveKit |
--fresh | false | Eliminar la instalación existente antes de instalar |
--behind-proxy | false | El servidor está detrás de CDN/proxy inverso (Cloudflare, nginx) |
--external-livekit | "" | URL del servidor LiveKit completamente externo (máquina diferente) |
--livekit-domain | "" | Dominio separado para el servidor LiveKit local (evita CDN) |
Lo que hace:
- Detiene y elimina la instalación anterior si
--fresh - Solicita IP, dominio, correo electrónico, modo TLS (si no es interactivo y no se proporcionan flags)
- Crea directorios:
/etc/bedrud,/var/lib/bedrud,/var/lib/bedrud/certs,/var/log/bedrud - Copia el binario a
/usr/local/bin/bedrud - Genera la configuración del servidor Bedrud en
/etc/bedrud/config.yaml - Genera la configuración del servidor de medios LiveKit en
/etc/bedrud/livekit.yaml - Genera certificados autofirmados en
/etc/bedrud/cert.pem+/etc/bedrud/key.pem(si TLS está habilitado y no hay certificados personalizados) - Crea el servicio init de LiveKit (a menos que use LiveKit externo)
- Crea el servicio init de Bedrud
- Habilita e inicia los servicios mediante el sistema de inicialización detectado
- Imprime las URLs de acceso
Opciones de TLS:
--domain+--email→ ACME (Let’s Encrypt)--self-signedo--tls→ certificado autofirmado--cert+--key→ certificados personalizados--no-tls→ solo HTTP simple
Topología de LiveKit:
- Predeterminado (integrado): LiveKit se ejecuta localmente, a través de proxy en Bedrud en
/livekit --livekit-domain: LiveKit se ejecuta localmente pero los clientes se conectan directamente a través de su propio dominio--external-livekit: Sin LiveKit local; se conecta a un servidor remoto
Implementación: server/internal/install/linux.go
Documentos relacionados: Guía de instalación • Guía de implementación • Lógica de implementación del backend
uninstall
Elimina Bedrud del sistema.
bedrud uninstallElimina:
- Detiene y deshabilita los servicios en todos los sistemas de inicialización:
bedrud,livekit - Elimina los archivos de servicio para systemd, OpenRC y SysV init
- Elimina el binario:
/usr/local/bin/bedrud,/tmp/bedrud,/tmp/bedrud-livekit-server - Elimina los directorios:
/etc/bedrud,/var/lib/bedrud,/var/log/bedrud - Elimina el usuario del sistema: bedrud
Implementación: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)
Documentos relacionados: Guía de instalación - Desinstalación
user
Gestiona usuarios en la base de datos de Bedrud.
bedrud user [--config <path>] <subcommand> [flags]| Flag global | Predeterminado | Descripción |
|---|---|---|
--config | /etc/bedrud/config.yaml | Ruta al archivo de configuración de Bedrud (para ubicar la base de datos) |
create
Crea un nuevo usuario con autenticación local (contraseña con hash bcrypt).
bedrud user [--config <path>] create --email <email> --password <password> --name <name> [--admin]Flags requeridos:
--email: Dirección de correo electrónico del usuario--password: Contraseña del usuario, con hash bcrypt antes del almacenamiento--name: Nombre para mostrar del usuario
Flags opcionales:
--admin: Crear usuario como superadmin
Nivel de acceso: user por defecto. Usa --admin para crear un superadmin en un solo comando.
delete
Elimina un usuario por dirección de correo electrónico.
bedrud user [--config <path>] delete --email <email>promote
Establece el rol de un usuario reemplazando su array de accesos. Predeterminado: superadmin.
bedrud user [--config <path>] promote --email <email> [--role <role>]| Flag | Predeterminado | Descripción |
|---|---|---|
--role | superadmin | Rol destino: superadmin, admin, moderator, user, guest |
Ejemplos:
# Otorgar superadmin (predeterminado)
bedrud user promote --email admin@example.com
# Otorgar admin
bedrud user promote --email admin@example.com --role admin
# Otorgar moderator
bedrud user promote --email mod@example.com --role moderatorCada rol se asigna a un array de accesos:
superadmin→['superadmin', 'user']admin→['admin', 'user']moderator→['moderator', 'user']user→['user']guest→['guest']
demote
Elimina un rol específico de un usuario. Predeterminado: superadmin.
bedrud user [--config <path>] demote --email <email> [--role <role>]| Flag | Predeterminado | Descripción |
|---|---|---|
--role | superadmin | Rol a eliminar: superadmin, admin, moderator |
Si al usuario no le quedan roles después de la eliminación, se agrega acceso user automáticamente.
Implementación: server/internal/usercli/usercli.go
cert
Gestionar certificados TLS. Relevante solo cuando se usan certificados autofirmados (generados por bedrud install --self-signed).
bedrud cert [--config <path>] <subcommand>| Flag Global | Valor por defecto | Descripción |
|---|---|---|
--config | /etc/bedrud/config.yaml | Ruta al archivo de configuración de Bedrud |
--algo | "" | Algoritmo de clave: ed25519, ecdsa256, rsa2048, rsa4096 (predeterminado: detectar del certificado existente) |
renew
Renovar manualmente el certificado TLS autofirmado. Detecta el algoritmo de clave del certificado existente y regenera con el mismo tipo (predeterminado: Ed25519). El nuevo certificado tiene una validez de 1825 días (~5 años).
bedrud cert renew [--config <path>]El servidor también renueva el certificado automáticamente a diario mediante su programador integrado cuando faltan menos de 30 días para el vencimiento. Este comando es para renovación manual o extraordinaria.
SANs: Derivados de la configuración del servidor — domain (si está configurado), más localhost, 127.0.0.1 y ::1.
Implementación: server/internal/utils/tls.go (RenewSelfSignedCert)
info
Mostrar metadatos del certificado TLS en stdout.
bedrud cert info [--config <path>]Campos de salida: subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SANs.
Implementación: server/internal/utils/tls.go (ValidateTLSCertPair)
help
Muestra el mensaje de uso con todos los comandos y flags.
bedrud helpTambién se activa cuando no se proporcionan argumentos. Muestra la salida de printUsage().
Ejemplos
Inicio básico del servidor de desarrollo
# Ejecutar con config.yaml predeterminado en el directorio actual
bedrud run
# Ejecutar con configuración personalizada
bedrud run --config /path/to/config.yaml
# Vía var de entorno (fallback)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud runInstalación interactiva (solicita entradas)
bedrud installInstalación no interactiva con Let’s Encrypt
bedrud install --domain example.com --email admin@example.comTLS autofirmado con puertos personalizados
bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882Detrás de CDN con dominio LiveKit separado
bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxyReinstalación fresca
bedrud install --fresh --domain example.com --email admin@example.comGestión de usuarios
# Crear el primer usuario administrador (un solo comando)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
# O crear un usuario regular, luego promover
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
# Crear usuario regular
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
# Eliminar un usuario
bedrud user [--config <path>] delete --email user@example.com
# Eliminar acceso de administrador
bedrud user [--config <path>] demote --email admin@example.comDocumentación relacionada
- Guía de instalación - Guía detallada de
bedrud install, topologías TLS, pasos posteriores a la instalación - Referencia de configuración - Estructura de archivos de configuración del servidor y LiveKit
- Lógica de implementación del backend - Cómo funcionan
installyuninstallinternamente - Guía de implementación - Opciones completas de implementación, incluidos los servicios del sistema de inicialización