Repository navigation
Releases
7.0.1 — меню бота, подписки и обновления
STEALTHNET 7.0.1
В этом выпуске — предпросмотр меню бота, выбор подписки перед покупкой, доработка обновлятора и исправления кабинета и админки после 7.0.0.
Дополнено 15 ноября 2026: в настройки и предпросмотр добавлено предупреждение об ограничении HTML-виджетов на стороне Telegram. Разработчик Telegram Bot API подтвердил запрет для обычных ботов; тестовый вызов нашего бота вернул INPUT_MEDIA_WIDGET_NOT_ALLOWED. При отказе отправки используется обычное меню. Предпросмотр остаётся доступен и не подтверждает возможность отправки в Telegram.
Если первая сборка 7.0.1 уже установлена, снова нажмите «Проверить обновления» и установите дополнение. Номер версии остаётся 7.0.1; обновлятор сравнивает коммиты и видит новую сборку с тем же номером.
Telegram-бот
- В настройках появился предпросмотр обычного меню и HTML-виджетов. Можно проверить порядок, видимость и группировку кнопок для нового клиента, активной подписки, истёкшей подписки и использованного триала. Предпросмотр работает с черновиком: сообщения и платежи не создаются.
- Пресет «Компактное меню» оставляет основные действия снаружи, а дополнительные переносит в профиль. Администратор выбирает состав разделов; внутри них есть кнопка возврата в профиль. Свои ссылки и отключённые кнопки сохраняются.
- Сохранённое меню больше не дополняется самовольно включёнными действиями. Убраны повторяющиеся сведения о подписке, неудачные подписи устройств и текстовая шкала трафика.
- При
/startпроверяются существующие подписки пользователя в Remna и восстанавливаются отсутствующие связи. Подписка другого аккаунта не присваивается: пользователю предлагается привязать Telegram через профиль сайта. - Названия и ссылки юридических документов берутся из настроек. Очистка ссылки в админке теперь сохраняется.
Покупки и подписки
- Перед покупкой ещё одной подписки клиент может выбрать продление существующей или создание отдельной. В списке видны названия и сроки. Предупреждение работает в боте, кабинете и Mini App и включено по умолчанию; переключатель находится в настройках подарков и дополнительных подписок.
- При ошибке проверки существующих подписок новый платёж не создаётся. Прямое продление, переход с триала и ограничения режима одной подписки учитываются отдельно.
- Исправлены применение персональной скидки из рулетки, проверка баланса, расчёт промокода в Aurora и оформление бесплатного тарифа.
- В карточке клиента появилась история платежей. Оплата с внутреннего баланса и ручная выдача не прибавляются повторно к сумме внешних платежей; ошибка загрузки показывается отдельно.
- Администратор может назначить основную подписку и отредактировать её запись. Проверяются занятые UUID и права на подарки; изменение дополнительной подписки не меняет основную. Сохраняются связи импортированных и старых профилей.
- Добавлена очистка завершённых бесплатных триалов с настраиваемым сроком хранения, проверкой без удаления и подтверждением ручного запуска. По умолчанию она выключена. Клиенты с платёжной историей, другими услугами, ненулевым балансом или открытыми обращениями исключаются. Ошибка Remna, неизвестный срок и активная подписка останавливают удаление.
Обновления и диагностика
- Установщики проверяют make, Git, Python, curl и сертификаты, устанавливают недостающие зависимости и останавливаются при ошибке. Временные ошибки загрузки пакетов, исходников и релизов допускают ограниченные повторные попытки.
- Перед установкой проверяются Docker, возможности Compose и свободное место. В панели видны этапы, время операции и журнал обновления; ошибки и результат отката отображаются отдельно.
- Исправлена блокировка перехода с 6.9.1 из-за нового тома настроек бота. Обычные SQL-архивы в
backups/больше не мешают обновлению. Защита существующих томов, сети и локальных настроек сохранена. - В диагностике можно скачать архив для поддержки. В нём — версия, результаты проверок сервисов, состояние обновления и обезличенная сводка событий. Исходные журналы, настройки, пароли, токены, ссылки подписок и данные клиентов не включаются. Состав показан перед скачиванием; автоматической отправки нет.
- Ошибки синхронизации Remna теперь содержат причины с маскированием чувствительных данных.
- Уведомления о бэкапах показывают версии, размер и контрольную сумму. Версия панели записывается в манифест и SQL-дамп.
Интерфейс
- Исправлены мигание темы при загрузке, переключение оформления кабинета и смешивание личных тем кабинета и админки.
- Улучшены мобильная навигация обучения и его отключение в настройках.
- Исправлены состав кеша PWA и восстановление после устаревших файлов приложения.
- В настройках Groq можно выбрать предложенную модель или ввести название вручную.
- Длинный список локальных изменений в разделе обновлений свёрнут и не растягивает страницу.
Как обновиться
Создайте и скачайте резервную копию. Затем откройте Настройки → Обновления, проверьте наличие версии и запустите установку. Дождитесь завершения и проверьте вход, подписки и меню бота.
Если старый агент уже блокирует установку сообщением о хранилищах или сети Docker, нужен однократный запуск восстановления через SSH по инструкции. Одна публикация релиза не обновляет файлы заблокированного агента. Новые этапы и предварительные проверки появятся после обновления агента и перезапуска службы.
Миграций базы данных относительно 7.0.0 нет. Предпросмотр использует примерные данные; цвета и premium-эмодзи могут отличаться в разных клиентах Telegram.
Проверены сборки API, бота и фронтенда, браузерные сценарии на настольной и мобильной ширине, права доступа и состав диагностического архива. На отдельной PostgreSQL проверены конкурентные изменения подписок и очистка триалов. В изолированном Docker пройдены успешное обновление, сохранение nginx-конфига и три сценария отказа с проверкой восстановления. Реальные платёжные списания в этих проверках не проводились.
7.0.0 — виджеты Telegram, CisPay и настройки панели
7.0.0 — виджеты Telegram, CisPay и настройки панели
В боте появились интерактивные карточки прямо в сообщениях. Добавлены CisPay, личный выбор обычного меню и поиск по настройкам. Исправлены продление с дополнительными устройствами, обработка оплаченных заказов и синхронизация нескольких подписок одного клиента.
Telegram
- Добавлен экспериментальный режим HTML-виджетов: баланс, подписка, устройства, тарифы и действия отображаются в компактных карточках. Убраны повторяющиеся строки, исправлены переносы текста и высота сообщений.
- Режим включается администратором: Настройки → Telegram-бот → Поведение → htmlbubbles test. Поддержка зависит от клиента Telegram; обычное меню остаётся доступным.
- При отправке нового меню бот присылает отдельное обычное сообщение с кнопкой «Включить обычное меню». Выбор действует только для этого пользователя, сохраняется после перезапуска и не меняет настройки остальных. Вернуться к виджетам можно кнопкой.
- Переключение сразу открывает главное меню. Старые действия виджетов после перехода на обычное меню отклоняются. При перелистывании подсказка не дублируется.
- Кнопки Mini App сохраняют переход с Telegram-авторизацией. Ввод email, промокодов и обращений остаётся сообщением боту.
- Исправлена обработка команд во время текстового ввода. Для единственной подписки доступен прямой переход к устройствам; поправлено отображение дробного баланса.
- Улучшена обработка сетевых ошибок Telegram. При сбое отправки виджета бот предлагает обычное меню, не повторяя исходную операцию.
Платежи и продление
- Добавлен CisPay для разовых платежей в RUB и USD. Клиент выбирает способ оплаты на странице провайдера. В админке доступны ID магазина, API-ключ, адрес уведомлений и режим приёма тестовых уведомлений.
- Уведомления CisPay проверяются по подписи и через API магазина. Добавлены возвраты для карт и СБП; криптовалютные возвраты через API не поддерживаются. Рекуррентные платежи CisPay в этот выпуск не входят.
- До подключения магазина показывается партнёрское предложение CisPay с кодом
STEALTHNET_BOOSTED. Кнопка «Хочу подключиться!» открывает чат с менеджером и подготовленным текстом. - Исправлен сценарий RollyPay, когда деньги списывались, но продление не выполнялось из-за превышения лимита дополнительных устройств. Лимит проверяется до создания счёта с учётом существующей подписки.
- Для RollyPay и CisPay получение оплаты и выдача покупки фиксируются отдельно. Задание на выдачу сохраняется в базе вместе с оплатой. Необработанные задания подхватываются после перезапуска; неудачные и прерванные операции отмечаются для сверки, а не считаются успешной выдачей.
- Сохранена защита от повторной обработки платёжных уведомлений. Ошибка активации отображается отдельно и сопровождается уведомлением администратора.
- Добавлен сбор уведомлений провайдеров в журнал webhook и уведомления администраторам о дополнительных покупках.
- Для отдельных способов Platega можно менять название и порядок. В запросах на вывод доступны СБП и банковская карта наряду с USDT.
- Исправлены сообщения об ошибках Crypto Pay, CisPay и Telegram Stars. Технические ответы провайдера не выводятся пользователю вместо понятного объяснения.
Админка и кабинет
- Настройки сгруппированы по задачам, добавлены поиск и выбор раздела на мобильном экране. Настройки Telegram-бота разделены на меню, тексты, эмодзи, поведение и ссылки.
- Платёжные блоки раскрываются плавно. Убрана яркая рамка при клике мышью, сохранён фокус для клавиатуры. Карточка CisPay отделена от соседних блоков.
- В AI-чате обновлены модели Groq и добавлена загрузка доступных моделей. Обрабатываются тайм-ауты и некорректные ответы провайдера.
- В редактор страницы подписки добавлены приложения STEALTHNET и INCY, обновлены ссылки Happ и добавлен предпросмотр. Пользовательские приложения, ссылки, порядок и видимость сохраняются; замена стандартными данными остаётся отдельным действием.
- Исправлены выбор платного тарифа после отдельного триала и покупка со скидкой 100% в теме Stealth. При смене продлеваемой подписки сбрасывается выбор удаления дополнительных устройств.
- Авторизованный клиент переходит из входа и регистрации в кабинет. Кнопки входа на лендинге учитывают авторизацию, а собственные ссылки администратора сохраняются.
- На лендинге корректно отображается лимит устройств тарифа. Исправлены единицы и ограничения минутного триггера рассылок об окончании подписки.
- В поддержке уточнены действия открытия и закрытия обращений, разделены активные обращения и история. Клиентское удаление тикетов запрещено.
Загрузка и синхронизация
- Страницы кабинета, лендинга и магазина загружаются по мере открытия. Административные модули исключены из предварительного PWA-кэша клиента.
- Улучшено обновление PWA с учётом открытых форм и оплаты, добавлена очистка устаревшего кэша. Анимации переведены с GSAP на Framer Motion.
- Счётчики аналитики рассчитываются в базе; запросы синхронизации Remna объединены в пакеты.
- Исправлена синхронизация нескольких подписок одного Telegram-пользователя: обновлённые связи больше не заменяются устаревшими данными из памяти.
- API, настройки и обработчики бота разделены на модули. Сохранены действующие маршруты, проверки доступа и интеграция «Мой Налог».
Обновление
Перед установкой создайте и скачайте резервную копию. Откройте Настройки → Обновления, запустите штатное обновление и дождитесь его завершения. Проверьте вход, подписки, настройки платежей и /start в боте. Инструкция по обновлению.
При переходе с 6.9.1 добавляются две миграции:
20261106000000_withdrawal_sbp_and_card— способ и реквизиты вывода; старые USDT-адреса сохраняются.20261109090000_payment_delivery— таблица состояний выдачи оплаченных покупок.
Для сохранения личного выбора меню бот использует том bot_preferences и переменную BOT_WIDGET_PREFERENCES_DIR=/data/widget-preferences. Они включены в Compose проекта. При собственном способе запуска подключите постоянный каталог: без него предпочтения потеряются при пересоздании контейнера.
Старые оплаченные заказы, оставшиеся без активации до обновления, необходимо сверить отдельно. Обновление не запускает повторную выдачу всех исторических платежей.
Проверены сборки трёх приложений, регрессионные сценарии, мобильные и настольные интерфейсы, переключение меню в Telegram Web и сохранение выбора после перезапуска. Платёжные сценарии проверялись с заглушками провайдеров и отдельной PostgreSQL; реальные списания не проводились. Проверка не охватывает все версии мобильного Telegram.
6.8.0 — Big Update
Крупное обновление панели и Telegram-бота. Собрали новые возможности и исправления после 6.5.1.
Что добавили
- Автообновления из GitHub. Выбор между стабильными релизами и последними коммитами
main, установка из панели, резервная копия перед обновлением и настройка срока хранения. - Telegram Stars. Оплата в боте и Mini App с настраиваемым пересчётом цены.
- AmneziaWG и Amnezia Web Panel. Управление доступом, тарифами и конфигурациями. Для Amnezia Web Panel нужен внешний API-патч.
- Больше настроек подписок. Платные и бесплатные триалы, ограничение дополнительных устройств по тарифу, реферальные награды деньгами или днями.
- Новое в боте. Web-режим, собственные кнопки и сортировка меню, Telegram ID в приветствии, тикеты и принятие пользовательского соглашения.
- Lite-режим и технические работы. Дополнительно: отписка от рассылок, QR-коды реферальных ссылок и настройка пароля при регистрации по почте.
Что исправили
Обработку платежей и автопродления, промокоды, мобильный интерфейс и Mini App, восстановление сессии при временных ошибках. Ошибки покупки и скачивания отсутствующего бэкапа больше не останавливают API; ручной бэкап становится доступен только после успешного завершения выгрузки.
Старое окно 5.1.0 заменили небольшим уведомлением Big Update. В боковом меню появились GitHub и «Сообщить об ошибке».
Обновление
Перед ручной установкой сохраните базу, .env и пользовательские файлы: версия содержит миграции БД. Если служба автообновлений ещё не установлена, её нужно настроить отдельно.
Обновление и резервные копии · Telegram Stars · AmneziaWG · Amnezia Web Panel
Нашли ошибку? Сообщите через багрепорт.
v6.6.1-lts
🛠 Improvements
- Dynamic version and menu cleanup (
ff4e9c1) @ivan-nginx - Bump project version to 6.6.1 (
7d21961) @ivan-nginx
Full Changelog: v6.6.0-lts...v6.6.1-lts
6.9.1 — чеки CloudPayments, управление ботом и Aurora
6.9.1 — чеки CloudPayments, управление ботом и доработки Aurora
В Aurora добавлены недостающие разделы и действия с подписками. Исправлены массовые операции с тикетами, обработка повторных платёжных уведомлений и ошибки при замене триала. Добавлены чеки CloudPayments, оплата по ссылке из бота и настройки его команд и кнопок. В админке расширено управление webhook Telegram-бота.
CloudPayments и управление ботом
- Добавлена отправка данных чека в CloudPayments для новых платежей, автоплатежей и возвратов через интеграцию. В админке можно включить чеки, выбрать систему налогообложения, НДС, способ и предмет расчёта, задать название позиции.
- Для чеков запрашивается email. Данные чека сохраняются с платёжным соглашением, чтобы последующее изменение настроек не меняло налоговые параметры ранее оформленной подписки.
- Добавлен режим оплаты по ссылке прямо из Telegram-бота, без промежуточной страницы кабинета. Режим включается администратором. Условия автоплатежа показываются в боте и требуют явного согласия; если включены чеки, бот также запрашивает email.
- Повторный запрос создания ссылки использует тот же заказ. При неизвестном результате создания счёта новый заказ автоматически не создаётся.
- В боте можно посмотреть автоплатежи и отменить их с подтверждением. При отмене пробного периода бот предупреждает о прекращении доступа. В админке добавлена отмена автоплатежей выбранного клиента.
- В админке настраиваются видимость, порядок и описания команд в меню Telegram. Скрытая команда исчезает из меню, но её можно вызвать вручную.
- Для кнопок платного пробного доступа и автоплатежей доступны текст, видимость, порядок, оформление и группировка. В тексте пробного предложения поддерживаются подстановки срока и цены.
- Доступность пробного предложения проверяется повторно. Создание неоплаченного счёта не расходует пробный период; использованное предложение больше не показывается. Покупка обычного тарифа сама по себе не считается использованием платного триала CloudPayments.
- Уточнено сообщение при попытке удалить клиента с историей CloudPayments: сначала нужно отменить автоплатежи; история платежей сохраняется.
Для отправки фискальных чеков требуется подключённая CloudKassir. Включение опции не добавляет чеки задним числом и не переносит старые автоплатежи на новые налоговые настройки. Подробности — в инструкции CloudPayments.
Кабинет Aurora
- Подключён собственный главный экран Aurora: список подписок, срок действия, трафик, устройства, подключение, копирование ссылки и QR-код.
- Добавлены продление, переименование, автосписание с баланса, перевыпуск ссылки и удаление дополнительных устройств.
- В оформлении Aurora доступны подарки, дополнительные опции, прокси, Sing-box/AmneziaWG, конструктор тарифа, помощь, подключение, история операций и вывод реферальных средств.
- В профиле доступны привязка Telegram и email, двухфакторная защита, язык, устройства и платежи. Привязка email учитывает режим работы без SMTP.
- Добавлен выбор доступных триалов. При покупке понятнее показывается, какая пробная подписка будет заменена.
- В тарифах доступны дополнительные устройства, покупка второй подписки и предварительный расчёт скидки по промокоду.
- Исправлены поля ввода в поддержке и промокодах, фокус при вводе, вложенные окна и навигация по профилю. Добавлена отдельная иконка рулетки.
- Расширены русские и английские переводы.
Оплата и подписки
- Повторные одновременные уведомления ЮKassa, CryptoPay, LAVA, Lava.top и RollyPay больше не должны повторно зачислять один и тот же платёж. Для пополнений смена статуса и зачисление выполняются в одной транзакции.
- В общем обработчике оплаты покупка через конструктор тарифа отделена от пополнения баланса.
- Возврат платежа на внутренний баланс защищён от одновременного повторного выполнения. Обновление статуса, зачисление и обработка реферальных начислений объединены в транзакцию.
- Уточнены проверки доступного баланса при автопродлении. Добавлена защита от перекрывающихся запусков планировщика в одном процессе.
- Для повторных списаний Lava.top используется постоянный идентификатор уведомления или платежа. Неоднозначные уведомления сохраняются в журнал webhook для разбора, без повторного зачисления или выдачи доступа.
- Создание заявки на вывод средств и списание баланса выполняются вместе. Повторное одобрение или отклонение не возвращает деньги второй раз.
- При замене триала старая подписка сохраняется до создания новой. Ошибка сохранения больше не приводит к удалению уже существующего VPN-профиля клиента.
- При одновременном погашении подарков повторно подбирается свободный индекс подписки.
- Исправлен перевыпуск ссылки у старых аккаунтов без отдельной записи основной подписки.
- Стоимость дополнительных устройств рассчитывается за оставшийся срок, в том числе когда осталось меньше месяца.
- Возврат со страницы платёжной системы больше не считается подтверждением оплаты: при наличии ID открывается экран ожидания результата.
- После успешной оплаты балансом окно оплаты закрывается.
- В Telegram Mini App исправлено открытие платёжных страниц во внешнем браузере. Автообновление PWA не перезагружает страницу возврата с оплаты.
- При недоступности Remnawave кабинет отмечает данные как сохранённые, а не объявляет подписку истёкшей только из-за ошибки запроса.
Тикеты
- Исправлено двойное переключение чекбокса при выборе тикета.
- После массового изменения обновляются и список, и открытая карточка тикета.
- Массовый ответ с включённым автозакрытием корректно обрабатывает JSON и multipart-запросы.
- Ответ без автозакрытия не открывает заново уже закрытые тикеты.
- Повторное закрытие сохраняет прежнюю дату закрытия и срок хранения. Сообщение об операции показывает фактическое число изменений.
Исправляет #256.
Telegram-бот: webhook и очередь
- В настройках различаются активный режим, несохранённые изменения и неподтверждённое состояние процесса.
- Добавлены генерация, показ и копирование секрета webhook, сброс черновика и подстановка адреса текущей панели.
- Проверка статуса показывает время проверки и количество ожидающих обновлений Telegram.
- Очередь можно очистить отдельной кнопкой или при переходе на Long Polling. Операция требует подтверждения внутри панели.
- Очистка учитывает фактический режим процесса бота. Если его нельзя определить, операция останавливается, не удаляя рабочий webhook.
- Ошибка Telegram при очистке возвращается в интерфейс. Флажок очистки сбрасывается после закрытия диалога.
Очистка удаляет ожидающие обновления Telegram; используйте её только если эти события больше не нужно обрабатывать.
Рулетка и письма
- Для ежедневного сброса рулетки часовой пояс по умолчанию —
Europe/Moscow. В админке добавлена кнопка «Москва» и проверка введённого пояса. - Уже сохранённый UTC или другой пояс не меняется автоматически. Для UTC показывается подсказка: сброс в 00:00 UTC соответствует 03:00 МСК.
- Ответы API рулетки запрещают кеширование, чтобы таймер не оставался устаревшим после полуночи.
- Исправлена устаревшая тема письма подтверждения email с незаполненным шаблоном кода.
Обновление
Перед обновлением создайте и скачайте резервную копию. Откройте Настройки → Обновления, проверьте наличие версии 6.9.1 и запустите обновление. Дождитесь сообщения об успешной установке, затем проверьте номер версии, вход в кабинет, подписки и /start в боте. Подробный порядок — в инструкции.
В этой версии добавлена миграция 20261101120000_cloudpayments_receipts: необязательное поле с данными чека в соглашениях CloudPayments. Штатное обновление применяет её автоматически; существующие соглашения сохраняются. Если установлена более ранняя версия, также применяются миграции предыдущих выпусков.
Проверены сборки API, бота и frontend, регрессионные тесты платежей и подписок, массовые операции тикетов на отдельной PostgreSQL и интерфейсы на мобильной и настольной ширине. Реальные списания у платёжных провайдеров не проводились.
Изменения: #257, #258, #259, #260, #261 и исправления по итогам проверки.
6.9.0 — кабинет, админка, Mini App и CloudPayments
6.9.0 — кабинет, админка, Mini App и CloudPayments
Обновлены клиентский кабинет и админка. Новый кабинет доступен на сайте и в Telegram Mini App. Администратор может настроить его оформление и опубликовать изменения из редактора.
Клиентский кабинет
- Новая навигация: на компьютере меню сворачивается в иконки и раскрывается при наведении, на телефоне открывается кнопкой меню.
- Более компактные карточки подписок. В них собраны срок действия, трафик, устройства, продление, подключение, копирование ссылки и QR-код.
- Подпискам можно задавать собственные названия.
- Обновлены тарифы и оформление покупки. При смене срока цена меняется плавно.
- Переработаны баланс и история операций, профиль, рефералы и подарки. История доступна отдельным разделом.
- Обновлены список обращений, переписка с поддержкой и окно чата. Исправлены отступы, поля ввода и расположение кнопок.
- Приведены к общему виду вход, регистрация, восстановление пароля и первоначальная настройка аккаунта.
- Добавлены вход и регистрация через Telegram: переход в бота, ожидание подтверждения, отмена и повторный запуск после истечения ссылки. Сохраняются проверки блокировки аккаунта и двухфакторной защиты.
- Способ оплаты ЮKassa подписан «Карта/СБП (Юкасса)».
- Светлый, тёмный и системный режимы и цветовой акцент задаёт администратор. Старые личные настройки клиента больше не переопределяют оформление сервиса.
- Исправлены мобильная компоновка, выравнивание иконок с текстом и открытие настроек. Ошибка загрузки подписки отделена от состояния «подписок нет».
Telegram Mini App
- В настройках оформления появился вариант «Новый кабинет». Он использует тот же интерфейс и опубликованное оформление, что и обновлённый веб-кабинет.
- Сохранены варианты Stealth и Aurora. Выбранный вариант можно отдельно включить для обычного браузера.
- Старое значение Classic остаётся совместимым с обновлённым стандартным кабинетом. Обновление не сбрасывает выбранный администратором вариант.
Админка
- Новый интерфейс в стиле клиентского кабинета: боковое меню, заголовки, таблицы, формы и мобильная навигация.
- Прежнее оформление доступно в выборе темы как Old classic.
- Страницы загружаются по мере открытия. Сокращены лишние перерисовки и работа скрытых элементов.
- Браузерные подтверждения и запросы ввода заменены окнами внутри панели.
- Исправлены съехавшие кнопки и вкладки, расположение списков активности клиентов, текстов бота и email-шаблонов.
- Исправлены фон заголовков в настройках, недостающие иконки и окно глобального поиска.
- Поиск открывается по ⌘K на Mac и Ctrl+K на Windows/Linux. Подсказка учитывает устройство; сочетание работает и при русской раскладке.
Редактор оформления кабинета
- Шесть готовых пресетов, настройка цветов, шрифтов, размеров, отступов, скруглений, кнопок и карточек.
- Предпросмотр для компьютера и телефона, проверка контраста, импорт и экспорт настроек.
- Черновик сохраняется отдельно от опубликованного оформления. Изменения появляются у клиентов после публикации.
- История последних 12 публикаций с восстановлением предыдущего варианта через черновик.
- Защита от перезаписи изменений другого администратора. Публичный API не раскрывает черновики.
- Редактор доступен администратору. Он меняет оформление готовых компонентов; свободной перестановки и создания страниц в этой версии нет.
Telegram-бот
-
В главном меню появилась кнопка «Продлить подписку». Название, порядок и видимость настраиваются в админке. Если продлевать нечего, кнопка скрыта. (#250)
-
Одна подходящая подписка сразу открывает продление; несколько — выбор подписки. Истёкшие подписки остаются доступными для продления.
-
При отключённых мультиподписках бот больше не предлагает купить дополнительную подписку. Исправление применяется к тарифам с одним и несколькими сроками. (#249)
-
При продлении сохраняется ID выбранной подписки, проверка кулдауна и выбор сохранения или удаления дополнительных устройств.
-
При одной доступной подписке кнопка подключения сразу открывает её страницу. Истёкший триал больше не создаёт лишний экран выбора. При нескольких действующих подписках выбор сохраняется.
-
В настройках бота добавлено переключение между Long Polling и Webhook со статусом Telegram и процесса бота. Переключение сохраняет очередь сообщений. (#248)
-
Главному меню бота требуется меньше запросов к API: профиль, подписки и триалы загружаются вместе. Подписки запрашиваются параллельно; загруженные изображения кратковременно переиспользуются по Telegram file_id.
-
Запросы webhook проверяются по секрету. Ошибки доставки не маскируются успешным ответом; повторные доставки объединяются в работающем процессе. Порядок событий одного пользователя сохраняется.
Обновление интерфейса без ручной перезагрузки
- На безопасных страницах предложение обновления запускает отсчёт после 7 секунд бездействия. Перед перезагрузкой остаётся ещё 5 секунд. (#247)
- Незавершённый ввод, открытое окно, оформление оплаты и страницы настроек блокируют автоматическую перезагрузку. Проверка учитывает React-поля, чекбоксы, списки и текстовые редакторы даже после потери фокуса.
- При ручном обновлении с изменённой формой панель запрашивает подтверждение. Обновление можно отложить на 10 минут.
- Исправлено зависание обновления в WebView, когда браузер не сообщает о смене Service Worker.
CloudPayments
- Оплата картой в кабинете, Mini App и боте; отдельное согласие на регулярные списания для VPN-тарифов.
- Настраиваемый платный триал: первый платёж, число дней, тариф после триала и льготный срок при отказе карты. (#251)
- Автоматическое изменение суммы при смене цены тарифа и покупке дополнительных устройств. Доплата за устройство рассчитывается за оставшийся срок.
- Отмена через профиль и CloudPayments. Пробный доступ прекращается после отмены; обычный оплаченный срок сохраняется.
- Проверка подписей уведомлений, защита от повторного зачисления и выдачи, очередь обработки с восстановлением после сбоев VPN-сервера.
- Возврат на карту из админки, учёт полных и частичных возвратов, отмена денежных реферальных начислений. Выданный доступ после возврата проверяется отдельно.
- Настройки подключения и состояние обработки в админке. CloudPayments выключен по умолчанию; перед рабочими списаниями нужен тест своего терминала по инструкции.
Обновление
Перед обновлением создайте и скачайте резервную копию. Обновляйте API, бот и frontend вместе по инструкции. В релиз входят миграции для пользовательского названия подписки и учёта CloudPayments; существующие записи не удаляются. Перенос клиентов в другую базу не требуется.
После обновления проверьте вход, загрузку подписок, настройки оформления и меню бота. При подключении CloudPayments отдельно проверьте тестовую оплату, автосписание и отмену. Реальный эквайринг без реквизитов терминала не проверялся.
Webhook выключен по умолчанию. Порядок подключения и проверки — в инструкции.
6.8.2 — bug fix
Исправления автообновления и Mini App, улучшения бэкапов и тикетов.
- Автоапдейт поддерживает установку с Git-тега и сохраняет штатный конфиг Nginx с вашим доменом. Разовое восстановление продолжает работать после закрытия SSH.
- Бэкапы: сроки хранения в минутах, часах и днях, удаление отдельных и всех готовых копий. Текущие операции и посторонние файлы защищены от очистки.
- Тикеты: массовые ответы, открытие и закрытие, удаление и автоматическая очистка закрытых обращений. Исправлены удаление переоткрытых тикетов и общих вложений.
- Mini App: обновление интерфейса с подтверждением внутри приложения и защитой несохранённого ввода.
Как обновиться: скачайте свежий бэкап в разделе «Бэкапы», затем откройте «Настройки → Обновления», выберите новые релизы, сохраните настройки и нажмите «Проверить обновления» → «Обновить сейчас». Дождитесь сообщения «Обновление установлено» и проверьте версию 6.8.2.
Если на 6.8.0/6.8.1 кнопка уже заблокирована: нужен один запуск восстановления через SSH. Пошаговая инструкция с готовой командой. Обычная перезагрузка страницы старый обновлятор не исправит.
Инструкции: обновление, бэкапы, тикеты, отчёт по автоапдейтам.
Обновление содержит миграцию базы. Ветка LTS не изменялась ( мы ее кстати потом вырежем. Ваня, если смотришь - привет)
6.8.1
v6.6.0-lts
⭐ Features
- Add checkout functionality and improve menu (
54a9e24) @ivan-nginx - Enable continuous loop in interactive menu (#182) @ivan-nginx
🐞 Bug Fixes
- Improve clean logic (
8d0a984) @ivan-nginx
🛠 Improvements
- Bump
versionto 6.6.0 (dd29084) @ivan-nginx
Full Changelog: v6.5.1-lts...v6.6.0-lts
v6.5.1-lts
📖 Documentation
- Update documentation and installer text (
cddb760) @ivan-nginx - Add contributors and star history to READMEs (#178, #179) @ivan-nginx
🛠 Improvements
- Update top-up presets to include 150 (#181) @ivan-nginx
- Add workspace configuration (#177) @ivan-nginx
- Use
orderIdfor payment lookup (rolling back #166) (#180) @ivan-nginx
Full Changelog: v6.5.0-lts...v6.5.1-lts