mirror of
https://github.com/SuperBFG7/ympd
synced 2024-11-18 03:24:48 +00:00
Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS. Updated and somewhat fixed fork.
.github/ISSUE_TEMPLATE | ||
cmake | ||
contrib | ||
debian | ||
dist | ||
htdocs | ||
src | ||
CMakeLists.txt | ||
Dockerfile | ||
LICENSE | ||
mkclean.sh | ||
mkdebian.sh | ||
mkdebug.sh | ||
mkrelease.sh | ||
PKGBUILD | ||
README.md |
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 little 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)
- AutoPlay - add song to (empty) queue and mpd starts playing
- 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)
- Docker support (experimental)
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
(toplevel directory of myMPD tarball). - 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
Usage: ./mympd [/etc/mympd/mympd.conf]
The ./mkrelease.sh
script tries to install a systemd service file. If this failes you can copy the mympd.service
file from /usr/share/mympd/
to appropriate distribution specific location.
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
myMPD: 2018-2019 mail@jcgames.de ympd: 2013-2014 andy@ndyk.de