How to update?
Release contains breaking changes. Please read our updating guide below.
Read about updating here.
Что нового?
Переработка генерации подписок
В новой версии Remnawave частично была переработана генерация “подписок”, которые конечные пользователи добавляют в совместимые приложения по типу Happ, Streisand и так далее.
Так же благодаря этому нововведению, нам удалось перенести все темплейты сразу в базу данных. Никаких больше чтений с диска!
В админ-панели теперь доступно редактирование темплейтов в удобном редакторе с поддержкой форматирования JSON и YAML.
Небольшая ремарка: монтирование темплейтов через volumes больше не поддерживается.
После обновления не забудьте обновить свои темплейты в соотвествующем разделе в админ-панели.
Изменение в подходе к фоновым задачам
В версии 1.4.x мы изменили полностью изменили подход к выполнению фоновых задач.
Теперь за их выполнений отвечает целых два новых “модуля”, а все фоновые задачи проходят через очередь (с помощью BullMQ, в связи с чем добавилась новая зависимость в виде Redis).
при желании можно заглянуть “под капот” и посмотреть что происходит
логин и пароль METRIC_USER, METRICS_PASS
Теперь есть четкое разделение между экземплярами приложения:
-
REST API (can be scaled!)
Этот экземпляр отвечает исключительно за взаимодействие по Rest API и выполнение быстрых операций по типу создания пользователя, и так далее. Все роуты, которые затрагивают любые долгие операции с пользователями или с “нодами” – отправляют их выполнение напрямую в очередь, а дальше их забирает один из процессоров. -
Scheduler (only one!)
Этот экземпляр отвечает за все задачи, которые должны выполняться строго по расписанию. Проверка пользователей раз в N-количество времени. -
Processor (can be scaled!)
В этом экземпляре собраны все “процессоры”, которые занимаются обработкой событий из всех очередей.
Поддержка xHTTP
Горячо ожидаемая новинка уже доступна для настройки в редакторе конфига в панели.
Подробнее о xHTTP можно прочитать вот здесь.
JSON-подписки
Одна из самых ожидаемых и горячо обсуждаемых функций так же доступна в новой версии.
В разделе Templates → Xray JSON доступен полноценный редактор темплейта.
JSON-подписка будет доступна по обычной подписке, достаточно дописать /json в самом конце.
Happ – routing, announce
В разделе Happ Routing Builder теперь есть полноценный редактор роутинга для приложения Happ.
После того, как соберете нужную конфигурацию, не забудьте добавить ее в разделе Subscription settings. Так же в этом разделе можно добавить кастомное announce-сообщение, которое пользователи увидит в приложении Happ.
Перенос настроек из .env в веб-интерфейс
Многим настройкам не место в .env файле, так как довольно часто хочется менять эти настройки на “лету” и перезапускать полностью всю панель из-за одной строчки не хочется.
Из .env были удалены следующие переменные:
SUB_SUPPORT_URL
SUB_PROFILE_TITLE
SUB_UPDATE_INTERVAL
SUB_WEBPAGE_URL
EXPIRED_USER_REMARKS
DISABLED_USER_REMARKS
LIMITED_USER_REMARKS
SUPERADMIN_PASSWORD
SUPERADMIN_USERNAME
Не пугайтесь, логин и пароль супер-админа теперь хранится в базе данных.
При первом открытии панели, вам будет доступна регистрация, которая займет не больше пары минут. Логин и пароль (в зашифрованном виде) будут хранится в базе данных. После того, как супер-админ зарегистрирован, регистрация будет закрыта.
Новые поля в “юзере” – TelegramID, Email
Теперь к пользователю можно привязать TelegramID, и Email.
Так же доступны новые “эндпоинты”, по которым можно получить пользователей с указанным email или TelegramID.
В таблице всех пользователей так же доступен полноценный поиск по этим и многим другим полям.
*Небольшая ремарка: TelegramID, Email – это неуникальные поля. И в поиске может вернуться несколько значений, так же как и в RestAPI вместо “одного” пользователя вернется массив из них.
Такое решение были принято в виду того, что у одного Telegram пользователя может быть несколько подписок, так как же и у email-адреса.*
Оптимизация Remnawave Node
По итогу тестов в версии Remnawave Node 1.0.0 было замечено, что при большом количестве пользователей запуск XRay ядра и в целом обработка конфига с 50.000 пользователями могла занимать значительное время.
При небольшом количестве пользователей разница была в рамках небольшой погрешности - от 1 секунды до 3-4 секунд (в зависимости от железа ноды).
Мы обновили способ проверки хеша конфига при запуске ядра. Новый вариант значительно ускорил этот процесс даже в самых нагруженных ситуациях.
Ремарка: после того, как XRay на ноде запускается, весь конфиг и его хешсумма хранятся в RAM ноды. Хешсумма сохраняется для той ситуации, когда от мастер-сервера придется новый конфиг и если он окажется абсолютно идентичным (совпадает хешсумма), то нода попросту не будет перезапускать ядро. В этом нет никакого смысла, когда конфиг не поменялся от слова совсем.
Поэтому обязательно после обновления основной панели (Remnawave) – так же обновитесь на последнюю версию Remnawave Node.
Как это сделать? Ответ вот здесь.
Новые эндпоинты, обновление OpenAPI schema
Актуальную версию OpenAPI схемы можно найти в вашей собственной админ-панели.
Так же она доступна вот здесь.
Были исправлены некоторые ошибки в типизации, которые раньше конфликтовали с генераторами клиентов, которые работают на основе этой схемы.
Что еще?
В этом обновлении было так же много исправлений, о которых подробно писать нет смысла – исправление опечаток, исправление логики в некоторых местах, исправление или добавление новых строк локализации.
Так же была проведена большая работа по оптимизацию использования оперативной памяти. Теперь панель должна занимать еще меньше ОЗУ. (по крайней мере хочется в это верить)
Полные чейнджлоги доступны ниже.
А в самом низу это страницы можно найти секцию – Linked Posts. В ней привязаны многие Feature Requests, улучшения, а так же баги, которые были добавлены в наш Hub.
Thanks, community!
Спасибо всем, кто активно принимал участие в поддержке проекта, обсуждение новых функцию.
Особая благодарность контрибьюторам, которые вносят свой вклад в развитие Remnawave.
Full Frontend Changelog (1.3.3…1.4.0)
Enhancements
- Improve user management with date handling and backend contract update (3335c57)
- Add super-admin registration and authentication flow (56b2359)
- Add server status badge to login page (cf1379d)
- Add Superadmin section to sidebar menu [31825f0]
- Add option to open sidebar menu items in new tab (16b5eda)
- Enhance node card with xray uptime and improved layout (8930d05)
- Add subscription templates and Monaco editor support (b553829)
- Add Xray JSON template and localization support (899528c)
- Add QR code generation for user subscription URL (3f22775)
- Add Happ Routing Builder and Subscription Settings (c7a23bd)
- Add Profile Webpage URL toggle in Subscription Settings (63a591f)
- Update backend contract and enhance statistic nodes component (6fa4070)
Fixes
- Use Buffer for base64 encoding in Happ Routing Builder (33656ce)
Refactors
- Improve form layout and i18n configuration (3a32741)
Full Backend Changelog (1.3.3…1.4.0)
Enhancements
- Allow API role access to Xray config controller (99985c7)
- XHTTP support, drop legacy networks&protocols (61c5ccf)
- Add support for user lookup by Telegram ID and email (e1d33cd)
- Update mechanism for FindExceededUsageUsers job (0c4de05)
- Implement admin authentication and registration system (7160713)
- Enhance JWT default guard with admin authentication validation (4fad6de)
- Add database seeding to docker entrypoint and package scripts (1dce6eb)
- Change node health-check endpoint (5f53cec)
- Optimize SQL query (461c30b)
- Add Redis configuration and volume to docker-compose (2772cb2)
- Add node health check queue and refactor health check service (de6518d)
- Add xrayUptime to node health tracking (3432673)
- Add subscription template management and configuration support (f474dd0)
- Add Xray JSON subscription support for specific clients (ac8f1ec)
- Add get one host endpoint and related contract updates (a3c187a)
- Add subscription settings management and configuration support (5ba0f17)
- Add validation for happAnnounce in subscription settings (3449cdf)
- Add profile webpage URL toggle in subscription settings (5c7156d)
- Enhance MihomoGeneratorService with additional proxy options (42cb9fb)
- Update date handling in nodes usage history (86460d5)
- Add healthcheck for redis (e8f4783)
Fixes
- Webhook user status when expires (b5cae3f)
- Incorrect stats in logger events (423a9a1)
- Update Xray config command response schemas to use unknown type (ee9061e)
- Update Prisma seed script configuration (da375f0)
- User status not updated if new limit = 0 (b91abcb)
- Add node existence validation in start node handler (1336676)
- Correct BullBoard route path and add dashboard link (4fed746)
- Improve node creation validation messages (409f02f)
Refactors
- Improve zod date validation and type handling (07acc41)
- Improve type safety and error handling across modules (4445a6d)
- Simplify Xray config response schemas (bb6a909)
- Remove debug logging and simplify config retrieval methods (222a2f8)
- Optimize expired users processing (0dd800d)
- Update user status handling in exceeded usage job (1e06819)
- Optimize user traffic reset jobs (d8d7ef9)
- Optimize user usage recording with bulk operations (f70a5e9)
- Optimize import statements and module organization, bump ESLing and update to Flat Config (47d6dc7)
- Improve user config generation and module structure (ae4083f)
- Optimize XRay config generation (2d576fa)
- Improve expired users handling for limited and active statuses (65c3b16)
- Optimize config generation and user handling (de8cc08)
- Move GetPreparedConfigWithUsersHandler to users module and update related imports (7fa89cc)
- Remove redundant node connection state flags (8bbd131)
- Adjust batch size for user config generation stream (b5b4650)
- Restructure jobs and scheduler configuration (0796c8a)
- Improve JWT guard role-based authentication logic (a14995b)
- Migrate queue management to centralized queue module (bb8efa7)
- Migrate node operations to queue-based architecture (6c30b77)
- Update middleware exports and import paths (750b4cc)
- Consolidate and simplify scheduler tasks (7a1fc5b)
- Optimize XRay configuration processing and Prometheus reporting (59c77d9)
- Migrate subscription generation to new template module (d875c8e)
- Remove profileWebpageUrl from subscription settings (5b3f390)
Chore
- Upgrade dependencies and Prisma version (429725e)
- Optimize Dockerfile and seed script configuration (692ef93)
- Update Prisma seed script path in package configuration (cfe18e7)
- Add depends_on for redis (cbea9ac)
- Bump contract library version and update password validation regex (77991d1)
- Update healthcheck for redis (af383f5)
- Remove legacy configuration files (409b19b)
Full Remnawave Node Changelog (1.0.0…1.4.0)
Enhancements
- Add Vision module (b3b0fca)
- Improve JWT authentication error logging details (0b7801a)
- Add configurable config checksum checking for Xray service (02fe636)
- Increase timeouts (dd4a95f)
- Add health-check endpoint (d40387a)
Fixes
- Correct global prefix configuration for Vision module routes (10fcedb)
- Improve error handling in Vision service and update Xray API services (0fb9277)
- Increase Xray internal status check delay (1114612)
Refactors
- Improve Xray startup error logging with table formatting (816ddd4)
- Update Vision module routes and global prefix configuration (08fa673)
- Remove unused protocol handlers from HandlerService (722eb23)
Chore
- Upgrade Xray and @remnawave/xtls-sdk to latest versions (64a4af3)
- Replace object-hash with node-object-hash library (ce74f85)
- Bump version of @remnawave/node-contract to 0.4.1 (53c1301)







