feat: complete dashboard redesign, proxy unification, and Windows compatibility fixes

This commit is contained in:
2026-04-02 12:13:37 +02:00
parent 8192388c5d
commit fec4e4635c
33 changed files with 3002 additions and 135 deletions

243
SCHNELLSTART_WINDOWS.md Normal file
View File

@@ -0,0 +1,243 @@
# 🚢 boWave - Schnellstart für Windows
## In 2 Schritten zum laufenden System
> **🎯 Ziel:** Komplett browser-basiertes Testing - keine zusätzliche Software nötig!
> Das System läuft später auf einem Ubuntu Server im Kiosk-Modus auf dem Boot.
### ✅ Schritt 1: System starten
```powershell
# Option A: Mit make (falls installiert)
make dev
# Option B: Ohne make
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
```
**Das startet:**
- 🎵 Snapserver (Multiroom Audio auf Port 1704, 1705, 1780)
- 🧭 SignalK mit **Mock NMEA-Daten** (Navigation, GPS, Wetter, Motor, Batterien)
- 🎶 Mopidy (Musik-Player mit Iris UI)
- 📺 Dashboard mit Live-Reload auf http://localhost:8090
- 🔇 4 Boot-Zonen (Salon, Cockpit, Bug, Heck) - alle im Docker
**Wichtig:** Alle Services nutzen Mock-Daten - kein echtes Boot nötig!
---
### 🎵 Schritt 2: Browser öffnen & testen
**Alles läuft im Browser - keine Installation nötig!**
#### 1⃣ **Hauptdashboard** (Haupt-UI fürs Boot)
```
http://localhost:8090
```
- Navigation mit Live-Daten (Kurs, Geschwindigkeit, Tiefe)
- Audio-Zonen Steuerung
- Alle Boat-Systeme auf einen Blick
- **Das ist die UI, die später im Kiosk-Modus auf dem Boot läuft!**
#### 2⃣ **Snapcast Web UI** (Audio-Zonen & Browser-Playback)
```
http://localhost:1780
```
- Alle 4 Boot-Zonen sichtbar (Salon, Cockpit, Bug, Heck)
- Lautstärke-Kontrolle für jede Zone
- Source-Switching (Spotify/AirPlay/Mopidy)
- **🔊 Audio im Browser abspielen:** Klicke auf "🔊" Symbol → Audio über Web Audio API!
#### 3⃣ **Mopidy Music Player** (Musik-Bibliothek)
```
http://localhost:6680/iris/
```
- Moderne Player-UI (Iris)
- Local Files durchsuchen
- TuneIn Radio (Tausende Sender)
- Play/Pause/Skip Controls
#### 4⃣ **SignalK** (Navigation Backend)
```
http://localhost:3000
```
- Login: `admin` / `bordanlage`
- NMEA 2000 Stream Monitoring
- WebSocket Delta Stream
- Real-time Sensor Data
---
## 📊 Service Übersicht
| Service | URL | Beschreibung |
|---------|-----|--------------|
| **🎛️ Dashboard** | http://localhost:8090 | **Haupt-UI** - Navigation + Audio (Kiosk-Modus auf Boot) |
| **🔊 Snapcast Web** | http://localhost:1780 | Audio-Zonen + **Browser-Playback** (Web Audio API) |
| **🎵 Mopidy/Iris** | http://localhost:6680/iris/ | Musik-Player (Local Files + Radio) |
| **🧭 SignalK** | http://localhost:3000 | Navigation Backend (Login: admin / bordanlage) |
| **🎬 Jellyfin** | http://localhost:8096 | Mediathek (Videos, optional) |
| **🐳 Portainer** | http://localhost:9000 | Docker Management |
**💡 Tipp:** Das Dashboard (Port 8090) ist die Hauptoberfläche, die später auf dem Boot im Kiosk-Modus läuft!
---
## 🎭 Mock-Daten erklärt
Das System läuft komplett mit **realistischen Test-Daten**:
### 🧭 Navigation (SignalK)
- GPS Position: Ostsee bei Kiel
- Geschwindigkeit: 3,5-8 Knoten (schwankt realistisch)
- Kurs: 200-235°
- Wassertiefe: 6-25 Meter
- Windgeschwindigkeit: 8-22 Knoten
### ⚡ Elektrik
- Starterbatterie: 12,2-12,9V
- Hausbatterie: 24,5-25,6V (2x 12V)
- Lichtmaschine: 30-60A
### 🔧 Motor
- Drehzahl: 1500-2100 RPM
- Kraftstoffverbrauch: 10-15 L/h
- Betriebsstunden: läuft kontinuierlich hoch
### 🎵 Audio-Zonen
- 4 Boot-Zonen (Salon, Cockpit, Bug, Heck) - initial stumm
- Deine PC-Zone (windows-pc) - wenn du snapclient startest
- 3 Audio-Quellen: Spotify, AirPlay, Mopidy
**Alle Werte ändern sich in Echtzeit und verhalten sich realistisch!**
---
## 🛑 System stoppen
```powershell
make stop
```
---
## 🎧 Audio testen (komplett im Browser!)
### Im Browser Audio abspielen:
1. **Öffne Snapcast Web UI:** http://localhost:1780
2. **Wähle eine Zone** (z.B. "zone-salon")
3. **Klicke auf das 🔊 Symbol** (oben rechts)
4. **Aktiviere Browser Audio Playback**
5. **Spiele Musik in Mopidy** → Audio kommt über deinen Browser!
**Hinweis:** Das nutzt die Web Audio API - funktioniert in Chrome, Firefox, Edge.
### Musik starten:
1. **Öffne Mopidy:** http://localhost:6680/iris/
2. **Klicke auf "Browse"** → "TuneIn" oder "Local Files"
3. **Wähle einen Sender/Track** und klicke Play
4. **Audio läuft nun** über Snapcast → Browser Audio
---
## 🔧 Troubleshooting
### Problem: "make: Befehl nicht gefunden"
**Kein Problem!** Nutze einfach Docker Compose direkt:
```powershell
# Statt "make dev":
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
# Statt "make stop":
docker compose -f docker-compose.yml -f docker-compose.dev.yml down
# Statt "make logs":
docker compose -f docker-compose.yml -f docker-compose.dev.yml logs -f
```
### Problem: Dashboard zeigt keine Daten
1. **Prüfe ob alle Container laufen:**
```powershell
docker compose -f docker-compose.yml -f docker-compose.dev.yml ps
```
2. **Alle Services sollten "Up" sein**
- Falls Mopidy restartet: `docker compose logs mopidy`
3. **Dashboard lädt Mock-Daten automatisch** (`VITE_USE_MOCK=true`)
### Problem: Port 8090 bereits belegt
Ändere den Port in `docker-compose.dev.yml`:
```yaml
# Zeile 49:
ports:
- "8091:8090" # Nutze 8091 statt 8090
```
Dann: http://localhost:8091
---
## 📖 Weitere Dokumentation
- **Ausführliche Windows-Anleitung:** [WINDOWS_AUDIO_SETUP.md](WINDOWS_AUDIO_SETUP.md)
- **Mock-Daten Details:** [MOCK_DATA_EXPLANATION.md](MOCK_DATA_EXPLANATION.md)
- **Projekt-Übersicht:** [README.md](README.md)
- **Schiffs-Routing:** [SHIP_ROUTING.md](SHIP_ROUTING.md)
---
## 🚀 Deployment auf Ubuntu Boot-Server (später)
Wenn du das System aufs Boot bringen willst:
### Ubuntu Kiosk-Modus Setup:
```bash
# 1. Docker installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 2. Repository klonen
git clone <your-repo> /opt/boWave
cd /opt/boWave
# 3. Production Mode starten
make boot # Nutzt docker-compose.yml (ohne .dev overlay)
# 4. Chromium Kiosk Mode (autostart)
cat > ~/.config/autostart/kiosk.desktop << EOF
[Desktop Entry]
Type=Application
Name=Boat Dashboard Kiosk
Exec=chromium-browser --kiosk --noerrdialogs --disable-infobars --disable-session-crashed-bubble http://localhost:8080
EOF
```
**Unterschiede Boot vs. Dev:**
- Boot: Port 8080 (Production Build)
- Boot: Echte Audio-Hardware (`--player alsa --soundcard hw:0,0`)
- Boot: NMEA Hardware-Anschluss (USB/Serial)
- Boot: Spotify/AirPlay Discovery über `network_mode: host`
---
## 🎉 Viel Spaß!
Das System ist jetzt **komplett browser-basiert** zum Testen - keine zusätzliche Software nötig!
**Was du testen kannst:**
- ✅ Navigation Dashboard mit Live Mock-Daten
- ✅ Audio-Zonen Kontrolle (Browser-Playback)
- ✅ Musik Player (Mopidy/Iris)
- ✅ Multiroom Audio Synchronisation
- ✅ Alle UI-Komponenten die später auf dem Boot laufen
**Alles läuft wie auf dem Boot - nur ohne echte Hardware!** 🚢⚓