RM-Only 1.0 — 1.6
Список изменений
Что появилось в каждой версии. Актуальный релиз развёрнут, предыдущие — свёрнуты. Можно открыть несколько сразу.
RM-Only 1.6 Объединение клиентов, Wata2, ROUTADMIN, бекап и переезд
Главные нововведения
- Клиенты: кнопка «Объединение» (удобнее на десктопе). Модалка на три колонки: в 1 и 2 вводишь ID — грузятся карточки, на третьей сразу итог. Ручной выбор данных; платежи, приглашения, промокоды, партнёрский баланс (сумма) и дата регистрации (наименьшая) всегда наследуют общее
- Отдельный Telegram-бот для уведомлений и бекапа — Настройки → Основные → Системные настройки
- Бекап панели Remnawave из веб-админки (если Remnawave на том же сервере, стандартные пути: /opt/remnawave и т.п.)
- Форк скрипта distillium под RM-Only 1.5+: бэкап панели Remnawave + RM-Only и быстрый переезд — скрипт бекапа
- Полная кастомизация всех кнопок в боте
- Обновлённый дизайн личного кабинета (бэкенд без изменений — опционально)
- Wata2 как второй терминал: те же тарифы и вебхук, свои ключи и кнопка вызова платежа
- ROUTADMIN — служебный контур маршрутизации Remnawave (профиль / сквад / клиент)
- Редактор config-профилей: доработки и исправления ошибок
- Установка нод для новичков (SSH): новый транспорт VLESS WS TLS Cloudflare
Триал и тексты бота
- text_trial_success заменён на text_trial_subscription
- После активации триала — одно сообщение с клавиатурой главного меню (text_trial_subscription). text_welcome_message и блок подписки в этот момент не шлются
- disable_web_page_preview=True по всем текстам бота
- Сообщение помощи с кнопкой «Назад в главное меню»
- Рефералка: кнопка «Копировать»; {max_per_day} и {remaining_invites} = бесконечно
Рефералка и партнёрка
- Дневной лимит приглашений снят. По рефералке и партнёрке связь ставится без лимита
Трафик и тарифы
- В тексты докупки GB добавлена переменная {description} — поле «Описание» тарифа докупки
- Явное отображение докупки GB в оплате на сайте
- В режиме No Limit под индикатором остатка трафика: ограничение только на ограниченные серверы, есть и безлимитные
Клиенты и Remnawave
- Активные IP в модалке клиента
- Смена статуса клиента в Remnawave
- Добавление и удаление сквадов клиента
- Remnawave → Настройки: сквады из списка панели по названию, без ручного ввода UUID
- Устройства в модалке: иконки ОС, лучше отображение, время «5 мин назад» / часы / дни
- Обзор: улучшены виджеты в модалке клиента
- Сброс подписки: проверка пользователя по UserID, не по UUID
- Кнопка «Уменьшить лимит» снова доступна при истёкшей подписке
- Фильтр «Доп триал получен»
IP Control
- Не учитываются IP нод, хостов и outbounds в профилях; если домен — извлекается IP
- Домены/IP правил маршрутизации не учитываются, только outbounds[].settings.address
- Одна запись в журнал; повторное уведомление спустя 12 ч больше не приходит
Новости, задачи, аналитика
- news_tasks: после перезагрузки веб-админки задача не падает; прогресс, остановить / прекратить, очистка журнала
- Отправка новостей: кнопки «Докупить GB» и «Промокод»; видеоинструкция убрана
- В тексте рассылки переменная {uuid} — UUID подписки клиента
- Аналитика: выбор периода (7 / 30 / 90 дней, год, всё время и свой диапазон «Период»)
- Аналитика: карточки «Период» и «Сейчас» разделены — снимок не зависит от диапазона
Админка и документация
- Дополнительные INFO-подсказки в веб-админке
- Документация RM-Only: О проекте
- Бэкап и переезд: Скрипт бекапа
API
- Расширен список доступных API-эндпоинтов
И другие изменения и исправления
RM-Only 1.5.2 HWID-абуз, скидка возвращения, редактор профилей, умная балансировка
Главные нововведения
- Админка: hover по IPv4 — карточка IP (ipwho.is), «Это ваш IP» если адрес ноды/хоста
- Редактор профилей Remnawave: Hysteria (ALPN h3), Trojan REALITY, Fallbacks, Proxy Protocol, sniffing галочками, генерация VLESS Encryption / ML-DSA-65, дефолтный routing DIRECT/BLOCK, + WARP Cloudflare
- HWID Control — абуз триала: один HWID, много неоплаченных аккаунтов → HWID_BLOCKED, после платежа ключи снова отдаются
- Скидка на возвращение — Настройки → Основные, text_return_discount, блок в Аналитике
- Умная балансировка: теги хоста ONLINE:N (фильтр по usersOnline) и AUTO:FALSE
- Лимит устройств: докупка/уменьшение в Bot и Website, кнопка продления если мин. дни не подходят, лог кто менял, фолбэк если продажа лимита выключена
- Удаление устройства в кабинете и боте — только после успешной оплаты подписки (как докупка GB)
- Subpage: пустая ссылка в админке — приложение не показывается (без дефолта из .env)
Трафик и тарифы
- Кнопка докупки трафика в сообщении об окончании
- text_remnawave_traffic_trial: вебхук смотрит, была ли успешная оплата подписки; без оплаты — этот текст, без докупки ГБ
- No Limit+ без оплаты подписки не трогает squad / сброс / безлимит
- traffic_gb = 0 при продлении в Remnawave → безлимит и сброс использованного
- Выключенный метод оплаты больше не создаёт платёж; тариф is_active=0 — «Тариф больше недоступен»
- Баг линейки тарифов: в JSON уходила старая цена, в превью — новая
Remnawave и админка
- Клиенты: hover по лимиту устройств — User-Agent / HWID / модель / ОС (пакет до 15 с страницы)
- Дашборд нод: фильтр по провайдерам (favicon + имя), 4 плитки (очередь/RAM/сеть/инфо), смена провайдера и даты продления без перезагрузки, IP:порт и страна в одну строку
- SSH-установка ноды: поле версии, по умолчанию latest
- Триал UUID внутреннего сквада при регистрации (remnawave_trial_internal_squad_uuid)
- На карточке ноды вместо CPU — Очередь (loadAvg за 1 мин)
- В «Продлить подписку» кнопка «Расширить лимит устройств», если device_upgrade_enabled
- На экране уменьшения лимита та же «Подписка далее», что и при увеличении
- Отчёты — Лог лимита устройств
- Вкладка Сотрудничество: индексы + агрегаты сумм/бонусов отдельно (не виснет на 10k+)
- YooKassa: поле yookassa_proxy_url для исходящих запросов
- После привязки Email клиент в Telegram получает {site_url}/auth/magic/{magic_token}
- registration_type = site больше не получает уведомления об истечении подписки
- Удаление клиента (и массовые операции) чистит все записи устройств
- Передача/Удаление HWID в Remnawave (устройства не удаляются при массовой очистке устройств) — Настройки → Основные → Системные настройки, по умолчанию выкл.
- Удалён admin.py: /admin в боте больше не отвечает
- tg-emoji в списке разрешённых Telegram HTML-тегов
Установка
- install_bot.sh больше не ставит SUBPAGE
- backup.sh исключает /media
- SUBPAGE install.sh: при уже установленной — без подтверждений, не перезаписывает subpage.service
И другие изменения и исправления
RM-Only 1.4 HWID Control, локальный GEOIP, автопомощь клиенту
Главные нововведения
- HWID Control
- Локальное GEOIP (ip66.mmdb)
- Помощь клиенту задача автопомощи
HWID Control
- Ручная проверка по HWID
- Фоновая задача (заранее настройте допустимые значения для нарушителей)
IP Control (Remnawave)
- Вместо 2ip — локальная база IP
- Дополнительное условие по ASN
Клиенты
- В колонке «Лимит» — отображение занятых слотов устройств
Отчёты
- Поиск по HWID
Помощь клиенту
- Вместо готовых ссылок — переход на страницу подключения
- Возможность добавить видео или GIF
- Задача автопомощи клиентам, которые не подключились
Subpage — новые параметры
- LOG_LEVEL REMOTE — уровень логов
- REMOTE_CFG_REFRESH_SEC — интервал опроса remote-конфига
- USE_SETTINGS_REDIS — кэш remote-настроек из админки в Redis (общий для всех Gunicorn-воркеров)
API
- Начало разработки API до 1.7 в формате readonly
Веб-кабинет
- Запоминает последний EMAIL для входа
- MagicToken: если клиент ранее был авторизован в полном кабинете, ограниченный доступ не сменяет полный
- Happ TV
Подписка (xuiweb / subpage)
- При недоступности Remnawave серверы больше не пропадают из подписки — ошибка 404
- Happ TV: с фронта на subpage уходит только GET
И другие изменения и исправления
RM-Only 1.3 Поддержка Remnawave 3.0+ и SDK remnawave-api 3.0
Поддержка Remnawave 3.0+ и SDK remnawave-api 3.0.
RM-Only 1.2 Мастер нод, журнал действий, Subpage RM-Only
Remnawave node-traffic exporter
- Несколько адресов в WEBHOOK_URL через запятую в .env
IP Control (Remnawave)
- Фоновая задача и журнал нарушителей limit IP
Продвижение
- Улучшена работа с рекламными кампаниями
Промокоды
- Редактирование уже использующихся промокодов
Главная (админка)
- Быстрые действия на главной странице
- Исправлено отображение CPU
- Расширение справок INFO по разделам админки
Клиенты
- Закрепление клиента в таблице
Настройки Subpage
- Announce и другие заголовки под конкретное приложение (Happ, INCY, v2RayTun)
Настройки веб-кабинета
- Возможность добавить собственное приложение
Remnawave — установка нод
- Мастер для новичков: 3 готовые конфигурации
- Получение сертификата при установке ноды
Remnawave — профили
- Редактирование профилей: множественные исправления
Remnawave / миграции
- Миграция User ID для перехода на Remnawave 3.0+
- Аналитика трафика и IP Control агрегируют по User ID
- Исправлена смена сквада при NO LIMIT+ на нескольких проектах при одной панели
Инструменты
- Журнал действий — новый раздел
Отчёты
- Новые фильтры и поиск по HWID
Сайт (Website)
- Исправления фронтенда личного кабинета
- Оплата кодом оплаты
Платежи (админка)
- Улучшения раздела платежей
Страница подписки (Subpage)
- Отдельный Subpage для RM-Only
И другие изменения и исправления
RM-Only 1.1 IP Control, режимы JSON-подписки, PWA
Настройки Веб-админка
- Редактирование текстов: исправления HTML-тегов и проверка разметки
- Дублирование HTTP заголовков
IP Control (Remnawave)
- Новый раздел: индекс Remnawave и опрос нод для выявления нарушений по Limit IP (несколько IP на одной подписке)
- Список нарушителей с трафиком и детализацией по нодам
Платежи (админка)
- Фильтры «Сутки» и «Месяц» приведены к UTC — корректные границы периода независимо от часового пояса сервера
Страница подписки (Subpage)
- Исправления блока «Примечания»
JSON-подписка (xrayConfig)
- Три режима правил выдачи JSON по User-Agent (настройки Remnawave): apps — по галочкам Happ / INCY / v2rayTun; all_except — всем клиентам, кроме перечисленных UA; only_list — только клиентам из списка UA
- Гибкий список правил UA для режимов all_except и only_list
Балансировка ключей
- Исправления при локальном обращении к Remnawave
Веб-админка — PWA
- Адаптация под iPhone: верхняя шапка, user modal, нижняя навигация и тп
- Рекомендуется: удалить PWA с домашнего экрана и добавить заново
Сайт (Website)
- Небольшие исправления вёрстки и поведения личного кабинета
И другие изменения и исправления
RM-Only 1.0 Переход на Remnawave, массовые операции, JSON и профили
Переход на Remnawave
- Полностью вырезана логика работы с 3X-UI
- Удалён сервис «Аналитика» для 3X-UI
- Улучшено взаимодействие с Remnawave
Массовые операции
- Удаление истёкших клиентов — из базы и из Remnawave
- Компенсация дней (только активным клиентам)
- Обработка failed-платежей: если Remnawave недоступна, но клиенты уже продлили подписку — можно в один клик обработать их платежи (протестировать: назначить себе платёж как «Неуспешный»)
Установка ноды (SSH)
- В docker-compose.yml добавлены тома:
/etc/letsencrypt:/etc/letsencrypt:ro/var/log/remnanode:/var/log/remnanode
Балансировка по текстовым ключам
- Пример: 🇪🇺 Евро WIFI 1, 🇪🇺 Евро WIFI 2, 🇪🇺 Евро WIFI 3 — три ключа с одной «группой» имени
- При каждом обновлении подписки из пула случайно выбирается один ключ, а у клиента в списке остаётся одна строка: 🇪🇺 Евро WIFI
JSON-подписка
- xrayConfig отдаётся только выбранным приложениям (по User-Agent)
- Умная балансировка Xray JSON — в разработке (экспериментально)
Профили Remnawave
- GUI-редактор конфигурации Xray
Ноды — сортировка карточек
- По дате продления
- По онлайну (число пользователей)
- По нагрузке (CPU / RAM / сеть)
Клиенты и отчёты
- Обогащение IP клиентов через 2ip — возвращено
- Проверка лимита устройств: превышение limit_ip и дубликаты HWID на разных аккаунтах
- Исправлено: при уменьшении дней подписки «в прошлое» (админка, бот) дата окончания в Remnawave не уходит в прошлое — ограничивается до «сейчас + 5 секунд» до истечения
Настройки бота
- Методы оплаты — можно менять порядок
- Главный экран бота — можно менять расположение кнопок
- Расширенное редактирование текстов с проверкой синтаксиса HTML-тегов
Тарифы продления
- Редактор всех линеек разом
- Рекомендуем: полностью удалить старые тарифы и собрать заново
Сервисный режим бота
- Остановка операций бота на время обслуживания
Трафик и онлайн (ускорение таблицы «Клиенты»)
- Запись трафика за всё время, за сутки и последний онлайн
- Данные пишутся в основную БД, интервал обновления — 10 мин
- Запись батчами, без блокировки базы
- При ~50 000 активных клиентов цикл занимает до ~3 сек
Страница подписки (Subpage)
- Новый маршрут /sub/{uuid}/info — информационная страница клиента
- Балансировка текстовых ключей: режимы online + random
- Вкладка «Балансировка хостов» — появляется при включённой балансировке текстовых ключей
- WEBSITE_URL поддерживает плейсхолдеры [UUID], [TelegramID], [Email], [REGTYPE] — можно вести на info-страницу конкретного клиента
- Magic-link в личный кабинет из Happ, INCY и других VPN-приложений: в WEBSITE_URL или HTTP-заголовке profile-web-page-url укажите
https://site.com/auth/magic/[MagicToken]— откроется ограниченный кабинет (продление, подписка, Telegram ID); токен подставляется автоматически из xuiweb - Исправлено: при открытии подписки в Яндекс.Браузере / приложении Яндекса / Алисе (YaApp) страница ошибочно отдавалась как содержимое подписки вместо HTML-страницы (в их User-Agent встречалась подстрока «happ»). Теперь такие клиенты корректно распознаются как браузер
Устройства
- Редактор имени устройства — в боте и в личном кабинете
- В списке «Мои устройства» смайлик зависит от ОС: 📱 для Android / iOS / iPadOS, 💻 для Windows / macOS
- Автоочистка devices.db: раз в сутки удаляются устройства, не обновлявшиеся более 14 дней (по последнему запросу access_time).
Сайт (Website)
- Вход через Telegram: добавлен метод OpenID Connect (OAuth 2.0) (oauth.telegram.org). Настройка в BotFather → Web Login: Trusted Origins, Redirect URL и ключи TELEGRAM_OIDC_CLIENT_ID / TELEGRAM_OIDC_CLIENT_SECRET в .env. Если OIDC не задан — работает старый виджет (BOT_USERNAME)
Веб-админка
- Топ-10 по трафику за сутки на главной странице
- Раздел «Рефералы»: разбивка Активные | Всего | Истёкшие и сумма заработка с привлечённых пользователей
- Новый раздел настроек «Веб-кабинет»: белый список доменов для регистрации
- Раздел «Платежи»: у Telegram ID — регистрация клиента (Сайт / TG), у метода оплаты — иконка, откуда вызван платёж (🌐 сайт / ✈️ Telegram); метка вызова из metadata_json платежа
Алькатрас
- Анти-DDoS для xuiweb: реальная подписка только при выполнении порогов
- Настройка: Настройки → Основные → Безопасность
И другие изменения и исправления