Files
proxmox-spice-client/README.md
T

93 lines
2.4 KiB
Markdown

# 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