Skip to content

Releases: 3252a8/remnawave-minishop

v3.5.0

27 Jun 19:53

Choose a tag to compare

Changelog 3.4.103.5.0:

Summary

Помимо нескольких пользовательских функций (контроль доступа к регистрации, premium-правила пробного периода, доступ к меню бота, уведомления о сбросе квоты трафика) релиз содержит очень крупный внутренний рефакторинг — типизация контрактов, миграция фронтенда на Svelte 5 runes, декомпозиция god-файлов и пакетирование платёжных провайдеров.

Changelog

  • Добавлен контроль доступа к регистрации (REGISTRATION_INVITE_ONLY_ENABLED): при включении новые публичные регистрации допускаются только по валидной пригласительной ссылке; существующие пользователи продолжают входить через Telegram, Web App, email-код, magic-link и пароль.
  • Добавлены правила premium-доступа в пробном периоде: отдельный лимит premium-трафика (TRIAL_PREMIUM_TRAFFIC_LIMIT_GB) и список premium Internal Squads для trial (TRIAL_PREMIUM_SQUAD_UUIDS), с применением квоты к premium-сквадам.
  • Добавлена возможность выключения меню Telegram-бота (оставляет минимальное количество кнопок и побуждает использовать веб апп).
  • Добавлены уведомления о сбросе квоты трафика для regular- и premium-тарифов — для пользователей, которые потратили (или почти потратили) трафик в предыдущем периоде.
  • Исправления платежей: сохранение статуса успешного платежа, детали неуспешных попыток, отображение единиц entitlement в логах, подавление устаревших уведомлений о сбое оплаты, предотвращение циклов импорта при старте провайдеров.
  • Исправления Admin/Mini App: рендер строк datatable после первой загрузки, корректные surface-токены светлой темы, центрирование спиннера логотипа, уточнены подписи настроек, защита от no-op обновлений стора.
  • Улучшена диагностика install-wizard.

Рефакторинг и инфраструктура

  • Типизированные HTTP-контракты и OpenAPI: pydantic request/response-модели для admin- и webapp-роутов (вместо «свободных» схем), генерация docs/openapi.json и frontend/.../openapi.generated.ts, типизированные path-builders API-клиента, реестр route-contracts и проверки контрактов в CI.
  • Контракты доменных событий: одна pydantic-модель на событие (extra="forbid"), публикация через emit_model, регенерируемый каталог событий.
  • Миграция фронтенда на Svelte 5 runes: все компоненты и сторы переведены на runes, удалён legacy-синтаксис (export let, $:, слоты и динамические компоненты → snippets), runes-only режим закреплён сборкой и линтом, убран datatable runes-bridge.
  • Декомпозиция App.svelte: shell-state стор на runes и вынос десятков runtime/action/helper/view-модулей (boot, resume, auth, activation, telegram, navigation, billing-deeplink и др.), оболочка приложения переведена на TypeScript.
  • Типизация бэкенда (mypy ratchet): handlers, services, payment providers, db, middlewares, config, keyboards и web-плагины; mypy зелёный по всему enforced-скоупу, скоуп расширен в CI.
  • Пакетирование платёжных провайдеров: каждый провайдер — отдельный пакет (yookassa, stripe, wata, paykilla, heleket, platega, lava, severpay, freekassa, pally, cryptopay, cloudpayments, stars), общий link-flow engine + provider descriptor, общая обработка webhook'ов, import-only фасады и conformance-контракты.
  • Декомпозиция god-файлов: разбиты admin-секции, email-шаблоны, tariff-traffic worker, panel API service, subscription lifecycle, admin sync workflow, user start flow, subscription core и billing/auth/asset-роуты.
  • Границы архитектуры: проверки import-границ фасадов и runtime-хабов, отвязка фасадов от runtime-импортов, типизированные settings-views в config, гейты согласованности web-ответов, заморозка публичных поверхностей фасадов тестами.
  • Тесты и QA: реорганизация набора по ответственности, Vitest-coverage, Playwright mock-smoke e2e-гейт, единый dev/QA compose-стенд, контракты webhook/link-flow провайдеров.
  • Инфраструктура и тулинг: нормализация LF-окончаний через .gitattributes, агрегирующие команды качества, выравнивание root-check-скрипта с гейтами CI, contract-checks в CI.
  • Документация: интерактивный API reference на docs-site, how-to рецепты (провайдер/событие/эндпоинт), гайды контрибьютора и агента, обзор архитектуры, security scaffolding.

