Add Ubuntu-to-Windows build workflow using cargo-xwin for i686-pc-windows-msvc target. Update build-tunnel-helper.sh with host OS detection, target validation, and cargo-xwin support for Linux cross-compilation. Add tauri.windows.conf.json to configure NSIS-only bundle output and npm script for Linux-based Windows builds. Update client-platforms.md to document cross-compilation support and clarify that MSI packaging still requires Windows environment.
39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# Desktop Platform Strategy
|
|
|
|
## Windows x86
|
|
|
|
Current MVP integration path:
|
|
|
|
- NexaVPN enrolls the device and stores the generated profile locally.
|
|
- NexaVPN is intended to ship its own bundled Windows x86 tunnel helper.
|
|
- The end user should interact only with NexaVPN.
|
|
- The bundled helper encapsulates the WireGuard runtime internally.
|
|
|
|
Repository status:
|
|
|
|
- the NexaVPN tunnel helper CLI is now included in `desktop-client/tunnel-helper/`
|
|
- the Windows x86 build can be bundled into `src-tauri/bundled/windows-x86/`
|
|
- Ubuntu server builds can cross-compile the Windows x86 helper and Tauri app with `cargo-xwin`
|
|
- the Linux-based Windows packaging path targets NSIS `Setup.exe`; MSI packaging still requires a Windows environment
|
|
|
|
## macOS ARM
|
|
|
|
Current MVP integration path:
|
|
|
|
- NexaVPN enrolls the device and stores the generated profile locally.
|
|
- NexaVPN is intended to ship its own bundled macOS ARM tunnel helper.
|
|
- The end user should interact only with NexaVPN.
|
|
- The bundled helper encapsulates the WireGuard runtime internally.
|
|
|
|
Repository status:
|
|
|
|
- the NexaVPN tunnel helper CLI is now included in `desktop-client/tunnel-helper/`
|
|
- the macOS ARM build can be bundled into `src-tauri/bundled/macos-arm64/`
|
|
|
|
## Security And Limitations
|
|
|
|
- Client private keys are generated and stored locally.
|
|
- Admin debug profile downloads intentionally contain a private-key placeholder.
|
|
- Desktop secure-secret storage is not yet production-grade keychain integration.
|
|
- The repository now includes the helper source and bundling paths, but final signing still needs to be performed in the right target environments.
|