Skip to content

Remnawave Admin 5.0.0 ​

24 сентября 2026 · релиз на GitHub · обсуждение в Telegram

Большой релиз со всем, что накопилось после 4.8.3: раздел «Обращения» для поддержки клиентов Bedolaga, шейпер скорости на нодах, предупреждения клиентам о нарушениях, выгрузка бэкапов в S3 и автоматизации, которые вобрали в себя алерты. Время во всей админке теперь показывается в часовом поясе панели, а журнал аудита стал полным и защищён от правки.

Перед обновлением

Прочитайте раздел «Важно»: там всё, что придётся сделать руками, — от бэкапа базы до обновления агентов на нодах.

✨ Новое ​

Обращения ​

Рабочий стол поддержки для тикетов Bedolaga прямо в админке. Очереди «К обработке», «В работе», «Просрочено», «Ждёт клиента» и «Отложено» со счётчиками; время ожидания идёт вживую и краснеет по сроку ответа, а контроль срока можно выключить целиком. Сообщения из бота подтягиваются сразу по его событиям, а не раз в несколько минут. Поиск, фильтры по тегу и оператору, «взять себе», приоритет, теги, «отложить» на час, три часа, до завтра или на неделю, массовые «взять» и «закрыть»; видно, что коллега уже смотрит это обращение. Раздел работает и с телефона, доступ — по праву bedolaga_support.

Переписка и клиент. Вложения видно прямо в ленте и можно листать галереей, файл до 20 МБ уходит клиенту из поля ответа. У каждого обращения свой черновик. Шаблоны ответов вызываются по «/», подставляют имя, номер обращения, срок подписки, остаток дней, баланс и лимит устройств и могут заодно сменить статус или повесить тег. Горячие клавиши: J/K — по списку, R — ответить, A — взять, C — закрыть. Рядом с перепиской — клиент: подписка, баланс, общая заметка о нём, другие его обращения, история обращения и кнопки «Продлить 3 дня» и «Сбросить устройства». Над очередями — метрики за неделю: сколько пришло, среднее время первого ответа, доля просрочек.

Уведомления и автоответ. О новом обращении и ответе клиента в Telegram приходит карточка: кто написал, контакты, подписка, баланс, текст и вложение, а под ней кнопки — открыть обращение, профиль клиента, написать в личку, взять себе, отложить на час, закрыть. О просроченном ответе — отдельное напоминание. У обращений свой топик, в браузере — системные уведомления и счётчик в заголовке вкладки и в меню. В часы тишины робот отвечает клиенту, что обращение принято и когда им займутся; за ответ оператора очередь его не считает.

Шейпер скорости на ноде ​

Нужен агент 1.9.0. Потолок скорости на каждый адрес клиента и штраф для качальщиков: кто за окно прокачал больше порога, на время получает штрафную скорость. Настраивается отдельно для каждой ноды в окне «Шейпер клиентов» из меню ноды, по умолчанию выключен; перед включением окно показывает, что изменится на ноде. Работает на eBPF, чужие дисциплины и фильтры tc не трогает, проверен на ядрах 5.15 и 6.6. Штрафы приходят уведомлением в Telegram и колокольчик — про одного юзера не чаще раза в 6 часов — и видны в окне шейпера, а бейдж на карточке ноды показывает, работает ли шейпер. Подробнее — в разделе «Шейпер ноды».

Предупреждения клиенту о нарушении ​

Кнопка «⚠️ Предупредить» в уведомлении и карточке нарушения, а при желании — автоматическая отправка вместе с блокировкой или урезанием скорости. Тексты — на вкладке «Нарушения → Предупреждения»: общий шаблон и свой на каждый вид нарушения, с выключателем, порогом скора для автоотправки, отправкой на почту и темой письма. Письмо уходит через бота Bedolaga в Telegram и на почту, каналы отчитываются раздельно: заблокировавший бота всё равно получит письмо. В текстах по умолчанию нет стран, числа устройств и скоринга, чтобы предупреждение не стало инструкцией по обходу. Отправка требует права violations:resolve. Подробнее — в разделе «Предупреждения клиенту».

Вердикт по клиенту во внешнем API ​

GET /api/v3/violations/summary отвечает уровнем clean, warned или limited со счётом нарушений за окно, максимальным скором, последней мерой и последним предупреждением. Аннулированные нарушения не считаются, белый список перебивает всё. Список нарушений фильтруется по telegram_id и показывает, предупреждали ли по нарушению. Пригодится любой своей интеграции — например, чтобы не выдавать триал ограниченным; бот и кабинет Bedolaga показывают по нему плашку клиенту и историю оператору (подключение — в разделе «Важно»).