Зависимости и безопасность

  • Security-фикс (high): @playwright/test поднят с ^1.50.1 до ^1.55.1 (lockfile резолвится в 1.61.1) — закрывает GHSA-7mvr-c777-76hp (Playwright скачивал и устанавливал браузеры без проверки подлинности SSL-сертификата). Открытых Dependabot-алертов: 0.
  • Backend: sqlalchemy[asyncio] 2.0.49 → 2.0.51 (patch), YooKassa SDK 3.10.1 → 3.11.0 (minor); ранее в диапазоне — pydantic-settings 2.14.1 → 2.14.2.
  • Frontend dev-тулинг до актуальных версий: eslint 10.6.0, svelte 5.56.4, vite 8.1.0, svelte-check 4.7.1, typescript-eslint 8.62.0, prettier 3.9.0, eslint-plugin-svelte 3.20.0, svelte-eslint-parser 1.8.0, @tanstack/svelte-query 6.1.35, @internationalized/date 3.12.2, tailwindcss / @tailwindcss/cli / @tailwindcss/vite 4.3.1; применено форматирование prettier 3.9.0.
  • Гигиена lockfile: перегенерирован консистентный frontend/package-lock.json, чтобы npm ci проходил во всех фронтенд-джобах CI.

Notes

  • Новые переменные окружения: REGISTRATION_INVITE_ONLY_ENABLED, TRIAL_PREMIUM_TRAFFIC_LIMIT_GB, TRIAL_PREMIUM_SQUAD_UUIDS; dev/QA-стенд добавляет DEV_POSTGRES_PORT и QA_* переменные. Новых миграций БД нет.

What's Changed

  • chore(deps): bump the pip group across 2 directories with 1 update by @dependabot[bot] in #40
  • Feature/api refactor by @3252a8 in #41
  • Feature/architecture hardening by @3252a8 in #42
  • Feature/architecture refactoring by @3252a8 in #43
  • Feature/provider orchestration unification by @3252a8 in #44
  • Feature/svelte runes by @3252a8 in #45
  • Registration gate, trial premium rules, typed API contracts + large refactor by @3252a8 in #46

Full Changelog: v3.4.10...v3.5.0

v3.4.10

19 Jun 21:36
26385d9

Choose a tag to compare

Changelog 3.4.93.4.10:

Summary

Крупная переработка скрипта установщика и миграции с Remnashop, новый платёжный провайдер Pally и расширение Wata Crypto, ускорение и кэширование гайдов по подписке, небольшие исправления гайдов, перевод админских таблиц на datatables и другие фиксы.

Changelog

  • Расширен установщик (scripts/install.sh): настройка DNS и TLS-сертификатов, профиль обратного прокси eGames, автоопределение учётных данных панели, предзаполнение и локализация шагов миграции, маскирование кредов БД в логах, устойчивость к EOF и сохранение путей загрузки.
  • Переработан импорт из Remnashop (import_legacy.py): перенос настроек тарифов, снимков пользовательских кодов активации, поддержка внешних ключей пользователей и токенов ссылок на подписку, опциональный сброс целевой БД перед импортом, сохранение состояния Telegram, чтение root-owned env, отчёт о завершении и о сопоставленных платёжных провайдерах.
  • Добавлен платёжный провайдер Pally .
  • Расширен платежный провайдер Wata — возможность добавить кнопку оплаты wata crypto.
  • Улучшены гайды по подписке: кэширование конфигурации и разрешённых гайдов, компактный payload, ускорение загрузки, разрешение гайдов для внешних squad’ов, кастомный subpage-конфиг панели и fallback на дефолтный гайд панели.
  • Переведены админские таблицы (бэкапы, платежи, локальные секции) на datatables с реактивной пагинацией; добавлены actionable-подсказки и описания к ошибкам, кэш health-checks и логов, улучшены жесты drag-and-drop сортировки.
  • Добавлена поддержка Cookie-заголовка для запросов к API панели (доступ через eGamesAPI/remnawave-reverse-proxy) и нормализация traffic-стратегий Remnawave.
  • Исправлены платежи и биллинг: сохранение device-метаданных YooKassa и счётчиков устройств для invoice-платежей, использование валюты платежа для провайдеров в меню бота, интеграция HWID top-up.
  • Исправлены уведомления: подавление уведомлений об истечении для замещённых подписок, постановка web-app уведомлений в очередь.
  • Обновлены deploy-примеры (caddy/newt/nginx/no-proxy) и привязки nginx для eGames; синхронизация конфига nginx в работающий контейнер.

