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

View File

@@ -28,14 +28,29 @@ Audio flow: `librespot / shairport / mopidy` → named pipe (PCM) → `snapserve
```bash
make dev
# or without make:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
```
Dashboard with hot-reload: **http://localhost:8090**
**Dashboard with hot-reload:** http://localhost:8090
**Everything runs in the browser - no additional software needed!**
On first run, Docker builds the custom images (snapserver, snapclient, mopidy, librespot stub). Subsequent starts are instant.
### Mac audio output
### Browser-Only Testing (Windows/Mac)
All services are accessible via browser:
- **Dashboard (Main UI):** http://localhost:8090 - Full boat control interface
- **Snapcast Web:** http://localhost:1780 - Audio zones + browser playback via Web Audio API
- **Mopidy/Iris:** http://localhost:6680/iris/ - Music player
- **SignalK:** http://localhost:3000 - Navigation backend (admin/bordanlage)
**Audio in browser:** Open Snapcast Web UI → Click 🔊 icon → Enable Web Audio playback!
### Native audio output
**Mac:**
```bash
make mac-audio # runs snapclient natively via Homebrew → Mac speakers
make spotify # runs librespot natively via Homebrew → Spotify Connect on Mac
@@ -43,6 +58,15 @@ make spotify # runs librespot natively via Homebrew → Spotify Connect on M
Both commands require `brew install snapcast` / `brew install librespot` (auto-installed if missing).
**Windows:**
```powershell
make windows-audio # runs snapclient natively → Windows speakers (WASAPI)
```
Requires manual install: Download from https://github.com/badaix/snapcast/releases
See [WINDOWS_AUDIO_SETUP.md](WINDOWS_AUDIO_SETUP.md) for detailed Windows setup instructions.
---
## Service URLs
@@ -171,9 +195,15 @@ In **dev mode**, pipes are not used (no audio hardware crosses the Docker VM bou
---
## Migrating to the Boat
## Deployment to Boat (Ubuntu Server)
Changes in `docker-compose.yml`:
This system is designed to run on a boat with an Ubuntu server in kiosk mode.
**See detailed guide:** [KIOSK_SETUP.md](KIOSK_SETUP.md)
### Quick Summary
Changes in `docker-compose.yml` for production:
1. **Zone audio output** — replace `--player file:filename=null` with `--player alsa --soundcard hw:N,0`, uncomment `/dev/snd` device
2. **Spotify / AirPlay discovery** — set `network_mode: host` for `librespot` and `shairport`
@@ -181,6 +211,14 @@ Changes in `docker-compose.yml`:
4. **Video decoding** (optional) — uncomment `/dev/dri` under `jellyfin`
5. Use `make boot` instead of `make dev`
### Kiosk Mode (Chromium Fullscreen)
```bash
chromium-browser --kiosk http://localhost:8080
```
See [KIOSK_SETUP.md](KIOSK_SETUP.md) for complete Ubuntu server setup with autostart.
---
## Troubleshooting