Skip to content
This repository was archived by the owner on Jan 31, 2026. It is now read-only.

UtyaDev/UtyaVPN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Уникальное решение с поддержкой АнтиЗапрет и полного туннелирования с использованием протоколов VLESS (XTLS, Reality), OpenVPN (с патчем для обхода блокировок), WireGuard и AmneziaWG

Этот проект представляет собой Telegram-бота для управления доступом к UtyaVPN-Server. Он позволяет пользователям запрашивать, продлевать и управлять своими конфигурациями VPN, а администраторам предоставляет инструменты для управления пользователями и сервисом.

Возможности

  • Гибкая система доступа:
    • Ручное одобрение: Администраторы могут вручную одобрять заявки новых пользователей, предоставляя им доступ.
    • Автоматическая активация: Пользователи могут самостоятельно оплачивать и продлевать подписку с помощью Telegram Stars, получая доступ автоматически.
  • Промокоды: Администраторы могут создавать промокоды, которые пользователи могут активировать для получения дополнительных дней доступа.
  • Управление конфигурациями VPN: Пользователи могут получать файлы конфигурации для различных протоколов VPN.
  • Инструменты администратора: Широкий набор инструментов для управления сервисом, включая одобрение заявок, управление пользователями, рассылку сообщений и многое другое.
  • Запланированные задачи: Автоматизированные задачи для отправки напоминаний об оплате, проверки истекших учетных записей и ежедневного резервного копирования базы данных.
  • Информационные меню: Пользователи могут получить подробную информацию о доступных протоколах VPN и вариантах подключения.

Структура проекта

Проект организован в следующие каталоги:

UtyaVPN/
├── assets/             # Статические ассеты: стикеры .tgs
├── config/             # Конфигурационные файлы: тексты сообщений, настройки, параметры VPN.
├── core/               # Ядро бота: инициализация, подключение к БД, middlewares.
├── modules/            # Логические модули бота, разделенные по функциональности:
│   ├── admin/          # Функционал администратора.
│   ├── common/         # Общий функционал для всех пользователей.
│   ├── user_onboarding/ # Процесс регистрации и приема новых пользователей.
│   └── vpn_management/ # Управление VPN конфигурациями и подписками.
├── services/           # Вспомогательные сервисы: операции с БД, управление VPN, планировщик.
├── main.py             # Основная точка входа в приложение.
├── requirements.txt    # Зависимости Python.
└── setup.sh            # Скрипт для первоначальной настройки проекта.

Установка и запуск

Чтобы настроить и запустить бота, выполните следующие действия:

  1. Клонируйте репозиторий:

    git clone https://github.com/UtyaVPN/UtyaVPN.git
    cd UtyaVPN
  2. Запустите скрипт установки: Скрипт setup.sh автоматизирует весь процесс установки. Он запросит у вас необходимую информацию, такую как токен вашего Telegram-бота и идентификатор администратора.

    chmod +x setup.sh
    ./setup.sh

    Скрипт выполнит следующие действия:

    • Создаст файл .env с вашей конфигурацией.
    • Настроит виртуальное окружение Python.
    • Установит необходимые зависимости из requirements.txt.
    • Создаст и запустит службу systemd для работы бота в фоновом режиме.
  3. Проверьте установку: После завершения работы скрипта вы можете проверить статус службы с помощью:

    sudo systemctl status bot

Использование

Команды пользователя

  • /start - Начать взаимодействие с ботом.

Команды администратора

  • /admin: Открывает панель администратора с возможностью:
    • Проверить запросы на доступ.
    • Удалить пользователя.
    • Отправить широковещательное сообщение.
    • Получить список всех пользователей.
    • Управление промокодами.
  • /renewall: Продлевает конфигурацию VPN для всех активных пользователей.
  • /renew <user_id> <+><days>: Продлевает подписку пользователя, добавляя указанное количество дней к текущей дате окончания доступа, если указан +, в противном случае, устанавливает новую дату окончания.
  • /update <user_id> <days>: Устанавливает срок действия подписки пользователя на указанное количество дней с текущей даты.
  • /refund <user_id> <payment_charge_id>: Возвращает платеж Telegram Stars.

Логирование

Логи бота управляются systemd и могут быть просмотрены с помощью journalctl:

sudo journalctl -u bot -f

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published