# Proxmox SPICE Client Electron-basierter Desktop-Client für Proxmox VE — als Alternative zu RDP/noVNC. Nutzt das SPICE-Protokoll über `virt-viewer` für USB-Redirect, Vollbild und Multi-Monitor-Support. ## Features - **Auto-Connect** — hat ein Benutzer nur eine SPICE-fähige VM, wird direkt verbunden (kein Menü) - **VM-Liste** — bei mehreren VMs erscheint ein Auswahl-Menü (nur laufende VMs mit SPICE) - **Credential-Speicher** — Zugangsdaten optional lokal speichern - **USB-Redirect** — nativ über `remote-viewer` (kein Plugin nötig) - **Vollbild / Multi-Monitor** — `Shift+F11` im SPICE-Viewer - **Proxmox-Benutzer-Konten** — jeder User sieht nur seine zugewiesenen VMs ## Voraussetzungen ### Client-Maschinen **Linux:** ```bash sudo apt install virt-viewer ``` **Windows:** Download: https://virt-manager.org/download/ ### Node.js / npm ```bash node >= 18 npm >= 9 ``` ## Installation & Start ```bash git clone https://git.hacker-net.de/aria.hacker/proxmox-spice-client.git cd proxmox-spice-client npm install npm start ``` ## Build (AppImage / deb / Windows Installer) ```bash npm run build:linux # → dist/*.AppImage + *.deb npm run build:win # → dist/*Setup*.exe ``` Siehe [BUILD.md](BUILD.md) für detaillierte Build-Anleitung inkl. Icon-Konvertierung. ## Docker (X11-Forwarding) ```bash cp .env.example .env # DISPLAY und PULSE_UID anpassen xhost +local:docker docker compose up --build ``` Persistente Daten (Zugangsdaten) landen im Verzeichnis `./daten/`. ## Konfiguration | Einstellung | Ort | |---|---| | Proxmox-URL | Login-Maske in der App | | Zugangsdaten | Optional lokal gespeichert (electron-store) | | Realm | Login-Maske (Standard: `pam`) | ## Architektur ``` src/ ├── main.js # Electron-Hauptprozess, IPC, SPICE-Ticket, remote-viewer-Start ├── preload.js # Context-Bridge (sicherer API-Kanal ins Renderer) ├── proxmox.js # Proxmox REST API Client (self-signed SSL OK) └── renderer/ ├── login.html/js # Login mit optionalem Credential-Speicher ├── vms.html/js # VM-Liste, Auto-Connect-Logik └── styles.css # Dark-UI ``` **Ablauf:** 1. Login mit Proxmox-Credentials (Benutzer + Realm) 2. `GET /cluster/resources?type=vm` — nur zugewiesene VMs 3. Filter: laufend + SPICE-fähig (`qxl*` oder `virtio-vga-gl`) 4. Eine VM → direkt verbinden; mehrere → Liste 5. SPICE-Ticket via `/spiceproxy` → `.vv`-Datei → `remote-viewer` ## Lizenz MIT