- Windows NSIS: lädt VirtViewer MSI herunter und installiert es während der App-Installation (via PowerShell + msiexec) - Linux .deb: Depends: virt-viewer — apt zieht es automatisch rein - Linux AppImage: Startup-Check mit pkexec-Dialog falls virt-viewer fehlt - BUILD.md aktualisiert: Installer-Verhalten dokumentiert
119 lines
3.3 KiB
Markdown
119 lines
3.3 KiB
Markdown
# 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.
|