Initial commit

This commit is contained in:
2026-09-20 12:37:20 -04:00
commit 20ba018a03
5 changed files with 87 additions and 0 deletions

4
.dockerignore Normal file
View File

@ -0,0 +1,4 @@
music
config
.git
docker-compose.yml

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
config/mopidy.conf
music

44
Dockerfile Normal file
View File

@ -0,0 +1,44 @@
FROM debian:trixie-slim
ENV DEBIAN_FRONTEND=noninteractive \
HOME=/var/lib/mopidy \
PIP_DISABLE_PIP_VERSION_CHECK=1 \
PYTHONUNBUFFERED=1
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates wget \
&& mkdir -p /etc/apt/keyrings \
&& wget -q -O /etc/apt/keyrings/mopidy-archive-keyring.gpg \
https://apt.mopidy.com/mopidy-archive-keyring.gpg \
&& wget -q -O /etc/apt/sources.list.d/mopidy.sources \
https://apt.mopidy.com/trixie.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly \
gstreamer1.0-tools \
mopidy \
mopidy-mpd \
mopidy-spotify \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Mopidy-Iris: latest release supplies the prebuilt frontend, then overlay the
# develop branch's Python modules for Mopidy 4 support (jaedb/Iris#1003).
RUN python3 -m pip install --break-system-packages --no-cache-dir Mopidy-Iris==3.70.0 \
&& wget -qO /tmp/iris-develop.tar.gz \
https://github.com/jaedb/Iris/archive/83770dddb388b8699df414f47f8c80e33d75720d.tar.gz \
&& tar -xzf /tmp/iris-develop.tar.gz -C /tmp \
&& cp /tmp/Iris-83770dddb388b8699df414f47f8c80e33d75720d/mopidy_iris/*.py \
"$(python3 -c 'import os, mopidy_iris; print(os.path.dirname(mopidy_iris.__file__))')" \
&& rm -rf /tmp/Iris-83770dddb388b8699df414f47f8c80e33d75720d /tmp/iris-develop.tar.gz
RUN mkdir -p /var/lib/mopidy/media /var/lib/mopidy/playlists /var/cache/mopidy \
&& chown -R mopidy:audio /var/lib/mopidy /var/cache/mopidy
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod 755 /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["mopidy"]

21
docker-compose.yml Normal file
View File

@ -0,0 +1,21 @@
services:
mopidy:
build: .
image: mopidy:4
container_name: mopidy
restart: unless-stopped
init: true
environment:
EXTRA_PIP_PACKAGES: "https://code.lab.unbl.ink/secstate/mopidy-webhooks/archive/0.2.3.zip Mopidy-Muse mopidy-bandcamp mopidy-party mopidy-soundcloud mopidy-api-explorer setuptools<81"
volumes:
- ./config/mopidy.conf:/etc/mopidy/mopidy.conf:ro
- ./music:/var/lib/mopidy/media:ro
- mopidy-data:/var/lib/mopidy
- mopidy-cache:/var/cache/mopidy
ports:
- "6602:6600"
- "6682:6680"
volumes:
mopidy-data:
mopidy-cache:

16
docker-entrypoint.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
set -eu
if [ "$(id -u)" = "0" ]; then
if [ -n "${EXTRA_PIP_PACKAGES:-}" ]; then
packages=$(printf '%s' "${EXTRA_PIP_PACKAGES}" | tr ',' ' ')
echo "Installing extra pip packages: ${packages}"
python3 -m pip install --break-system-packages --no-cache-dir ${packages}
fi
if [ -z "${RUN_AS_ROOT:-}" ]; then
exec setpriv --reuid=mopidy --regid=audio --init-groups "$@"
fi
fi
exec "$@"