Mopidy (MPD) along with Spotify/Google Music/... extensions
381
Containerized Mopidy music server with support for MPD clients and HTTP clients.
mopidy user inside the container (for security reasons).You may install additional backend extensions.
First to make audio from from within a Docker container, you should enable PulseAudio over network; so if you have X11 you may for example do:
Install PulseAudio Preferences. Debian/Ubuntu users can do this:
$ sudo apt-get install paprefs
Launch paprefs (PulseAudio Preferences) > "Network Server" tab > Check "Enable network access to local sound devices" (you may check "Don't require authentication" to avoid mounting cookie file described below).
Restart PulseAudio
$ sudo service pulseaudio restart
or
$ pulseaudio -k
$ pulseaudio --start
On some distributions, it may be necessary to completely restart your computer. You can confirm that the settings have successfully been applied running pax11publish | grep -Eo 'tcp:[^ ]*'. You should see something like tcp:myhostname:4713.
$ docker run -d \
-e "PULSE_SERVER=tcp:$(hostname -i):4713" \
-e "PULSE_COOKIE_DATA=$(pax11publish -d | grep --color=never -Po '(?<=^Cookie: ).*')" \
-v "$PWD/media:/var/lib/mopidy/media:ro" \
-v "$PWD/local:/var/lib/mopidy/local" \
-p 6600:6600 -p 6680:6680 \
wernight/mopidy \
mopidy \
-o spotify/username=USERNAME -o spotify/password=PASSWORD \
-o gmusic/username=USERNAME -o gmusic/password=PASSWORD \
-o soundcloud/auth_token=TOKEN
See mopidy's command for possible additional options.
Most elements are optional (see some examples below). Replace USERNAME, PASSWORD, TOKEN accordingly if needed, or disable services (e.g., -o spotify/enabled=false):
Ports:
Environment variables:
PULSE_SERVER - PulseAudio server socket.PULSE_COOKIE_DATA - Hexadecimal encoded PulseAudio cookie commonly at ~/.config/pulse/cookie.Volumes:
/var/lib/mopidy/media - Path to directory with local media files (optional)./var/lib/mopidy/local - Path to directory to store local metadata such as libraries and playlists in (optional).Give read access to your audio files to user 102 (mopidy), group 29 (audio), or all users (e.g., $ chgrp -R 29 $PWD/media && chmod -R g+r $PWD/media).
Index local files:
$ docker run --rm \
-e "PULSE_SERVER=tcp:$(hostname -i):4713" \
-e "PULSE_COOKIE_DATA=$(pax11publish -d | grep --color=never -Po '(?<=^Cookie: ).*')" \
-v "$PWD/media:/var/lib/mopidy/media:ro" \
-v "$PWD/local:/var/lib/mopidy/local" \
-p 6680:6680 \
wernight/mopidy mopidy local scan
Start the server:
$ docker run -d \
-e "PULSE_SERVER=tcp:$(hostname -i):4713" \
-e "PULSE_COOKIE_DATA=$(pax11publish -d | grep --color=never -Po '(?<=^Cookie: ).*')" \
-v "$PWD/media:/var/lib/mopidy/media:ro" \
-v "$PWD/local:/var/lib/mopidy/local" \
-p 6680:6680 \
wernight/mopidy
Browse to http://localhost:6680/
$ docker run --name mopidy -d \
-e "PULSE_SERVER=tcp:$(hostname -i):4713" \
-e "PULSE_COOKIE_DATA=$(pax11publish -d | grep --color=never -Po '(?<=^Cookie: ).*')" \
wernight/mopidy
$ docker run --rm -it --link mopidy:mopidy wernight/ncmpcpp ncmpcpp --host mopidy
Having more issues? Report a bug on GitHub. Also if you need some additional extensions/plugins that aren't already installed (please explain why).
Content type
Image
Digest
Size
273.1 MB
Last updated
over 9 years ago
docker pull abuzhynsky/mopidy