# Build — Proxmox SPICE Client ## Voraussetzungen ```bash node >= 18 npm >= 9 ``` Für Linux-Builds auf Linux-Host. Windows-Builds entweder nativ auf Windows oder via Wine (cross-build eingeschränkt — nativ empfohlen). --- ## Entwicklung (ohne Build) ```bash npm install npm start ``` --- ## Produktions-Build ### Linux — AppImage + .deb ```bash npm run build:linux # Output: # dist/Proxmox SPICE Client-1.0.0.AppImage ← portable, kein Install nötig # dist/proxmox-spice-client_1.0.0_amd64.deb ← Paket für apt ``` **Abhängigkeiten:** - **AppImage**: Selbst-enthalten (Electron inklusive). Beim ersten Start wird geprüft ob `virt-viewer` installiert ist. Falls nicht: Dialog mit automatischer Installation via `pkexec apt install virt-viewer`. - **.deb**: Deklariert `virt-viewer` als `Depends` — apt installiert es automatisch mit: ```bash sudo apt install ./proxmox-spice-client_1.0.0_amd64.deb ``` ### Windows — Setup.exe (NSIS) ```bash # Am besten nativ auf Windows bauen: npm run build:win # Output: # dist/Proxmox SPICE Client Setup 1.0.0.exe ``` **Abhängigkeiten:** Der NSIS-Installer prüft automatisch ob VirtViewer installiert ist. Falls nicht: 1. Fragt den Benutzer ob VirtViewer jetzt installiert werden soll 2. Lädt das MSI-Paket von virt-manager.org herunter (~30 MB, benötigt Internet) 3. Installiert VirtViewer still im Hintergrund Kein manueller Schritt nötig — der Installer kümmert sich um alles. ### Beides auf einmal ```bash npm run build:linux && npm run build:win ``` --- ## Icons Dateien in `assets/` müssen vor dem Build vorhanden sein: | Datei | Größe | Verwendung | |-------|-------|------------| | `assets/icon.png` | mind. 512×512 | Linux AppImage + deb | | `assets/icon.ico` | multi-size | Windows NSIS Installer | | `assets/icon.icns` | multi-size | macOS (optional) | **PNG → ICO konvertieren (Linux):** ```bash sudo apt install imagemagick convert assets/icon.png -resize 256x256 assets/icon.ico ``` --- ## Verzeichnisstruktur ``` proxmox-spice-client/ ├── src/ │ ├── main.js # Electron-Hauptprozess │ ├── preload.js # Context-Bridge │ ├── proxmox.js # Proxmox REST API Client │ └── renderer/ │ ├── login.html │ ├── login.js │ ├── vms.html │ ├── vms.js │ └── styles.css ├── assets/ │ ├── icon.png # Quell-Icon (mind. 512×512) │ ├── icon.ico # Windows │ └── icon.icns # macOS (optional) ├── build/ │ └── installer.nsh # Benutzerdefiniertes NSIS-Script (VirtViewer-Install) ├── daten/ # persistente Einstellungen (Docker-Mount) ├── Dockerfile ├── docker-compose.yml ├── .env.example ├── package.json └── BUILD.md ``` --- ## Hinweise - `npm run build:win` auf Linux erfordert Wine (`sudo apt install wine`) für den cross-build. Nativ auf Windows ist stabiler. - Der NSIS-Installer lädt VirtViewer zur Installationszeit herunter (benötigt Internetverbindung). Wer offline-fähig sein will: VirtViewer-MSI vorher separat verteilen und manuell installieren. - USB-Redirect, Vollbild (`Shift+F11`), Multi-Monitor: alles via VirtViewer nativ — kein Extra-Setup.