Files
mopidy/README.md
2020-12-28 12:42:19 +01:00

77 lines
2.4 KiB
Markdown

# Mopidy Docker image
Image for running [Mopidy](https://www.mopidy.com/) in Docker.
Uses Pulseaudio for audio output.
## Contents
### Frontend extensions
* [Iris](https://github.com/jaedb/Iris)
* [Mopidy Musicbox Webclient](https://github.com/pimusicbox/mopidy-musicbox-webclient)
### Backend extensions
* Spotify
* Soundcloud
* Scrobbler
* Tunein
## How to use
```bash
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](./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.
```Dockerfile
FROM whhoesj/mopidy:latest
USER root
RUN python3 -m pip install <your-package>
USER mopidy
```