Skip to content

Mini App: обзор и темы

Мини-аппа — личный кабинет подписчика внутри Telegram. Это лёгкое SPA без сборки (vanilla HTML/CSS/JS), которое веб-сервис отдаёт по пути /app. Бот открывает её через кнопку меню чата «VPN» и инлайн-кнопку «📱 Открыть приложение» — URL берётся из настройки SUBSCRIPTION_MINI_APP_URL, а если она пуста, при старте бота подставляется автоматически из WEB__PUBLIC_URL как <домен>/app.

Все данные мини-аппа получает из cabinet API (/api/cabinet/*) с авторизацией по Telegram initData — контракт описан на странице Контракт cabinet API. Оформление и содержимое задаёт владелец в веб-кабинете — см. Настройку владельцем.

Три вкладки

Один макет на все темы: контент разбит на три вкладки с нижней навигацией.

ВкладкаЧто внутри
ГлавнаяПриветствие владельца, карточка статуса подписки (активна / пробный период / нет подписки, счётчик «дней осталось», прогресс-бар, дата окончания), кнопка «Попробовать бесплатно» (если триал доступен), тарифы с выбором срока и способа оплаты (баланс / ⭐ Stars / подключённые онлайн-шлюзы), карточка «Пригласи друга», MTProto-прокси (если включён) и кастомные блоки владельца
ПодключениеПошаговый мастер подключения (см. ниже)
КабинетПрофиль (имя, @username, баланс), сводка по подписке, «Мои устройства» — список HWID-устройств с отвязкой в один тап, поле промокода, история платежей, MTProto-прокси и встроенный чат поддержки (отвечает ИИ-поддержка, ответы оператора приходят туда же)

В режиме продаж «конструктор» (SALES_MODE) вместо готовых тарифов на Главной показывается сборка «срок + пакет трафика» с итоговой ценой — подробнее в настройках кабинета.

Мастер подключения

Вкладка «Подключение» — пошаговый мастер на весь экран, ведущий подписчика от нуля до включённого VPN (кнопка «Установка и настройка» на Главной ведёт сюда же):

  1. Интро — «Настройка на iOS/Android/…» (платформа определяется автоматически), выбор приложения фишками, если владелец включил несколько, и две кнопки: «Начать настройку на этом устройстве» либо «Установить на другом устройстве» (тогда платформа выбирается вручную, а подписка передаётся ссылкой).
  2. Приложение — «Установить приложение»: кнопка стора подставляется под выбранное приложение и платформу.
  3. Подписка — «Добавить подписку»: deep-link в один тап (через /dl-редирект для кастомных схем) плюс копируемая ссылка для ручного добавления.
  4. Готово! — конфетти и подсказка нажать круглую кнопку включения VPN в приложении.

Прогресс показан дугой вокруг центральной иконки; весь мастер нарисован на переменных темы, так что каждая из 18 тем красит его в своём характере.

Deep-links формируются на бэкенде для девяти клиентов:

text
happ://add/<subscription_url>        # или crypto_link из панели, если есть
incy://add/<subscription_url>
v2raytun://import/<subscription_url>
hiddify://import/<subscription_url>
streisand://import/<subscription_url>
shadowrocket://add/sub://<base64(url)>
v2box://install-sub?url=<urlencoded>
clash://install-config?url=<urlencoded>
sing-box://import-remote-profile?url=<urlencoded>

Какие из них видит подписчик и в каком порядке — настройка CONNECTION_APPS (первое приложение = основное в мастере).

Скрытая ссылка подписки

Если владелец включил HIDE_SUBSCRIPTION_LINK, копируемая ссылка на шаге 2 не показывается — остаётся только кнопка «Открыть в приложении», импорт через deep-link продолжает работать.

8 тем оформления

Владелец выбирает одну из 8 тем (внутренние коды a..h). Макет и данные одинаковые — различаются палитра, шрифты и форма элементов.

ТемаКодХарактер
Минималminimal (a)Нейтральная палитра, синий акцент — чистый базовый вид
Прайватprivate (b)Серифная Georgia, тёмно-зелёный с золотом — «закрытый клуб»
Баддиbuddy (c)Nunito, крупные скругления, оранжевый акцент — дружелюбный
Нативныйnative (d)Системная типографика и цвета в духе нативных списков
Терминалterminal (e)JetBrains Mono, зелёный на тёмном — консоль
Журналmagazine (f)Georgia, нулевые скругления, карточки без боковых рамок — editorial
Неонneon (g)Градиентный фон, «стеклянные» карточки с blur, градиентные кнопки
Попpop (h)Unbounded, жирные рамки и жёсткие тени, лаймовый акцент

Галерея

Тема МинималТема Прайват
Тема БаддиТема Нативный
Тема ТерминалТема Журнал
Тема НеонТема Поп

Светлая и тёмная схема

Каждая тема имеет светлую и тёмную палитру. Схема берётся из Telegram (colorScheme) при открытии и переключается на лету по событию themeChanged — если пользователь сменит тему Telegram, мини-аппа перекрасится без перезагрузки. Для превью схему можно зафиксировать параметром ?mode=light|dark.

Локализация RU/EN

Язык интерфейса берётся из профиля пользователя (user.language): при первом контакте он определяется по language_code из Telegram — en даёт английский, всё остальное — русский. Переведены все строки, включая вкладки (Home / Connect / Account), шаги подключения и тосты. Параметр ?lang=ru|en переопределяет язык для превью.

Живое демо

Посмотреть мини-аппу вживую можно в демо-боте @bot_vpn4_bot.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов