Files
2026-10-10 14:58:04 +03:00

85 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Передача 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`.