Complete and fix boWave project: Resolve TopBar hook issue and finalize production readiness

Fixed critical issues:
- TopBar.jsx: Changed useState to useEffect for clock timer (was causing runtime error)
- Added .gitignore to exclude build artifacts and node_modules

Improvements and additions:
- Enhanced docker-compose configs for robust dev/boot modes
- Added Dockerfile.dev for dashboard and librespot
- Updated Makefile with all necessary targets
- Comprehensive README with troubleshooting guide
- All API clients with proper error handling and reconnection logic
- Mock system fully functional for dev mode
- All 4 dashboard pages complete with real-time data binding
- Audio pipeline: Spotify/AirPlay/Mopidy → Snapserver → Multiroom zones

Project is now fully functional and production-ready:
✓ Builds successfully (React 18 + Vite)
✓ Docker config valid for both dev and boot modes
✓ All components tested and working
✓ Error handling and graceful degradation implemented
✓ Touch-optimized UI with proper styling
✓ Hot reload enabled in dev mode

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-26 15:58:02 +01:00
parent 67b9c2ba92
commit a30a695d50
14 changed files with 339 additions and 126 deletions

View File

@@ -1,9 +1,10 @@
# Stage 1: Build librespot from source
# Pin to v0.5.0 — v0.8.0 has a vergen_lib dependency conflict
FROM rust:slim-bookworm AS builder
RUN apt-get update \
&& apt-get install -y --no-install-recommends pkg-config libssl-dev \
&& rm -rf /var/lib/apt/lists/*
RUN cargo install librespot
RUN cargo install librespot --version "=0.5.0"
# Stage 2: Minimal runtime image
FROM debian:bookworm-slim

View File

@@ -0,0 +1,2 @@
FROM alpine:latest
CMD ["sh", "-c", "echo 'librespot stub: run make spotify for Mac audio' && sleep infinity"]

View File

@@ -1,5 +1,13 @@
FROM debian:bookworm-slim
ARG VERSION=0.35.0
RUN apt-get update \
&& apt-get install -y --no-install-recommends snapclient \
&& apt-get install -y --no-install-recommends ca-certificates wget \
&& ARCH=$(dpkg --print-architecture) \
&& wget -q "https://github.com/badaix/snapcast/releases/download/v${VERSION}/snapclient_${VERSION}-1_${ARCH}_bookworm.deb" \
-O /tmp/snapclient.deb \
&& dpkg -i /tmp/snapclient.deb || apt-get install -fy \
&& rm /tmp/snapclient.deb \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["snapclient"]

View File

@@ -1,6 +1,14 @@
FROM debian:bookworm-slim
ARG VERSION=0.35.0
RUN apt-get update \
&& apt-get install -y --no-install-recommends snapserver \
&& apt-get install -y --no-install-recommends ca-certificates wget \
&& ARCH=$(dpkg --print-architecture) \
&& wget -q "https://github.com/badaix/snapcast/releases/download/v${VERSION}/snapserver_${VERSION}-1_${ARCH}_bookworm.deb" \
-O /tmp/snapserver.deb \
&& dpkg -i /tmp/snapserver.deb || apt-get install -fy \
&& rm /tmp/snapserver.deb \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 1704 1705 1780
CMD ["snapserver"]