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%
Find a file
2026-06-12 17:20:27 +02:00
gui Modifiche per errore Tkinter 2026-06-12 17:20:27 +02:00
proxmox Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
resources Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
utils Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
.gitignore primo commit 2026-06-10 10:31:39 +02:00
build_vdiclient.bat Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
config.py Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
install-desktop.sh Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
LICENSE Modifiche per errore Tkinter 2026-06-12 17:20:27 +02:00
main.py Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
README.md Modifiche per errore Tkinter 2026-06-12 17:20:27 +02:00
README2.md Modifiche per errore Tkinter 2026-06-12 17:20:27 +02:00
requirements.txt Pulizia codice con Claude 2026-06-11 22:38:43 +02:00
vdi-client.desktop Modifiche per errore Tkinter 2026-06-12 17:20:27 +02:00
vdiclient.ini.example Pulizia codice con Claude 2026-06-11 22:38:43 +02:00

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.

Login Screen Login con OTP Lista VM


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.PowerMgmt
  • VM.Console
  • VM.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.