Remnawave Admin 5.2.0
9 октября 2026 · релиз на GitHub · обсуждение в Telegram
Релиз про то, с чем админ работает каждый день. Уведомления в Telegram стали карточками с таблицами, цветными кнопками и полями, которые копируются касанием. Карточка нарушения показывает подключения, которые его дали. Автоматизации научились не трогать платящих, а жёсткая мера за шаринг — считать от лимита устройств клиента. Плюс лента событий Bedolaga, векторная карта и исправления почты, нарушений, торрентов и аналитики.
Перед обновлением
Прочитайте раздел «Важно»: разделы Bedolaga закрыты админам с ограниченной видимостью юзеров, новый порог торрентов включён по умолчанию, а отписка больше не глушит транзакционные письма.
✨ Новое
Уведомления в Telegram — карточками
Все уведомления, от нарушений до бэкапов, приходят rich-карточками:
- главные поля — таблицей, второстепенное — в сворачиваемых секциях; у изменений юзера — таблица «было → стало», где старое значение зачёркнуто, а новое выделено;
- слова клиента в обращении, начало входящего письма и причина блокировки адреса — цитатой с автором;
- время — в часовом поясе того, кто читает;
- вложения — внутри карточки: QR-код подписки нового юзера, скриншот клиента в обращении, сам файл бэкапа;
- кнопки действий стоят прямо в карточке и раскрашены по смыслу: красные карают, зелёные снимают подозрение; после нажатия карточка меняется на месте — кнопки уходят, внутри появляется отметка о действии;
- ник, UUID, email, описание, Telegram ID, IP-адреса, HWID и адреса нод копируются касанием, рядом с Telegram ID — ссылка на профиль; ссылка на подписку тоже копируется, но на виду только кнопка «Скопировать»;
- уведомления, которые шлёт веб-панель (нарушения, сторожа HWID и адресов, финансы, поддержка, бэкапы, почта), выходят на языке бота — раньше только по-русски.
Если Telegram не принял карточку, уходит обычное сообщение с теми же данными и кнопками под ним. Выключить карточки совсем можно настройкой «Rich-оформление уведомлений». Плагины могут раскрасить свои кнопки — поле style у действия (API плагинов).
Карточка нарушения показывает, откуда оно
Причина «одновременные подключения из разных стран» раньше была строкой текста. Теперь в карточке нарушения:
- блок «Подключения, давшие нарушение»: у гео-анализатора — подключения из разных стран в одно время и концы нереалистичного перемещения, у временного — адреса, бывшие в сети вместе (с пулом оператора), у ASN — адреса через хостинг, VPN, корпоративные и магистральные сети; у каждого подключения — страна, город, оператор, нода и время;
- сводка «Адреса вокруг нарушения» за час до и после: первое и последнее появление адреса, число подключений, ноды;
- в ленте событий — страна и тип сети у каждого подключения;
- у устройств — «Обновлено» рядом с «Добавлено».
Улики есть только у нарушений, записанных после обновления. Идея — @chudo-arky (#306).
Меры не трогают платящих
У действий «Предупредить», «Заблокировать», «Отключить» и «Урезать скорость» в правилах по нарушению — две галочки: «Не выполнять, если у клиента уже есть платная подписка» и «Не выполнять, если клиент оплатил после срабатывания». Первая проверяется сразу, обе — перед отложенным шагом. Оплата — транзакции Bedolaga с момента срабатывания: пополнение или оплата подписки с суммой больше нуля (нулевые пишет выдача подписки админом). Без Bedolaga платящим считается живая подписка без триального тега и сквада. Аккаунты человека находятся по Telegram ID, без него — по почте. Платящих соучастников мера тоже не трогает, а в журнале автоматизаций видно, что шаг пропущен из-за оплаты.
Правило только про накрутку триалов теперь собирается без обходных путей: в событии нарушения есть сработавшие правила жёсткой меры, тип нарушения и вид абуза триалов, в конструкторе это поля условий «Абуз пробных подписок» и «Сработавшие правила жёсткой меры» со значениями из списка. Спасибо @fesevu (#308). Подробнее — в разделе «Защита от злоупотреблений».
Жёсткая мера за шаринг — от лимита устройств
Новая настройка «Жёсткая блокировка: источников сверх лимита устройств» (violations_hard_block_simultaneous_excess, 0 — выключено): жёсткая мера, когда одновременных источников больше лимита устройств клиента на N и они вышли за порог с буферами на смену сети и CGNAT. Лимит 1 и лимит 10 теперь меряются каждый своим, а не одним абсолютным порогом. Клиентов с безлимитом устройств мера не трогает.
Разбор порога — адреса и источники, лимит устройств, буферы, итоговый порог, превышение — приходит в событии нарушения: по нему строятся условия автоматизаций, а значения подставляются в текст уведомления. Спасибо @fesevu (#309).
Лента событий Bedolaga
На дашборде Bedolaga — карточка «Лента событий»: покупки, продления, пополнения, триалы, промокоды, кампании, смена промогруппы — всё, что бот пишет о клиентах сам. Фильтры по группам событий, «Показать ещё», обновление раз в минуту; имя ведёт в карточку клиента, оплаты и бонусы различаются цветом. В ленте активности карточки клиента события теперь с переводом и подробностями вместо английского заголовка бота. Нужны бот 2.8.0 и новее и право bedolaga_customers:view — в событиях имена клиентов и суммы. Покупки, триалы и промокоды из кабинета и мини-аппа бот записывает, только если в Bedolaga включены уведомления админу (ADMIN_NOTIFICATIONS_ENABLED).
Векторная карта стран и регионов
«География» рисуется векторной картой стран и регионов вместо тайлов CARTO — ключ карт больше не нужен. Крым и Севастополь — субъекты России: и на карте, и в адресах, которые базы GeoIP относят к Украине. Спасибо @chudo-arky (#296).
Удалённые устройства можно стереть
Отвязанные устройства хранятся ради детекта накрутки триалов, и по ним детектор продолжает связывать аккаунты: с клиентом разобрались, он удалил устройства, а нарушения всё приходят. Во вкладке «Удалённые» в устройствах юзера теперь есть корзина у каждого устройства и «Очистить удалённые» с подтверждением. Активные устройства и панель не затрагиваются, нужно право users:edit.
🔧 Улучшения
- Порог «событий на адрес» для торрентов — настройка «Событий на адрес (глубина обмена)» (
torrent_min_events_per_peer, по умолчанию 1,5; 1 — не проверять): игровой лаунчер и опрос DHT касаются каждого адреса по разу, а торрент-клиент подолгу качает с одних и тех же пиров («Торренты») - Час напоминаний о платежах — настройка «Час отправки напоминаний» (
finance_reminder_hour, 0–23, по умолчанию 10): напоминания уходят с этого часа в часовом поясе панели, а если в этот час панель была выключена — сразу после старта — спасибо @chudo-arky (#304) - Понятные ошибки passkey — у отказов WebAuthn свои тексты: домен не распознан, запрос истёк, ключ не найден, проверка не прошла (с причиной) — вместо «Доступ запрещён»; адрес панели для passkey (
webauthn_rp_id,webauthn_origin) задаётся в настройках: «Безопасность → Методы авторизации» - Свои зеркала GeoLite2 —
MAXMIND_MIRROR_URL(шаблон с{edition}) пробуется первым; скачанный файл сохраняется, только если это настоящая база MaxMind — HTML-заглушка с кодом 200 рабочую базу не затрёт - Переходы из уведомлений — уведомления о нарушениях, торрентах и расходе трафика ведут в карточку юзера, финансовые — в «Финансы», о бэкапах — в «Бэкапы»
- Поиск клиента Bedolaga по почте — админка спрашивает поиск бота и сверяет почту точно, перебор страниц остался запасным путём для версий без поиска по почте (поиск по почте предложен в Bedolaga)
- «Общий предел одновременных IP» — настройка
violations_max_simultaneous_ipsназвана и описана честно: это общий предел вместо лимита устройств, а не прибавка к нему; поведение не менялось - Документация — отдельная глава «Предупреждения через Bedolaga»: связь панели и бота в обе стороны, тексты, доставка, плашка в кабинете, проверка одним запросом; в «Защите от злоупотреблений» — галочки оплаты, условия по абузу триалов, порог от лимита устройств, улики в карточке нарушения и очистка удалённых устройств
🐛 Исправления
- исправлена ошибка (в нарушениях, кроме торрентов, не сохранялся Telegram ID клиента: ручное предупреждение отвечало, что отправить некому, а отложенная мера после предупреждения не ставилась; у старых нарушений адресат восстановится при обновлении) — спасибо @fesevu (#310)
- исправлена ошибка (в карточке нарушения было «IP-адресов: 0» при двух странах в причинах — адреса сохранялись не из тех подключений, что видел детектор, а разбор скоринга не сохранялся вовсе) — спасибо @chudo-arky (#307)
- исправлена ошибка (после «Аннулировать» нарушение «Бот/скрипт в User-Agent» приходило снова каждые полчаса; теперь аннулирование заодно признаёт этот User-Agent клиента допустимым)
- исправлена ошибка (аннулированное торрент-нарушение тут же рождалось заново из тех же событий)
- исправлена ошибка (торрент-нарушение в вебе показывало единицы событий и адресов, а уведомление в Telegram — сотни)
- исправлена ошибка (одинаковые торрент-нарушения в течение 10 минут не склеивались в одно)
- исправлена ошибка (лаунчер War Thunder, который качает патчи через BitTorrent, давал торрент-нарушения)
- исправлена ошибка (пустые значения в тексте уведомлений автоматизаций выводились как «None»)
- исправлена ошибка (бот отвечал 404 на внутренние запросы: коллектор терял события панели, а уведомления уходили в Telegram в обход бота) — спасибо @latham5656 (#292)
- исправлена ошибка (после обновления с миграцией бэкенд переставал писать
backend.logиviolations.logдо перезапуска) — спасибо @latham5656 (#293) - исправлена ошибка (за внешним TLS-прокси не регистрировались passkeys, а куки уходили без флага Secure) — спасибо @chudo-arky (#300)
- исправлена ошибка (письмо, которое отправлялось в момент перезапуска, навсегда оставалось в статусе отправки) — спасибо @chudo-arky (#301)
- исправлена ошибка (заголовок
List-Unsubscribe-Postставился без https-ссылки на отписку) - исправлена ошибка (напоминания о платежах приходили ночью: день считался по UTC) — спасибо @chudo-arky (#304)
- исправлена ошибка (график трафика на 7 и 30 дней заканчивался пустым завтрашним днём и обрывался в ноль) — спасибо @Zmey-GopbIH (#302)
- исправлена ошибка (процент изменения трафика на дашборде занижался: «вчера» захватывало сегодняшний трафик)
- исправлена ошибка (запасная сборка графика трафика по дням складывала каждый день со следующим)
- исправлена ошибка (клик по уведомлению не отмечал его прочитанным и никуда не вёл, а уведомления о письмах вели на несуществующую страницу)
- исправлена ошибка (на телефоне «География» в аналитике уезжала за край экрана)
- исправлена ошибка (на телефоне шапки «Трендов» и «Топа пользователей» и выбор дат в аналитике не помещались в экран)
- исправлена ошибка (подписи плиток «Пользователи / IP-адреса / Доля» в аналитике наезжали друг на друга, а «46 пользователи» и число городов не склонялись)
- исправлена ошибка (обновление баз GeoLite2 падало: зеркало ltsdev/maxmind удалено, а зарегистрироваться в MaxMind из России нельзя — теперь базы берутся с живых зеркал)
- исправлена ошибка (фильтр транзакций Bedolaga по типу не работал)
- исправлена ошибка («N мин назад» в карточке клиента Bedolaga не переводилось)
- исправлена ошибка (кнопки удаления устройств в карточке юзера показывались и без права
users:edit)
🛡 Безопасность
- Bedolaga и ограниченная видимость — админ, которому видна только часть юзеров, с правами на Bedolaga видел всех её клиентов, их платежи, рефералов и тикеты. Клиентов Bedolaga под его видимость не отфильтровать (с юзерами панели они связаны разве что по Telegram ID), поэтому права на Bedolaga для такого админа больше не действуют. Рефералы требуют
bedolaga_customers:view, а не базовогоbedolaga:view. - Отписку не подделать — адрес попадает в отписавшиеся, только если письмо на unsubscribe@ прошло SPF или DMARC и не помечено подозрительным: раньше любой сервер мог одним
MAIL FROMотписать чужой адрес, и ему переставали уходить письма. Подпись DKIM чужого домена для этого не считается — спасибо @chudo-arky (#301) - Submission держит домен отправителя — ограничение доменов проверяется и по заголовку From, который уходит в письме, а не только по конверту — спасибо @chudo-arky (#301)
- Письмо о нарушении — только на подтверждённую почту — Bedolaga с 4.16.0 не пишет на неподтверждённую почту (её мог вписать кто угодно), а админка досылала письмо сама на тот же адрес. Теперь не досылает, а оператор видит причину «почта не подтверждена».
⚠️ Важно
- Перед обновлением снимите бэкап базы. Миграции накатятся сами при первом запуске и заодно восстановят адресатов у старых нарушений; откат на 5.1.1 — только из бэкапа.
- Разделы Bedolaga закрыты админам с ограниченной видимостью юзеров. Если такому админу нужен доступ к Bedolaga, снимите с него ограничение видимости.
- Новый порог торрентов включён по умолчанию. Окна, где на адрес приходится меньше 1,5 события в среднем, нарушения не заводят. Вернуть прежнее поведение — «Событий на адрес» = 1.
- Отписка больше не глушит транзакционные письма. Коды, ответы, уведомления, личные письма администратора и предупреждения о нарушениях доходят и до отписавшихся. Письма через submission с заголовками рассылки (
Precedence: bulk,List-Id,List-Unsubscribe) отписку уважают. - Ключ карт больше не нужен — настройка
map_tiles_api_keyудалена вместе с тайлами CARTO. - Обновите и бота, и веб-панель — карточки уведомлений и кнопки в них работают, только когда обе части новые;
docker compose pullобновляет обе. - Bedolaga. Лента событий работает с ботом 2.8.0 и новее, предупреждения через бота — с 4.16.0 (подробно — «Предупреждения через Bedolaga»).
📦 Обновление
docker compose pull
docker compose up -dАгенты нод обновлять не нужно. Подробно — в разделе «Обновление».