🤖 Remnawave Bedolaga Bot
Современный Telegram-бот для управления VPN подписками через Remnawave API
Полнофункциональное решение с управлением пользователями, платежами и администрированием
✨ Основные возможности
👤 Для пользователей
|
⚙️ Для администраторов
|
🚀 Быстрый старт
⚡ Автоматическая установка (Ubuntu)
Установите бота одной командой с интерактивным мастером настройки:
curl -sSL https://github.com/Fr1ngg/remnawave-bedolaga-telegram-bot/raw/main/bedolaga.sh | sudo bash
🔧 Что делает установщик
- ✅ Обновляет систему Ubuntu
- ✅ Устанавливает Docker и зависимости
- ✅ Создает структуру проекта в
/opt/bedolaga-bot - ✅ Интерактивная настройка всех параметров
- ✅ Создает systemd службу (опционально)
- ✅ Запускает удобное меню управления
🎛 Интерактивное меню управления
После установки вы получаете полнофункциональное меню:
Доступные действия:
- 🚀 Запуск/остановка/перезапуск бота
- 📺 Просмотр логов в реальном времени
- 💾 Создание и восстановление резервных копий БД
- ✏️ Редактирование конфигурации
- 🩺 Диагностика и устранение проблем
- 🔄 Автообновление бота
📖 Документация
🎯 Варианты установки
| Сценарий | Описание | Команда |
|---|---|---|
| 🏠 Локальная установка | Панель + бот на одном сервере | ./bedolaga.sh → вариант 2 |
| 🌐 Удаленная установка | Бот отдельно от панели | ./bedolaga.sh → вариант 1 |
| ⚡ Расширенная | С Redis и Nginx | ./bedolaga.sh → вариант 3 |
⚙️ Ключевые настройки
📋 Основные параметры
| Переменная | Описание | Пример |
|---|---|---|
BOT_TOKEN |
Токен от @BotFather | 123456:ABC-DEF... |
BOT_USERNAME |
Username бота (без @) | your_bot |
REMNAWAVE_URL |
URL панели Remnawave | https://panel.com |
REMNAWAVE_TOKEN |
API токен панели | your_api_token |
ADMIN_IDS |
ID администраторов | 123456789,987654321 |
🎁 Реферальная программа
| Переменная | Описание | По умолчанию |
|---|---|---|
REFERRAL_FIRST_REWARD |
Награда за первого реферала | 100.0 |
REFERRAL_REFERRED_BONUS |
Бонус приглашенному | 100.0 |
REFERRAL_THRESHOLD |
Порог активации (руб.) | 200.0 |
REFERRAL_PERCENTAGE |
% с последующих платежей | 0.2 (20%) |
⭐ Telegram Stars
| Переменная | Описание | Пример |
|---|---|---|
STARS_ENABLED |
Включить оплату звездами | true |
STARS_100_RATE |
Курс 100 звезд → рублей | 110 |
STARS_250_RATE |
Курс 250 звезд → рублей | 280 |
STARS_500_RATE |
Курс 500 звезд → рублей | 550 |
⭐ Telegram Tribute
| Переменная | Описание | Пример |
|---|---|---|
TRIBUTE_ENABLED |
Включить оплату с помощью доната на Tribute | false |
TRIBUTE_API_KEY |
API ключ из настроек Tribute | XXXXXXXXXXX |
TRIBUTE_WEBHOOK_PORT |
Порт | 8081 |
TRIBUTE_WEBHOOK_PATH |
URL Webhook Path | /tribute-webhook |
TRIBUTE_DONATE_LINK |
Ссылка на ваш донат из Tribute | https://t.me/tribute/app?startapp=XXXXXXXXXXXXX |
🔍 Мониторинг подписок
| Переменная | Описание | По умолчанию |
|---|---|---|
MONITOR_ENABLED |
Включить мониторинг | true |
MONITOR_CHECK_INTERVAL |
Интервал проверки (сек) | 1800 (30 мин) |
MONITOR_WARNING_DAYS |
За сколько дней предупреждать | 3 |
AUTO_DELETE_ENABLED |
Автоудаление истекших | true |
Триал
| Переменная | Описание | По умолчанию |
|---|---|---|
TRIAL_ENABLED |
Включить триал | true |
TRIAL_DURATION_DAYS |
Дней триала | 3 |
TRIAL_SQUAD_UUID |
Сквад триальной подписки | `` |
TRIAL_NOTIFICATION_ENABLED |
Уведомление об истечении триал подписки | true |
TRIAL_NOTIFICATION_HOURS_AFTER |
Через сколько отсылать сообщение | 1 |
TRIAL_NOTIFICATION_HOURS_WINDOW |
Через сколько выслать повторно | `` |
⚙️ Настройка Telegram Tribute
- Обновляемся до версии 1.4.0
- Регистрируемся и проходим верификацию в Tribute
- Создаем донат ссылку, копируем вставляем в .env бота, конфигурируем остальные параметры из .env.example для работы Tribute
- Настраиваем обратное прокси на /tribute-webhook
3.1 Пример для докера Caddy
https://test.example.com {
# Tribute webhook endpoint
handle /tribute-webhook* {
reverse_proxy localhost:8081 {
header_up Host {host}
header_up X-Real-IP {remote_host}
}
}
# Health check для webhook сервиса
handle /webhook-health {
reverse_proxy localhost:8081/health {
header_up Host {host}
header_up X-Real-IP {remote_host}
}
}
3.2 Пример для докера с Nginx
server {
listen 80;
server_name yourdomain.com;
location /tribute-webhook {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
client_max_body_size 10M;
}
location /webhook-health {
proxy_pass http://127.0.0.1:8081/health;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3.3 Рестартим Бота, рестратим Caddy/Nginx
-
Указываем ссылку на наш хук в настройках Tribute: https://test.example.com/tribute-webhook
-
Делаем тест - если успешно, значит все настроили правильно. Не успешный тест - проверяй доступность хука, где-то ты что-то не так настроил
-
Тестируем пополнение через бота
🐳 Docker Compose примеры
🏠 Для локальной установки (панель + бот)
services:
postgres:
image: postgres:15-alpine
container_name: remnawave_bot_db
restart: unless-stopped
environment:
POSTGRES_DB: remnawave_bot
POSTGRES_USER: remnawave_user
POSTGRES_PASSWORD: secure_password_123
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- remnawave-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U remnawave_user -d remnawave_bot"]
bot:
image: fr1ngg/remnawave-bedolaga-telegram-bot:latest
container_name: remnawave_bot
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
env_file:
- .env
environment:
DATABASE_URL: postgresql+asyncpg://remnawave_user:secure_password_123@postgres:5432/remnawave_bot
volumes:
- ./logs:/app/logs
- ./data:/app/data
ports:
- "8081:8081"
networks:
- remnawave-network
volumes:
postgres_data:
networks:
bot_network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
🌐 Для удаленной установки
services:
postgres:
image: postgres:15-alpine
container_name: remnawave_bot_db
restart: unless-stopped
environment:
POSTGRES_DB: remnawave_bot
POSTGRES_USER: remnawave_user
POSTGRES_PASSWORD: secure_password_123
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- bot_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U remnawave_user -d remnawave_bot"]
bot:
image: fr1ngg/remnawave-bedolaga-telegram-bot:latest
container_name: remnawave_bot
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
env_file:
- .env
environment:
DATABASE_URL: postgresql+asyncpg://remnawave_user:secure_password_123@postgres:5432/remnawave_bot
volumes:
- ./logs:/app/logs
- ./data:/app/data
ports:
- "8081:8081"
networks:
- bot_network
volumes:
postgres_data:
networks:
bot_network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
🎯 Использование
👤 Для пользователей
- Запуск → Найдите бота и нажмите
/start - Язык → Выберите русский или английский
- Баланс → "💰 Баланс" → "💳 Пополнить" → Telegram Stars
- Подписка → "🛒 Купить подписку" → выбор тарифа → оплата
- Управление → "📋 Мои подписки" → выбор → получение ссылки
- Рефералы → "👥 Рефералы" → поделиться ссылкой
⚙️ Для администраторов
Доступ через кнопку "⚙️ Админ панель":
- 📦 Управление подписками → создание и настройка тарифов
- 👥 Управление пользователями → поиск, редактирование балансов
- 💰 Управление платежами → одобрение Telegram Stars платежей
- 🎁 Промокоды → создание денежных бонусов
- 📨 Рассылки → уведомления пользователям
- 🖥 Система Remnawave → мониторинг нод, синхронизация
- 📊 Статистика → подробная аналитика
📊 Производительность
💪 Рекомендуемые ресурсы
| Пользователей | RAM | CPU | Диск | Описание |
|---|---|---|---|---|
| До 500 | 1GB | 1 vCPU | 10GB | Начальная конфигурация |
| До 1,000 | 2GB | 1 vCPU | 20GB | Малый бизнес |
| До 10,000 | 4GB | 2 vCPU | 50GB | Средний бизнес |
| До 50,000 | 8GB | 4 vCPU | 100GB | Крупный бизнес |
⚡ Оптимизация
- Redis → включите для кэширования (
--profile with-redis) - PostgreSQL → настройте для production нагрузок
- Nginx → используйте как reverse proxy (
--profile with-nginx) - Мониторинг → отслеживайте через
docker stats
🔧 Управление
📋 Основные команды
# Переход в директорию
cd /opt/bedolaga-bot
# Управление через Docker Compose
docker compose up -d # Запуск
docker compose down # Остановка
docker compose restart bot # Перезапуск бота
docker compose logs -f bot # Логи в реальном времени
# Управление через systemd (если настроено)
sudo systemctl start bedolaga-bot
sudo systemctl stop bedolaga-bot
sudo systemctl restart bedolaga-bot
🔄 Обновление
# Автоматическое через меню
sudo ./bedolaga.sh
# Ручное обновление
docker compose down
docker compose pull bot
docker compose up -d
💾 Резервное копирование
# Создание backup
docker exec remnawave_bot_db pg_dump -U remnawave_user remnawave_bot > backup.sql
# Восстановление
docker exec -i remnawave_bot_db psql -U remnawave_user remnawave_bot < backup.sql
🐛 Устранение неполадок
❓ Частые проблемы
🤖 Бот не отвечает
Проверьте:
- ✅ Правильность
BOT_TOKEN - ✅ Интернет соединение
- ✅ Логи:
docker compose logs bot
Решение:
# Перезапуск бота
docker compose restart bot
# Проверка токена
docker exec remnawave_bot env | grep BOT_TOKEN
🗄️ Ошибки базы данных
Симптомы:
- SQL ошибки в логах
- Бот не сохраняет данные
Решение:
# Проверка PostgreSQL
docker compose logs postgres
# Подключение к БД
docker exec -it remnawave_bot_db psql -U remnawave_user remnawave_bot
# Экстренное восстановление через меню
sudo ./bedolaga.sh → "10) Экстренное исправление БД"
🔌 Проблемы с Remnawave API
Проверьте:
- ✅ Доступность
REMNAWAVE_URL - ✅ Валидность
REMNAWAVE_TOKEN - ✅ Сетевое подключение
Диагностика:
# Проверка URL
curl -I https://your-panel.com
# Тест API из контейнера
docker exec remnawave_bot curl -I http://remnawave:3000
⚠️ Проблема обновления 1.3.3 → 1.3.4
Симптом: SQL ошибки после обновления связанные с автоплатежами
Решение через меню:
sudo ./bedolaga.sh
# Выберите: "10) Экстренное исправление БД (Python)"
# Или: "11) Экстренное исправление БД (SQL)"
Ручное решение:
- Скачайте
emergency_fix.py - Добавьте в
docker-compose.yml:
emergency-fix:
image: fr1ngg/remnawave-bedolaga-telegram-bot:latest
volumes:
- ./emergency_fix.py:/app/emergency_fix.py
environment:
- DATABASE_URL=postgresql+asyncpg://remnawave_user:secure_password_123@postgres:5432/remnawave_bot
networks:
- bot_network
profiles:
- emergency
command: python emergency_fix.py
- Запустите:
docker compose run --rm emergency-fix
🗺️ Roadmap
✅ Реализовано
- ✅ Мониторинг подписок - автоуведомления и контроль
- ✅ Telegram Stars - пополнение баланса звездами
- ✅ Синхронизация Remnawave - импорт пользователей и статистика
- ✅ Реферальная система - полнофункциональная программа
- ✅ Игра удачи - ежедневные розыгрыши бонусов
- ✅ Управление промокодами - создание, редактирование, статистика
- ✅ Правила сервиса - настройка через админ-панель
- ✅ Автоплатежи - настраиваемое автопродление подписок
- ✅ Просмотр подписок пользователей - детальная статистика
-
- ✅ Автоматическое пополнение лк с помощью доната Tribute
🎯 В планах
| Версия | Функция | Приоритет | Описание |
|---|---|---|---|
| v1.4.5 | Юкасса интеграция | 🔴 High | Автоматические платежи |
| v1.4.5 | Веб-панель управления | 🟡 Medium | Полный веб-интерфейс |
| v1.4.5 | Безопасное удаление | 🟡 Medium | Архивирование вместо удаления |
| v1.5.0 | Дополнительные платежи | 🟡 Medium | Сбербанк, Tinkoff, Crypto |
| v1.5.0 | Уведомления | 🟡 Medium | Webhook, Email, другие чаты |
| v1.6.0 | Система блокировок | 🟢 Low | Бан/разбан пользователей |
💡 Хотите добавить функцию?
🤝 Вклад в проект
💪 Как помочь
🔧 Разработчикам:
- Fork репозитория
- Создайте feature branch:
git checkout -b feature/amazing-feature - Внесите изменения и сделайте commit:
git commit -m 'Add amazing feature' - Push в branch:
git push origin feature/amazing-feature - Создайте Pull Request
🐞 Пользователям:
- Сообщайте о багах в Issues
- Предлагайте идеи в Discussions
- Ставьте ⭐ проекту
- Рассказывайте друзьям
💰 Спонсорам:
- Поддержите разработку
- Закажите приоритетные функции
- Получите корпоративную поддержку
💬 Поддержка
📞 Контакты
- Telegram: @fringg
- Issues: GitHub Issues
- Discussions: GitHub Discussions
📚 Полезные ссылки
📄 Лицензия
Проект распространяется под лицензией MIT. Подробности в файле LICENSE.
🌟 Понравился проект? Поставьте звезду!
💝 Создано с любовью для Remnawave сообщества
Автор не является профессиональным разработчиком, но прикладывает все усилия для создания удобного бота для ваших сервисов 💪