Die feste Adresse 192.168.180.135 der SwyxTray-App wird überall durch
127.0.0.1 ersetzt: Die App läuft auf dem Arbeitsplatz des Anwenders, die
Verbindung bleibt damit auf dem Rechner und braucht keine Firewall-Freigabe.
Scheitert der Verbindungsaufbau, weil eine über HTTPS ausgelieferte Seite
kein unverschlüsseltes ws:// öffnen darf, meldet der Browser nur "The
operation is insecure." – describeConnectFailure() benennt stattdessen den
Grund und den Ausweg (wss:// oder Loopback).
node_modules/ wird nun auf jeder Ebene ignoriert, nicht nur unter frontend/.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ein Container liefert Startseite und REST-API über Port 8080 aus: Das
Dockerfile baut das Frontend mit Node, legt das Ergebnis in die statischen
Ressourcen des Backends und packt beides mit Maven zum Jar; die Laufzeit-
stufe enthält nur ein JRE und das Jar, ausgeführt als Benutzer swyx.
Die beiden Build-Stufen laufen auf $BUILDPLATFORM, also nativ auf dem
bauenden Rechner - JS-Bundle und Jar sind architekturunabhängig. Nur das
Laufzeit-Image wird für die Zielarchitektur gezogen, was beim Bauen für
linux/amd64 auf einem ARM-Mac die Emulation spart.
docker_push.sh liest die Version aus backend/pom.xml, baut für linux/amd64
und pusht in die Registry.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>