96 lines
5.2 KiB
Markdown
96 lines
5.2 KiB
Markdown
# sb launcher · glass
|
||
|
||
Лаунчер для sing-box с интерфейсом WPF. Работает в Windows 10/11 x64 с
|
||
.NET Framework 4.x. Поддерживает импорт и выбор серверов, три режима
|
||
подключения (`wg`, `direct`, `wgonly`), проверку конфигурации, запуск и остановку
|
||
sing-box, логи и светлую/тёмную тему.
|
||
|
||
Это отдельный прототип интерфейса; рабочая копия `sb_launcher_rev2` не меняется.
|
||
Приложение запрашивает права администратора для настройки сетевых маршрутов.
|
||
|
||

|
||
|
||
[Тёмная тема](preview/glass-dark.png)
|
||
|
||
## Подготовка
|
||
|
||
Для сборки нужен `csc.exe` из установленного .NET Framework 4.x. `build.cmd`
|
||
использует `%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe`; Visual Studio
|
||
и .NET SDK не требуются.
|
||
|
||
Для подключения дополнительно нужны совместимый исполняемый файл sing-box и
|
||
файл правил. Они хранятся только локально и в репозиторий или релизный архив
|
||
не входят:
|
||
|
||
```text
|
||
bin/sb.exe
|
||
doc/doc.srs
|
||
```
|
||
|
||
Из чистого клона создайте локальные настройки и профили:
|
||
|
||
```powershell
|
||
Copy-Item .\local.example.json .\local.json
|
||
Copy-Item .\profiles.example.json .\profiles.json
|
||
cmd /c build.cmd
|
||
.\SbLauncher.exe
|
||
```
|
||
|
||
Демонстрационные адреса из `profiles.example.json` не подключаются. Добавьте
|
||
свои серверы через импорт или в `profiles.json`, затем укажите приватный ключ
|
||
WireGuard, адрес туннеля и сетевой адаптер на вкладке «Настройки». Секреты в
|
||
`local.json`, а также серверы в `profiles.json` исключены из Git. Не добавляйте
|
||
их в коммиты и релизные архивы.
|
||
|
||
Готовый ZIP из релиза распаковывается аналогично: поместите рядом с лаунчером
|
||
`bin/sb.exe` и `doc/doc.srs`, скопируйте два файла `.example.json` без слова
|
||
`.example` в имени и заполните свои данные. Сборка из исходников для ZIP не нужна.
|
||
|
||
## Сборка и проверки
|
||
|
||
```powershell
|
||
cmd /c build.cmd # SbLauncher.exe
|
||
cmd /c build.cmd importtest # импорт ссылок
|
||
cmd /c build.cmd profiletest # сохранение профилей
|
||
cmd /c build.cmd stress # нагрузка интерфейса
|
||
```
|
||
|
||
`build.cmd selftest` проверяет локальную конфигурацию и может использовать
|
||
текущие профили. `build.cmd deploy "путь"` копирует сборку в явно указанную
|
||
тестовую папку; локальный `local.json` в ней не перезаписывается.
|
||
|
||
## Git и релизы
|
||
|
||
Основная ветка — `main`. Разработку фиксируйте коммитами в Git. Для очередного
|
||
релиза обновите [CHANGELOG.md](CHANGELOG.md), три версии в `Version.cs` и номер
|
||
`assemblyIdentity` в `app.manifest`; используйте формат `MAJOR.MINOR.PATCH`.
|
||
После этого, например для версии `0.1.1`:
|
||
|
||
```powershell
|
||
git status
|
||
git add -A
|
||
git diff --cached --stat
|
||
git commit -m "Release v0.1.1"
|
||
.\release.ps1 -Version 0.1.1
|
||
git tag -a v0.1.1 -m "SbLauncher v0.1.1"
|
||
```
|
||
|
||
Перед коммитом проверьте список добавленных файлов: в нём должны быть только
|
||
изменения для этого релиза. `release.ps1` требует чистую рабочую копию, запускает сборку и три
|
||
проверки, сверяет версию EXE и собирает `dist/SbLauncher-vX.Y.Z-win-x64.zip`
|
||
с SHA-256 в соседнем `.sha256`. Архив содержит только приложение, шаблоны,
|
||
примеры конфигурации и документацию. Сборка идёт через `build.cmd staged`,
|
||
поэтому открытый лаунчер не блокирует выпуск. Для пробного запуска на незакоммиченных
|
||
изменениях есть `-AllowDirty`; архив получает суффикс `-dev` с хешем коммита.
|
||
|
||
При настроенном удалённом репозитории отправьте ветку и тег:
|
||
|
||
```powershell
|
||
git push origin main
|
||
git push origin v0.1.1
|
||
```
|
||
|
||
Затем создайте релиз `v0.1.1` в GitHub/Gitea, вставьте заметки из
|
||
`CHANGELOG.md` и прикрепите ZIP и `.sha256`. Если `origin` ещё не настроен,
|
||
сначала добавьте адрес своего удалённого репозитория.
|