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

@@ -1,15 +1,5 @@
# 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 --version "=0.5.0"
# Use the official librespot image
FROM ghcr.io/librespot-org/librespot:latest
# Stage 2: Minimal runtime image
FROM debian:bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local/cargo/bin/librespot /usr/local/bin/librespot
ENTRYPOINT ["librespot"]
# The official image already has the entrypoint set to librespot
# We just need to ensure it's used correctly in docker-compose

View File

@@ -1,3 +1,17 @@
#!/bin/sh
set -e
# Create the audio directory if it doesn't exist
mkdir -p /tmp/audio
# Create the named pipes if they don't exist
for pipe in spotify.pcm airplay.pcm mopidy.pcm; do
path="/tmp/audio/$pipe"
if [ ! -p "$path" ]; then
mkfifo "$path"
echo "Created pipe: $path"
fi
done
echo "All audio pipes ready. Starting Mopidy..."
exec "$@"

View File

@@ -1,13 +1,14 @@
FROM debian:bookworm-slim
ARG VERSION=0.35.0
RUN apt-get update \
&& 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 \
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["snapclient"]
RUN ARCH=$(dpkg --print-architecture) \
&& curl -L "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
ENTRYPOINT ["/usr/bin/snapclient"]

View File

@@ -1,14 +1,22 @@
FROM debian:bookworm-slim
ARG VERSION=0.35.0
ARG WEB_VERSION=0.9.1
RUN apt-get update \
&& 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 \
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
unzip \
&& rm -rf /var/lib/apt/lists/*
RUN ARCH=$(dpkg --print-architecture) \
&& curl -L "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
RUN curl -L "https://github.com/badaix/snapweb/releases/download/v${WEB_VERSION}/snapweb.zip" -o /tmp/snapweb.zip \
&& mkdir -p /usr/share/snapserver/snapweb \
&& unzip -o /tmp/snapweb.zip -d /usr/share/snapserver/snapweb \
&& rm /tmp/snapweb.zip
EXPOSE 1704 1705 1780
CMD ["snapserver"]