myMPD is a lightweight MPD web client that runs without a dedicated webserver or interpreter. It's tuned for minimal resource usage and requires only very few dependencies.
myMPD is a fork of ympd (https://github.com/notandy/ympd). This fork provides a reworked ui based on Bootstrap 4, a modernized backend and many new features while having the same small footprint as ympd.
Design principles
- Keep it small and simple
- Uses only mpd as source of truth
- Mobile first UI
- Keep security in mind
Features
- Control mpd functions (play, pause, etc.)
- Set mpd settings (repeat, random, etc.)
- Browse mpd database by tags
- Albumart grid
- Browse filesystem and playlists
- Bookmarks for directories
- Queue management
- Playlist management
- Advanced search
- Jukebox mode (add's random songs / albums from database or playlists to queue)
- Smart playlists and saved searches
- Play statistics and song voting
- Local albumart support: embedded and image per folder
- HTTP stream support
- Local playback of mpd http stream (html5 audio api)
- Progressiv Web App enabled
- Embedded Webserver (mongoose)
- Love message for scrobbling clients
- Localized user interface
- Themeing
myMPD is work in active development. Feedback, bug reportes and feature requests are very welcome.
- Bootstrap 4: https://getbootstrap.com/
- Material Design Icons: https://material.io/tools/icons/
- Bootstrap Native: http://thednp.github.io/bootstrap.native/
- Mongoose: https://github.com/cesanta/mongoose (web server)
- Frozen: https://github.com/cesanta/frozen (json parsing)
- inih: https://github.com/benhoyt/inih (config file parsing)
- incbin: https://github.com/graphitemaster/incbin (embedding assets)
- sds: https://github.com/antirez/sds (safe string handling)
- libmpdclient2: https://github.com/jcorporation/libmpdclient/tree/libmympdclient
- OpenSSL (optional)
- libid3tag (optional)
- libflac (optional)
- cmake 2.6
- libasan3: for debug builds only
- Java: to minify files
- Perl: to create translation files
- Get myMPD tarball from https://github.com/jcorporation/myMPD/releases/latest
- Extract myMPD tarball and change path to this directory
- Install dependencies (as root):
./build.sh installdeps
- Build myMPD:
./build.sh release
- Install myMPD (as root):
./build.sh install
Adapt the configuration file /etc/mympd.conf
to your needs.
Usage: ./mympd [/etc/mympd.conf]
The ./build.sh
script installs a startup script for systemd, openrc (Alpine Linux) or sysVinit.
myMPD: 2018-2019 mail@jcgames.de
ympd: 2013-2014 andy@ndyk.de