mirror of
https://github.com/SuperBFG7/ympd
synced 2025-10-17 15:27:39 +00:00
a7bf4aa2bf7edb56e05f3a248f0b1d7b4d246845

Add secure compiler flags to all source Add more warning compiler flags to myMPD source Remove warning compiler flags to reduce warnings for mongoose and frozen source
myMPD
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 litte 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
Featurelist:
- Control mpd functions (play, pause, etc.)
- Set mpd settings (repeat, random, etc.)
- Browse mpd database by tags
- Browse filesystem and playlists
- Queue management
- Playlist management
- Advanced search (requires mpd >= 0.21.x and libmpdclient >= 2.17)
- Jukebox mode (add's random songs / albums from database or playlists to queue)
- Smart playlists and saved searches
- Play statistics and song voting (requires mpd stickers)
- Local coverart support (Albums and Streams)
- HTTP stream support
- Local playback of mpd http stream (html5 audio api)
- Progressiv Web App enabled
- Embedded Webserver (mongoose)
myMPD is work in progress. Bugreportes and feature requests are very welcome.
Screenshots
UI Components
- Bootstrap 4: https://getbootstrap.com/
- Material Design Icons: https://material.io/tools/icons/
- Bootstrap Native: http://thednp.github.io/bootstrap.native/
Backend
- Mongoose: https://github.com/cesanta/mongoose
- Frozen: https://github.com/cesanta/frozen
- inih: https://github.com/benhoyt/inih
Dependencies
- libmpdclient 2: http://www.musicpd.org/libs/libmpdclient/
- OpenSSL: https://www.openssl.org/
Build Dependencies
- cmake 2.6
- libasan3: for debug builds only
- Java: optional for minifying .css and .js files
Unix Build Instructions
- Install dependencies: cmake, libmpdclient (dev), OpenSSL (dev) and Java are available from all major distributions.
- Build and install:
cd /path/to/src; ./mkrelease.sh
. - Link your mpd music directory to
/usr/share/mympd/htdocs/library
and putfolder.jpg
files in your album directories (mkrelease.sh tries to do this for you). - Configure your mpd with http stream output to use the local player.
Run Flags
Usage: ./mympd /etc/mypd/mympd.conf
SSL
- Create ca and certificate
/usr/share/mympd/crcert.sh
(mkrelease.sh does this for you). - Set
ssl=true
in /etc/mympd/mympd.conf (use default certificate under/etc/mympd/ssl/
). - Import
/etc/mympd/ssl/ca/ca.pem
in your browser to trust the certificate. - myMPD redirects http requests to https, ensure that myMPD hostname is resolvable.
Copyright
ympd: 2013-2014 andy@ndyk.de
myMPD: 2018 mail@jcgames.de
Languages
C
57.1%
JavaScript
34.5%
HTML
5.1%
CMake
0.9%
Shell
0.9%
Other
1.4%