Skip to content
forked from VPNht/desktop

VPN.ht Desktop Application for Windows and Mac OS X built on top of Electron

Notifications You must be signed in to change notification settings

wickedtech/desktop

 
 

Repository files navigation

VPNht Desktop Client v1.0.0

VPNht Logo

A modern, secure VPN client built with Tauri + React + Rust

Build Status Security Audit License

📥 Download📖 Docs🐛 Bug Reports💬 Discussions

📸 Screenshots

Dark Mode Light Mode Server Map
Dark Light Map

✨ Features

Core Features

  • 🔐 Secure Authentication - Login/signup with secure token storage using OS keychain
  • 🌍 73 VPN Servers - Global server network with real-time latency testing
  • 🗺️ Interactive Map - MapLibre-powered server map with click-to-connect
  • WireGuard Support - Fast, modern VPN protocol with ChaCha20-Poly1305 encryption
  • 🛡️ Kill Switch - Protect your connection if VPN drops
  • 🔒 DNS Leak Protection - Prevent DNS leaks with custom DNS support
  • 🌙 Dark Mode - Beautiful dark UI with system preference detection

Production Features

  • Code Signed - Signed binaries for Windows, macOS, and Linux
  • Auto Updates - Automatic updates with signature verification
  • Multi-language - 11 languages including RTL (Arabic, Hebrew)
  • Accessible - WCAG 2.1 AA compliant with screen reader support
  • Cross-platform - Native apps for Windows, macOS, and Linux

Privacy Features

  • 🚫 No Logs Policy - We don't track or log your activity
  • 🔒 Encrypted Storage - OS-level secure storage for credentials
  • 🕵️ IP Leak Protection - IPv6 blocking and comprehensive leak tests
  • 🛡️ Audit Verified - Passed independent security audit

🚀 Quick Start

Download

Download the latest release for your platform:

Platform Download Requirements
macOS (Intel) DMG macOS 10.15+
macOS (Apple Silicon) DMG macOS 11+
Windows MSI Windows 10+
Linux AppImage Ubuntu 20.04+

Development

# Clone the repository
git clone https://github.com/VPNht/desktop.git
cd desktop

# Install dependencies
npm install

# Run development server
npm run tauri:dev

# Build for production
npm run tauri:build

Platform-Specific Setup

macOS

# Install dependencies
brew install wireguard-tools

# For code signing (maintainers only)
security import developer_id.cer

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install -y \
  libwebkit2gtk-4.0-dev \
  build-essential \
  curl \
  wget \
  file \
  libssl-dev \
  libgtk-3-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  wireguard \
  wireguard-tools

Windows

# Install Visual Studio Build Tools with C++ workload
# WireGuard is bundled with the installer

🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                      VPNht Desktop                          │
├─────────────────────┬───────────────────────────────────────┤
│    Frontend         │         Backend (Tauri/Rust)           │
│    (React + TS)     │                                        │
│ ┌───────────────┐   │   ┌──────────┐                        │
│ │  React UI     │   │   │ Commands │ ◄── IPC Channel        │
│ │  Components   │◄──┼───┤          │                        │
│ └───────────────┘   │   └──────────┘                        │
│                     │        │                              │
│ ┌───────────────┐   │   ┌────┴─────┐    ┌──────────────┐   │
│ │  State Mgmt   │   │   │ VPN Mgmt │◄──►│ WireGuard  │   │
│ │  (Zustand)    │   │   └──────────┘    └──────────────┘   │
│ └───────────────┘   │        │                              │
│                     │   ┌────┴─────┐    ┌──────────────┐   │
│ ┌───────────────┐   │   │ Storage  │◄──►│ OS Keychain  │   │
│ │  i18n         │   │   └──────────┘    └──────────────┘   │
│ │  (11 langs)   │   │                                      │
│ └───────────────┘   │   ┌──────────┐    ┌──────────────┐   │
│                     │   │ API      │◄──►│ GraphQL API  │   │
│                     │   └──────────┘    └──────────────┘   │
└─────────────────────┴───────────────────────────────────────┘

🛠️ Tech Stack

Layer Technology
Frontend React 18, TypeScript, Tailwind CSS
State Zustand with Immer
Forms React Hook Form + Zod
Maps MapLibre GL JS
i18n i18next + react-i18next
Backend Rust, Tauri 1.5
VPN WireGuard (kernel module)
Storage keyring-rs
Build Vite, Tauri CLI

🧪 Testing

# Frontend tests
npm test

# Rust tests
cd src-tauri && cargo test

# E2E tests
npm run test:e2e

# Linting
npm run lint
cd src-tauri && cargo clippy

# Security audit
cd src-tauri && cargo audit
npm audit

📝 Project Structure

desktop/
├── .github/
│   ├── workflows/          # CI/CD workflows
│   ├── ISSUE_TEMPLATE/     # Issue templates
│   └── dependabot.yml      # Dependency updates
├── src/                    # Frontend source
│   ├── components/         # React components
│   ├── pages/              # Page components
│   ├── hooks/              # Custom React hooks
│   ├── stores/             # Zustand stores
│   ├── i18n/               # Internationalization
│   │   └── locales/        # Translation files (11 languages)
│   ├── utils/              # Utility functions
│   └── App.tsx             # App entry point
├── src-tauri/              # Rust backend
│   └── src/
│       ├── main.rs         # Tauri entry
│       ├── commands.rs     # IPC commands
│       ├── vpn.rs          # VPN management
│       ├── storage.rs      # Secure storage
│       └── config.rs       # Configuration
├── tests/                  # Test files
├── docs/                   # Documentation
└── README.md               # This file

🔒 Security

Security is our top priority. See our Security Policy and Security Audit Report.

Security Features

  • ✅ Signed binaries (Windows: Authenticode, macOS: Developer ID, Linux: GPG)
  • ✅ Automatic updates with Ed25519 signature verification
  • ✅ Hardware-backed credential storage
  • ✅ CSP protection against XSS
  • ✅ Memory-safe Rust backend
  • ✅ Regular dependency auditing (Dependabot + cargo-audit)

Reporting Vulnerabilities

Please report security vulnerabilities to security@vpnht.com. See SECURITY.md for details.

🌐 Internationalization

Supported languages:

Language Code Status
🇺🇸 English en ✅ Complete
🇫🇷 French fr ✅ Complete
🇩🇪 German de ✅ Complete
🇪🇸 Spanish es ✅ Complete
🇵🇹 Portuguese pt ✅ Complete
🇧🇬 Bulgarian bg ✅ Complete
🇨🇳 Chinese zh ✅ Complete
🇯🇵 Japanese ja ✅ Complete
🇷🇺 Russian ru ✅ Complete
🇸🇦 Arabic ar ✅ Complete (RTL)
🇮🇱 Hebrew he ✅ Complete (RTL)

🤝 Contributing

We welcome contributions! Please read our Contributing Guide and Code of Conduct.

Quick Start

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feat/amazing-feature
  5. Open a Pull Request

📊 CI/CD

Our GitHub Actions workflows:

  • Build - Multi-platform builds on every push
  • Test - Frontend (Vitest) and backend (Rust) tests
  • Security - Automated security scanning
  • Release - Signed releases with auto-updates

See .github/workflows for details.

📄 License

Copyright © 2024 VPNht. All rights reserved.

This project is proprietary and confidential. See LICENSE for details.

🙏 Acknowledgments


About

VPN.ht Desktop Application for Windows and Mac OS X built on top of Electron

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 61.9%
  • Rust 37.4%
  • Other 0.7%