2020-12-28 12:42:19 +01:00
2020-12-28 12:42:19 +01:00
2020-12-28 12:42:19 +01:00
2021-01-18 14:34:34 +01:00
2020-12-28 12:42:19 +01:00
2020-12-28 12:42:19 +01:00
2018-07-04 08:54:31 +03:00
2020-12-28 12:42:19 +01:00
2020-12-28 12:42:19 +01:00
2020-12-28 12:42:19 +01:00

Mopidy Docker image

Image for running Mopidy in Docker.
Uses Pulseaudio for audio output.

Contents

Frontend extensions

Backend extensions

  • Spotify
  • Soundcloud
  • Scrobbler
  • Tunein

How to use

docker run \
    --name mopidy \
    -e PULSE_SERVER=tcp:0.0.0.0:4713 \     # Pulseaudio server. Point to external IP of Pulse server
    -v $PWD/media:/media:ro \              # Media files
    -v $PWD/data:/var/lib/mopidy \         # Mopidy data and cache
    -v $PWD/mopidy.conf:/mopidy.conf \     # Override config (for accounts)
    -p 6600:6600 \                         # Port for MPD
    -p 6680:6680 \                         # Port for the webinterface
    -p 6681:6681 \                         # (Optional) Port for Iris pusher service
    whhoesj/mopidy

Sound

To get sound, run a Pulseaudio server with tcp enabled. Point the PULSE_SERVER environment variable in the container to the external IP of the machine running the Pulseaudio server.

Volumes

To keep the Mopidy data persistent, /var/lib/mopidy should be mounted as a volume. The Mopidy user must have write access to this directory. Set this with chown -R 105 /path/to/data.

Configuration

To add Spotify, Last.FM etc. accounts, use the /mopidy.conf file. Example:

[spotify]
enabled = true
username =
password =
client_id = 
client_secret =
# To authenticate go to:
# https://mopidy.com/ext/spotify/#authentication

[scrobbler]
enabled = true
username =
password =

[soundcloud]
enabled = true
auth_token =

This same file can be used to override parts of the default configuration. For example: by default, the file browser in Mopidy is disabled to enable it:

[file]
enable = true

The complete default config can be found in the file mopidy.conf

Local media

To play local media files, mount /media. To scan for new media files, run docker exec -it mopidy localscan.

Adding extensions

To add extensions, I advice to override this image by creating your own Dockerfile. In the example below, a package is installed with pip. To add packages, we switch to the root user, run pip to add everything we need and switch back to the mopidy user.

FROM whhoesj/mopidy:latest
USER root
RUN python3 -m pip install <your-package>
USER mopidy
Description
Languages
Dockerfile 48.3%
Makefile 35.5%
Shell 16.2%