We use Gnosis VPN repository as the central hub for all user feedback.
- Visit Gnosis VPN Discussions board.
- Search existing Discussions and Issues to see if your topic is already covered.
- If not, start a new Discussion in the Issues & Bug Reports category.
- Provide as much detail as possible using the provided template.
The team will review all discussions and promote confirmed bugs or planned features to actionable issues. This repository is reserved for tracking actionable work on this component.
The Gnosis VPN application supports the following platforms and architectures:
- aarch64-darwin - Apple Silicon
- x86_64-linux - 64-bit Intel/AMD Linux
- aarch64-linux - 64-bit ARM Linux (e.g., Raspberry Pi 4/5, AWS Graviton)
You need a working instance of Gnosis VPN client service running on your system on the default socket.
In order to start development, run a local dev server via:
nix develop --command deno install
nix develop --command deno task tauri dev- Install Prerequisites
deno installdeno task tauri dev
- Install Tauri prerequisites
(Xcode and Rust)
- If you don’t have Xcode tooling yet, Apple’s docs explain how to install
Command Line Tools for Xcode
(e.g.
xcode-select --install). That is usually enough without installing the full Xcode app; you may be prompted to accept the license on first use. - Install Rust via rustup. If you plan to build
Intel-only or universal binaries, also install the corresponding Rust
targets:
rustup target add aarch64-apple-darwin x86_64-apple-darwin
- If you don’t have Xcode tooling yet, Apple’s docs explain how to install
Command Line Tools for Xcode
(e.g.
- Install Deno — choose one of:
- Homebrew (requires installing Homebrew first):
brew install deno(Homebrew install docs: https://brew.sh/) - Official installer:
curl -fsSL https://deno.land/install.sh | sh(then ensure Deno is on yourPATH: https://docs.deno.com/runtime/getting_started/installation/) - Nix (if you have Nix installed): enter the dev shell with
nix develop— Deno, Rust, and all tools are provided automatically, then run the commands below without thenix develop --commandprefix
- Homebrew (requires installing Homebrew first):
deno install(if you get errors about lifecycle scripts, usedeno install --allow-scripts)deno task tauri dev
deno add npm:<package-name> # dependency
deno add npm:<package-name> --dev # dev dependencydeno task tauri buildYou can add --target for x86_64-apple-darwin, aarch64-apple-darwin,
universal-apple-darwin, x86_64-linux, aarch64-linux.
To convert a developer certificate so it can be used by tauri build flow, follow these steps:
Import key and certificate into keychain access:
$ ls -l
gnosisvpn.key
gnosisvpn.pem
$ keychain_pass=<anypass>
$ security create-keychain -p "$keychain_pass" build.keychain
$ security default-keychain -s build.keychain
$ security unlock-keychain -p "$keychain_pass" build.keychain
$ security set-keychain-settings -t 3600 -u build.keychain
$ security import gnosisvpn.pem -k build.keychain
1 certificate imported.
$ security import gnosisvpn.key -k build.keychain
1 key imported.Open keychain access, find certificates, click export and choose .p12 format.
Use <anypass> from the previous step to unlock the keychain. Set a strong
password for the exported .p12 file and configure the
APPLE_CERTIFICATE_PASSWORD env in the CI with this password.
$ ls -l
gnosisvpn.key
gnosisvpn.pem
gnosisvpn.p12
$ openssl base64 -in ./gnosisvpn.p12 -out gnosisvpn-base64.txt
$ security delete-keychain build.keychainSet the content of ./gnosisvpn-base64.txt as APPLE_CERTIFICATE_BASE64 env in
the CI.
The CI will check formatting and linting, and build binaries for all supported architectures.
The CI builds binaries for the following platforms:
- macOS: aarch64-darwin
- Linux: x86_64-linux, aarch64-linux
Linux builds are performed on GitHub-hosted runners:
ubuntu-22.04for x86_64-linuxubuntu-22.04-armfor aarch64-linux
Run formatting locally via:
nix fmtRun linting locally via:
nix develop --command deno lint --fix