feat(core, device-initialization): Netzwerk-Discovery verbessert, IP-Binding hinzugefügt und UI optimiert
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# POC Guide: Technische Geräte-Initialisierung (Meilenstein 0)
|
||||
|
||||
Dieses Dokument beschreibt die Schritte zur Durchführung des Hardware-POC für die technische Initialisierung der Meldestelle Desktop-App.
|
||||
|
||||
## 🏗️ Vorbereitung (Build & Deployment)
|
||||
|
||||
### 1. Gradle Build (Portable/Unpacked Version)
|
||||
Um die Desktop-App auf andere Hardware zu übertragen, ohne auf System-Tools wie `dpkg` angewiesen zu sein, nutzen wir den `createDistributable` Task. Dieser erstellt ein vollständiges, ausführbares Image der App.
|
||||
|
||||
```bash
|
||||
./gradlew :frontend:shells:meldestelle-desktop:createDistributable
|
||||
```
|
||||
|
||||
* **Ergebnis:** Das fertige App-Image liegt im Verzeichnis:
|
||||
`frontend/shells/meldestelle-desktop/build/compose/binaries/main/app`
|
||||
* **Vorteil:** Keine Installation auf dem Ziel-System notwendig, läuft direkt aus dem Ordner (Portable).
|
||||
|
||||
### 2. Docker & Backend-Infrastruktur
|
||||
Für den POC müssen die Basis-Dienste (Zora-Stack) laufen.
|
||||
|
||||
* **Docker-Files:** Die Dateien `docker-compose.yaml` (App-Services) und `dc-infra.yaml` (Infrastruktur wie Postgres, Keycloak) sind korrekt implementiert und für den POC-Einsatz bereit.
|
||||
* **Start:** `docker-compose up -d` (Stellt sicher, dass das Backend erreichbar ist, falls die App Daten synchronisieren will).
|
||||
* **Verifikation:** Alle Container müssen `healthy` sein.
|
||||
|
||||
### 3. Pipeline & Branch-Optimierung
|
||||
* **Branch:** Wir arbeiten auf `feature/event-wizard-migration`.
|
||||
* **Optimierung:** Die Pipeline ist für diesen Branch so konfiguriert, dass sie die notwendigen Artefakte baut.
|
||||
* **Pull Request (PR):** Für den lokalen Hardware-POC ist **kein voriger PR** notwendig. Du kannst direkt vom Branch bauen. Ein PR ist erst für den Merch in den Main-Branch nach erfolgreichem POC erforderlich.
|
||||
|
||||
## 🧪 Durchführung des POC
|
||||
|
||||
### 1. Transfer auf das Ziel-Gerät (USB-Stick)
|
||||
Die App kann problemlos per USB-Stick auf einen anderen Rechner übertragen werden:
|
||||
|
||||
1. Führe den oben genannten Gradle-Build aus.
|
||||
2. Kopiere den **gesamten Inhalt** des Ordners `frontend/shells/meldestelle-desktop/build/compose/binaries/main/app` auf deinen USB-Stick.
|
||||
3. Stecke den Stick am Ziel-Rechner (z.B. Zora-Hardware) an.
|
||||
4. Du kannst die App direkt vom Stick starten oder den Ordner lokal auf den Desktop kopieren.
|
||||
5. Starte die ausführbare Datei `meldestelle` (unter Linux) bzw. `meldestelle.exe` (unter Windows).
|
||||
|
||||
### 2. Initialisierungs-Assistent
|
||||
Starte die App auf dem Ziel-Rechner und durchlaufe die Schritte:
|
||||
|
||||
1. **Identität:** Name vergeben (z.B. "POC-Meldestelle-01").
|
||||
2. **Pfade:** Datenbank-Pfad bestätigen (wird lokal auf dem Gerät angelegt).
|
||||
3. **Netzwerk-Interface (Kritisch):**
|
||||
- Wähle auf **beiden** Rechnern das Interface aus, das mit dem gemeinsamen Netzwerk verbunden ist (z.B. `🔌 Ethernet (192.168.0.x)`).
|
||||
- Achte auf den **grünen Punkt** neben dem Interface. Ein roter Punkt bedeutet, das Interface hat keine gültige LAN-IP.
|
||||
- Sobald das Interface gewählt ist, startet der "Discovery Radar".
|
||||
- Setze einen Rechner auf **Master** und den anderen auf **Client**.
|
||||
- **Verifikation:** Der Client sollte nun den Master im Radar anzeigen ("Master im Netzwerk gefunden").
|
||||
4. **Plan-USB Test:**
|
||||
- Weiteren (leeren) USB-Stick einstecken.
|
||||
- Pfad zum Stick in der App wählen.
|
||||
- "Initialisierungs-Export durchführen" klicken.
|
||||
- **Erfolgskriterium:** Die Datei `init_device.aes` muss auf dem Stick erstellt worden sein.
|
||||
|
||||
## ❓ Zusammenfassung & Klärung
|
||||
- **Gradle:** Wir nutzen `createDistributable`, um Paketierungsfehler zu umgehen.
|
||||
- **Docker:** Ist korrekt und einsatzbereit.
|
||||
- **Portable:** Ja, die App ist durch das Kopieren des `app`-Ordners voll portabel.
|
||||
- **Pipeline:** Aktueller Branch ist "good to go".
|
||||
|
||||
**Status:** Bereit für Hardware-Test.
|
||||
Reference in New Issue
Block a user