Бэкапы в S3 ​

Копия дампа уезжает в любое S3-совместимое хранилище: Amazon S3, MinIO, Selectel, Timeweb Cloud, Backblaze B2. Вкладка «Хранилище» в бэкапах: подключение, проверка связи и список файлов в бакете; ручная выгрузка у каждого бэкапа и автовыгрузка после планового, даже при выключенной отправке в Telegram; старые копии в бакете ротируются. Ключи доступа хранятся зашифрованными и наружу не отдаются. Подробнее — в разделе «Выгрузка в S3».

Часовой пояс панели ​

Настройка «Часовой пояс» (по умолчанию Europe/Moscow). В базе и API время остаётся в UTC, а всё, что видит человек, — веб, Telegram, письма, CSV и отчёты — показывается в этой зоне с подписью («МСК», «UTC+5»). По ней считаются сутки, недели и месяцы отчётов, тренды и когорты аналитики, расписания отчётов, бэкапов и cron автоматизаций, по ней же читаются поля даты и времени — срок подписки, срок промокода.

Автоматизации ​

Цепочки и условия. После основного действия правило выполняет до пяти дополнительных («уведомить + урезать скорость»); если основное не удалось, остальные не идут. Условия «все» или «любое», операторы «в списке» и «не в списке», порог «держится не меньше N минут», своя пауза между срабатываниями. У уведомления — тихие часы: не срочное копится и уходит утром одной сводкой.

События и действия. Новые события «нода снова онлайн», «юзер создан», «подписка истекла»; нарушение, торрент, офлайн ноды и превышение трафика несут данные для условий: страны, провайдеры, адреса, устройства, нода, сквады, тег, дни до конца подписки. Новые пороги: онлайн и трафик по одной ноде, CPU, RAM и диск ноды из Fleet, нарушений за час, новых юзеров и трафик юзера за сегодня. Новые действия: урезать скорость, предупредить юзера по шаблону, заблокировать на время (юзер включится сам), уведомить в колокольчик и на почту — в том числе без Telegram, с важностью и кнопками действий под сообщением. Перезапуск ноды ограничивается числом раз в час, очистка истёкших — сквадами и тегом.

Управление правилами. «Запустить сейчас» для правил по расписанию, тестовый прогон с подсказками переменных, журнал срабатываний прямо в карточке правила с переходом к юзеру, экспорт и импорт правил в JSON. Импортированные правила и опасные шаблоны создаются выключенными.

Полный журнал аудита ​

В журнал попадает любое изменение: финансы, плагины, скрипты, сквады, уведомления, бэкапы и остальное. Правки юзера, ноды и настройки хранят старое и новое значение («было → стало»), массовые операции — список затронутых юзеров. Экспорт в CSV или JSON всего, что попало под фильтры (до 50 000 строк); фильтры по админу, IP (клик по адресу) и произвольному периоду; история в карточке юзера и в панели ноды. Записи только дописываются — изменить или удалить их нельзя.

Ограничения и ротация API-ключей ​

Ключ можно ограничить адресами (IP и подсети) и юзерами (сквады, тег): через API v3 он не видит и не трогает чужих юзеров и их нарушения. Ротация с перекрытием — старый ключ работает ещё от 1 до 72 часов, пока интеграция переключается, или гаснет сразу, если ключ утёк. У каждого ключа журнал запросов: метод, путь, код ответа, IP и время. Подробнее — в справочнике по API.

Вебхуки: повтор доставки и новые события ​

Тело события хранится в журнале доставок, доставку можно повторить, журнал фильтруется по событию и результату. Новые события: user.expired, user.traffic_exceeded, node.shaper_penalty, report.generated, backup.failed — их поля описаны в каталоге событий.

Лента активности клиента Bedolaga ​

В карточке клиента рядом с транзакциями: платежи, события подписки, действия в кабинете и мини-аппе, входы, с фильтрами «Всё / Подписка / Действия / Входы».

«Не беспокоить» для админа ​

Окно по часам панели, в которое личные каналы админа (Telegram, почта, вебхук) молчат, кроме критичного; колокольчик копит уведомления как обычно.