Notes

  • Новая переменная окружения PANEL_API_COOKIE (опциональный Cookie-заголовок для API панели).
  • Добавлены настройки TTL кэша гайдов: SUBSCRIPTION_GUIDES_CONFIG_CACHE_TTL_SECONDS, SUBSCRIPTION_GUIDES_RESOLVED_CACHE_TTL_SECONDS, SUBSCRIPTION_GUIDES_PUBLIC_CACHE_TTL_SECONDS (по умолчанию 300с).

What's Changed

  • feat: add Pally payment provider by @3252a8 in #38
  • feat: installer DNS/cert & migration overhaul, Pally/Wata payments, guide caching by @3252a8 in #39

Full Changelog: v3.4.9...v3.4.10

v3.4.9

17 Jun 07:51
a852615

Choose a tag to compare

Changelog 3.4.83.4.9:

Summary

Добавлены платёжные провайдеры Stripe, CloudPayments и LAVA Business, внутренняя plugin/extension API с реестром фич, шина доменных событий с маршрутизацией side-effects через реакции, кастомизация темы webapp и набор улучшений админ-панели, webapp и платёжного финализирования.

Changelog

  • Добавлены платёжные провайдеры Stripe, CloudPayments и LAVA Business, включая поддержку рекуррентных списаний (Stripe/CloudPayments) и общий модуль recurring; провайдеры подключаются через реестр и настраиваются из админ-UI.
  • Усилены продления YooKassa: hardening контролов автопродления, рекуррентный провайдер и общий механизм recurring/success для всех провайдеров.
  • Добавлена внутренняя plugin/extension API: загрузчик и спецификация плагинов, hook-points (worker, queue, migration, locale), встроенные плагины (lknpd, telemetry), реестр feature-entitlement и документация по расширениям.
  • Добавлена in-process шина доменных событий: side-effects маршрутизируются через event reactions, покрыты сценарии жизненного цикла аккаунта и пути начисления периода.
  • Добавлен сервис entitlements и переработана финализация платежей: уведомления откладываются до commit, подтверждение истечения entitlement перед локальным успехом, валидация обновлений expiry в панели, логирование ошибок создания провайдера.
  • Добавлена кастомизация дефолтной темы webapp, мердж темной и светлой темы.
  • Улучшена админ-панель: секции управляются из реестра, диплинки в разделе настройки, назначение тарифов в админском окне пользователя, сохранение черновиков действий по пользователю, группировка контролов продления подписки, ускорение открытия админ панели, загрузка feature-flags при монтировании.
  • Улучшен webapp UX: подбор install-гайдов под конкретную подписку, скрытие карточек квоты для безлимитного трафика, ссылки и подписи статуса сервера.
  • Улучшены email-уведомления: безопасные inline-PNG логотипы, метаданные и favicon, локализация писем.
  • Исправлен учёт приглашений: продление срока действия подписки за приглашение начисляется только один раз (добавлено поле referral_welcome_bonus_claimed_at); рефералы и обработка пользовательских кодов переведены на событийную модель.
  • Обновлены CI/Docker/deploy: actions на Node 24, починка pip-audit, healthcheck без zombie-процессов, curl в runtime-образе, возврат dev-публикации в GitHub Actions, конфигурируемая задержка между страницами при полном сканировании панели, удалён .gitlab-ci.yml.
  • Расширены тесты: Stripe/CloudPayments/LAVA провайдеры, доменные события и event reactions, плагины, entitlements, webhooks платежей, автопродление и темы webapp.

Notes

  • Изменение схемы БД: добавлен столбец users.referral_welcome_bonus_claimed_at, миграции включены.
  • Dockerfile обновлён: force-upgrade certifi после установки (pip-audit игнорирует PYSEC-2024-230 из-за пина aiocryptopay==0.4.8), curl оставлен в runtime-образе для healthcheck.8

