#Описание
RemnaWave Telegram Bot — это многофункциональный бот для управления подписками(Для каждой подписки возможно назначить свой сквад со своими инбаундами - нововведение Remnawave 2.0.0+), балансом, промокодами, тестовой подпиской и рассылками пользователям через Telegram.
Бот интегрирован с системой RemnaWave версии 2.0.8
#Основные возможности
Мультиязычный интерфейс (на данный момент русский и английский языки)
Создание и покупка подписок с управлением трафиком, длительностью и ценой
Бесплатная тестовая подписка с ограничениями
Пополнение баланса: 1) Через саппорт в ручную 2) Отправка заявки с суммой админу (С возможность подтвердить/отклонить заявку)
Управление балансом пользователей (пополнение, списание)
Промокоды со скидками и ограничениями по использованию
Полноценная админ-панель с контролем пользователей, созданием подписок(Подтягивает UUID сквада из панели), платежей и статистикой
Рассылка сообщений отдельным пользователям и всем сразу
Интеграция с RemnaWave API для управления подписками и пользователями RemnaWave
История платежей(Не работает, в доработке) и управление платежами (подтверждение, отклонение)
#Требования
Pip
Python 3.8+
PostgreSQL, SQLite или другая поддерживаемая SQL-база данных
Токен Telegram-бота
URL и токен RemnaWave API
#Установка
-
Клонируйте репозиторий:
git clone https://github.com/Fr1ngg/remnawave-bedolaga-telegram-bot cd remnawave-bedolaga-telegram-bot
-
Установите python3 python pip
sudo apt install pip sudo apt install python3 -
Установите зависимости:
pip install -r requirements.txt -
Создайте файл .env в корне проекта и заполните его необходимыми переменными окружения. Пример:
BOT_TOKEN=ваш_telegram_bot_token REMNAWAVE_URL=https://your-remnawave-url.ru REMNAWAVE_MODE=remote/local REMNAWAVE_TOKEN=ваш_remnawave_token SUBSCRIPTION_BASE_URL=https:// DATABASE_URL=sqlite+aiosqlite:///bot.db ADMIN_IDS=123456789,987654321 DEFAULT_LANGUAGE=ru SUPPORT_USERNAME=support TRIAL_ENABLED=true TRIAL_DURATION_DAYS=3 TRIAL_TRAFFIC_GB=2 TRIAL_SQUAD_UUID=19bd5bde-5eea-4368-809c-6ba1ffb93897 TRIAL_PRICE=0.0 -
Запустите бота:
-
Хлебный - создание службы автозапуска, проверка файлов, запуск бота
chmod +x run.sh ./run.sh -
Для мужчин (Службу там поднять самому, докерфайл собрать или под скрином развернуть - уже твое дело)
python main.py
#Конфигурация
BOT_TOKEN — токен Telegram бота от BotFather.
REMNAWAVE_URL — URL API RemnaWave.
REMNAWAVE_MODE=remote
REMNAWAVE_TOKEN — токен доступа к API RemnaWave.
DATABASE_URL — строка подключения к базе данных.
ADMIN_IDS — через запятую Telegram ID администраторов.
SUPPORT_USERNAME — ник поддержки, без @ указывать
Параметры тестовой подписки (включение, длительность, трафик, UUID squad, цена).
TRIAL_ENABLED=true/false
TRIAL_DURATION_DAYS=3 (дни)
TRIAL_TRAFFIC_GB=2
TRIAL_SQUAD_UUID=(УКазать UUID сквада из панели!)
TRIAL_PRICE=0.0(не трогать)
#Использование
/start
#Структура проекта
main.py — главный файл запуска.
handlers.py — основные обработчики команд и действий пользователя.
admin_handlers.py — обработчики команд и действий администраторов.
database.py — модели и методы работы с базой данных (SQLAlchemy).
remnawave_api.py — интеграция с API RemnaWave.
keyboards.py — генерация клавиатур Telegram.
translations.py — локализация и переводы.
utils.py — вспомогательные функции.
middlewares.py — промежуточные слои для обработки сообщений и запросов.
.env — файл конфигурации с переменными окружения.
requirements.txt — список зависимостей Python.
run.sh — скрипт установки и управления ботом (опционально).
#Администрирование
Для входа в админ-панель используйте кнопку "⚙️ Админ панель" в главном меню, если вы указаны как администратор в ADMIN_IDS.
В админ-панели доступны:
Управление подписками (создание, редактирование, список, удаление, включение/отключение)
Управление пользователями (просмотр списка, баланс)
Управление балансом (пополнение пользователей через tg id)
Управление промокодами (создание, список)
Одобрение или отклонение платежей (Приходит запрос администраторам)
Отправка сообщений пользователям или массовая рассылка
Просмотр краткой статистики
#ToDo
- Код колхозный и не без вайбкодинга тут обошлось, но будет допиливаться, текущая реализация работает - уже хорошо
- Подключить различные шлюзы для пополнения баланса
- Дописать службу для оповещения об истечении срока подписки и контроля
- Синхранизацию с Remnawave между пользователями по тг id
- Полнофункциональную панель упарвления