# Mopidy music server with Qobuz + local files
# Builds from python:3.12-slim + pip (no ghcr.io dependency)

FROM python:3.12-slim-bookworm

# System deps for mopidy + extensions + GStreamer playback + PyGObject
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      gstreamer1.0-tools \
      gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-bad \
      gstreamer1.0-plugins-ugly \
      libcairo2 \
      libpango-1.0-0 \
      libpangoft2-1.0-0 \
      libgirepository-2.0-0 \
      libgirepository1.0-dev \
      gir1.2-glib-2.0 \
      gir1.2-gstreamer-1.0 \
      gir1.2-gst-plugins-base-1.0 \
 && rm -rf /var/lib/apt/lists/*

RUN pip install --no-cache-dir \
    "setuptools<80" \
    Mopidy==3.4.2 \
    Mopidy-Qobuz \
    Mopidy-Local

# Default config (overridable via bind mount)
COPY mopidy.conf /config/mopidy.conf

VOLUME ["/var/lib/mopidy", "/music"]
EXPOSE 6680

# Run as the unprivileged "mopidy" user from python base
USER nobody

CMD ["mopidy", "--config", "/config/mopidy.conf"]