🔧 Улучшения ​

  • Мягкая блокировка через шейпер (агент 1.9.0) — урезание скорости юзера режет обе стороны на любом порту, работает для IPv6 и там, где общий шейпер выключен. Действует меньший из общего, персонального и штрафного лимитов.
  • Алерты стали правилами автоматизаций — один движок вместо двух: включённые пороговые алерты сами переезжают в автоматизации с тем же порогом, паузой, окном «держится N минут», каналами, важностью и топиком, а текст уведомления стал человеческим, на языке панели. Шаблоны «CPU / память / диск ноды» — в галерее автоматизаций.
  • Страница «Сервера» — Fleet и ноды панели на одной странице вкладками вместе со скриптами, историей, расписаниями и массовыми действиями, в меню один пункт вместо двух. Из меню ноды она открывается во Fleet, у машины Fleet есть переход к ноде панели, старые адреса /nodes и /fleet ведут на нужную вкладку.
  • Ноды — на карточке скорость, CPU, RAM, аптайм, версии Xray и ноды, флаг страны, заметка и трафик «за период» с днём сброса, внизу — «в сети · …» или «офлайн · …». Одно меню действий для карточки, компактного вида и таблицы, перезапуск спрашивает подтверждение и пишет, у скольких юзеров оборвутся соединения. Поиск по имени, адресу и заметке, фильтры по статусу и агенту, плашки статистики фильтруют по клику. Порядок «как в панели» и кнопка «Сохранить порядок в панель» — это порядок локаций в подписке. В правке ноды меняются профиль конфигурации и inbound'ы, а ошибка панели (занятый порт, чужой inbound) показывается как есть. В окне «IP пользователей» — имена со ссылками и время последнего появления адреса.
  • «Ресурсы RW» — хосты и сквады переехали вкладками в «Ресурсы», права разделены по вкладкам (hosts:view, users:view, resources:view), старые адреса /hosts и /squads ведут на вкладки.
  • Настройки — у каждой настройки свой раздел: «Общие» разложены на панель, сессии, логи, внешние сервисы, ключи DNS, репутацию IP и вход через провайдеров, почта — на SMTP, TLS, антиспам и хранение писем. Разделы видно цветными бейджами со счётчиками, оглавление категории прокручивает к нужному.
  • Отчёты — в карточке тип и период словами, подписанные счётчики, топ со скором и ссылками, текст отчёта, кнопки «Отправить в Telegram» и «Удалить». Отчёт за тот же тип и период перезаписывается, а не дублируется.
  • ASN — синхронизация живёт в одном месте, «Настройки → Синхронизация»; справочник ASN — вкладкой в «Нарушениях», типы провайдеров на языке админа.
  • Аналитика — тренды сравниваются с предыдущим окном, трафик берётся из статистики панели (90 дней, «всё», свои даты), география и провайдеры считают уникальных юзеров и адреса за период, LTV — в рублях, из пополнений в Bedolaga на одну платную подписку, удержание — по трафику за всё время.
  • Bedolaga — в карточке клиента кнопки «Добавить трафик» и «Добавить устройства»; промокоды «скидка» (процент и срок в часах) и «пробная подписка», типы подписаны по-человечески; бонус «тариф» в кампаниях; редактор шаблонов ответов для обращений.
  • API v3 — GET /users и /users/{uuid} отдают short_uuid и subscription_url; POST /users возвращает uuid, short_uuid и ссылку подписки и сразу пишет юзера в базу админки: GET по uuid работает без ожидания синка.
  • Пароли — полоса надёжности и список требований теперь и в форме создания админа, и при принудительной смене пароля; слабый пароль отклоняется понятной ошибкой со списком требований.
  • Автоматизации — cron считается по часам панели и догоняет пропущенную минуту, правила по юзерам и превышению трафика читают свою базу, а не полный список из панели, шаблоны подключаются с подтверждением.
  • Мобильная версия — автоматизации на телефоне: кнопки шапки не уезжают за экран, кнопки конструктора прилипают к низу, строки условий и цепочка действий перестраиваются под узкий экран; вкладки «Нарушений» и кнопки «Плагинов» переносятся.
  • Документация — справочник по разработке плагинов и инструкция по подключению нарушений к боту и кабинету Bedolaga.

