Обзор
Бот предоставляет обширные возможности кастомизации интерфейса: от логотипа и структуры меню до цветов кнопок и шаблонов email. Настройки применяются через переменные окружения, а многие из них можно изменить без перезапуска через админ-панель.Логотип и брендинг
Логотип бота
Бот может отправлять логотип вместе с каждым сообщением — изображение прикрепляется автоматически.Названия сервиса
Брендинг Cabinet (🔗 Cabinet)
При установленном Cabinet доступна полная кастомизация через API/cabinet/branding/*:
Цвета темы по умолчанию:
Режим главного меню
Бот поддерживает два режима отображения главного меню.Режим default
Классический режим — все кнопки работают как стандартные инлайн-кнопки Telegram с callback-обработчиками внутри бота.
Режим cabinet
Кнопки меню становятся WebApp-кнопками и открывают соответствующие разделы Cabinet MiniApp.
Алиасы режимов (для обратной совместимости):
classic,full,standard→defaulttext,text_only,minimal→cabinet
Стиль кнопок (Bot API 9.4)
В режимеcabinet кнопки поддерживают цветовое оформление:
Автоматические цвета по секциям: Баланс — синий, Подписка — зелёный, Купить — зелёный, Партнёрка — синий, Подключиться — зелёный.
Приоритет стиля: параметр кнопки → переопределение в БД →
CABINET_BUTTON_STYLE → стандартный цвет секции.
Динамическое меню
Редактор меню
Визуальная настройка структуры меню Cabinet: drag-and-drop, кастомные URL-кнопки, стили, иконки, мультиязычные подписи.
Кнопка «Подключиться»
5 режимов работы кнопки подключения:Настройки для Happ
Гайд подключения
app-config.json содержит конфигурацию приложений для инструкции подключения. Кэшируется на время APP_CONFIG_CACHE_TTL секунд.
Видимость кнопок и разделов
Переключатели интерфейса
Переключатели функций (влияют на интерфейс)
Режим продаж
Простая покупка
Выбор трафика
Описания платежей
Описания в чеках и платёжных системах настраиваются для избежания блокировок:Display Name провайдеров
Название каждого провайдера в интерфейсе настраивается:Локализация
Языки
Пользователь может переключить язык в любой момент через настройки.
Валюта и форматирование
Все цены хранятся в копейках. Валюта — рубли (зашита в код).
Процесс регистрации
Шаги при первом запуске бота (/start):- Выбор языка — если
LANGUAGE_SELECTION_ENABLED=true - Правила использования — если
SKIP_RULES_ACCEPT=false - Политика конфиденциальности
- Реферальный код — если
SKIP_REFERRAL_CODE=false - Главное меню
Обязательная подписка на каналы
Система поддерживает мультиканальную подписку с управлением через бот и Cabinet. Каналы добавляются через админ-панель, а не через переменные окружения.Подробная документация
Настройка, мультиканальная подписка, цветные кнопки, архитектура кэширования.
Управление контентом
Текстовый контент (правила, FAQ, оферта, политика конфиденциальности) управляется через две системы:Файлы локализаций
Директорияlocales/ содержит тексты для каждого языка. Бот загружает их при запуске.
Переопределение через админ-панель
Администратор может изменять тексты контента через бота без перезапуска. Значения сохраняются в базе данных (SystemSetting) и применяются поверх файлов локализаций.
Редактируемый контент:
- Правила использования
- FAQ
- Оферта / договор
- Политика конфиденциальности
Обработка неизвестных сообщений
Бот отвечает сообщением «Не понимаю эту команду» на любые сообщения, отправленные вне активного диалога (FSM-состояния). Это относится к:- Текстовым сообщениям, не являющимся командами
- Фотографиям, видео, документам и другим медиафайлам
Если пользователь находится в активном диалоге (например, вводит реферальный код, сумму пополнения или текст тикета), медиафайлы обрабатываются в контексте этого диалога.
Статус серверов
Алиасы:
off/none → disabled, external/link → external_link, miniapp/webapp → external_link_miniapp, xraychecker/metrics → xray.
Шаблоны в Remnawave
Настройка отображения пользователей в панели Remnawave:
Username автоматически очищается до
[A-Za-z0-9_-], максимум 36 символов.
Сообщения и уведомления
Кастомизация сообщений бана (BedolagaBan)
Сообщение техработ
Email-уведомления (🔗 Cabinet)
Email-уведомления работают только при
CABINET_ENABLED=true и настроенном SMTP.SMTP
Типы email-уведомлений
Бот поддерживает 22+ типа email-уведомлений:Кастомизация шаблонов
Каждый тип уведомления имеет встроенный HTML-шаблон с поддержкой всех языков. Администратор может переопределить шаблон через Cabinet API для конкретного типа и языка. Доступные переменные в шаблонах:{username}, {amount}, {period}, {days_left}, {reason}, {verification_url}, {reset_url}, {referral_name}, {required}, {warning_message}.
Все шаблоны содержат кнопку «Открыть кабинет» со ссылкой на CABINET_URL.
OAuth-авторизация (🔗 Cabinet)
Для каждого провайдера нужны
*_CLIENT_ID и *_CLIENT_SECRET.
Аналитика (🔗 Cabinet)
Настраиваются через Cabinet API
/cabinet/branding/*.
Три уровня конфигурации
Бот использует трёхуровневую систему настроек:- Переменные окружения (
.env) — основной источник, ~200+ параметров - БД-переопределения (
SystemSetting) — администратор меняет настройки без перезапуска через админ-панель - Cabinet Branding (
SystemSetting) — настройки темы и брендинга кабинета через REST API (🔗 Cabinet)
Многие настройки из
.env можно изменить в рантайме через админ-панель бота. Они сохраняются в БД и применяются поверх переменных окружения.