Полная справка по интерфейсу командной строки bedrud.
Общий формат
# Стиль подкоманд
bedrud <command> [flags]
# Стиль флагов
bedrud --livekit --config <path>
bedrud --run --config <path>Команды
run / server
Запуск сервера конференций Bedrud с API, встроенным веб-фронтендом и встроенным LiveKit (если настроен).
bedrud run [--config <path>]
bedrud server [--config <path>]| Флаг | Значение по умолчанию | Описание |
|---|---|---|
--config | Переменная окружения $CONFIG_PATH → "config.yaml" | Путь к YAML-файлу конфигурации Bedrud |
Поведение:
- Загружает конфигурацию из указанного пути или по умолчанию
- Запускает встроенный LiveKit, если настроен внутренний режим
- Инициализирует базу данных SQLite/PostgreSQL и выполняет миграции
- Создаёт Fiber HTTP-сервер со всеми маршрутами API
- Обслуживает встроенный React-фронтенд
- Поддерживает ACME (Let’s Encrypt), самоподписанный TLS, ручной TLS или обычный HTTP
- Корректное завершение при SIGTERM/SIGINT
Реализация: server/internal/server/server.go
--livekit
Запуск только встроенного медиасервера LiveKit. Извлекает бинарный файл из Go embed во временную директорию.
bedrud --livekit --config <path>| Флаг | По умолчанию | Описание |
|---|---|---|
--config | (обязательный) | Путь к YAML-файлу конфигурации LiveKit |
Используется: init-сервисом livekit, созданным командой bedrud install
Реализация: server/internal/livekit/server.go
--run
Псевдоним для bedrud run с аналогичным поведением флага --config. Используется init-сервисом bedrud.
bedrud --run --config <path>install
Установка Bedrud на систему Debian/Linux. Создаёт init-сервисы (systemd, OpenRC или SysV init — автоопределение), файлы конфигурации, директории и TLS-сертификаты.
bedrud install [flags]| Флаг | Значение по умолчанию | Описание |
|---|---|---|
--tls | false | Включить HTTPS (аналог --self-signed) |
--self-signed | false | Сгенерировать самоподписанный TLS-сертификат |
--no-tls | false | Полностью отключить TLS (обычный HTTP). Переопределяет --tls и --self-signed |
--ip | автоопределение | Переопределить автоматически определённый IP-адрес сервера |
--domain | "" | Имя домена для Let’s Encrypt или самоподписанного сертификата |
--email | "" | Email для регистрации Let’s Encrypt |
--port | "443" (TLS) / "8090" (HTTP) | Переопределить порт прослушивания |
--cert | "" | Путь к существующему файлу сертификата PEM |
--key | "" | Путь к существующему файлу закрытого ключа PEM |
--lk-port | "7880" | Переопределить порт API/WebSocket LiveKit |
--lk-tcp-port | "7881" | Переопределить порт RTC TCP LiveKit |
--lk-udp-port | "7882" | Переопределить порт RTC UDP LiveKit |
--fresh | false | Удалить существующую установку перед установкой |
--behind-proxy | false | Сервер находится за CDN/обратным прокси (Cloudflare, nginx) |
--external-livekit | "" | URL полностью внешнего сервера LiveKit (на другой машине) |
--livekit-domain | "" | Отдельный домен для локального сервера LiveKit (в обход CDN) |
Что он делает:
- Останавливает и удаляет предыдущую установку, если указан
--fresh - Запрашивает IP, домен, email, режим TLS (в неинтерактивном режиме, если флаги не указаны)
- Создаёт директории:
/etc/bedrud,/var/lib/bedrud,/var/lib/bedrud/certs,/var/log/bedrud - Копирует бинарный файл в
/usr/local/bin/bedrud - Генерирует конфигурацию сервера Bedrud в
/etc/bedrud/config.yaml - Генерирует конфигурацию медиасервера LiveKit в
/etc/bedrud/livekit.yaml - Генерирует самоподписанные сертификаты в
/etc/bedrud/cert.pem+/etc/bedrud/key.pem(если TLS включён и нет пользовательских сертификатов) - Создаёт init-сервис LiveKit (если не используется внешний LiveKit)
- Создаёт init-сервис Bedrud
- Выполняет
systemctl daemon-reload(если systemd), включает и запускает сервисы через обнаруженную систему инициализации - Выводит URL доступа
Параметры TLS:
--domain+--email→ ACME (Let’s Encrypt)--self-signedили--tls→ самоподписанный сертификат--cert+--key→ пользовательские сертификаты--no-tls→ только обычный HTTP
Топология LiveKit:
- По умолчанию (встроенный): LiveKit работает локально, проксируется через Bedrud по адресу
/livekit --livekit-domain: LiveKit работает локально, но клиенты подключаются напрямую через собственный домен--external-livekit: Локальный LiveKit не запускается; подключение к удалённому серверу
Реализация: server/internal/install/linux.go
Связанная документация: Руководство по установке • Руководство по развёртыванию • Логика развёртывания backend
uninstall
Удалить Bedrud из системы.
bedrud uninstallУдаляет:
- Останавливает и отключает сервисы во всех системах инициализации:
bedrud,livekit - Удаляет сервис-файлы для systemd, OpenRC и SysV init
- Удаляет бинарные файлы:
/usr/local/bin/bedrud,/tmp/bedrud,/tmp/bedrud-livekit-server - Удаляет директории:
/etc/bedrud,/var/lib/bedrud,/var/log/bedrud - Удаляет системного пользователя: bedrud
Реализация: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)
Связанная документация: Руководство по установке - Удаление
user
Управление пользователями в базе данных Bedrud.
bedrud user [--config <path>] <subcommand> [flags]| Глобальный флаг | По умолчанию | Описание |
|---|---|---|
--config | /etc/bedrud/config.yaml | Путь к файлу конфигурации Bedrud (для поиска базы данных) |
create
Создать нового пользователя с локальной аутентификацией (пароль хешируется bcrypt).
bedrud user [--config <path>] create --email <email> --password <password> --name <name> [--admin]Обязательные флаги:
--email: Email пользователя--password: Пароль пользователя, хешируется bcrypt перед сохранением--name: Отображаемое имя пользователя
Опциональные флаги:
--admin: Создать пользователя как superadmin
Уровень доступа: По умолчанию user. Используйте --admin для создания superadmin одной командой.
delete
Удалить пользователя по email.
bedrud user [--config <path>] delete --email <email>promote
Устанавливает роль пользователя, заменяя массив доступов. По умолчанию: superadmin.
bedrud user [--config <path>] promote --email <email> [--role <role>]| Флаг | По умолчанию | Описание |
|---|---|---|
--role | superadmin | Целевая роль: superadmin, admin, moderator, user, guest |
Примеры:
# Предоставить superadmin (по умолчанию)
bedrud user promote --email admin@example.com
# Предоставить admin
bedrud user promote --email admin@example.com --role admin
# Предоставить moderator
bedrud user promote --email mod@example.com --role moderatorКаждая роль соответствует определённому массиву доступов:
superadmin→['superadmin', 'user']admin→['admin', 'user']moderator→['moderator', 'user']user→['user']guest→['guest']
demote
Удаляет определенную роль у пользователя. По умолчанию: superadmin.
bedrud user [--config <path>] demote --email <email> [--role <role>]| Флаг | По умолчанию | Описание |
|---|---|---|
--role | superadmin | Удаляемая роль: superadmin, admin, moderator |
Если после удаления у пользователя не осталось ролей, доступ user добавляется автоматически.
Реализация: server/internal/usercli/usercli.go
cert
Управление TLS-сертификатами. Актуально только при использовании самоподписанных сертификатов (созданных bedrud install --self-signed).
bedrud cert [--config <path>] <subcommand>| Глобальный флаг | По умолчанию | Описание |
|---|---|---|
--config | /etc/bedrud/config.yaml | Путь к файлу конфигурации Bedrud |
--algo | "" | Алгоритм ключа: ed25519, ecdsa256, rsa2048, rsa4096 (по умолчанию: определить из существующего сертификата) |
renew
Принудительное обновление самоподписанного TLS-сертификата. Определяет алгоритм ключа существующего сертификата и воссоздаёт с тем же типом (по умолчанию: Ed25519). Новый сертификат действителен в течение 1825 дней (~5 лет).
bedrud cert renew [--config <path>]Сервер также автоматически обновляет сертификат ежедневно через встроенный планировщик, когда до истечения срока действия остаётся менее 30 дней. Эта команда предназначена для ручного или внепланового обновления.
SANs: Берутся из конфигурации сервера — domain (если задан), а также localhost, 127.0.0.1 и ::1.
Реализация: server/internal/utils/tls.go (RenewSelfSignedCert)
info
Показать метаданные TLS-сертификата в stdout.
bedrud cert info [--config <path>]Поля вывода: subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SANs.
Реализация: server/internal/utils/tls.go (ValidateTLSCertPair)
help
Показать справку по использованию со всеми командами и флагами.
bedrud helpТакже вызывается, когда аргументы не указаны. Отображает вывод printUsage().
Примеры
Базовый запуск сервера для разработки
# Запуск с config.yaml по умолчанию в текущей директории
bedrud run
# Запуск с пользовательской конфигурацией
bedrud run --config /path/to/config.yaml
# Через переменную окружения (резервный вариант)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud runИнтерактивная установка (запрашивает входные данные)
bedrud installНеинтерактивная установка с Let’s Encrypt
bedrud install --domain example.com --email admin@example.comСамоподписанный TLS с пользовательскими портами
bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882За CDN с отдельным доменом LiveKit
bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxyЧистая переустановка
bedrud install --fresh --domain example.com --email admin@example.comУправление пользователями
# Создание первого пользователя-администратора (одной командой)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
# Или создать обычного пользователя, затем повысить
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
# Создание обычного пользователя
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
# Удаление пользователя
bedrud user [--config <path>] delete --email user@example.com
# Отзыв прав администратора
bedrud user [--config <path>] demote --email admin@example.comСвязанная документация
- Руководство по установке - подробное описание
bedrud install, топологии TLS, шаги после установки - Справка по конфигурации - структура файлов конфигурации сервера и LiveKit
- Логика развёртывания backend - как
installиuninstallработают внутри - Руководство по развёртыванию - полные варианты развёртывания, включая init-сервисы