Bedrud Документация

Панель администратора предоставляет веб-интерфейс для управления экземпляром Bedrud. Суперадминистраторы могут просматривать системную статистику, управлять пользователями и комнатами, настраивать параметры экземпляра и генерировать токены приглашения.

Предварительные требования

  • Доступ суперадминистратора: У вас должен быть superadmin в массиве accesses пользователя.
  • Настройка первого администратора: После установки Bedrud создайте пользователя и повысьте его через CLI:
bedrud user create --email "admin@example.com" --password "securepassword" --name "Admin"
bedrud user promote --email "admin@example.com"

Не существует веб-интерфейса или API для создания первого суперадминистратора. Это сделано намеренно из соображений безопасности.

Доступ к панели администратора

После получения доступа суперадминистратора панель администратора доступна по адресу /dashboard/admin в вашем веб-приложении Bedrud.

Навигация:

  • В боковой панели отображается раздел «Admin» со ссылками на Обзор, Пользователей, Комнаты и Настройки. Этот раздел виден только суперадминистраторам.
  • В выпадающем меню пользователя (справа вверху) есть ссылка «Admin panel» с иконкой щита.
  • Пользователи без прав администратора, пытающиеся перейти по адресам /dashboard/admin/*, автоматически перенаправляются на /dashboard.

Страница обзора

Страница обзора по адресу /dashboard/admin предоставляет панель с ключевыми системными метриками.

Системная статистика

Карточки отображают:

  • Пользователей онлайн: Общее количество уникальных активных участников во всех комнатах
  • Всего комнат: Общее количество комнат в экземпляре
  • Всего пользователей: Общее количество зарегистрированных пользователей

Статус TLS-сертификата

Цветовой индикатор показывает состояние TLS-сертификата вашего сервера:

СтатусЦветЗначение
ДействителенЗелёныйСертификат действителен
Истекает скороЖёлтыйИстекает в течение 30 дней
ИстёкКрасныйСрок действия сертификата истёк
Не настроенСерыйTLS отключён

Статус сертификата обновляется каждые 5 минут.

Графики

  • Создание комнат: Столбчатая диаграмма комнат, созданных за последние 8 недель
  • Последние регистрации: Список последних регистраций пользователей

Управление пользователями

Список пользователей

Список пользователей по адресу /dashboard/admin/users показывает всех зарегистрированных пользователей в таблице с возможностью поиска и сортировки.

Колонки:

  • Имя: Отображаемое имя пользователя
  • Email: Адрес электронной почты пользователя
  • Провайдер: Метод аутентификации (local, google, github, guest, passkey)
  • Роль: Бейдж уровня доступа. Показывает «Superadmin» для пользователей с доступом superadmin.
  • Создан: Дата регистрации
  • Статус: Переключатель Активен/Заблокирован

Действия:

  • Поиск: Введите текст в строку поиска для фильтрации пользователей по имени или email (на стороне клиента).
  • Сортировка: Нажмите на заголовок любой колонки для сортировки. Повторное нажатие переключает по возрастанию/убыванию.
  • Пагинация: Элементы навигации для просмотра больших списков пользователей.

Действия с пользователями

Каждая строка пользователя содержит кнопки быстрых действий:

  • Повысить/Понизить: Переключение между уровнями доступа ["user"] и ["user", "superadmin"]. Отображается в колонке уровня доступа.
  • Активен/Заблокирован: Переключение статуса учётной записи. Заблокированные пользователи не могут войти или обновить токен.
  • Просмотр деталей: Нажмите на строку пользователя, чтобы открыть подробный просмотр.

Детали пользователя

Страница деталей по адресу /dashboard/admin/users/:userId показывает полный профиль пользователя.

Отображаемая информация:

  • Имя пользователя, email, провайдер и дата регистрации
  • Бейдж уровня доступа (суперадминистратор/пользователь)
  • График активности создания комнат (история за 8 недель)
  • Список комнат, созданных пользователем

Действия:

  • Повысить/Понизить: Отдельная кнопка в заголовке деталей
  • Удалить пользователя: Безвозвратно удаляет пользователя и все его данные. Требует подтверждения по email. Кнопка удаления скрыта для вашей учётной записи (вы не можете удалить себя).

Удаление безвозвратно и асинхронно. При удалении пользователя также удаляются все его комнаты, passkeys и настройки. Запрос возвращается немедленно, пока очистка выполняется в фоновом режиме.


Управление комнатами

Список комнат

Список комнат по адресу /dashboard/admin/rooms показывает все комнаты экземпляра.

Колонки:

  • Название комнаты: Идентификатор комнаты
  • Видимость: Публичная, приватная или скрытая
  • Макс. участников: Редактируемое поле — нажмите на значение, чтобы изменить
  • Статус: Активна или неактивна
  • Создана: Дата создания комнаты

Действия:

  • Поиск: Фильтрация комнат по названию (на стороне клиента)
  • Сортировка: Нажмите на заголовок колонки для сортировки
  • Приостановить: Завершить активный звонок без удаления комнаты
  • Удалить: Безвозвратно закрыть комнату с каскадным удалением

Детали комнаты

Страница деталей по адресу /dashboard/admin/rooms/:roomId предоставляет детальную информацию о комнате.

Настройки комнаты:

  • Название комнаты, режим видимости, макс. участников
  • Переключатель постоянного режима: Включите, чтобы предотвратить автоматическую очистку неактивных комнат. Доступно только суперадминистраторам — создатели комнат не могут это изменить.

Активные участники:

  • Список участников в реальном времени с опросом каждые 3 секунды
  • По каждому участнику: имя, время подключения, информация о дорожках (аудио/видео/демонстрация экрана)
  • График битрейта: График битрейта в реальном времени для аудио и видеодорожек
  • Выгнать: Удалить любого участника из комнаты
  • Заглушить: Отключить аудиодорожки любого участника

Системные настройки

Страница настроек по адресу /dashboard/admin/settings организована в 9 вкладок. Нажмите «Сохранить изменения» после изменения любой вкладки (вкладка Общие автосохраняется при смене режима регистрации).

Вкладка Общие

  • Режим регистрации:
    • Открытая: Любой может зарегистрировать учётную запись
    • По приглашениям: Новые пользователи должны предоставить действительный токен приглашения
    • Закрыта: Новые регистрации запрещены — существующие пользователи могут входить
    • Изменения сохраняются автоматически при переключении режимов

Управление токенами приглашения (внутри вкладки Общие):

Токены определяют, кто может зарегистрироваться в режиме «По приглашениям».

  • Сгенерировать токен: Укажите опциональный email для привязки токена к конкретному адресу и выберите срок действия (24 часа, 72 часа, 7 дней или 30 дней).
  • Список токенов: Показывает все токены с их статусом. Неиспользованные токены имеют зелёный бейдж «Активен», использованные отображаются серым как «Использован».
  • Копировать токен: Нажмите кнопку копирования, чтобы скопировать 32-символьное значение токена в буфер обмена.
  • Отозвать: Удалите токен, чтобы предотвратить его использование.

Вкладка Аутентификация

  • Passkeys: Включить/выключить беспарольную аутентификацию FIDO2/WebAuthn
  • Провайдеры OAuth: Настройка OAuth для Google, GitHub и Twitter:
    • Client ID
    • Client Secret
    • Redirect URL

Каждый провайдер имеет собственную карточку настройки. Включите провайдера, заполнив все три поля.

Вкладка LiveKit

  • Внешний LiveKit: Переключатель для использования внешнего сервера LiveKit вместо встроенного
  • Хост: Хост и порт сервера LiveKit (например, 127.0.0.1:7880)
  • API Key: Ключ API сервера LiveKit
  • API Secret: Секрет API сервера LiveKit

Вкладка Сервер

  • Порт: Порт HTTP-сервера (по умолчанию: 80)
  • Хост: Имя хоста сервера
  • Домен: Домен сервера
  • Email: Административный email (используется для регистрации сертификатов ACME)
  • TLS: Включить HTTPS с файлами сертификатов
  • ACME: Включить автоматическое управление сертификатами Let’s Encrypt
  • Обратный прокси: Указать, что сервер находится за прокси (влияет на определение IP клиента)
  • Пути сертификатов: Пути к файлам сертификата и ключа (для ручной настройки TLS)
  • Статус сертификата: Встроенный индикатор состояния TLS-сертификата

Вкладка CORS

  • Разрешённые источники: Список CORS origins через запятую
  • Разрешённые заголовки: Список разрешённых заголовков запросов через запятую
  • Разрешённые методы: Список разрешённых HTTP-методов через запятую
  • Allow Credentials: Переключатель для включения учётных данных в кросс-доменных запросах
  • Max Age: Длительность кэширования предварительных CORS-ответов (в секундах)

Вкладка Лимиты комнат

Управляет количеством активных комнат, которые может создать один пользователь:

  • Макс. комнат на пользователя: Максимальное количество активных комнат, которое может создать пользователь без прав суперадминистратора (по умолчанию: 100, 0 = без ограничений). Суперадминистраторы обходят этот лимит.

Вкладка Квоты на загрузку

Управляет ограничениями хранилища для загружаемых в чат изображений:

  • Макс. байт загрузки на пользователя: Квота хранилища на пользователя во всех комнатах (по умолчанию: 524288000 = 500 МБ, 0 = без ограничений). Суперадминистраторы обходят этот лимит.
  • Глобальный порог диска: Общий лимит хранилища всех пользователей. При превышении все загрузки отклоняются, пока администратор не освободит место (по умолчанию: 0 = без ограничений). Этот лимит применяется ко всем, включая суперадминистраторов.

Вкладка Загрузки чата

Настройка хранения загруженных в чат изображений:

  • Бэкенд: disk (локальная файловая система), s3 (S3-совместимое хранилище) или inline (base64 встраивание)
  • Макс. размер загрузки: Максимальный размер файла на одну загрузку
  • Inline макс.: Максимальный размер для inline/base64 загрузок
  • Директория диска: Локальная директория для загрузок с бэкендом disk

Настройки S3 (когда бэкенд s3):

  • Endpoint, Bucket, Region
  • Access Key, Secret Key
  • Public URL

Вкладка Логирование

  • Уровень логирования: trace, debug, info, warn или error. Полезно для отладки — переключите на debug для детальных логов, затем обратно на info для продакшена.

Устранение неполадок

«Панель администратора не отображается»

Симптом: Раздел Admin не появляется в боковой панели, и ссылка «Admin panel» отсутствует в выпадающем меню пользователя.

Причина: Вошедший пользователь не имеет superadmin в массиве accesses.

Решение: Используйте CLI для повышения пользователя:

bedrud user promote --email "your-email@example.com"

Затем выйдите и войдите снова, чтобы получить новый JWT с обновлёнными правами доступа.

«Настройки не сохраняются»

Симптом: Сохранение настроек возвращает успех, но секретные значения не меняются.

Причина: Сервер сохраняет существующие секретные значения, когда вы отправляете "••••••••" или пустую строку в запросе обновления. Это сделано намеренно — предотвращает случайную перезапись секретов при изменении только несекретных полей.

Решение: Отправьте реальное значение секрета (не замаскированный плейсхолдер) в запросе обновления.

«Не могу удалить свою учётную запись»

Симптом: Кнопка удаления скрыта на странице деталей вашей учётной записи, или API возвращает ошибку 400.

Причина: Самоудаление заблокировано в целях безопасности. Вы не можете удалить учётную запись, под которой вы сейчас вошли.

Решение: Попросите другого суперадминистратора удалить учётную запись или используйте CLI под другим пользователем.

«Перенаправление на dashboard при переходе по URL администратора»

Симптом: Переход по адресу /dashboard/admin напрямую перенаправляет на /dashboard.

Причина: Защитный маршрут администратора проверяет массив accesses в вашем JWT. Если superadmin отсутствует, защита выполняет перенаправление.

Решение: Убедитесь, что ваша учётная запись имеет доступ суперадминистратора. Если права были недавно изменены, выйдите и войдите снова для обновления JWT.


См. также