Панель администратора предоставляет веб-интерфейс для управления экземпляром 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.
См. также
- API администратора — полный справочник API для всех административных эндпоинтов
- Аутентификация — уровни доступа и ролевая система
- Конфигурация — справочник настроек config.yaml
- Быстрый старт — пошаговая настройка первого администратора