Releases: STEALTHNET-APP/STEALTHNET-SOFTWARE
Release list
STEALTHNET v0.2.6
Русский
Страница подписки и её настройки
- В пустых полях настроек подписки предложены стартовые тексты: название сервиса, Announce и пояснения для шести состояний доступа. Поддержка подставляется только из сохранённых контактов проекта; при отсутствии контакта показан пример.
- Тексты подготовлены на русском и английском и применяются после «Сохранить изменения». Значения владельца сохраняются; намеренно очищенные после сохранения поля не заполняются заново.
- Для необязательных маршрутов и дополнительных заголовков добавлены пояснения. Вкладки прокручиваются внутри экрана на телефоне.
- Эти изменения относятся к подписке. Устанавливать или обновлять кабинет ради страницы подписки и списка приложений не требуется.
Обновление кабинета рядом с панелью
- При обновлении готовой установки стандартный
sn-cabinetна сервере этой же панели теперь обновляется черезmake updateдо той же сборки. Сохраняются ключ, настройки и предыдущий бинарник. Проверка готовности ждёт запуск службы; при ошибке выполняется откат. - Повтор команды обновляет отставшую сборку кабинета, даже когда версия панели уже актуальна. Отключённая и остановленная служба не включается автоматически. Кабинеты другой панели не затрагиваются.
- В отдельном обновляющем скрипте скрыты временные ошибки подключения при запуске. При окончательном сбое ошибка выводится, предыдущая сборка восстанавливается, команда завершается с ошибкой.
Одинаковые команды на всех серверах
Панель, отдельный кабинет и отдельная подписка получают команды make update, make start, make stop, make restart и make status из каталога /opt/stealthnet-software. Каждая команда действует только на текущем сервере и установленные компоненты. Caddy, PostgreSQL и настройки автозапуска не меняются. Бот без токена не запускается.
Новые установщики добавляют команды автоматически. Для старого отдельного сервиса, у которого ещё нет Makefile, однократное добавление команд описано в инструкции кабинета и инструкции подписки. Ключи при этом сохраняются.
Как обновиться
На сервере панели от root:
cd /opt/stealthnet-software && make update VERSION=v0.2.6Для стандартного кабинета на этом же сервере дополнительная команда не нужна. На отдельном сервере кабинета или подписки, после панели: cd /opt/stealthnet-software && make update. Старые специальные обновляющие скрипты остаются совместимыми.
Перезагрузите панель. В «Настройках подписки» проверьте предложенные тексты и сохраните их. Новых миграций в этом релизе нет; пользовательские данные не перезаписываются.
English
Subscription page and settings
Empty subscription fields now offer editable starter text for the service title, announcement and six access states. Existing project support contacts are suggested; missing contacts show an example only. Russian and English defaults apply after Save changes, preserve operator values, and do not refill fields intentionally cleared after saving. Optional routing and headers have explanatory empty states; mobile tabs scroll within the page.
These changes belong to the subscription service. Updating the customer portal is not required for subscription settings or client app cards.
Commands on every server
The panel, standalone portal, and standalone subscription service support make update, make start, make stop, make restart, and make status from /opt/stealthnet-software. Each command manages only installed STEALTHNET components on that server. Caddy, PostgreSQL, and boot-time enablement remain unchanged. New installers add the commands automatically; older standalone installations have a one-time command setup in the portal and subscription guides.
Portal updates
For release-based installations, make update now also updates a standard same-server portal connected to this panel. Keys and settings are preserved, readiness is checked, and failures restore previous binaries. Repeating the command repairs a stale portal binary even when the panel is already current. Disabled and stopped services remain stopped; portals for other panels are untouched.
The standalone portal updater suppresses temporary startup connection errors and reports final failures with rollback.
Run the panel command above as root. A standard same-server portal needs no extra command. Remote portals and subscription services use cd /opt/stealthnet-software && make update on their own servers after updating the panel. Older component-specific updater scripts remain compatible. Reload the panel and save the proposed subscription text after reviewing it. No new database migrations.
Validation: installer and release checks, workspace tests, real HTTP readiness contract, startup failure/rollback and key-preservation tests, RU/EN desktop and mobile browser checks.
STEALTHNET v0.2.4
Русский
Исправлена выдача бесплатного доступа и добавлены настройки для новых установок.
- Триал и бесплатные тарифы в валюте проекта доступны в кабинете и Mini App даже при выключенных покупках и платёжных модулях. Платные предложения при этом скрыты и недоступны для оформления. Повторная выдача бесплатного периода блокируется.
- Модуль «Вручную» при первом запуске включён для USD, EUR, RUB, UAH, KZT, TRY и GBP. Сохранённые настройки владельца и явно заданный PAY_MANUAL_CURRENCIES не меняются.
- Миграция 048 добавляет 16 карточек приложений для iOS, Android, Windows, macOS и Linux. Существующие ссылки, названия, порядок и отключённые карточки сохраняются; дубликаты не создаются. Для приложений без прямого импорта доступно копирование ссылки.
- Кнопка регистрации есть на витрине и в окне входа, в том числе на телефоне. Если владелец выключил регистрацию, показано понятное объяснение. Чтобы разрешить создание аккаунтов, включите «Регистрация на сайте» в разделе «Кабинет и Mini App» и сохраните настройки.
- Инструкции и интерфейс обновлены на русском и английском. Встроенные шаблоны подписки не менялись.
Обновите панель от root по SSH:
cd /opt/stealthnet-software && make update VERSION=v0.2.4Только для исправлений регистрации и триала в кабинете/Mini App обновите установленный кабинет на его сервере. В v0.2.4 это требуется и при размещении рядом с панелью. К странице подписки и карточкам приложений эта команда не относится:
bash -c 'set -euo pipefail; p=$(sed -n "s/^PANEL_API_URL=//p" /etc/sn-cabinet/env); f=$(mktemp); trap '\''rm -f "$f"'\'' EXIT; curl --proto "=https" --tlsv1.2 -fsS "$p/update-cabinet.sh" -o "$f"; bash "$f"'Перезагрузите страницу. Миграция 048 добавляет только недостающие приложения и совместима с предыдущей версией. Покупки, публикация и регистрация автоматически не включаются.
English
- Free access works in the portal and Mini App with paid purchases and payment providers disabled. Paid plans stay unavailable; free periods cannot be claimed repeatedly.
- Manual payments default to enabled for all seven project currencies on first registration. Existing operator preferences and explicit currency restrictions remain intact.
- Migration 048 adds 16 missing app cards across five platforms, preserving customized and disabled entries without duplicates. Apps without direct import use subscription-link copying.
- Registration is visible on the storefront and sign-in dialog, including mobile. Closed registration has a clear explanation; the owner must enable website registration to allow new accounts.
- Russian and English documentation and UI are updated. Built-in subscription templates are unchanged.
Update the panel to v0.2.4 using the command above. For portal/Mini App registration and trial fixes, run the portal command on its server (including same-server portals in v0.2.4), then reload the page. This portal command is unrelated to the subscription page or client app cards. The additive migration is compatible with previous binaries. Publication, registration and paid purchases are not enabled automatically.
Validation: workspace unit tests, installer/release checks, isolated PostgreSQL checks for free checkout and default data, and RU/EN browser scenarios at 320, 390 and 1280 px.
STEALTHNET v0.2.3
Русский
Исправлен цикл, когда отозванный кабинет мешал сохранить публикацию, а восстановление ключа требовало сначала опубликовать кабинет.
- Кнопка «Восстановить ключ и команду» открывает команду при выключенной публикации. Окно объясняет, что нужно сохранить перед запуском установщика.
- Отзыв ключа атомарно снимает этот сервер с выбора для Mini App. Старая недоступная привязка очищается при сохранении, сохраняя публикацию, тексты и оформление.
- Одновременный отзыв и сохранение не возвращают отозванный сервер в настройки. Другой выбранный сервер сохраняется.
- Восстановленный сервер ожидает нового запроса, прежде чем показываться на связи. Ошибки сохранения отображаются как ошибки.
Обновление: cd /opt/stealthnet-software && make update VERSION=v0.2.3. Затем перезагрузите страницу. Для кабинета с отозванным ключом восстановите команду, включите публикацию и сохраните настройки перед запуском команды. После подключения выберите сервер для Mini App. Миграций базы нет; публикация автоматически не включается.
English
Fixed the cycle where a revoked portal blocked saving publication while key recovery required publication first.
- “Restore key and command” opens the command even when publication is disabled. The dialog explains what to save before running the installer.
- Revocation atomically deselects that Mini App server. Saving clears stale unavailable selections while preserving publication, copy, and branding.
- Concurrent revocation and saving cannot restore a revoked selection. Other selected servers remain unchanged.
- Restored servers wait for a new request before appearing online. Save failures use error feedback.
Update: cd /opt/stealthnet-software && make update VERSION=v0.2.3. Reload the page, restore the revoked key, enable publication and save settings before running the command. Select a Mini App server after connection. No database migrations; publication is not enabled automatically.
STEALTHNET v0.2.2
Русский
Кабинет теперь открывается со стартовыми текстами RU/EN, SEO, цветами и стандартным логотипом. Заполняются пустые поля; свои тексты, ссылки, цвета и переключатели сохраняются. Название берётся из настроек сервиса, картинки — с домена панели. Для запуска включите публикацию и нажмите «Сохранить настройки».
Установщик объясняет HTTP 400 при выключенной публикации и предлагает повторить ту же команду после сохранения. Отказ ключа и неожиданный ответ сервера имеют отдельные подсказки. В панели добавлен переход к публикации, а несохранённая галочка не позволяет получить команду новой установки. Обновлены инструкции на двух языках.
Обновление панели: cd /opt/stealthnet-software && make update VERSION=v0.2.2. Миграций базы нет. Для исправления уже полученного HTTP 400 обновление не обязательно: сохраните публикацию и повторите текущую команду.
English
The customer portal editor now offers starter RU/EN copy, SEO, colors, and a standard logo. Empty fields are filled while custom text, links, colors, and feature switches are preserved. The service name comes from panel settings and images are hosted by the panel. Enable publication and save settings to launch.
The installer now explains HTTP 400 caused by disabled publication and asks the operator to retry the same command after saving. Key rejection and unexpected server responses have separate guidance. The panel links to publication settings and prevents an unsaved checkbox from issuing a new installation command. Both language guides are updated.
Update the panel: cd /opt/stealthnet-software && make update VERSION=v0.2.2. No database migrations. An existing HTTP 400 can be resolved without upgrading: save publication and repeat the current installation command.
STEALTHNET v0.2.1
Русский
Кнопка «Проверить снова» в окне версии теперь действительно проверяет GitHub, обходя 15-минутный серверный кэш. Раньше она сбрасывала только кэш браузера, поэтому опубликованный релиз мог оставаться невидимым.
Повторные нажатия в течение минуты используют свежий результат и показывают понятную подсказку. Автоматическая проверка учитывает оставшееся время кэша, а не продлевает его ещё на 15 минут. При ошибке GitHub интерфейс показывает ошибку проверки, а не прежний успешный статус.
Проверены сценарии появления нового релиза, повторных нажатий, истечения кэша и восстановления после ошибки. Нажатие кнопки проверено в браузере на русском и английском. Версии установочных команд и документации синхронизированы.
Обновление от root по SSH на сервере панели:
cd /opt/stealthnet-software && make update VERSION=v0.2.1После обновления перезагрузите страницу панели. Данные и настройки сохраняются. Изменение не требует обновлять ноды.
English
“Check again” in the version dialog now requests GitHub directly, bypassing the 15-minute server cache. Previously it only cleared the browser cache, which could hide a newly published release.
Repeated clicks within one minute reuse the fresh result with a clear explanation. Automatic checks use the remaining cache lifetime instead of starting another 15-minute delay. A failed GitHub request shows an unavailable status instead of the previous success.
Verified new-release discovery, repeated clicks, cache expiry and recovery after failure. The actual button was checked in the Russian and English browser interfaces. Installer commands and documentation versions are synchronized.
Update as root over SSH on the panel server:
cd /opt/stealthnet-software && make update VERSION=v0.2.1Reload the panel after updating. Data and settings are retained. No node update is required for this fix.
STEALTHNET v0.2.0
Русский
- Selfsteal в профилях: свой домен, девять мини-сайтов, русский и английский языки, настоящий предпросмотр компьютера и телефона. SNI и внутренний адрес сайта заполняются автоматически.
- Агент устанавливает отдельный Caddy, получает сертификат через HTTP-01 и проверяет HTTPS до применения конфигурации. При ошибке подготовки прежний VPN-конфиг сохраняется. Один отдельный профиль и домен на ноду; требуется обычная установка с systemd.
- Команду установки агента теперь можно снова получить из карточки ноды и диагностики. Для ещё не подключённой ноды выпускается новый ключ; у подключённой ноды смена ключа остаётся отдельным явным действием.
- Английские подписи диагностики и прокрутка активной вкладки на телефоне исправлены. Документация обновлена, добавлены ссылки на сайт проекта.
- Исправлена кнопка копирования команды установки кабинета: копируется полная команда с ключом, в том числе при отказе Clipboard API.
Проверено на Debian 13, Ubuntu 24.04 и 26.04 amd64: сайт на HTTPS/443 через REALITY, настоящий VLESS Vision трафик, смена сайта, сохранение рабочего конфига при ошибке сертификата, снятие профиля во время подготовки и последующая очистка. Проверки сертификатов использовали отдельный локальный ACME CA в изолированных VM, без отключения TLS-проверки. ARM64 собирается отдельно; этот прогон VM относится к amd64.
Обновление панели: cd /opt/stealthnet-software && make update. Для Selfsteal обновите также агент ноды командой из панели. База, ключи и пользовательские настройки сохраняются; обновление панели создаёт резервную копию.
English
- Profile-managed Selfsteal: your own domain, nine mini-sites, English/Russian content and actual desktop/phone previews. SNI and the local website target are filled automatically.
- The native node agent manages a dedicated Caddy service, obtains an HTTP-01 certificate and verifies HTTPS before applying a configuration. Certificate preparation failures retain the running VPN configuration. Each node needs a separate profile and domain; native systemd installation is required.
- Retrieve a lost agent installation command from the node card or diagnostics. Never-connected nodes receive a replacement enrollment key; changing an already-connected node's key remains an explicit separate action.
- English diagnostic labels, active mobile tab visibility and public documentation have been updated, with links to the project website.
- Fixed the customer portal installation copy button. The full command, including its key, is copied, with a working fallback when Clipboard API access is denied.
Verified on Debian 13, Ubuntu 24.04 and 26.04 amd64: HTTPS website on port 443 through REALITY, real VLESS Vision traffic, website changes, preservation on certificate failure, immediate profile removal during preparation and subsequent cleanup. Certificate tests used an isolated local ACME CA in disposable VMs with TLS verification enabled. ARM64 is built separately; the VM matrix covers amd64.
Update the panel: cd /opt/stealthnet-software && make update. Also update the node agent using the panel's command before enabling Selfsteal. Databases, keys and user configuration are retained; panel updates create a backup.
STEALTHNET v0.1.9
Русский
- Установщик предлагает размещение подписки на сервере панели или отдельно. Для отдельного размещения он сохраняет домен для ссылок, не запускает локальный
sn-subи не ожидает DNS/HTTPS второго сервера. - Поля доменов и валюты получили примеры, пояснения и повторный ввод при ошибке. Старые установки сохраняют прежнюю схему размещения при обновлении.
- Страница подключения переведена на русский и английский: переключатель RU/EN, выбор по языку браузера, сохранение ручного выбора, статусы, помощь, темы и сообщения копирования.
- Ссылки клиентов стали короче:
https://sub.example.com/ID. Панель, QR-коды, бот, кабинет и Mini App используют этот формат. Старые/s/IDпродолжают работать без перенаправлений и повторного импорта. - В разделе «Кабинет и Mini App» появился заметный блок установки с кнопкой перехода к серверам. Для ранее работавшего, но недоступного сервера показывается проверка подключения вместо предложения переустановки.
Обновление панели: cd /opt/stealthnet-software && make update.
Если подписка на другом сервере: сначала обновите отдельный sn-sub, затем панель, чтобы новые короткие ссылки сразу работали. Команды установки и обновления.
Проверено: сборки и тесты amd64/arm64, установка и обновление в изолированных VM, маршруты старых/новых ссылок, QR и форматы конфигураций, браузерные сценарии RU/EN и мобильная вёрстка. Собственные названия и тексты владельца сервиса не переводятся автоматически.
English
- Guided setup supports local or separate subscription hosting. Remote mode saves the subscription domain without installing a local
sn-subor waiting for the second server's DNS/HTTPS. - Domain and currency fields include examples, explanations and inline retries. Existing installations retain their deployment mode on update.
- The connection page supports Russian and English, including an RU/EN switch, browser language detection, saved manual preference, status messages, help, themes and clipboard feedback.
- Customer URLs now use
https://sub.example.com/IDacross the panel, QR codes, bot, customer portal and Mini App. Existing/s/IDlinks keep working without redirects or re-importing subscriptions. - The customer portal section now clearly shows when installation is needed and opens the server installation tab. Previously connected servers that stop responding show connection troubleshooting instead of reinstallation.
Panel update: cd /opt/stealthnet-software && make update.
Separate subscription server: update sn-sub first, then the panel, so newly generated short links work immediately. Installation and update commands.
Validated with amd64/arm64 builds and tests, isolated VM installation/update checks, old/new URL routes, QR/configuration responses, RU/EN browser interactions and mobile layouts. Custom owner names and messages are preserved as entered.
STEALTHNET v0.1.8
Русский
Установщик теперь предлагает размещение подписки на сервере панели или отдельно. При отдельном размещении он сохраняет будущий домен, не устанавливает локальную службу подписки и не ждёт DNS/HTTPS второго сервера. Для доменов и валюты добавлены примеры, пояснения и повторный ввод при ошибке.
Обновления сохраняют выбранный режим; старые установки без этого параметра продолжают использовать локальную подписку. Проверены установка на Ubuntu 24/26, обновление существующей установки с сохранением данных, вынесенная подписка на Debian 13 и проверки amd64/arm64.
Это предыдущий выпуск. Для новых установок используйте последний стабильный релиз.
English
Guided setup now supports local or separate subscription hosting. Remote mode saves the future subscription domain without installing a local subscription service or waiting for DNS/HTTPS on the second server. Domain and currency fields include examples, explanations and retries.
Updates preserve the selected mode; legacy installations retain local subscription hosting. Validated with Ubuntu 24/26 installation, an existing installation upgrade with data preservation, a separate subscription service on Debian 13, and amd64/arm64 checks.
This is a previous release. Use the latest stable release for new installations.
STEALTHNET v0.1.7
Русский
Исправлена потеря оформления панели после новой установки: правило Caddy /app* перехватывало /app.css и возвращало HTML заглушки Mini App. В v0.1.7 правило ограничено путями /app и /app/*.
- Обновление исправляет старое правило в конфигурации, созданной установщиком, после резервного копирования; остальные настройки и сайты Caddy сохраняются.
- Установка, обновление и диагностика проверяют содержимое и MIME-типы основного CSS и JavaScript вместе с API и HTTPS.
- На странице входа отображается версия работающего API; убрана фиксированная надпись
v0.1.0 · стенд. - Вместо общего
URLErrorустановщик объясняет ошибку DNS, соединения, сертификата или HTTP и показывает команды диагностики. - Обновлены инструкции RU/EN. Добавлены проверки на настоящем Caddy для новой установки и исправления старого конфига.
Обновление от root:
cd /opt/stealthnet-software && make update VERSION=v0.1.7После обновления перезагрузите панель через Ctrl+F5 (macOS: Cmd+Shift+R). Переустановка и сброс базы не нужны. Для собственного reverse proxy примените точное сопоставление /app и /app/* самостоятельно; такой конфиг установщик не меняет.
English
Fixes missing panel styling after a fresh installation: Caddy's /app* rule intercepted /app.css and returned the Mini App placeholder HTML. The rule now matches only /app and /app/*.
- Updates repair the legacy installer-managed route after backup, preserving other Caddy settings and sites.
- Installation, updates and diagnostics verify the main stylesheet and JavaScript MIME types and contents alongside API and HTTPS checks.
- The login page displays the running API version and removes the fixed
v0.1.0staging label. - Installer errors explain DNS, connection, certificate and HTTP failures and include diagnostic commands.
- RU/EN instructions and real Caddy tests cover both fresh setup and legacy configuration repair.
Update as root:
cd /opt/stealthnet-software && make update VERSION=v0.1.7Reload with Ctrl+F5 (macOS: Cmd+Shift+R) afterwards. No reinstall or database reset is required. Custom reverse proxies need the exact /app and /app/* matchers configured separately; the installer leaves them unchanged.
STEALTHNET v0.1.6
Русский
-
Исправлена ошибка «Нет терминала» при установке в обычной SSH-сессии. Мастер и восстановление пароля используют режим ввода, совместимый с терминалами;
install.jsonдля интерактивной установки не нужен. -
Можно подключить ноду с вариантом «Без профиля», даже если в панели ещё нет профилей.
-
В окне смены профиля можно снять назначение. После синхронизации агент закрывает прежние VPN-подключения и остаётся на связи для тестов.
-
Исправлен API:
profile_id: nullснимает профиль, отсутствие поля сохраняет назначение. Привязки инбаундов очищаются в одной транзакции. -
Снятие или смена профиля тестовой ноды завершает её текущую проверку; тестовый профиль сохраняется. Исправлена конкуренция между завершением теста и сменой назначения.
-
Установщик принимает ноду без профиля и ждёт подтверждения запуска служебной конфигурации Xray. Обновление агента, управление движком и плагины доступны и без профиля.
-
Обновлены интерфейс и инструкции на русском и английском.
Проверено на отдельном Linux-агенте с Xray 26.9.9: создание свободной ноды, назначение профиля, реальная передача данных через REALITY, снятие профиля с закрытием старого порта, запуск и завершение тестов, возврат рабочего подключения. Добавлены регрессионные проверки API и установщика. Миграций базы нет.
Обновление: make update. Новые установки по умолчанию получают последний опубликованный стабильный релиз.
English
-
Fixed “No terminal” during normal SSH installation. Setup and password recovery now use terminal-compatible input; interactive setup does not require an
install.jsonfile. -
Connect a node using “No profile”, including when the panel has no profiles yet.
-
Remove an assignment from the profile selector. After synchronization, the agent closes previous VPN connections and stays online for testing.
-
Fixed the API:
profile_id: nullclears the assignment; omitting the field preserves it. Inbound bindings are cleared in the same transaction. -
Removing or replacing a test node’s profile finishes its current rehearsal and retains the candidate profile. Concurrent trial completion and reassignment use consistent locking.
-
The installer accepts unassigned nodes and waits for confirmation that Xray’s service-only configuration is running. Agent updates, engine controls and plugins remain available without a profile.
-
Updated Russian and English UI and documentation.
Verified with an isolated Linux agent running Xray 26.9.9: unassigned setup, profile assignment, real REALITY data transfer, detachment and old listener closure, rehearsal lifecycle, and restoration of the original connection. Added API and installer regression checks. No database migrations.
Update: make update. Fresh installations default to the latest published stable release.
Terminal regression tests cover a real controlling PTY, redirected stdin, hidden passwords, and a genuinely absent terminal.