Веб-админка
Полный обзор панели: где что настраивать, зачем нужен каждый раздел и с чего начать после установки.
Вход и роли
Адрес панели: https://ваш-домен.ru/{admin_secret_path}/. Путь задаётся в Настройки → Основные → ⚙️ Системные → admin_secret_path.
| Параметр | Где | Зачем |
|---|---|---|
admin_web_password | Основные → Системные | Пароль входа. При смене сбрасываются все сессии. |
admin_ip_whitelist | Основные → 🔒 Безопасность | Доступ только с указанных IP/CIDR. Loopback всегда разрешён. |
moderator_sections | Основные → вкладка 👤 Модератор | JSON-список разделов для роли модератора. |
Администратор vs модератор
- Администратор — настройки, панели (3X-UI / Remnawave), аналитика, бэкап, push, обновления.
- Модератор — только разделы из
moderator_sections: обычно клиенты, платежи, тарифы, инструменты (без/settings/,/analytics, Remnawave).
PWA и мобильный интерфейс
Админку можно установить как приложение (PWA) на iPhone и Android — откройте панель в браузере и добавьте на главный экран:
- iPhone (Safari) — «Поделиться» → «На экран „Домой“».
- Android (Chrome) — меню ⋮ → «Установить приложение» / «Добавить на главный экран» (формулировка зависит от версии Chrome).
На телефоне внизу — быстрые вкладки Главная / Клиенты / Платежи. Интерфейс учитывает safe-area (вырез, индикатор жестов). Push-уведомления — Настройки → Push (нужны HTTPS и разрешение уведомлений в браузере).
Карта бокового меню
Все пункты — в левом сайдбаре (на телефоне — гамбургер + нижняя панель для трёх главных разделов).
Рекомендуемый порядок первой настройки
- 1Основные —
bot_token, доменыconnect_page_url/sub_page_url,subscription_provider. - 2Методы оплаты — ключи шлюзов и переключатели
show_payment_*. См. документацию. - 3Панели — серверы 3X-UI или Remnawave → Настройки.
- 4Тарифы → Продление — линейка и активный набор тарифов.
- 5Subpage — ссылки приложений, тема, HWID (если нужен).
- 6Тексты / Стиль кнопок — тексты бота и подписи кнопок меню.
Главная
Оперативная сводка без углубления в карточки клиентов.
- Карточки клиентов — всего в базе, регистрации за сутки, активные подписки, заблокированные, «без пробного» (пустой UUID), онлайн на панелях (агрегат по 3X-UI).
- Статистика сервера — CPU/RAM/диск хоста, где крутится админка (SSE в реальном времени).
- Аналитика пользователей — регистрации и источники за период (сегодня / 7 / 30 дней, UTC).
- Серверы 3X-UI — краткий статус подключённых панелей с главной (переход в Панели → 3X-UI).
Финансовая аналитика и графики выручки — в отдельном разделе Аналитика.
Клиенты
Основной раздел поддержки. Поиск: Telegram ID, @username, email, UUID. Длинная цифровая строка (20+ цифр) не ломает страницу — обрабатывается как текст.
Список
- Фильтры: активная подписка, истекающие, заблокированные, теги.
- Ссылка на Заблокированные — отдельный список.
- Создать пользователя — ручной ID (до 19 цифр для SQLite), выдача подписки без Telegram.
Карточка клиента
| Действие | Назначение |
|---|---|
| Продление / дни / GB | Ручное изменение срока и трафика (Remnawave — сброс трафика при продлении дней, если включено в настройках RW). |
Лимит устройств (limit_ip) | Синхронизация с 3X-UI / Remnawave. |
| Смена сервера | Перенос между панелями 3X-UI (при X-UI провайдере). |
| Синхронизация с панелью | Подтянуть UUID, email, лимиты с 3X-UI или RW. |
| Отправить инструкцию | Сообщение в бот с фото и кнопками приложений (Happ / Android). |
| Блокировка / удаление | Блок — клиент не пользуется VPN; удаление — необратимо. |
| X-UI: онлайн, IP, трафик | Живые данные с панели, история запросов подписки. |
| Партнёр / реферал | Привязка invited_by, партнёрский процент. |
Платежи
Журнал всех попыток оплаты: pending, succeeded, canceled. Фильтр по методу, периоду, пользователю.
- succeeded — учитываются в аналитике «Выручка».
- Отменённые по таймауту — см. логику бота (ожидание оплаты).
- Ручное подтверждение — если шлюз не прислал webhook (редкие кейсы).
Настройка шлюзов — Методы оплат, не в этом разделе.
Аналитика
Только для администратора. Период: 7 / 30 / 90 / 365 дней или всё время.
- Выручка — сумма платежей
status = succeeded. - ARPU, конверсия, средний чек — по платящим за период.
- Лимит устройств — распределение
limit_ipтолько у клиентов с активной подпиской (окончание > сейчас, UTC). - Графики: регистрации, оплаты, методы оплаты, трафик Remnawave.
Сотрудничество
Рефералы
Статистика программы «приведи друга». Параметры в Основные → 👥 Реферальная система: ref_bonus_on_join_days, ref_bonus_on_payment_days, переключатели показа кнопок.
Тексты сообщений — Настройки → Тексты → 👥 Реферальная программа.
Партнёры
Список партнёров с балансом, рефералами и оплатами. KPI на странице (оптимизированные SQL-агрегаты).
- Карточка партнёра — начисления, выплаты, индивидуальный
partner_percent_rub. - Экспорт CSV — выгрузка для бухгалтерии.
- Глобально:
partner_percent_rub,partner_min_withdraw_rub,show_partner_program_buttonв Основных.
Продвижение
Материалы и ссылки для партнёров (баннеры, тексты, UTM). Отдельные промо-кампании от реферальной механики.
Тарифы
Продление
Тарифы подписки в боте и на сайте. Рекомендуется линейка тарифов — именованный набор, один активный набор в момент времени.
| Поле тарифа | Назначение |
|---|---|
| Цена / дни | Стоимость и срок продления. |
limit_ip | Лимит устройств (0 = без лимита в панели). |
| Трафик GB | Для Remnawave. |
| Звёзды TG | Отдельная цена для Telegram Stars. |
| Методы оплаты | Какие шлюзы доступны для этого тарифа. |
Подробнее: Методы оплат → Тарифы.
Докупить GB
Тарифы докупки трафика (только Remnawave). Нужен traffic_renewal_enabled в Панели → Remnawave → Настройки.
Лимит устройств
Платный апгрейд limit_ip без сброса срока: клиент платит за оставшиеся дни. Настройка цен за слот, минимальный чек, вкл/выкл функции.
Формула в боте: пропорция оставшихся дней × цена слота; «Подписка далее» — из минимального месячного тарифа с включённым методом оплаты.
Настройки
Все подразделы сохраняют данные в таблицу settings (или отдельные таблицы для subpage/backup). После сохранения бот подхватывает изменения через перезагрузку конфига.
Основные
Вкладки на одной странице. Кнопка «Сохранить все настройки» внизу формы.
| Вкладка | Что настраивать |
|---|---|
| 🤖 Настройки бота | bot_token, project_name, trial_days / trial_limit_ip, subscription_provider (X-UI / Remnawave для новых пользователей), show_* кнопок меню, show_website_button, канал, капча, подписка на канал. |
| 🔗 Ссылки | URL канала, поддержки, соглашения, политики, кастомная кнопка. Подписи кнопок — в «Стиль кнопок». |
| 💳 Методы оплаты | Переключатели show_payment_* и ключи YooKassa, Platega, CryptoBot, YooMoney, Wata, TG Stars. Карточки с webhook URL. |
| 👥 Реферальная система | Бонусы в днях, включение программы. |
| 💠 Партнёрская программа | Процент по умолчанию, мин. вывод, кнопка в боте. |
| ⚙️ Системные | connect_page_url (домен бота/API), sub_page_url, admin_secret_path, пароль админки, telegram_proxy_url, email домен. |
| 🔒 Безопасность | Rate limit бота, защита от ботов, whitelist IP админки. Тексты капчи — в «Тексты». |
| 📋 Задачи | cleanup_disabled_clients_*, server_health_check_* — фоновые проверки. |
| 👤 Модератор | Чекбоксы видимых разделов для роли модератора. |
remnawave_* (кроме subscription_provider) перенесены в Панели → Remnawave → Настройки — не ищите их в Основных.Тексты
Все пользовательские сообщения бота по категориям:
- 👋 Приветствие и подписка
- 💳 Оплата и продление
- 🎟️ Промокоды
- 👥 Реферальная программа
- 💬 Поддержка
- 📘 О сервисе и инструкции
- 🤖 Защита от ботов
Поддерживаются плейсхолдеры ({username}, срок подписки и т.д.) — смотрите подсказки в форме.
Стиль кнопок
Подписи inline-кнопок главного меню и разделов (не путать с URL из «Ссылки»). Можно сбросить к значениям по умолчанию.
Subpage
Subpage — раздел веб-админки для управления страницей подписки клиентов через xuiweb. Раньше большая часть этих параметров лежала только в .env subpage, теперь админка сохраняет JSON-настройки в таблицу settings, а subpage может подтянуть их через endpoint /api/settings/info при старте.
- Основная информация — название проекта, тема, support/website URL, интервал автообновления, текст анонса, разрешение копирования ключей, заглушки «истекла», «заблокирован», «лимит устройств».
- HWID-лимит — отдельный тумблер
hwid_limit_enabled. Он хранится отдельно и читаетсяxuiwebпри каждом запросе подписки, поэтому влияет на проверку устройств без пересборки общего конфига. - Ссылки приложений — отдельные ссылки Happ и INCY для iOS, Android, APK, Windows, macOS и Linux. Это именно ссылки, которые клиент видит на странице подписки.
- HTTP-заголовки — динамическая таблица заголовков
RESP_HEADER_*: напримерProfile-Title,Announceи другие данные для клиентских приложений.
API_CUSTOM_SETTINGS=true. Если API недоступен или поле пустое — остаётся fallback из .env.После изменения custom-настроек обычно нужен рестарт subpage, чтобы он заново подтянул JSON-конфиг. Заглушки блокировки и HWID-проверка работают через xuiweb и могут применяться без полного переноса настроек в .env. Подробнее: SUBPAGE, HWID.
Доп возможности
- Ссылки приложений в кабинете на сайте —
app_link_*для личного кабинета (WEBSITE), не для subpage. - Доп. ссылки в подписке —
sub_extra_links_active: vless/vmess/trojan в тело подписки активным клиентам. - VLESS backup — резервные ключи в подписке (если включено).
HWID-лимит на subpage — в разделе Subpage, не здесь.
Push-уведомления
Web Push для PWA админки: подписка администратора на уведомления (новые платежи, события). Требует HTTPS и разрешения браузера.
Бэкап
Авто- и ручной бэкап ZIP: vpn_bot.db, .env. При S3 — также devices.db; Telegram при включённом S3 не используется.
| Поле | Назначение |
|---|---|
admin_telegram_id | Куда слать ZIP в Telegram (если S3 выкл). |
| Интервал / вкл | Планировщик авто-бэкапа. |
| S3 | endpoint, bucket, keys, prefix — см. раздел ниже. |
Панели
3X-UI
Управление серверами панели 3X-UI.
- Добавить сервер — URL панели, логин, пароль, inbound, приоритет, лимит клиентов, теги.
- Синхронизация — массовая проверка клиентов на панели.
- Live-статус — CPU, RAM, онлайн, версия Xray.
- Вкладки — все / офлайн / архив (серверы вне ротации новых клиентов).
- Архив — «В архив», восстановление, проверка доступности без синка, удаление.
Шаблон ключа и inbound — документация 3X-UI. Шаблоны инбаундов — Инструменты → Шаблоны инбаундов.
Remnawave
Два подпункта: Дашборд (статистика панели, ноды, пользователи) и Настройки.
| Блок настроек | Назначение |
|---|---|
| Подключение | remnawave_enabled, base URL, API token. |
| Новые пользователи | UUID сквада по умолчанию, лимит трафика GB (0 = безлимит в логике лимита). |
| Продление трафика | Отдельная опция докупки GB в боте. |
| Вебхуки и NO LIMIT | Секрет, squad при исчерпании трафика, приём вебхуков. |
subscription_provider — по-прежнему в Основные. Полная инструкция: Remnawave.
Xray JSON
Шаблон JSON-конфига для выдачи клиентам (3X-UI / совместимый режим). Плейсхолдеры подставляются при генерации подписки.
Инструменты
| Раздел | Назначение |
|---|---|
| Миграция | Массовый перенос пользователей на Remnawave (subscription_provider). Остановите бота на время миграции. Инструкция. |
| Задачи | Очередь фоновых задач: массовые операции, статус выполнения. |
| Отчёты |
|
| Рассылка | Шаблоны новостей в бот + кнопка бесплатного продления (free_renewal_days в Основных). |
| Шаблоны инбаундов | Пресеты JSON для быстрого добавления серверов 3X-UI. |
| Сервисы | systemd: vpn-bot, vpn-webadmin, xuiweb, website, subpage — start/stop/restart, журнал. |
| Обновления | Загрузка обновлений проекта с сервера обновлений (только для админов с правом updates). |
Промокоды
Создание кодов на дни / скидку — через раздел промокодов (доступ из меню или настроек, в зависимости от версии). Тексты — в Тексты → Промокоды.
Бэкап и S3 (подробно)
devices.db (HWID). Нужен pip install boto3 на сервере бота.- 1Заполните S3: endpoint, region, bucket, access key, secret (пустой secret при сохранении = не менять).
- 2Включите «Отправка в S3» и интервал авто-бэкапа.
- 3«Сделать бэкап сейчас» — проверка вручную.
last_backupобновится при успехе Telegram или S3.
Восстановление — Переезд проекта.