Initial implementation: Bordanlage boat onboard system

Complete multiroom audio + navigation dashboard:
- Docker stack: SignalK, Snapcast (4 zones), librespot, shairport-sync, Mopidy, Jellyfin, Portainer
- React 18 + Vite dashboard with nautical dark theme
- Full mock system (SignalK NMEA simulation, Snapcast zones, Mopidy player)
- Real API clients for all services with reconnect logic
- SVG instruments: Compass, WindRose, Gauge, DepthSounder, SpeedLog
- Pages: Overview, Navigation, Audio (zones/radio/library), Systems
- Dev mode runs fully without hardware (make dev)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-26 11:47:33 +01:00
commit 946c0a5377
57 changed files with 3450 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -e
PIPE_DIR="${PIPE_DIR:-/tmp/audio}"
mkdir -p "$PIPE_DIR"
for pipe in spotify.pcm airplay.pcm mopidy.pcm; do
path="$PIPE_DIR/$pipe"
if [ ! -p "$path" ]; then
mkfifo "$path"
echo "Created pipe: $path"
else
echo "Pipe already exists: $path"
fi
done
echo "All audio pipes ready."

View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -e
echo "Setting up production (boat) environment..."
# Copy .env if not exists
if [ ! -f .env ]; then
cp .env.example .env
echo "Created .env please edit SPOTIFY_NAME, BOAT_NAME, BOAT_MMSI"
fi
# Create music directory
mkdir -p music
# Init pipes (persistent on boat)
PIPE_DIR=/tmp/audio bash scripts/init-pipes.sh
echo ""
echo "Edit .env then run 'make boot' to start."
echo "Dashboard: http://<boat-ip>:8080"
echo ""
echo "IMPORTANT: Review docker-compose.yml and uncomment:"
echo " - /dev/ttyUSB0 for NMEA hardware"
echo " - /dev/snd for zone audio output"
echo " - /dev/dri for hardware video decoding"

21
bordanlage/scripts/setup-dev.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -e
echo "Setting up development environment..."
# Copy .env if not exists
if [ ! -f .env ]; then
cp .env.example .env
echo "Created .env from .env.example"
fi
# Create music directory
mkdir -p music
echo "Music directory: ./music (drop your files here)"
# Init pipes
bash scripts/init-pipes.sh
echo ""
echo "Done! Run 'make dev' to start all services."
echo "Dashboard: http://localhost:8080"