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
|
||||
```
|
||||
@@ -0,0 +1,47 @@
|
||||
# 🧪 Testplan: Real-World Netzwerk-POC (Chat)
|
||||
|
||||
Ziel dieses Tests ist die Verifizierung der stabilen Kommunikation zwischen verschiedenen Geräten (Master & Client) im lokalen Netzwerk (LAN/WLAN) inklusive automatischer Dienst-Erkennung (mDNS).
|
||||
|
||||
---
|
||||
|
||||
## Vorbereitung (USB-Stick)
|
||||
|
||||
Folgende Dateien sollten auf dem Test-USB-Stick vorhanden sein:
|
||||
1. **Installer:** Das .rpm oder .deb Paket der App (oder der distributable Ordner).
|
||||
2. **Windows-Installer:** Die .msi Datei (via Conveyor).
|
||||
3. **Setup-Skript:** setup-firewall-linux.sh.
|
||||
|
||||
---
|
||||
|
||||
## Durchführung
|
||||
|
||||
### 1. Master-Gerät einrichten (Zentrale)
|
||||
1. App auf dem Haupt-PC installieren und starten.
|
||||
2. In der **Geräte-Initialisierung**:
|
||||
* Rolle: **MASTER** wählen.
|
||||
* Gerätename vergeben (z.B. "Meldestelle-Master").
|
||||
* Sicherheitsschlüssel (Sync-Key) festlegen (z.B. "geheim123").
|
||||
3. Auf **Finalisieren** klicken.
|
||||
4. Der Master zeigt nun seine IP-Adresse an und wartet auf Clients.
|
||||
|
||||
### 2. Client-Geräte einrichten (Richter/PC)
|
||||
1. App auf weiteren Geräten (Linux/Windows) starten.
|
||||
2. In der **Geräte-Initialisierung**:
|
||||
* Rolle: **CLIENT** wählen.
|
||||
* **Shared Key** eingeben (muss exakt wie beim Master sein).
|
||||
3. Warten, bis der Master in der Liste erscheint (mDNS Discovery).
|
||||
4. Master auswählen und auf **Jetzt verbinden** klicken.
|
||||
|
||||
### 3. Verbindungs-Check & Chat
|
||||
1. Sobald der Status auf "Verbunden" steht, den Button **"Verbindung testen (Chat & Self-Test)"** klicken.
|
||||
2. Im Chat-Modal eine Nachricht schreiben.
|
||||
3. Prüfen, ob die Nachricht auf allen verbundenen Geräten erscheint.
|
||||
4. Den automatischen "Ping-Pong" Self-Test beobachten.
|
||||
|
||||
---
|
||||
|
||||
## Erfolgskriterien
|
||||
* [ ] Master wird innerhalb von 10 Sekunden automatisch in der Client-Liste gefunden.
|
||||
* [ ] Nachrichten werden nahezu verzögerungsfrei (< 500ms) übertragen.
|
||||
* [ ] Der Status wechselt zuverlässig auf "CONNECTED".
|
||||
* [ ] Keine FocusRelatedWarning mehr in der Konsole/Log.
|
||||
Reference in New Issue
Block a user