No description
  • Kotlin 72.8%
  • Shell 14.4%
  • NSIS 6.6%
  • Python 6.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-30 14:24:32 +03:00
.github Клиент 3.7.1: апстрим 3.7.0 и ядро 0.17.1 с защитами форка 2026-10-30 12:58:48 +03:00
desktopApp Клиент 3.7.1: апстрим 3.7.0 и ядро 0.17.1 с защитами форка 2026-10-30 12:58:48 +03:00
gradle Клиент 3.7.1: апстрим 3.7.0 и ядро 0.17.1 с защитами форка 2026-10-30 12:58:48 +03:00
OpenFlux@cb1cfaeac6 Desktop 3.7.2: закреплено ядро исключений VPN 2026-10-30 14:24:32 +03:00
patches Desktop 3.7.2: исключения VPN для любых приложений, LAN и сайтов 2026-10-30 14:24:32 +03:00
scripts Desktop 3.7.2: исключения VPN для любых приложений, LAN и сайтов 2026-10-30 14:24:32 +03:00
shared@7d8c56f46e Release 3.7.0: core 0.13.0, shared 3.7.0, coreRepo → p1neappleXpress 2026-10-16 14:03:39 +03:00
.DS_Store CHANGELOG: 2.3.0 2026-10-06 23:49:04 +03:00
.gitignore Desktop 2.6.4: Compose GUI, повторное открытие окна и защита полного туннеля Linux/Windows 2026-10-14 19:57:31 +03:00
.gitmodules Desktop 2.6.4: Compose GUI, повторное открытие окна и защита полного туннеля Linux/Windows 2026-10-14 19:57:31 +03:00
build.gradle.kts Switch to the OpenFluxClient-derived multi-transport app 2026-09-27 12:30:32 +03:00
CHANGELOG.md Merge OpenFluxTeam v3.6.1 (meepo161's line) into my 2.6.3 2026-10-15 05:05:40 +03:00
core-revision.txt Desktop 3.7.2: исключения VPN для любых приложений, LAN и сайтов 2026-10-30 14:24:32 +03:00
gradle.properties Switch to the OpenFluxClient-derived multi-transport app 2026-09-27 12:30:32 +03:00
gradlew Initial commit 2026-09-10 18:02:04 +03:00
gradlew.bat Initial commit 2026-09-10 18:02:04 +03:00
LICENSE Switch to the OpenFluxClient-derived multi-transport app 2026-09-27 12:30:32 +03:00
README.md Desktop 3.7.2: исключения VPN для любых приложений, LAN и сайтов 2026-10-30 14:24:32 +03:00
settings.gradle.kts Desktop 2.6.4: Compose GUI, повторное открытие окна и защита полного туннеля Linux/Windows 2026-10-14 19:57:31 +03:00

Выпуск форка 3.7.2

Настройки → VPN → Исключения: любые приложения .exe на Windows, локальная сеть и выбранные домены. После изменения переподключитесь; профиль сервера прежний.

Основа: Desktop/shared 3.7.0; ядро 0.17.1-danik.2. Сохранены защита TUN Windows/Linux, проверка готовности полного туннеля, повторное открытие окна и обновления из нашего форка. Перед сборкой выполнить scripts/sync-core.sh; patch общего модуля применяется через scripts/sync-shared.sh. Linux package собирается из исходников. Windows portable использует проверенный runtime upstream 3.7.0 с пересобранными desktop/shared jars и нашим ядром; installer сохраняет пользовательские профили. Windows acceptance не выполнялся.

Windows 2.6.4: для исправления ошибки WFP «The specified group does not exist» выберите исправленное отдельное ядро из hotfix 0.7.3-danik.2 в настройках собственного пути ядра. Профили и ключ менять не нужно.

Наши исправления полного туннеля

Linux: режим TUN с запросом прав только для ядра через pkexec; нужны ip, nft и systemd-resolved/resolvectl. Windows: WFP блокирует обход TUN. IPv6 в полном туннеле блокируется. SOCKS5/системный прокси охватывает только использующие его программы. Реальная проверка на Windows и Linux ещё нужна.

Исправления общего модуля хранятся в patches/shared-full-tunnel.patch. Gradle автоматически проверяет закреплённую ревизию shared и применяет патч; чужие конфликтующие изменения не перезаписываются. Ядро закреплено в core-revision.txt; перед сборкой выполните scripts/sync-core.sh.

Наш выпуск 3.7.1

Основан на upstream 3.7.0. Ядро закреплено в core-revision.txt: Ядро 0.17.1-danik.2: Session/AES-GCM, Avito/Cups/Direct, DNS через туннель, защита приватных назначений. Go 1.26.10, исправления MAX и восстановления Avito; обновлённый общий UI 3.7.0. Перед сборкой: scripts/sync-core.sh, затем команды ниже. Старые openflux://noise-v1/ не подходят; нужен новый профиль openflux://v1/. Личные ссылки и секреты в репозиторий и релизы не включаются.

Релизы публикуются после локальных проверок; автоматическая публикация по tag выключена, workflow Release можно запустить вручную.

OpenFluxDesktop

Desktop client for OpenFlux (Windows/macOS/Linux): full-tunnel or SOCKS5/HTTP proxy, multi-transport sessions with automatic failover, AES-256-GCM encryption, a node-deployment wizard (deploy an exit over SSH from the app), and a built-in browser for passing a transport's check (SmartCaptcha, a login wall).

This repository's app code and UI (the desktopApp/ and shared/ modules) come from meepo161/OpenFluxClient, used here with the author's agreement. Huge thanks to @meepo161 — see Credits below. The previous, independent desktop client that used to live in this repository is preserved at the legacy-native-app tag.

Getting the code

git clone --recurse-submodules https://github.com/p1neappleXpress/OpenFluxDesktop.git

Already cloned without --recurse-submodules?

git submodule update --init --recursive

This checks out two submodules:

Building

Needs JDK 17 and Go (or Docker, for a build without Go). Core binaries are not committed to git: run/package* build the one for this machine into desktopApp/resources/<windows|macos|linux> automatically (from the OpenFlux/ submodule, -PcoreDir=<path>, or ../OpenFlux next to this repository) if it isn't already there. -PskipCore=true runs the app without a core (Settings → Core then takes a file of your own).

./gradlew :desktopApp:run                              # run (builds the core on first run)
scripts/build-core.sh                                   # core by hand, from the OpenFlux/ submodule
./gradlew :shared:jvmTest                                # tests
./gradlew -PwindowsPackage=true :desktopApp:packageMsi   # Windows: .msi (also packageExe)
./gradlew :desktopApp:packageDmg                         # macOS: .dmg
./gradlew :desktopApp:packageDeb                         # Linux: .deb (needs fakeroot)

Structure

desktopApp/   Window, tray, shortcuts, packaging, icons
shared/       Submodule: models, service interfaces, design system, screens
  jvmMain/
    core/     Core process launch, IPC status, Yandex checks
    node/     The node wizard (core --node-wizard over stdin/stdout)
    web/      The built-in browser: off-screen KCEF, a proxy router, a log
    platform/ Windows system proxy (WinInet), admin rights
    data/     Settings and profile storage
OpenFlux/     Submodule: the core (CLI), spawned as a subprocess
scripts/      build-core.sh

Credits

  • meepo161 — author of OpenFluxClient, the source of this app's UI and logic (desktopApp/, shared/): multi-transport sessions with failover, AES-256-GCM encryption, the built-in browser and check/captcha flow, the node-deployment wizard, and the Compose design system. Thank you!
  • p1neappleXpress — author of the OpenFlux core this app bundles: the tunnel, transports, and negotiation protocol.
  • damnurmum — author of OpenFlux-Android and, in the core, openflux:// links and QR codes, and the cups.online transport, which this app's share and scan screens build on. Thank you!

License

GNU General Public License v3.0 or later — see LICENSE.