What's Changed

  • provider: lava by @3252a8 in #30
  • chore(deps-dev): bump esbuild from 0.28.0 to 0.28.1 in /frontend in the npm_and_yarn group across 1 directory by @dependabot[bot] in #31
  • Feature/cloudpayments by @3252a8 in #33
  • Feature/stripe by @3252a8 in #35
  • New payment providers, plugin/extension API and domain event bus by @3252a8 in #36
  • chore(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #34
  • chore(deps-dev): bump vite from 8.0.12 to 8.0.16 in /frontend in the npm_and_yarn group across 1 directory by @dependabot[bot] in #37

Full Changelog: v3.4.8...v3.4.9

v3.4.8

10 Jun 19:41
c459cab

Choose a tag to compare

Changelog 3.4.73.4.8:

Summary

Изменения после релиза v3.4.7 (v3.4.7..HEAD): новый платёжный провайдер PayKilla, защита бота от флуда обновлений Telegram, shell-мастер установки с миграцией с legacy tg-shop и Remnashop, диагностика конфигурации в админке и большой блок улучшений платежей, тарифов и Mini App.

Changelog

  • Добавлен платёжный провайдер PayKilla: конвертация в поддерживаемые валюты, проверка минимальной суммы платежа, санитизация текста инвойсов, корректная передача валюты тарифа.
  • Улучшена работа платёжных провайдеров: переиспользование незавершённых счетов и ссылок по идентичности провайдера, глобальный таймаут запросов к провайдерам с применением без рестарта, повтор и восстановление соединений провайдеров, статус «pending» в транзакциях (спасибо @BADtochka, 234fc695, 3170b966, 766f2a57, e3f35a46).
  • Добавлена защита Telegram-бота от флуда: ранний guard и лимиты по типам обновлений (сообщения, callback, inline, /start), cooldown для платёжных и trial-callback, отбрасывание не-приватных обновлений, настройки доступны в админке.
  • Добавлен shell-мастер установки (scripts/install.sh) с переносом данных с legacy remnawave-tg-shop, а также импорт с Remnashop: пользователи, коды, настройки платежей, совместимость legacy-кодов приглашений. (! Функционал миграции с remnashop находится в стадии разработки и еще не был тщательно протестирован, делайте бэкапы !)
  • Добавлена диагностика конфигурации в админ-панели: сервис проверки настроек, баннер с проблемами, актуализация алертов Telegram-webhook.
  • Улучшена админ-панель: аудитории рассылок «никогда не подписывался» и «не подключался к VPN» с кешированием счётчиков, отображение активности VPN-подключений и истории trial у пользователя, переопределение лимита HWID-устройств per-user, улучшенная пагинация; исправлен жизненный цикл модального окна пользователя (спасибо @BADtochka, 9adcbf10).
  • Расширен редактор тарифов: настраиваемый порядок периодов и пакетов при покупке, унифицированные строки цен, drag-and-drop сортировка, улучшенная мобильная вёрстка.
  • Улучшен Mini App: счётчик до истечения подписки, стабильная мобильная навигация, хешированные immutable-ассеты со сбросом устаревшего кеша, экран активации trial, применение акцента темы в письмах и deeplink, масштаб логотипа по viewport.
  • Добавлена поддержка пользователей без Telegram (email-only): активация trial и приветственные начисления периода по приглашению, поправлены аватары по email, скрытие форм привязки и логина по email при выключенной авторизации; для начислений по кодам и приглашениям назначается тариф по умолчанию.
  • Улучшены письма: встраивание загруженного логотипа, обновлённые брендированные шаблоны;
  • Добавлен пример docker-compose для локального SMTP на docker-mailserver (спасибо @austnv, bd7361e9).
  • Повышена безопасность: корректное разрешение клиентского IP за цепочкой прокси для webhook-ов и allowlist-ов провайдеров (спасибо @BADtochka, f07031f3, cc74ddec), обновлены зависимости по security-advisories (pyjwt, certifi, aiohttp).
  • Обновлены сборка и деплой: уменьшение churn слоёв Docker-образа, выкладка хешированных ассетов webapp в backend-образ, GitLab CI для dev-образов, фикс regex маршрутов в nginx;
  • Телеметрия дополнена признаком официальной/кастомной сборки образа (для анонимной статистики).

Notes

  • Есть изменения схемы БД — миграции включены и применяются автоматически.
  • Новые настройки окружения: блок TELEGRAM_ANTIFLOOD_* и cooldown-настройки, PAYMENT_REQUEST_TIMEOUT_SECONDS, таймауты PANEL_API_*, настройки импорта MIGRATION_REMNASHOP_*, TRIAL_WITHOUT_TELEGRAM_ENABLED, DISPOSABLE_EMAIL_DOMAINS.
  • Значение по умолчанию TRUSTED_PROXIES расширено приватными диапазонами (Docker/LAN/Kubernetes) — проверьте, что это соответствует вашей топологии.
  • Контрибьюторы: @BADtochka (платежи, безопасность прокси, фиксы админки — 24 коммита), @austnv (пример docker-mailserver — bd7361e9, c733d830).

What's Changed

  • remnashop migration feature, install wizard by @3252a8 in #23
  • chore(deps): bump the pip group across 2 directories with 1 update by @dependabot[bot] in #25
  • Добавлена поддержка локального SMTP-сервера на базе Docker Mailserver by @austnv in #26
  • Документация платёжек и замена домена Freekassa by @BADtochka in #27
  • feat: harden Telegram bot anti-flood handling by @3252a8 in #28
  • PayKilla provider, Telegram anti-flood, install wizard and Remnashop migration (test) by @3252a8 in #29

New Contributors

Full Changelog: v3.4.7...v3.4.8

v3.4.7

01 Jun 19:57
9393962

Choose a tag to compare

Changelog 3.4.63.4.7:

Summary

Мультивалютные тарифы с фильтрацией провайдеров по валюте (если хотите принимать оплату не в рублях), безопасный dry-run режим записи в Remnawave Panel (дле dev и тестов перед миграцией), анонимная opt-out телеметрия установок, улучшение интерфейса управления пользователями в админке, а также набор фиксов каналов, deeplink-шлюза, top-up трафика и локализации писем.

Changelog

  • Добавлены мультивалютные тарифы: JSON-каталог поддерживает default_currency (usd, eur, usdt и др.) с generic-полями цен и пакетов, legacy *_rub-поля остаются алиасами. Платёжные методы фильтруются по поддерживаемым провайдером валютам, а раздел Система → Тарифы показывает матрицу «метод/сервис/доступность» для текущей валюты.
  • Добавлен dry-run режим записи в Remnawave Panel: PANEL_WRITE_MODE=dry_run/auto и APP_RUNTIME_MODE позволяют читать живую панель, но только валидировать и логировать мутации пользователей ([PANEL DRY-RUN OK] would PATCH ...); секреты и ID редактируются из логов dry-run.
  • Добавлена анонимная opt-out телеметрия установок: раз в сутки worker шлёт обезличенный heartbeat (версия, OS/arch, Python, язык, включённые провайдеры, диапазон числа пользователей) в формате PostHog; выключается через TELEMETRY_ENABLED или тоггл Admin → System без перезапуска.
  • Расширено управление пользователями в админке: фильтры, сортируемые колонки, метрики списка пользователей, отображение реферальных связей в карточках и модальное окно деталей пользователя (UserDetailModal).
  • Добавлен сброс права на триал из веб-админки без удаления истории пользователя (новая отметка trial_eligibility_reset_at, миграция 0033).
  • Добавлена цель рассылки «истёкшие подписки» (expired subscription broadcast target).
  • Добавлен выбор языка на экране входа и восстановлен селектор языка в мобильной админке.
  • Добавлен аудит исходящих уведомлений пользователям (message_audit) — фиксация фактических отправок ботом.
  • Обновлены письма: локализация support-шаблонов, рендер email-превью из шаблонов, demo-секция превью в документации и отвязка генерации превью от зависимостей бота.
  • Исправлены платежи и трафик: согласованы потоки top-up трафика и unlimited-оверрайды; запуск миграций после восстановления БД; восстановлены экраны ввода email-кода (pending email code).
  • Исправлены проверки обязательного канала: нормализация REQUIRED_CHANNEL_ID (приведение к -100…) и устойчивое распознавание ошибок доступа к каналу.
  • Исправлен UX мобильного клиента: deeplink-шлюз остаётся открытым во время prompt запуска приложения; увеличена кнопка продления.
  • Обновлён CI: dev-образы тегируются только как dev (убраны per-commit теги dev-<sha>).
  • Расширены тесты: мультивалютные тарифы, телеметрия, dry-run панели, метрики/гранты/сброс триала в админке, аудит сообщений, нормализация канала, реестр платёжных провайдеров.

Notes

  • Есть изменение схемы БД: миграция 0033_add_trial_eligibility_reset_marker (колонка users.trial_eligibility_reset_at), применяется автоматически.
  • Новые переменные окружения: TELEMETRY_ENABLED, TELEMETRY_ENDPOINT, TELEMETRY_API_KEY, TELEMETRY_INTERVAL_HOURS; APP_RUNTIME_MODE, PANEL_WRITE_MODE, PANEL_DRY_RUN_VALIDATE_REMOTE, PANEL_DRY_RUN_SYNTHETIC_CREATE. Для кастомных валют у Heleket/Platega/SeverPay держите в актуальном состоянии *_SUPPORTED_CURRENCIES.
  • Телеметрия включена по умолчанию (opt-out): отключается TELEMETRY_ENABLED=False, пустым endpoint/ключом или тогглом в админке. Персональные данные и секреты не отправляются.

What's Changed

  • Feature/multicurrency by @3252a8 in #18
  • Feature/telemetry by @3252a8 in #19
  • Enhance admin users and subscription workflows by @3252a8 in #20
  • Improve admin UX, trial reset behavior, and channel subscription checks by @3252a8 in #21
  • Multicurrency (future-proof feature), panel dry-run mode (dev feature), install telemetry and admin user tools by @3252a8 in #22

Full Changelog: v3.4.6...v3.4.7

v3.4.6

30 May 21:36
3e1f1cb

Choose a tag to compare

Changelog 3.4.53.4.6:

Summary

Статистика подписок разбита по типу доступа (активные / платные / пробные / бесплатные), добавлены GitHub Actions для сборки образов, PR-проверок и сканирования безопасности, исправлены probe-уведомления Telegram и маршрутизация demo-страницы документации.

Changelog

  • Разбита статистика подписок по типу доступа: добавлены отдельные счётчики «с активной подпиской», «с платной», «с пробной» и «с бесплатной подпиской»; неактивные считаются как пользователи без активной подписки. Логика классификации (provider + статус панели) реализована в user_dal через подзапрос с агрегацией по пользователю.
  • Обновлены админская и inline-статистика под новую разбивку: новые строки и иконки в текстовом отчёте, передача active/free в inline-режим, описание inline-карточки теперь показывает число пользователей с подпиской.
  • Переработана карточка статистики в Admin Panel: основной показатель — активные пользователи с долей от общего числа в бейдже, в подвале раздельно платные · бесплатные · пробные; обновлены подписи карточек.
  • Исправлены probe-уведомления Telegram: проверка доступности чата теперь делается через get_chat вместо отправки служебного сообщения, поэтому пользователи больше не получают пробные сообщения; удалён код кнопки и текста probe.
  • Исправлена маршрутизация demo-runtime в документации: runtime собирается в app/index.html вместо app.html, обновлены Cloudflare Pages rewrites и материализация маршрутов — устранён цикл редиректов между extensionless и .html.
  • Добавлены GitHub Actions: переиспользуемый workflow сборки и публикации Docker-образов, dev- и release-сборки образов, PR-проверки (CI), security-сканирование (Trivy) и dependency review.
  • Обновлены EN/RU локали под новую разбивку статистики и обновлён mock API demo (полный набор полей статистики пользователей).
  • Расширены тесты для user_dal (разбивка подписок) и Telegram-уведомлений; обновлён dev-зависимость svelte.

Notes

  • Схема БД не меняется; новые env-переменные не добавлены.
  • Для CI/CD появились новые GitHub Actions workflow — потребуются стандартные права на пакеты/registry в репозитории.

What's Changed

  • ci: add GitHub Actions for image builds, PR checks and security scans by @3252a8 in #13
  • chore(deps-dev): bump svelte from 5.55.5 to 5.56.0 in /frontend in the npm_and_yarn group across 1 directory by @dependabot[bot] in #14
  • Split subscription stats by access type, CI/CD pipelines and notification/docs-demo fixesDev by @3252a8 in #15

New Contributors

Full Changelog: v3.4.5...v3.4.6

v3.4.5

30 May 19:29
1a66d67

Choose a tag to compare

Changelog 3.4.43.4.5:

Summary

Что вошло в ветку dev после релиза v3.4.4 (v3.4.4..HEAD, готовится к следующему релизу). Ключевые темы: отслеживание доставки Telegram-уведомлений и приглашение пользователей запустить бота, зеркалирование жизненного цикла подписки через panel webhook с email-дублированием, реферальные бонусы по периодам тарифа, настройки Remnawave panel webhook в админке, блокировка краулеров и заметные улучшения Mini App/Admin UI.

Changelog

  • Добавлено отслеживание статуса Telegram-уведомлений: новые поля статуса/времени проверки в users (миграция 0032), сервис telegram_notifications с состояниями enabled/needs_start/blocked/unknown и баннер в Mini App, предлагающий пользователю запустить бота для получения уведомлений.
  • Добавлено зеркалирование жизненного цикла подписки: новый сервис subscription_lifecycle_notifications дублирует напоминания об истечении/просрочке через panel webhook и параллельно по email; добавлена синхронизация email-уведомлений пользователя (user_email_notifications).
  • Улучшен email-flow продления подписки, расширены email-шаблоны (email_templates), добавлен флаг SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED.
  • Реализованы реферальные бонусы по периодам тарифа: поля referral_bonus_days_inviter / referral_bonus_days_referee в конфиге тарифов с валидацией, расчёт бонусов по периоду и группировка отображения бонусов по тарифам в боте.
  • Вынесены настройки Remnawave panel webhook в Admin → System → Settings и в манифест админ-настроек; уточнены логи panel webhook и подписки, обновлена документация по настройке WEBHOOK_URL (/webhook/panel).
  • Исправлена обработка panel webhook: подписки сохраняются при сбое lookup в панели, устранены deadlock'и в subscription worker, расширено логирование panel_api_service.
  • Добавлена блокировка краулеров и AI-ботов: robots.txt (GPTBot, ClaudeBot, PerplexityBot и др.), заголовки X-Robots-Tag: noindex во всех location nginx, копирование robots.txt в образ frontend.
  • Улучшен Mini App UX: новые UI-контролы (range/color/file input), переработанные scroll-area, обновлённые экраны Devices/Invite/Support/Auth, скрытие сводки трафика для неактивных устройств, показ Telegram-логина без email-авторизации.
  • Улучшена Admin Panel: переработаны карточки пользователей в логах, стандартизированы веб-контролы и редактор тарифов.
  • Исправлены платежи: форматирование лимитов premium-трафика из байтов, доработки YooKassa и shared success/webhooks.
  • Обновлены docs/demo: runtime demo в dev, таблица уведомлений, примеры деплоя и compose.
  • Прочее: заданы дефолтные цены RUB_PRICE_* (200/600/1200/2400), reload locale-overrides по содержимому файла, нормализация line endings фронтенда (.gitattributes).

Notes

  • Изменение схемы БД: миграция 0032_add_telegram_notification_status добавляет 4 столбца в users (включается автоматически).
  • Новые настройки: SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED; в конфиге тарифов — referral_bonus_days_inviter / referral_bonus_days_referee. Дефолты RUB_PRICE_1/3/6/12_MONTH(S) теперь 200/600/1200/2400 (ранее не заданы).
  • Для работы panel webhook нужно задать PANEL_WEBHOOK_SECRET и указать в Remnawave Panel WEBHOOK_URL = WEBHOOK_BASE_URL + /webhook/panel.
  • Dockerfile frontend обновлён: в образ копируется robots.txt.

What's Changed

  • Telegram delivery tracking, subscription lifecycle mirroring and per-tariff referral bonuses by @3252a8 in #12

Full Changelog: v3.4.4...v3.4.5

v3.4.4

28 May 20:03
5892a72

Choose a tag to compare

Changelog 3.4.33.4.4:

Summary

Добавлены бэкапы, интерактивная demo-страница в документации, улучшения Mini App/Admin Panel, фиксы платежей/HWID и локальные уведомления по подпискам.

Changelog

  • Добавлена система бэкапов: ручное создание из админки, worker для архивов, отправка в backup/log chat, восстановление из архива, проверки безопасности ZIP и документация по настройке.
  • Чтобы работал бэкап docker compose папки, нужно смонтировать в backend и worker контейнеры volume: ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:${COMPOSE_RESTORE_MODE:-rw}
  • Обновлены документация и demo-страница приложения: добавлен отдельный demo runtime, fullscreen demo routes, мобильная навигация, mock-сценарии Mini App/Admin Panel/Auth/Devices/Backups и актуализированные страницы docs.
  • Улучшен Mini App UX: компактные карточки трафика и статуса, корректные действия по тарифам, depleted-состояния, activation dialog для forced actions, обновление устройств после billing actions.
  • Улучшены авторизация и локализация: общий экран подтверждения email-кода, Telegram auth в demo flow, сохранение языка аккаунта, сохранение admin view при смене языка, обновление EN/RU переводов.
  • Добавлены default brand assets и fallback favicon/logo для webapp/admin appearance.
  • Улучшена поддержка: сохранение черновиков тикетов, корректные отступы/ширина сообщений и более быстрое завершение ответов.
  • Исправлены платежи и HWID top-up: сериализация дат, idempotency webhook-ов, расчет paid period, edge cases провайдеров и интеграция HWID-платежей через YooKassa.
  • Добавлен локальный worker уведомлений по подпискам: напоминания об истечении, expired-сценарии и уведомления о depleted trial traffic.
  • Обновлены deploy/Docker настройки: оптимизация layer caching, зависимости для backup/restore и compose mounts для бэкапов.
  • Расширены тесты для backup/restore, backup worker, subscription notifications, payment webhooks, HWID top-up, account language и webapp assets.

What's Changed

  • Update and structurize docs by @3252a8 in #5
  • Backups, docs demo, and Mini App improvements by @3252a8 in #7

Full Changelog: v3.4.3...v3.4.4

v3.4.3

26 May 18:58

Choose a tag to compare

Changelog 3.4.23.4.3:

Mini App и инструкции подключения

  • Добавлены встроенные install guides в Mini App: экран /install, публичные ссылки /s/<token>, QR-код, deeplink-кнопки и fallback на обычную ссылку подключения.
  • Добавлена загрузка Subscription Page config из Remnawave Panel, с опциональным JSON override из админки.
  • Обновлены кнопки бота после оплаты/trial/промокода: теперь можно вести пользователя сразу в инструкции подключения.
  • Добавлены webapp preview metadata, title в настройках админки и iOS home screen icons.

Runtime-переводы

  • Добавлен runtime-редактор переводов в админке.
  • Переводы можно переопределять без правки locales/*.json; overrides хранятся в БД и зеркалируются в data/locales-overrides.json.
  • Добавлена группировка ключей переводов по аудитории и разделам.

Платежи

  • Стабилизирован Wata provider: payment links, prepayment webhooks, retry/reuse pending links, refresh статуса, обработка истекших ссылок и корректное сохранение provider transaction id.
  • TTL ссылок Wata переведен на минуты через WATA_LINK_TTL_MINUTES.
  • Исправлены YooKassa webapp payments и HWID device top-ups.
  • Исправлено открытие Telegram Stars invoice внутри Mini App.
  • Добавлен режим admin-only для платежных провайдеров.
  • Из success-сообщений убраны прямые ссылки подключения; вместо этого используются кнопки/инструкции.

Тарифы, trial и HWID

  • Добавлен экран активации trial в Mini App.
  • Улучшены настройки trial и тарифов в админке.
  • Legacy-настройки тарифов отделены от JSON-каталога и помечены предупреждением.
  • HWID top-ups теперь привязаны к сроку активной подписки, поддерживают prorated price и renewal-сценарии.
  • Исправлено сохранение premium squad access и лишняя синхронизация premium squad state.

Админка

  • Добавлен detail view для платежей.
  • Улучшены настройки платежных провайдеров, webhook URL и группировка provider settings.
  • Улучшены настройки тарифов, trial и legacy-параметров.
  • Добавлено удаление Remnawave user вместе с bot account.
  • Обновлены стили админки, webapp layout, custom themes и preview.

Panel sync и профили

  • Убрана inline-синхронизация панели на старте бота; ручной sync теперь ставится в очередь.
  • Добавлены компактные diagnostics для panel sync.
  • Исправлены лишние PATCH-запросы к панели из-за description churn.
  • Исправлена очистка legacy email из panel description и восстановление linked panel email.
  • Добавлен auto-merge duplicate panel identities.
  • Профиль Web App обновляется после activation/payment status.

Deploy и документация

  • Обновлены deploy examples: Caddy, Nginx, Newt/Pangolin и no-proxy.
  • Обновлены README и docs по Web App, install guides, env vars, deployment, tariffs и migration notes.

Важно перед релизом

  • Добавлены миграции БД для runtime locale overrides, install share tokens и HWID validity/payment fields.
  • Для Wata старый WATA_PAYMENT_LINK_TTL_DAYS заменен на WATA_LINK_TTL_MINUTES; дефолт — 15 минут.
  • Install guides включены по умолчанию и пытаются читать Subscription Page config из Remnawave Panel; при ошибке есть fallback на обычную ссылку подключения.

Full Changelog: v3.4.2...v3.4.3

v3.4.2

22 May 19:25
4b7c58a

Choose a tag to compare

Changelog 3.4.13.4.2:

Stabilize account linking, auth, and admin settings by @3252a8 in #1:

Auth / связка аккаунтов

  • Починен вход и привязка Telegram в Mini App и через Telegram OAuth.
  • Исправлены сценарии объединения email-аккаунта и Telegram-аккаунта, включая случай, когда у email-аккаунта активная подписка, а у Telegram-аккаунта подписка уже истекла.
  • При merge аккаунтов теперь корректно синхронизируется identity в Remnawave panel: сначала удаляется лишний panel user, затем обновляется оставшийся.
  • Добавлено лог-уведомление об объединении аккаунтов.
  • Исправлена логика logout в Telegram Mini App: ручной logout больше не ломает повторную авторизацию через initData.

Админка и настройки

  • В настройках платежных провайдеров добавлен вывод webhook URL с возможностью копирования.
  • Улучшена загрузка admin assets через стабильные пути и fallback, чтобы lazy-loaded админка не падала из-за stale hashed assets.
  • Исправлен формат отображения версии приложения в sidebar админки: dev-сборки теперь различимы по branch/sha.
  • Подправлены стили мобильной кнопки админки.

Платежи / panel sync / тарифный worker

  • Исправлено появление pay button при включенном payment provider.
  • Улучшена синхронизация panel identity, чтобы избежать повторных лишних обновлений.
  • Добавлено восстановление missing panel user reference для подписок, если у пользователя уже есть актуальный panel UUID.
  • Если bulk-prefetch подтверждает отсутствие panel user, подписка деактивируется без пользовательских уведомлений.

Full Changelog: v3.4.1...v3.4.2