mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-03-04 12:55:10 +00:00
185 lines
11 KiB
Markdown
185 lines
11 KiB
Markdown
<img width="900" height="782" alt="Снимок экрана 2025-08-04 в 17 48 12" src="https://github.com/user-attachments/assets/bcb3ed55-2582-4946-adc7-24396246cc02" />
|
||
<img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 50 04" src="https://github.com/user-attachments/assets/a7bece59-9038-4983-82cf-a853f12bed6f" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 50 13" src="https://github.com/user-attachments/assets/4a3a0249-0b4f-4e18-8b27-e044dcfcdc50" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 50 21" src="https://github.com/user-attachments/assets/34c7fe40-9aaf-4160-913d-1f98ddbb5137" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 50 34" src="https://github.com/user-attachments/assets/84ec3760-6c3e-4700-8aa9-84aec533e579" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 50 49" src="https://github.com/user-attachments/assets/69b362ef-4658-4e3f-8457-3623e6998f6a" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 52 02" src="https://github.com/user-attachments/assets/5cd6187a-dc80-492c-8baa-bbfdac4a38ac" /><img width="900" height="633" alt="Снимок экрана 2025-08-04 в 17 52 09" src="https://github.com/user-attachments/assets/fc31972e-e95e-4f65-8465-3b9dc7246df1" /><img width="900" height="748" alt="Снимок экрана 2025-08-04 в 17 52 31" src="https://github.com/user-attachments/assets/c834cfdb-85a9-4b3b-985e-9386a8b67873" /><img width="900" height="749" alt="Снимок экрана 2025-08-04 в 17 52 46" src="https://github.com/user-attachments/assets/53210179-eb4f-4884-b6ed-1604bd324656" /><img width="900" height="749" alt="Снимок экрана 2025-08-04 в 17 52 55" src="https://github.com/user-attachments/assets/16eb4a20-25f2-4ac5-8570-9b5809021199" /><img width="900" height="749" alt="Снимок экрана 2025-08-04 в 17 53 13" src="https://github.com/user-attachments/assets/c100f74f-f1b8-486a-9107-2c6d1af5da4a" /><img width="900" height="749" alt="Снимок экрана 2025-08-04 в 17 53 21" src="https://github.com/user-attachments/assets/dd64921f-3129-4ee7-a973-314e8c787fbc" /><img width="900" height="749" alt="Снимок экрана 2025-08-04 в 17 55 41" src="https://github.com/user-attachments/assets/4a0c995f-a252-473b-9f5f-ff98d3fd004a" /><img width="900" height="682" alt="Снимок экрана 2025-08-04 в 17 57 56" src="https://github.com/user-attachments/assets/b9832f8a-0408-47f9-84e0-7c51a46aa394" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 17 58 09" src="https://github.com/user-attachments/assets/99a4eef9-da30-4fb6-befa-26520c84e37c" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 17 58 30" src="https://github.com/user-attachments/assets/b6986980-4a56-4014-ad3f-c4c5916e2af4" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 17 58 44" src="https://github.com/user-attachments/assets/55551413-e921-4df7-8129-cc79e1c8feba" />
|
||
<img width="900" height="770" alt="Снимок экрана 2025-08-04 в 17 59 22" src="https://github.com/user-attachments/assets/f5c1b179-d61d-4cec-be4b-99ce3691ddc9" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 17 59 39" src="https://github.com/user-attachments/assets/2ffab61f-94c6-4134-9d3e-7975d2dc68a8" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 18 00 24" src="https://github.com/user-attachments/assets/74fb9c05-9597-4fb0-98cf-be089fd5de9d" /><img width="900" height="770" alt="Снимок экрана 2025-08-04 в 18 00 36" src="https://github.com/user-attachments/assets/10941dd6-631b-4af9-bb61-666d5052d00a" />
|
||
|
||
#Описание
|
||
|
||
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
|
||
|
||
|
||
#Установка
|
||
|
||
1) Клонируйте репозиторий:
|
||
|
||
git clone https://github.com/Fr1ngg/remnawave-bedolaga-telegram-bot
|
||
cd remnawave-bedolaga-telegram-bot
|
||
|
||
2) Установите python3 python pip
|
||
|
||
sudo apt install pip
|
||
sudo apt install python3
|
||
|
||
3) Установите зависимости:
|
||
|
||
pip install -r requirements.txt
|
||
|
||
4) Создайте файл .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
|
||
|
||
5) Запустите бота:
|
||
|
||
1) Хлебный - создание службы автозапуска, проверка файлов, запуск бота
|
||
|
||
chmod +x run.sh
|
||
./run.sh
|
||
|
||
Если создали службу через скрипт, то запустить бота можно командой
|
||
|
||
sudo systemctl start remnawave-bot
|
||
|
||
Выключить
|
||
|
||
sudo systemctl stop remnawave-bot
|
||
|
||
3) Для мужчин (Службу там поднять самому, докерфайл собрать или под скрином развернуть - уже твое дело)
|
||
|
||
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
|
||
|
||
1) Код колхозный и не без вайбкодинга тут обошлось, но будет допиливаться, текущая реализация работает - уже хорошо
|
||
2) Подключить различные шлюзы для пополнения баланса
|
||
3) Дописать службу для оповещения об истечении срока подписки и контроля
|
||
4) Синхранизацию с Remnawave между пользователями по тг id
|
||
5) Полнофункциональную панель упарвления
|