Skip to content

Docker

The Docker images are based on Alpine Linux. They are published through the GitHub docker registry ghcr.io.

There are two images:

Available architectures:

  • x86-64 (amd64)
  • arm64 (aarch64)
  • armv7
  • armv6

Use docker pull ghcr.io/jcorporation/mympd/mympd:latest to use the latest stable image.

Usage

Starts the myMPD docker container:

  • Runs the docker container with uid/gid 1000
  • myMPD can not find the correct IP address if it is behind a docker proxy, set MYMPD_SSL_SAN to IP:<host ip>.
  • Set MYMPD_MYMPD_URI to http://<host fqdn>:<host port>.

Volumes

VOLUME DESCRIPTION
/run/mpd/socket MPD listening socket.
/run/mygpiod/socket Optional myGPIOd socket for GPIO scripting support.
/docker/mympd/workdir myMPD working directory. Must exist and be writeable by uid 1000.
/docker/mympd/cachedir myMPD cache directory. Must exist and be writeable by uid 1000.
/var/lib/mpd/music/ MPD music directory. Use the same path in the container to enable auto detection.
/var/lib/mpd/playlists/ MPD playlist directory. Use the same path in the container to enable auto detection.

You must create the cachedir and workdir before starting the container.

Docker Compose

Save this as docker-compose.yml:

services:
  mympd:
    image: ghcr.io/jcorporation/mympd/mympd
    container_name: mympd
    ports:
      - 8080:8080
      - 8443:8443
    user: 1000:1000
    environment:
      TZ: Europe/Berlin
      MYMPD_SSL_SAN: "DNS:<host fqdn>"
      MYMPD_MYMPD_URI: http://<host fqdn>:8080
    volumes:
      - /run/mpd:/run/mpd
      ## Optional for myGPIOd support
      ## - /run/mygpiod:/run/mygpiod
      - /docker/mympd/workdir:/var/lib/mympd
      - /docker/mympd/cachedir:/var/cache/mympd
      - /var/lib/mpd/music:/var/lib/mpd/music:ro
      - /var/lib/mpd/playlists:/var/lib/mpd/playlists:ro
    restart: unless-stopped

Setup: docker-compose up -d

Docker CLI

docker run -d \
  --name=mympd \
  -p 8080:8080 \
  -p 8443:8443 \
  -u 1000:1000 \
  -e "TZ=Europe/Berlin" \
  -e "MYMPD_SSL_SAN=DNS:<host fqdn>" \
  -e "MYMPD_MYMPD_URI=http://<host fqdn>:8080" \
  -v /run/mpd:/run/mpd \
  ## Optional for myGPIOd support
  ## -v /run/mygpiod:/run/mygpiod \
  -v /docker/mympd/workdir:/var/lib/mympd \
  -v /docker/mympd/cachedir:/var/cache/mympd \
  -v /var/lib/mpd/music:/var/lib/mpd/music:ro \
  -v /var/lib/mpd/playlists:/var/lib/mpd/playlists:ro \
  --restart unless-stopped \
  ghcr.io/jcorporation/mympd/mympd

Logs

docker logs -f mympd

myMPD configuration

You can configure general options of myMPD via command line flags and environment variables.