🐛 Исправления ​

  • исправлена ошибка (агент терял строки access.log с источником вида from tcp:IP:порт — подключения внутри mux/XUDP, в том числе к UDP-целям) — спасибо @chudo-arky (#280)
  • исправлена ошибка (урезание скорости сносило корневую дисциплину tc основного интерфейса ноды вместе с чужими настройками) — спасибо @fesevu (#281)
  • исправлена ошибка (включение и выключение хоста на панели 3.x показывало ошибку, хотя хост переключался)
  • исправлена ошибка (на карточке ноды «последний раз был» всегда пустовал, сортировка по нему не работала)
  • исправлена ошибка (в табличном виде нод часть подписей не переводилась)
  • исправлена ошибка (правило автоматизации срабатывало на первое нарушение или первую упавшую ноду, а следующие терялись)
  • исправлена ошибка (правила на офлайн ноды считали упавшими выключенные ноды)
  • исправлена ошибка (торрент запускал правила на нарушение ещё раз, вторым событием)
  • исправлена ошибка (действие «Очистить истёкших» на панели 3.x никого не отключало)
  • исправлена ошибка (действие «Синхронизация нод» падало на панели 3.x)
  • исправлена ошибка (условия правила проверялись не у всех типов триггеров)
  • исправлена ошибка (при правке правила не проверялось то, что проверяется при создании)
  • исправлена ошибка (спецсимволы в значениях ломали уведомления автоматизаций в Telegram)
  • исправлена ошибка (алерт «нода офлайн» не срабатывал у нод без агента, а алерт нагрузки срабатывал по устаревшим цифрам упавшей ноды)
  • исправлена ошибка (торрент-уведомление считало только последний батч и всегда писало «Жёсткая блокировка» вместо настроенного действия)
  • исправлена ошибка (отчёт за период мог прийти дважды или потеряться после рестарта)
  • исправлена ошибка (отчёт из веба не учитывал минимальный скор и размер топа из настроек)
  • исправлена ошибка (отчёт старше последних двухсот не открывался)
  • исправлена ошибка (время в расписании отчётов сохранялось на каждое изменение поля, а ошибка загрузки пряталась за значениями по умолчанию)
  • исправлена ошибка (расписания отчётов и бэкапов и страница «Настройки» портили друг другу данные настроек)
  • исправлена ошибка (суточные графики аналитики строились по часам)
  • исправлена ошибка (статистика трафика панели 3.x не разбиралась)
  • исправлена ошибка (тренды аналитики не учитывали дату «по», а фильтр нарушений «по» не включал последний день)
  • исправлена ошибка (сбой отчёта аналитики выглядел как пустой список)
  • исправлена ошибка (фильтры по датам в журнале аудита и логах автоматизаций падали)
  • исправлена ошибка (часть действий попадала в журнал аудита дважды)
  • исправлена ошибка (фильтр журнала аудита по разделу всегда был пуст, а фильтр по действию ловил похожие действия)
  • исправлена ошибка (символы % и _ в поиске журнала аудита работали как шаблон)
  • исправлена ошибка (подписи полей и описания действий в журнале аудита не переводились)
  • исправлена ошибка (ответ 401 от Bedolaga разлогинивал админа)
  • исправлена ошибка (Bedolaga отклоняла каждое создание рекламной кампании)
  • исправлена ошибка (часть типов промокодов не создавалась — таких типов у Bedolaga нет)
  • исправлена ошибка (причина изменения баланса клиента не доходила до Bedolaga)
  • исправлена ошибка (сброс устройств клиента Bedolaga не работал)
  • исправлена ошибка (поиск и сортировка партнёров по заработку видели только первые 200 партнёров)
  • исправлена ошибка (слабый пароль при создании админа давал ошибку «Неверный пароль», а браузер подставлял в форму свой логин и пароль)
  • исправлена ошибка (на уже развёрнутых панелях у настроек не обновлялись раздел, название и описание, часть висела без раздела)
  • исправлена ошибка (часть разделов и настроек показывалась сырыми ключами, а в английском интерфейсе — по-русски)
  • исправлена ошибка (запуск синхронизации ASN из бота не отображался в «Настройки → Синхронизация»)
  • исправлена ошибка (текст экранировался дважды: Europe/Moscow вместо Europe/Moscow, A&B вместо A&B)
  • исправлена ошибка (выключенный переключатель сливался с карточкой)
  • исправлена ошибка (API v3 всегда отдавал online: null)
  • исправлена ошибка (описание API-ключа не сохранялось при создании, а секрет вебхука нельзя было снять)
  • исправлена ошибка (ключ можно было создать со сроком в прошлом, а на несуществующий ключ или вебхук API отвечал «админ не найден»)
  • исправлена ошибка (проверка адреса вебхука подвешивала обработку на медленном DNS)

🛡 Безопасность ​

  • исправлена ошибка (при правке секретной настройки её значение попадало в журнал аудита открытым текстом) — записи, сделанные до обновления, остаются в журнале: если меняли секреты через веб, их стоит перевыпустить
  • исправлена ошибка (API-ключу можно было выдать права, которых нет у его создателя)
  • исправлена ошибка (ключ отключённого или удалённого админа продолжал работать)
  • исправлена ошибка (ограниченный админ видел чужих юзеров и ноды в выгрузке IP, отчётах аналитики, топе отчёта о нарушениях и в окне «IP пользователей» у ноды)
  • исправлена ошибка (уведомления о юзере получали админы, которым он не виден, общие — админы без права на раздел, а адресные по WebSocket — все админы)
  • исправлена ошибка (живые события журнала аудита приходили по праву на админов, а не на журнал)
  • исправлена ошибка (действие «вебхук» в автоматизациях могло обращаться во внутреннюю сеть)

⚠️ Важно ​

  • Перед обновлением снимите бэкап базы. Миграции накатятся сами при первом запуске, а откат на 4.8.3 — только восстановлением из бэкапа.
  • Агенты нод — до 1.9.0, панель предложит обновление. Без него не будет шейпера, а урезание скорости продолжит работать по-старому, со сбросом корневой дисциплины tc (#281). Compose агента менять не нужно.
  • Алерты переехали в автоматизации. Вкладки алертов в «Уведомлениях» и их API (/api/v2/alert-rules, /alert-logs, /alert-templates) удалены. Включённые пороговые алерты переносятся в правила автоматизаций при обновлении, выключенные — нет, их аналоги есть в шаблонах. Журнал алертов остаётся в базе как история и чистится вместе с уведомлениями.
  • Сроки хранения. Уведомления и журнал алертов старше 90 дней теперь удаляются раз в сутки («Настройки → Общие → Логи → Хранение уведомлений»), журнал срабатываний автоматизаций — тоже через 90 дней. Журнал аудита только дописывается: изменить или удалить записи нельзя даже запросом в базу, чистится он только по сроку «Хранение журнала аудита» — по умолчанию бессрочно.
  • Часовой пояс. Время показывается в поясе из «Настройки → Общие → Панель → Часовой пояс», по умолчанию Europe/Moscow. Время отчётов и бэкапа и cron автоматизаций при обновлении пересчитаны из UTC в Москву и срабатывают в тот же момент, что и раньше. Если панель живёт в другом поясе, выставьте его и проверьте расписания: они задаются в часах панели.
  • API-ключи. Ключи отключённых и удалённых админов перестали работать — если интеграция живёт на таком ключе, перевыпустите его от действующего админа. Новый ключ не получит прав больше, чем у создателя, а области по юзерам выдаёт только админ без ограничения видимости.
  • Скорость урезания по умолчанию. Если в «Настройки → Обнаружение нарушений → Мягкая блокировка → Скорость по умолчанию» стоит 0 — теперь это «без лимита»: кнопка в боте и автодействия ничего не урезают. Раньше 0 молча превращался в 1024 кбит/с.
  • Bedolaga. Раздел «Обращения» работает с нынешним ботом — нужна только настроенная интеграция (BEDOLAGA_API_URL, BEDOLAGA_API_TOKEN). Предупреждения о нарушениях, плашка клиенту и вкладка «Нарушения» оператору требуют бота и кабинета с доработками из #3270 и #613, лента активности клиента — из #3266; пока они не приняты в апстрим, кнопка «Предупредить» вернёт ошибку доставки (мера при этом применяется), а лента просто не показывается. Настройка «Нарушения: предупреждать клиента при мере» включена по умолчанию — выключите её, если бот не обновлён. Подключение — по инструкции: EXTERNAL_API_ENABLED=true в админке, ключ только с областью violations:read, боту — ABUSE_API_ENABLED, ABUSE_API_URL, ABUSE_API_KEY, ABUSE_API_TIMEOUT.
  • Кнопки-ссылки под уведомлениями об обращениях (открыть обращение, профиль клиента) появляются, только если задан «Публичный URL панели» (APP_PUBLIC_URL) на https. Без него уведомление приходит с кнопками действий, но без ссылок.

📦 Обновление ​

bash
docker compose pull
docker compose up -d

На каждой ноде — то же самое в каталоге агента. Подробно — в разделе «Обновление».

AGPL-3.0 с исключением для плагинов