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.
git clone --recurse-submodules https://github.com/p1neappleXpress/OpenFluxDesktop.gitAlready cloned without --recurse-submodules?
git submodule update --init --recursiveThis checks out two submodules:
shared/→ OpenFluxClientShared, the Compose Multiplatform UI and models shared with OpenFluxAndroid.OpenFlux/→ OpenFlux, the core this app bundles as a separate process.
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)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
- 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!
GNU General Public License v3.0 or later — see LICENSE.