Fork del software Proxmox VDI Client di Josh Patten per ottimizzare e migliorare il codice.
Link originale: https://github.com/joshpatten/PVE-VDIClient/tree/main
- Python 97.2%
- Batchfile 2.3%
- Shell 0.5%
| gui | ||
| proxmox | ||
| resources | ||
| utils | ||
| .gitignore | ||
| build_vdiclient.bat | ||
| config.py | ||
| install-desktop.sh | ||
| LICENSE | ||
| main.py | ||
| README.md | ||
| README2.md | ||
| requirements.txt | ||
| vdi-client.desktop | ||
| vdiclient.ini.example | ||
PVE VDI Client
Fork ottimizzato del PVE-VDIClient di Josh Patten.
Client VDI leggero per Proxmox VE che permette agli utenti di connettersi (via SPICE) alle VM a cui hanno accesso, pensato per il deploy di massa.
Struttura del progetto
vdi-client/
├── main.py ← Entry point
├── config.py ← Configurazione globale (AppState G + load_config)
├── requirements.txt
│
├── gui/
│ ├── styles.py ← Design tokens: colori, font, dimensioni, tema FSG
│ ├── components.py ← Widget riutilizzabili (card VM, input, pulsanti…)
│ ├── layouts.py ← Layout finestre login e lista VM
│ ├── windows.py ← Logica finestre (loop eventi, login, VM window)
│ └── wizard.py ← Config Wizard (primo avvio senza vdiclient.ini)
│
├── proxmox/
│ └── client.py ← API Proxmox: auth, lista VM, azioni, SPICE
│
├── utils/
│ ├── helpers.py ← Utilità sistema (tema, schermo, virt-viewer…)
│ └── popups.py ← Popup riutilizzabili (attesa, messaggio, debug INI)
│
└── resources/
├── icon.png / icon.ico / icon.svg
└── icons.py ← Icone embedded (base64)
Requisiti di sistema
| Sistema | Prerequisiti |
|---|---|
| Linux (Debian/Ubuntu) | apt install python3-pip python3-tk virt-viewer |
| Linux (Fedora/RHEL) | dnf install python3-pip python3-tkinter virt-viewer |
| Windows | virt-viewer + Python 3.12 |
Permessi Proxmox richiesti per ogni VM
VM.PowerMgmtVM.ConsoleVM.Audit
Installazione
git clone <repo>
cd vdi-client
pip install -r requirements.txt
python main.py
Al primo avvio, se non viene trovato vdiclient.ini, si apre il Config Wizard per la configurazione guidata.
File di configurazione
Il client cerca vdiclient.ini nei seguenti percorsi (nell'ordine):
- Linux:
~/.config/VDIClient/vdiclient.ini→/etc/vdiclient/vdiclient.ini - Windows:
%APPDATA%\VDIClient\vdiclient.ini→%PROGRAMFILES%\VDIClient\vdiclient.ini
Vedi vdiclient.ini.example per tutte le opzioni disponibili.
Opzioni da riga di comando
python main.py [opzioni]
--list_themes Mostra tutti i temi disponibili (anteprima grafica)
--config_type {file,http} Sorgente config (default: file)
--config_location PATH Percorso o URL del file di configurazione
--config_username USER Username per autenticazione HTTP
--config_password PASS Password per autenticazione HTTP
--ignore_ssl Ignora gli errori di certificato SSL
Build binario (Linux)
pip install pyinstaller
pyinstaller --onefile --noconsole --noconfirm \
--hidden-import proxmoxer.backends \
--hidden-import proxmoxer.backends.https \
main.py
# Output: dist/main
Build MSI (Windows)
Installa WiX Toolset e usa build_vdiclient.bat.


