No description
- Python 51.3%
- HTML 37%
- CSS 6.1%
- JavaScript 4.6%
- Shell 0.9%
| APP_IOS&ANDROID@c565dc2cdb | ||
| war-server | ||
| .gitignore | ||
| idea.md | ||
| idea_antiDDOS.md | ||
| idea_autopay.md | ||
| idea_platform.md | ||
| log.txt | ||
| README.md | ||
| roadmap.md | ||
| Worklog_routers.md | ||
| WORKLOG_SUPPORT_CHAT.md | ||
🛡️ VPN Bot
Телеграм-бот для продажи и управления VPN-подписками с веб-панелью администратора.
✨ Возможности
Для пользователей
- Регистрация через Telegram или Email
- Покупка и продление VPN-подписки
- Несколько способов оплаты: YooKassa, Telegram Stars, CryptoBot, YooMoney, Platega (СБП)
- Управление устройствами и лимитами
- Реферальная (партнёрская) программа с выводом средств
- Промокоды и скидки
- Поддержка через встроенный чат
Для администратора
- Веб-панель управления пользователями, тарифами, платежами
- Настройка тарифов с привязкой к способу оплаты и тегу пользователя
- Ручное продление, блокировка, редактирование пользователей
- Рассылка новостей и уведомлений
- Аналитика и отчёты
- Управление промокодами
- Запросы на вывод средств партнёров
🏗️ Архитектура
bot/
├── main.py # Точка входа, регистрация хендлеров
├── db_helpers.py # Все запросы к SQLite
├── keyboards.py # Клавиатуры Telegram
├── x_ui_manager.py # Интеграция с 3X-UI
├── remnawave_manager.py # Интеграция с Remnawave
├── src/
│ ├── renewal_handlers.py # Обработчики оплаты и продления
│ ├── notifications.py # Уведомления (Telegram + Email)
│ ├── migrations.py # Авто-миграции БД
│ └── texts.py # Тексты сообщений
├── web_admin/ # Веб-панель администратора (Quart + Hypercorn)
│ ├── routes/ # Маршруты: users, tariffs, payments...
│ └── templates/ # HTML-шаблоны
├── analytics/ # Сервис аналитики (FastAPI)
├── xuiweb/ # API-прокси для 3X-UI / Remnawave (FastAPI)
├── website/ # Публичный сайт с личным кабинетом
└── support_chat/ # Бот поддержки (отдельный Telegram-бот)
subpage/ # Страница подписки с QR-кодом (FastAPI)
🖥️ Сервисы
| Сервис | Описание | Порт | systemd |
|---|---|---|---|
| vpn-bot | Основной Telegram-бот | — | vpn-bot.service |
| vpn-webadmin | Веб-панель администратора | 8181 |
vpn-webadmin.service |
| analytics | Сбор и отображение аналитики (трафик, онлайн) | — | analytics.service |
| xuiweb | API-прокси для взаимодействия с 3X-UI / Remnawave | 8282 |
xuiweb.service |
| subpage | Страница подписки с QR-кодом для клиента | 3004 |
subpage.service |
| support-chat | Telegram-бот поддержки (связь клиент ↔ админ) | — | support-chat.service |
| website | Публичный сайт с личным кабинетом | — | — |
Управление сервисами
# Запуск
sudo systemctl start vpn-bot.service
sudo systemctl start vpn-webadmin.service
sudo systemctl start analytics.service
sudo systemctl start xuiweb.service
sudo systemctl start subpage.service
sudo systemctl start support-chat.service
# Перезапуск после обновления
sudo systemctl restart vpn-bot.service # изменения в bot/ и src/
sudo systemctl restart vpn-webadmin.service # изменения в web_admin/
sudo systemctl restart analytics.service # изменения в analytics/
sudo systemctl restart xuiweb.service # изменения в xuiweb/
sudo systemctl restart subpage.service # изменения в subpage/
sudo systemctl restart support-chat.service # изменения в support_chat/
💳 Платёжные системы
| Система | Валюта |
|---|---|
| YooKassa | RUB |
| YooMoney | RUB |
| Platega (СБП) | RUB |
| Telegram Stars | ⭐ |
| CryptoBot | USDT, TON, BTC, ETH, USDC |
🏷️ Теги пользователей
Теги позволяют сегментировать пользователей и показывать им специальные тарифы:
| Тег | Назначение |
|---|---|
| 🙋 Друг | Знакомые и друзья |
| 👨👩👧 Семья | Родственники |
| 👤 Партнёр | Партнёры программы |
| ☎️ Роутер | Пользователи с роутером |
| 🧩 VLESS ссылки | Ручные VLESS-конфиги |
| 🪪 Ручное добавление | Добавлены вручную |
| 📈 Таргет | Таргетированная реклама |
| 🎁 Доп пробный | Дополнительный пробный период |
| 🕵️♂️ Подозрительный | На проверке |
| 🗑️ Мусор | Неактивные / спам |
Если у пользователя установлен тег — ему показываются только тарифы для этого тега.
📬 Уведомления
Бот отправляет уведомления пользователям:
- За 3 дня до окончания подписки
- За 1 день до окончания
- В день окончания подписки
Для пользователей, зарегистрированных через Email, уведомления отправляются на почту как резервный канал.
🤝 Партнёрская программа
- Реферальные ссылки (Telegram + сайт)
- Начисление % с каждой оплаты реферала
- Запрос на вывод средств прямо из бота
- Подтверждение выплаты администратором через Telegram или веб-панель
- История выплат
🗄️ База данных
SQLite с автоматическими миграциями при запуске. Основные таблицы:
| Таблица | Описание |
|---|---|
users |
Пользователи и их подписки |
tariffs |
Тарифы и цены |
payments |
История платежей |
promo_codes |
Промокоды |
partner_withdrawals |
Запросы на вывод средств |
notification_log |
Лог отправленных уведомлений |
settings |
Настройки сервиса |