Skip to content

DefGuard/client

Repository files navigation

defguard

Defguard desktop client

Desktop client for managing WireGuard VPN connections (any WireGuard server and defguard instances).

defguard desktop client

Features

  • Supports any WireGuard server
  • Multi-platform - Linux, macOS & Windows
  • Detailed network overview - see all details of your connection history and statistics with real-time charts and logs
  • Multi-Factor Authentication with TOTP/Email & WireGuard PSK - Since WireGuard protocol doesn't support 2FA, most (if not all) available WireGuard clients use 2FA authorization to the "application" itself (not Wireguard tunnel). When using this client with defguard VPN & SSO server (which is free & open source) you will get real Multi-Factor Authentication using TOTP/Email codes + WireGuard Pre-shared session keys.
  • Multiple instances & locations - When combining with defguard VPN & SSO you can have multiple defguard instances (sites/installations) and multiple Locations (VPN tunnels in that location/site) in one client! If you are an admin/devops - all your customers (instances) and all their tunnels (locations) can be in one place!
  • Fast! - Built with Rust, tauri and React.js.

To learn more about the system see our documentation.

Development

Tauri requirements

Make sure to install prerequisites from tauri.

Proto submodule

Make sure you have cloned, and up to date, proto submodule in src-tauri/proto

Protoc compiler

Make sure you have protoc available.

Install pnpm and node deps

pnpm install

Dev server command

pnpm tauri dev

Build command

pnpm tauri build

Built packages are available after in src-tauri/target/release/bundle.

Windows

Remove default-run line from [package] section in Cargo.toml to build the project.

Known issues

Failed to bundle project

pnpm tauri build may fail with error: Error failed to bundle project: error running appimage.sh. To fix this set the NO_STRIP environment variable:

NO_STRIP=1 pnpm tauri build

Blank screen

The app launches but the window is blank. Set the WEBKIT_DISABLE_DMABUF_RENDERER environment variable:

WEBKIT_DISABLE_DMABUF_RENDERER=1 defguard-client

Legal

  • defguard is not an official WireGuard project, and WireGuard is a registered trademark of Jason A. Donenfeld.