gnosis_vpn-client icon indicating copy to clipboard operation
gnosis_vpn-client copied to clipboard

GnosisVPN Client - decentralized, trustless, uncensorable VPN

Gnosis VPN Client

Gnosis VPN is a VPN solution build on top the HOPR mixnet. This repo contains the system service and a control application. It is part of a larger project consisting of:

General concept

The client offers two binaries, gnosis_vpn and gnosis_vpn-ctl. The client (gnosis_vpn) runs as a system service with privileged access. The control application (gnosis_vpn-ctl) is used to manage the client and its connections.

Installation

Use the install script.

Check signatures

To validate the signature of the downloaded binary from GitHub, follow these steps:

  1. Import the public key (checkout the repository first):

    gpg --import gpg-publickey.asc
    
  2. Verify the binary signature:

    gpg --verify gnosis_vpn-x86_64-linux.asc gnosis_vpn-x86_64-linux
    
  3. Compare the checksum with the actual checksum:

    diff -u <(cat gnosis_vpn-x86_64-linux.sha256) <(shasum -a 256 gnosis_vpn-x86_64-linux)
    

General usage

Check available params and env vars via:

gnosis_vpn --help gnosis_vpn-ctl --help

Deployment

Show potential deployment targets:

nix flake show

Build for a target, e.g. x86_64-linux:

nix build .#gnosisvpn-x86_64-linux

The resulting binaries are in result/bin/:

$ ls -l result*/bin/
result/bin/:
total 4752
-r-xr-xr-x 1 root root 4863367 Jan  1  1970 gnosis_vpn
-r-xr-xr-x 1 root root 1740050 Jan  1  1970 gnosis_vpn-ctl