# SbLauncher Лаунчер для sing-box с интерфейсом WPF. Работает в Windows 10/11 x64 с .NET Framework 4.x. Поддерживает импорт и выбор серверов, три режима подключения (`wg`, `direct`, `wgonly`), проверку конфигурации, запуск и остановку sing-box, логи и светлую/тёмную тему. Это отдельный прототип интерфейса; рабочая копия `sb_launcher_rev2` не меняется. Приложение запрашивает права администратора для настройки сетевых маршрутов. ![Светлая тема](preview/glass-light.png) [Тёмная тема](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` ещё не настроен, сначала добавьте адрес своего удалённого репозитория.