feat(frontend): Grundlegendes HTML-Template für Website hinzugefügt
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# 📦 Guide: Desktop App Packaging (Linux, Windows, macOS)
|
||||
|
||||
Dieses Dokument beschreibt, wie die Meldestelle Desktop App für verschiedene Betriebssysteme paketiert wird. Wir nutzen einen hybriden Ansatz aus **Gradle (Compose-Desktop)** für lokale Linux-Builds und **Conveyor** für das Cross-Packaging (Windows/macOS) von Linux aus.
|
||||
|
||||
---
|
||||
|
||||
## 1. Voraussetzungen
|
||||
|
||||
### Linux (Entwicklungsrechner / Fedora)
|
||||
Um native Pakete bauen zu können, müssen folgende Werkzeuge auf dem System vorhanden sein:
|
||||
|
||||
```bash
|
||||
# Für RPM-Pakete (Fedora)
|
||||
sudo dnf install rpm-build
|
||||
|
||||
# Für DEB-Pakete (Ubuntu/Debian)
|
||||
sudo apt install dpkg-dev fakeroot
|
||||
```
|
||||
|
||||
### Conveyor (Cross-Packaging Tool)
|
||||
Conveyor wird benötigt, um von Linux aus Windows-Installer (.msi) oder macOS-Pakete zu erzeugen.
|
||||
|
||||
**Installation auf Fedora/Linux:**
|
||||
Da automatisierte Skripte manchmal unzuverlässig sind, hier der direkte Weg über das Binär-Paket:
|
||||
|
||||
1. **Tarball herunterladen:**
|
||||
Besuchen Sie [https://downloads.hydraulic.dev/conveyor/download.html](https://downloads.hydraulic.dev/conveyor/download.html) und laden Sie die neueste `linux-amd64.tar.gz` Datei herunter.
|
||||
|
||||
2. **Manuelle Installation:**
|
||||
```bash
|
||||
# Entpacken
|
||||
tar -xvf hydraulic-conveyor-*-linux-amd64.tar.gz
|
||||
# In den Pfad verschieben
|
||||
sudo mv conveyor /usr/local/bin/
|
||||
```
|
||||
|
||||
3. **Verifizieren:**
|
||||
```bash
|
||||
conveyor --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Lokale Linux-Builds (Gradle)
|
||||
|
||||
Die schnellste Methode, um während der Entwicklung ein installierbares Paket für das eigene System zu erstellen.
|
||||
|
||||
### RPM-Paket (Fedora)
|
||||
```bash
|
||||
./gradlew :frontend:shells:meldestelle-desktop:packageRpm
|
||||
```
|
||||
*Ausgabe: `frontend/shells:meldestelle-desktop/build/compose/binaries/main/rpm/`*
|
||||
|
||||
### DEB-Paket (Ubuntu/Debian)
|
||||
```bash
|
||||
./gradlew :frontend:shells:meldestelle-desktop:packageDeb
|
||||
```
|
||||
*Ausgabe: `frontend/shells:meldestelle-desktop/build/compose/binaries/main/deb/`*
|
||||
|
||||
### Portable Version (Ohne Installation)
|
||||
```bash
|
||||
./gradlew :frontend:shells:meldestelle-desktop:createDistributable
|
||||
```
|
||||
*Ausgabe: `frontend/shells:meldestelle-desktop/build/compose/binaries/main/app/`*
|
||||
|
||||
---
|
||||
|
||||
## 3. Cross-Packaging mit Conveyor
|
||||
|
||||
Conveyor nutzt die kompilierte JAR-Datei und schnürt daraus Pakete für alle Zielplattformen.
|
||||
|
||||
### Schritt 1: JAR erstellen
|
||||
```bash
|
||||
./gradlew :frontend:shells:meldestelle-desktop:jvmJar
|
||||
```
|
||||
|
||||
### Schritt 2: Pakete bauen
|
||||
```bash
|
||||
# Erstellt den Windows-Installer und die HTML-Downloadseite
|
||||
conveyor make site
|
||||
```
|
||||
|
||||
### Schritt 3: Ergebnisse
|
||||
Die fertigen Installer (z.B. `.msi` für Windows) befinden sich im neu erstellten Ordner `output/`.
|
||||
|
||||
---
|
||||
|
||||
## 4. Problembehandlung & Optimierung
|
||||
|
||||
### Native Access Warnungen
|
||||
Die App benötigt Zugriff auf native Bibliotheken (Netty/SQLite). Der notwendige Parameter `--enable-native-access=ALL-UNNAMED` ist bereits fest hinterlegt.
|
||||
|
||||
### Firewall-Konfiguration
|
||||
Für Netzwerk-Tests (Discovery/Chat) müssen die Ports 8090, 8080 und 5353 (UDP) geöffnet sein.
|
||||
Nutzen Sie dafür das bereitgestellte Skript:
|
||||
```bash
|
||||
sudo ./setup-firewall-linux.sh
|
||||
```
|
||||
Reference in New Issue
Block a user