- Гибкое создание планов с точным контролем доступности
- Поддержка лимитов по трафику, устройствам, или без ограничений
- Управление доступностью для групп и отдельных пользователей
- Мультивалютное ценообразование
- Встроенный конфигуратор прямо в боте
- Типы наград: дни, трафик, активация подписки, персональная скидка
- Ограничение по времени или количеству активаций
- Удобный конфигуратор
- Отправка по категориям пользователей: все, по плану, с/без подписки, истёкшие
- Поддержка фото, видео, GIF, стикеров и HTML-форматирования
- Предпросмотр перед отправкой, остановка рассылки, удаление сообщений
- Уведомления пользователю: истекает/истекла подписка, исчерпан трафик
- Системные: старт/стоп бота, новый пользователь, статус нод, подключение устройства
- Telegram Stars — без комиссии, встроено в Telegram
- ЮKassa / ЮMoney — для RU-рынка
- Cryptomus / Heleket / CryptoPay — криптовалюты
- RoboKassa — популярный RU-агрегатор
- Настройка порядка отображения и тестовые платежи
- Двухуровневые рефералы
- Награды: баллы или дополнительные дни
- Детальная статистика
- 5 режимов: полный запрет, открытый, только по приглашению, без покупки, без регистрации
- Условный доступ: принятие правил, подписка на канал
- Статистика по пользователям, транзакциям, подпискам, планам, промокодам, рефералам
- Автоопределение языка пользователя
- Поддержка кастомных баннеров для каждой локали
- Импорт пользователей из 3X-UI
Бот поддерживает подключение через прокси к Telegram API — критично для серверов в странах с блокировками (Россия, Иран).
# SOCKS5 (рекомендуется):
BOT_PROXY_URL=socks5://user:password@proxy.example.com:1080
# HTTP:
BOT_PROXY_URL=http://proxy.example.com:3128- OS: Ubuntu или Debian
- RAM: от 2 ГБ (рекомендуется 4 ГБ)
- CPU: от 2 ядер
- Хранилище: 20 ГБ
- ПО: Docker
sudo curl -fsSL https://get.docker.com | shWarning
Бот совместим с панелью RemnaWave версий 2.3–2.4.x
mkdir /opt/remnashop && cd /opt/remnashopСкачать docker-compose.yml:
# Бот на отдельном сервере:
curl -o docker-compose.yml https://raw.githubusercontent.com/princeofscale/remnawave-telegram-bot/main/docker-compose.prod.external.yml
# Бот на том же сервере, что и панель:
curl -o docker-compose.yml https://raw.githubusercontent.com/princeofscale/remnawave-telegram-bot/main/docker-compose.prod.internal.ymlСкачать .env:
curl -o .env https://raw.githubusercontent.com/princeofscale/remnawave-telegram-bot/main/.env.exampleСгенерировать секретные ключи:
sed -i "s|^APP_CRYPT_KEY=.*|APP_CRYPT_KEY=$(openssl rand -base64 32 | tr -d '\n')|" .env \
&& sed -i "s|^BOT_SECRET_TOKEN=.*|BOT_SECRET_TOKEN=$(openssl rand -hex 64 | tr -d '\n')|" .env
sed -i "s|^DATABASE_PASSWORD=.*|DATABASE_PASSWORD=$(openssl rand -hex 24 | tr -d '\n')|" .env \
&& sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=$(openssl rand -hex 24 | tr -d '\n')|" .envЗаполнить обязательные переменные:
| Переменная | Описание |
|---|---|
APP_DOMAIN |
Домен бота без https:// и без / в конце |
BOT_TOKEN |
Токен от @BotFather |
BOT_DEV_ID |
Telegram ID главного администратора |
BOT_SUPPORT_USERNAME |
Username поддержки без @ |
REMNAWAVE_HOST |
Домен или Docker-имя контейнера панели |
REMNAWAVE_TOKEN |
API-токен из панели Remnawave |
REMNAWAVE_WEBHOOK_SECRET |
Должен совпадать с WEBHOOK_SECRET_HEADER в панели |
Important
В .env панели Remnawave обязательно настройте:
WEBHOOK_ENABLED=true
WEBHOOK_URL=https://bot.ваш-домен.com/api/v1/remnawave
docker compose up -d && docker compose logs -f -tБот работает только с HTTPS. Проксируйте запросы на контейнер:
https://ваш-домен/api/v1 → http://remnashop:5000
cd /opt/remnashop && docker compose pull && docker compose down \
&& RESET_ASSETS=true docker compose up -d && docker compose logs -fCaution
Флаг RESET_ASSETS=true делает резервную копию старых ассетов (/opt/remnashop/assets/*.bak) и устанавливает новые. Без него старые файлы останутся и бот может работать некорректно после обновления.
Бот поддерживает кастомные баннеры для каждой страницы и локали: menu, dashboard, subscription, promocode, referral.
/opt/remnashop/assets/banners/(locale)/menu.gif
/opt/remnashop/assets/banners/ru/menu.gif
Форматы: jpg, jpeg, png, gif, webp
Important
Не удаляйте файл default.jpg — он обязателен для работы бота.
Файлы переводов находятся в:
/opt/remnashop/assets/translations/(locale)/
После изменений перезапустите контейнер.
Если панель Remnawave защищена через Cloudflare Access:
REMNAWAVE_CF_CLIENT_ID=ваш-client-id
REMNAWAVE_CF_CLIENT_SECRET=ваш-client-secretBOT_REMNAWAVE_USERS_PREFIX=bot2_# true — сбросить трафик при смене плана (по умолчанию)
# false — сохранить накопленный трафик
REMNAWAVE_RESET_TRAFFIC_ON_CHANGE=truesrc/
├── api/ # FastAPI эндпоинты (вебхуки)
├── bot/ # Telegram-бот (хендлеры, диалоги, роутеры)
├── core/ # Конфиги, константы, утилиты
├── infrastructure/ # БД, Redis, DI, TaskIQ, платёжки
└── services/ # Бизнес-логика
MIT — используй свободно.
