PVE VDI Client

The focus of this project is to create a simple, intuitive, and highly secure Virtual Desktop Infrastructure (VDI) client intended for mass deployment. The client connects directly to Proxmox VE (PVE) environments and allows end-users to connect to Virtual Machines (VMs) or Linux Containers (LXC) they have permission to access, utilizing the robust SPICE protocol.

The Problem It Solves

Proxmox VE is a powerful hypervisor, but its web-based management interface is designed for system administrators, not everyday end-users. Exposing the full Proxmox UI to non-technical staff or students poses significant security risks, user experience hurdles, and training overhead.

PVE VDI Client bridges this gap by providing:

  1. A Restricted UI: Users only see a simple login prompt and a list of their assigned machines. There are no menus to accidentally delete disks or alter cluster configurations.
  2. Native Desktop Experience: Instead of running virtual desktops inside a web browser window, this client launches a native application (virt-viewer) for full-screen, hardware-accelerated remote desktop sessions.
  3. Automated State Management: If a user attempts to connect to a machine that is currently powered off or suspended, the client automatically sends the wake/start command and waits for the boot process to complete before attaching the display.

Key Features

  • Multi-Cluster Support: Define multiple Proxmox clusters in the configuration file, allowing end-users to easily select which 'server group' they wish to connect to via a dropdown menu. High availability is built-in; the client will cycle through available nodes if one is offline.
  • Two-Factor Authentication (2FA): Built-in support for Proxmox's TOTP (Time-based One-Time Password) two-factor authentication, ensuring compliance with modern security standards.
  • Kiosk Mode: A highly restrictive mode designed for public terminals or dedicated thin clients. It removes window decorations and prevents users from closing the application natively, ensuring they remain locked into the VDI environment.
  • Auto-Login & Auto-Connect: Can be configured to bypass the login screen entirely using API tokens, and automatically launch a specific VM immediately upon startup. Ideal for single-purpose workstations.
  • SPICE Proxy Redirection: Allows rewriting the SPICE proxy host and port provided by the Proxmox API. This is critical for complex network topologies, NAT environments, or traversing strict firewalls.
  • Centralized HTTP Provisioning: The client can pull its configuration file from a central HTTP/HTTPS server on launch, meaning you never have to manually update config files on hundreds of thin clients.

When to Use This Project

  • Educational Labs: Deploy to thin clients in a computer lab where students log in with their active directory credentials to access specialized Windows or Linux VMs.
  • Remote Workforces: Provide a lightweight executable to employees that connects them securely to their office workstation via a SPICE proxy.
  • Kiosk Environments: Set up public library terminals or digital signage that automatically boot into a specific, locked-down virtual machine.

Next Steps