Что такое Cabinet?
Bedolaga Cabinet — веб-приложение для управления VPN подписками через браузер. Работает как полноценный личный кабинет с авторизацией через Telegram, email или OAuth-провайдеров (Google, Яндекс, Discord, VK). Включает встроенную админ-панель для управления всем сервисом.Telegram + Email + OAuth
4 способа авторизации, включая вход без Telegram
Админ-панель
Полное управление сервисом через веб-интерфейс
RBAC + ABAC
Роли, разрешения, политики доступа и журнал аудита. Подробнее →
Анимированные фоны
15 визуальных эффектов на базе Aceternity UI. Подробнее →
Real-time
WebSocket-уведомления и мгновенные обновления
Возможности для пользователей
Подписки
Покупка, продление, смена тарифа, приостановка. Выбор серверов и стран. Управление устройствами (HWID). Мультитарифный режим — несколько подписок одновременно.
Баланс и платежи
Пополнение через любую подключённую платёжную систему. История транзакций с фильтрацией. Telegram Stars.
Подключение к VPN
Ключи подключения, полноэкранный QR-код, инструкции по настройке. Deep-ссылки для автоматического импорта в VPN-клиенты.
Реферальная программа
Реферальная ссылка, список рефералов, история начислений. Заявка на партнёрство, вывод средств.
Поддержка
Создание тикетов, переписка с поддержкой, уведомления о статусе.
Подарочные подписки
Покупка и отправка по коду, deep link или по контакту получателя. Активация в боте или Cabinet. Подробнее →
Дополнительно
Промокоды, рекламные предложения, конкурсы, мини-игры, колесо фортуны, опросы.
Авторизация
Cabinet поддерживает 4 независимых способа входа. Пользователи могут регистрироваться и использовать сервис без Telegram.Telegram
| Способ | Описание |
|---|---|
| WebApp (Mini App) | Автоматический вход при открытии внутри Telegram — валидация initData с HMAC-SHA256 |
| Login Widget | Кнопка «Войти через Telegram» на веб-странице для браузерного доступа |
- Регистрация с валидацией (блокировка одноразовых email)
- Верификация через ссылку в письме
- Вход по email + паролю
- Сброс пароля через email
- Смена email с подтверждением кодом
OAuth 2.0
openid email profileЯндекс
login:info login:emailDiscord
identify emailVK ID
vkid.personal_info email (OAuth 2.1 + PKCE)JWT-токены
| Токен | Срок жизни | Хранение |
|---|---|---|
| Access | 15 мин (настраивается) | sessionStorage |
| Refresh | 7 дней (настраивается) | localStorage, SHA-256 хеш в БД |
Админ-панель
Полнофункциональная веб-панель администратора доступна прямо в Cabinet.Доступ
Разделы
Дашборд
Аналитика, статистика пользователей, подписок и доходов
Статистика продаж
6 аналитических вкладок: сводка, триалы, продажи, продления, доп. услуги, пополнения. Графики по тарифам, платёжкам, периодам. Подробнее →
Пользователи
Поиск, просмотр профилей, управление данными, история действий
Тарифы
Создание, редактирование, включение/выключение тарифов, статистика
Серверы
Управление серверами, синхронизация с RemnaWave, статистика нагрузки
Платежи
Все транзакции, поиск по ID, настройка отображения платёжных методов
Рассылки
Массовые сообщения пользователям с фильтрацией и шаблонами
Промокоды
Создание и управление промокодами, промогруппами (периодические скидки), статистика
Рекламные кампании
Создание кампаний с deep-ссылками и отслеживанием конверсий
Партнёры
Заявки на партнёрство, настройка комиссий, управление партнёрами
Выводы средств
Обработка запросов на вывод реферальных средств (одобрение / отказ / завершение)
Рефералы
Управление реферальными связями: назначение/удаление реферера, добавление рефералов
Поддержка
Управление тикетами, настройка уведомлений о SLA
Настройки
Live-редактирование конфигурации бота без перезапуска. Древовидная навигация: 7 групп, 61 категория, быстрые переключатели
Редактор меню
Drag-and-drop настройка структуры меню, кастомные URL-кнопки, стили и иконки. Подробнее →
RemnaWave
Статус панели, ноды, сквады, синхронизация, миграции пользователей между сквадами. Вкладка трафика с разбивкой по inbound. Поддержка v2.7.0
Трафик
Мониторинг потребления трафика по пользователям
Рекламные предложения
Шаблоны промо-предложений, персональные рассылки
Email-шаблоны
Редактирование шаблонов писем (верификация, сброс пароля) с предпросмотром и тестовой отправкой
Приложения
Настройка VPN-приложений для скачивания, deep-ссылки по платформам, брендирование
Колесо фортуны
Настройка призов, стоимости вращения, лимитов
Закреплённые сообщения
Создание сообщений, отображаемых всем пользователям в кабинете
Новости
Создание и публикация статей, управление категориями и тегами, загрузка медиа. Подробнее →
Обновления
Проверка новых версий бота и кабинета
Роли и доступ (RBAC)
Создание ролей с разрешениями, назначение пользователям, ABAC-политики (время, IP), журнал аудита. Подробнее →
Анимированные фоны
15 визуальных эффектов (CSS, Canvas, SVG), live-превью, мобильная оптимизация. Подробнее →
Архитектура
- Раздаёт статику frontend
- Проксирует
/api/*на backend бота (с удалением префикса/api)
| Режим | MAIN_MENU_MODE | Описание |
|---|---|---|
| Стандартный | default | Полноценный Telegram-бот с inline-кнопками |
| Кабинет | cabinet | Минимальное текстовое меню с перенаправлением в веб-кабинет |
Стек технологий
| Технология | Назначение |
|---|---|
| React 18 | UI фреймворк. Автоперезагрузка при ошибках чанков (lazyWithRetry) |
| TypeScript | Типизация |
| Vite | Сборка |
| Tailwind CSS | Стили |
| Zustand | State management |
| i18next | Мультиязычность (RU/EN/CN/UA/FA) |
| Telegram WebApp SDK | Авторизация через Telegram |
| WebSocket | Real-time уведомления |
Переменные окружения
Build-time (вшиваются в JS при сборке)
| Переменная | Описание | По умолчанию |
|---|---|---|
VITE_API_URL | Путь к API (/api или полный URL) | /api |
VITE_TELEGRAM_BOT_USERNAME | Username бота (без @) | — |
VITE_APP_NAME | Название в шапке и вкладке | Cabinet |
VITE_APP_LOGO | Текст логотипа (1-2 символа) | V |
Backend бота (.env бота)
| Переменная | Описание | По умолчанию |
|---|---|---|
CABINET_ENABLED | Включить Cabinet API | false |
CABINET_URL | Базовый URL кабинета (для ссылок в email и OAuth) | — |
CABINET_JWT_SECRET | Секретный ключ для JWT | — |
CABINET_ALLOWED_ORIGINS | CORS origins (через запятую) | — |
CABINET_ACCESS_TOKEN_EXPIRE_MINUTES | Время жизни access token | 15 |
CABINET_REFRESH_TOKEN_EXPIRE_DAYS | Время жизни refresh token | 7 |
CABINET_EMAIL_AUTH_ENABLED | Включить email-вход | true |
CABINET_EMAIL_VERIFICATION_ENABLED | Требовать верификацию email | true |
CABINET_BUTTON_STYLE | Стиль кнопок: primary, success, danger | — |
MAIN_MENU_MODE | Режим меню: default или cabinet | default |
Быстрый старт
Разверните frontend
Подробная инструкция: Установка Cabinet
Настройте прокси
Caddy, Nginx или Traefik: Настройка прокси
Добавьте авторизацию (опционально)
- Email-авторизация — вход без Telegram
- OAuth-провайдеры — Google, Яндекс, Discord, VK
