/myMPD

myMPD is a standalone and mobile friendly web mpd client with a tiny footprint and advanced features.

Primary LanguageCGNU General Public License v2.0GPL-2.0

myMPD

myMPD is a standalone and lightweight MPD web client. It's tuned for minimal resource usage and requires only very few dependencies. Therefore myMPD is ideal for raspberry pis and similar devices.

The backend ist written in C and has no dependencies to external databases or webservers. The configuration is stored in plain text files and all the data is pulled on demand from MPD. The MPD database is the only source of truth for myMPD.

The frontend is mobile friendly, written as a PWA and offers on all devices the same functionality. It communicates over AJAX and websockets using the json-rpc 2 protocol.

myMPD also integrates extended features like an advanced jukebox mode, timers and smart playlists. With the integrated lua interpreter myMPD functions can also be scripted.

myMPD is a fork of ympd.

Features

myMPD is in active development. If you like myMPD, you can help to improve it (no programming skills are required).

To use all myMPD functions you should use the latest stable MPD version (0.21.x). myMPD already supports function of MPD 0.22.x (e.g. the readpicture command).

Screenshots

image

UI Components

Backend

Dependencies

  • OpenSSL >= 1.1.0 (optional): for https support
  • libid3tag (optional): to extract embedded albumart
  • libflac (optional): to extract embedded albumart
  • liblua (optional): for scripting myMPD

Build Dependencies

  • cmake >= 3.4
  • libasan3: for debug builds only
  • Java: to minify files
  • Perl: to create translation files

Quick Build Instructions

  1. Get myMPD tarball from GitHub
  2. Extract myMPD tarball and change path to this directory
  3. Install dependencies (as root): ./build.sh installdeps
  4. Build myMPD: ./build.sh release
  5. Install myMPD (as root): ./build.sh install

Run

Adapt the configuration file /etc/mympd.conf to your needs (/etc/webapps/mympd/mympd.conf for Archlinux) or use the mympd-config tool to generate automatically a valid mympd.conf.

Usage: ./mympd [/etc/mympd.conf]

The ./build.sh script installs a startup script for systemd, openrc (Alpine Linux) or sysVinit.

Wiki

For further information on installation and configuration, see the myMPD wiki

Copyright

myMPD: 2018-2020 mail@jcgames.de