Files
SbLauncher/HANDOFF.md
T
2026-10-10 14:58:04 +03:00

6.7 KiB
Raw Blame History

Передача SbLauncher коллеге

Первый запуск

  1. Передайте SbLauncher-v0.1.2-win-x64.zip и файл .zip.sha256 либо ссылку на релиз. Если репозиторий закрыт, для скачивания по ссылке нужен доступ к нему; сам ZIP можно передать напрямую.
  2. Коллега распаковывает ZIP в постоянную папку, например C:\Tools\SbLauncher. Windows 10/11 x64 и .NET Framework 4.x обязательны. Устанавливать Visual Studio, собирать исходники или копировать примеры конфигурации не нужно: bin\sb.exe, doc\doc.srs и базовые серверы уже входят в архив. В комплекте используется sing-box 1.12.19, windows/amd64.
  3. Запускает SbLauncher.exe и подтверждает запрос администратора, необходимый для TUN и сетевых маршрутов.
  4. На вкладке «Настройки» вводит свой приватный ключ WireGuard и свой локальный IP в формате CIDR, например 10.10.0.2/24. Эти данные должны быть выданы и зарегистрированы для него на сервере WireGuard. В режиме direct вместо WireGuard выбирает свой сетевой адаптер.
  5. Выбирает базовый сервер и подключается. Дополнительные личные серверы добавляет через поле импорта. При ошибке смотрит сообщение на вкладке «Лог».

Лаунчер автоматически сохраняет введённые настройки. Ваш приватный ключ, локальный IP, сетевой адаптер и личные серверы в архив не попадают.

Как устроены файлы

Файл Содержимое При обновлении
profiles.base.json Базовые серверы для всех и общие параметры WireGuard-сервера Заменяется версией из релиза
profiles.json Только личные серверы пользователя и список скрытых базовых серверов Сохраняется
local.json Приватный ключ, локальный IP WireGuard, адаптер, тема и выбранный сервер Сохраняется
profiles.legacy-backup.json Резервная копия старого списка при переходе с v0.1.1 Сохраняется, в релиз не входит
templates/*.json Общие правила подключения Обновляются из релиза
run/config.json Сгенерированный конфиг sing-box Создаётся при подключении

Базовые и личные серверы отображаются вместе. Добавление личного сервера не меняет базовый каталог. Удаление базового сервера скрывает его для этого пользователя, и обновление не возвращает его в список.

При первом запуске поверх v0.1.1 общий список profiles.json автоматически разделяется: совпадающие базовые записи берутся из релиза, личные и изменённые записи сохраняются в личном файле. Перед преобразованием создаётся резервная копия profiles.legacy-backup.json. local.json сохраняет настройки пользователя.

Обновление без потери настроек

  1. Остановите подключение и закройте программу через меню значка в трее.
  2. Для резервной копии сохраните local.json и profiles.json.
  3. Распакуйте новый релиз поверх той же папки, согласившись на замену файлов программы, базового каталога и шаблонов.
  4. Запустите лаунчер и проверьте версию в шапке окна.

ZIP намеренно не содержит local.json, profiles.json и резервную копию старых профилей, поэтому распаковка не заменяет их. Базовые серверы и правила обновятся, а личные серверы, ключ и IP останутся. Если вы редактировали шаблоны вручную, сохраните и сравните их перед заменой.

При установке в новую папку перенесите туда только свои local.json и profiles.json из прежней установки. Не удаляйте старую папку, пока не проверили запуск и сохранённые настройки.

Проверка архива

В PowerShell рядом с ZIP и .sha256:

$archive = '.\SbLauncher-v0.1.2-win-x64.zip'
$expected = ((Get-Content ($archive + '.sha256') -Raw).Trim() -split '\s+')[0]
$actual = (Get-FileHash $archive -Algorithm SHA256).Hash
if ($actual -ine $expected) { throw 'Контрольная сумма ZIP не совпала.' }
'Контрольная сумма совпала.'

Подготовка следующих релизов

Меняйте общий каталог profiles.base.json, сохраняя id уже существующих серверов даже при смене их адресов или ключей. В нём разрешены общие данные доступа и публичные параметры WireGuard-сервера; персональных private_key и local_address в нём быть не должно.

Не копируйте личный profiles.json в релиз и не формируйте из него базовый каталог автоматически: в личном файле могут появиться серверы, которые пользователь не собирался передавать другим. release.ps1 берёт серверы только из явно подготовленного profiles.base.json.