Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

151 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proxmox Desktop

Native Windows client for Proxmox VE — WPF · .NET 9 · Material Design · MVVM

Build Release .NET Platform Proxmox VE License: MIT


Dashboard


Overview

Proxmox Desktop is a native Windows client for Proxmox VE. It gives quick access to all your virtual machines and LXC containers across a cluster, without going through the WebGUI — directly from your Windows desktop.

Built with WPF and Material Design, using an MVVM architecture (CommunityToolkit) and a fully async HTTP client with automatic retry.


Features

  • 🖥️ VM/LXC Dashboard — Grid or list view of all machines with real-time status, CPU%, RAM%, uptime
  • 🌐 Multi-server — Connect several Proxmox clusters at once and see them side by side
  • 📊 Stats bar — Total / Running / Stopped / VMs / LXC at a glance
  • 🗂️ Server & node sidebar — Filter by cluster or node with a single click
  • 🏷️ Proxmox tags — Shown on each card, click a tag to filter
  • 🧭 Sorting — By name, VMID, CPU, RAM, status or uptime
  • 🕑 Activity log — Side panel recording power actions, state changes and errors
  • 🔍 Search — Filter by name, VMID, node or server
  • 🖥️ Integrated console — NoVNC, xTermJS and SPICE (Virt-Viewer)
  • Power control — Start / Shutdown / Reboot / Suspend / Hibernate / Force Stop / Reset
  • 🔐 Dual authentication — Classic login + TOTP, or Proxmox API Token
  • 🔔 Windows notifications — Native toast on VM state changes
  • ⌨️ Keyboard shortcutsF5 refresh · Ctrl+F search · Esc clear
  • 🔄 Auto-refresh — Configurable interval, ticket renewed automatically every 90 min
  • 🌙 Dark / Light theme — Toggle in one click, remembered between sessions

Screenshots

Login Dashboard VM Card
Login Dashboard Card

Requirements

Component Version Link
Windows 10 (build 17763+) or 11
WebView2 Runtime Latest (pre-installed on Windows 11) microsoft.com/edge/webview2
Virt-Viewer + UsbDk (SPICE only) Latest spice-space.org

.NET runtime is bundled. No separate .NET installation required — the app is self-contained.


Installation

From releases

  1. Download the latest .zip from the Releases page
  2. Extract anywhere
  3. Run ProxmoxDesktop.exe

From source

git clone https://github.com/Kofysh/Proxmox-Desktop.git
cd "Proxmox-Desktop/Proxmox Desktop"
dotnet build -c Release

CI / CD

Build

Every push to master and every pull request automatically triggers a build. If it succeeds, a build artifact (ProxmoxDesktop-win-x64) is uploaded and available for 7 days under the Actions tab — no tag needed.

Release

Releases are created three ways:

Option 1 — Automatic on version bump (recommended): Bump <InformationalVersion> in Proxmox Desktop/ProxmoxDesktop.csproj, commit and merge to master. The Release workflow reads the version, and if no v<version> tag exists yet, it builds, zips and publishes the GitHub Release automatically. Pushing master without changing the version is a no-op, so it never spams releases.

Option 2 — Git tag (from your machine):

git tag v2.2.0
git push origin v2.2.0

Option 3 — Manual trigger (from GitHub UI):

  1. Go to Actions → Release
  2. Click Run workflow
  3. Enter the tag name (e.g. v2.2.0) and confirm

Tags containing -beta or -rc are automatically marked as pre-releases.


Configuration

On first launch, fill in:

Field Description Example
Server Proxmox IP or hostname 192.168.1.10
Port API port (default 8006) 8006
Username Proxmox user root
Realm Selected from the list pam
Password Password + TOTP if enabled
Skip SSL For self-signed certificates ✓ homelab

Or via API Token:

PVEAPIToken=user@realm!tokenid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Credentials are saved to %AppData%\ProxmoxDesktop\config.json. The token secret is encrypted using Windows DPAPI.


Minimum Proxmox Permissions

For a dedicated account with minimal rights:

Permission Usage
VM.Audit List and display VMs
VM.Console Console access (NoVNC, xTermJS, SPICE)
VM.PowerMgmt Power control

Architecture

Proxmox-Desktop/
├── Proxmox Desktop/               # Main WPF project
│   ├── Api/
│   │   ├── IApiClient.cs          # Interface (mockable for tests)
│   │   ├── ApiClient.cs           # Async HTTP client + retry
│   │   ├── ServerInfo.cs          # Connection record
│   │   ├── Internal/              # Internal PVE response types
│   │   └── Models/                # MachineData, NodeData, LoginResult...
│   ├── Config/
│   │   ├── AppConfig.cs           # Strongly-typed config
│   │   └── ConfigurationService.cs # JSON persistence + DPAPI
│   ├── Console/
│   │   └── SpiceLauncher.cs       # Virt-Viewer launcher
│   ├── Controls/
│   │   ├── MachineCard.xaml       # VM/LXC card
│   │   └── StatsBar.xaml          # Dashboard stats bar
│   ├── Converters/                # StatusToBrush, BytesToReadable...
│   ├── Helpers/                   # VisualTreeHelperExtensions
│   ├── Services/
│   │   └── NotificationService.cs # Native Windows Toast
│   ├── ViewModels/
│   │   ├── LoginViewModel.cs
│   │   └── MainViewModel.cs
│   ├── Views/
│   │   ├── LoginWindow.xaml
│   │   ├── MainWindow.xaml
│   │   └── ConsoleWindow.xaml
│   ├── App.xaml
│   └── ProxmoxDesktop.csproj
├── Screenshots/
├── Resources/
├── ProxmoxDesktop.sln
└── .github/workflows/
    ├── build.yml                  # Build + artifact on every push / PR
    └── release.yml                # Release on v*.*.* tag or manual trigger

Tech stack:

  • UI: WPF + MaterialDesignThemes 5.1
  • Architecture: MVVM — CommunityToolkit.Mvvm 8.4
  • Web console: WebView2
  • HTTP: HttpClient fully async/await + retry
  • Notifications: Microsoft.Toolkit.Uwp.Notifications
  • Serialization: System.Text.Json
  • Secrets: Windows DPAPI

Roadmap

  • Proxmox API Token support
  • CPU% / RAM% metrics on each card
  • Filter / search by name or VMID
  • Group by node
  • Windows Toast notifications
  • Dark / Light theme
  • Multi-server support (multiple Proxmox clusters)
  • List view in addition to grid view
  • Proxmox tags displayed on cards
  • Action history / logs
  • Bulk power actions on multiple machines
  • Per-VM resource graphs (history)

Contributing

Contributions are welcome. To propose a feature or report a bug:

  1. Open an Issue
  2. Fork the repo and create a feature/name or fix/name branch
  3. Submit a Pull Request targeting master

Credits

Forked and rewritten from sakakun/Proxmox-Desktop (original WinForms app by Matthew Bate).


License

MIT

About

A windows desktop client for Proxmox.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages