Files

85 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

2026-10-10 14:58:04 +03:00
# Передача 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`:
```powershell
$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`.