1
0
mirror of https://github.com/SuperBFG7/ympd synced 2024-12-26 11:00:27 +00:00
Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS. Updated and somewhat fixed fork.
Go to file
jcorporation 7d0571526d Fix: optimized cover-images
Fix: add loading cover-image
2018-10-10 21:29:24 +01:00
.github/ISSUE_TEMPLATE Update issue templates 2018-05-25 21:23:16 +02:00
cmake initial mongoose checkin 2014-03-08 12:30:48 +01:00
contrib Fix: reflect taglist behaviour in mympd.conf 2018-10-09 23:22:54 +01:00
debian Fix: date format in debian changelog 2018-10-10 22:09:10 +02:00
dist Fix: update minified files 2018-10-10 21:03:10 +01:00
htdocs Fix: optimized cover-images 2018-10-10 21:29:24 +01:00
src Feat: replace static tag list with dynamic list, this adds support of all mpd tags to myMPD 2018-10-09 22:51:47 +01:00
CMakeLists.txt Fix: move dynamic linked list management in separate src files 2018-10-07 22:21:00 +01:00
LICENSE replaces libwebsockets with mongoose, changed licese to gpl 2014-03-08 12:30:49 +01:00
mkclean.sh Fix: simplified packaging 2018-09-20 23:04:35 +01:00
mkdebian.sh Fix: date format in debian changelog 2018-10-10 22:09:10 +02:00
mkdebug.sh Fix: simplified packaging 2018-09-20 23:04:35 +01:00
mkrelease.sh Fix: use sudo only for install actions 2018-09-26 00:28:26 +01:00
PKGBUILD Fix: bump version to 4.3.1 2018-10-01 23:14:15 +01:00
README.md Fix: add all features 2018-09-29 10:50:09 +02:00

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
  • Jukebox mode (add's random songs / albums from database or playlists to queue)
  • Smart playlists and saved searches
  • Play statistics and song voting (uses 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

image

UI Components

Backend

Dependencies

Build Dependencies

  • cmake 2.6
  • libasan3: for debug builds only
  • Java: optional for minifying .css and .js files

Unix Build Instructions

  1. Install dependencies: cmake, libmpdclient (dev), OpenSSL (dev) and Java are available from all major distributions.
  2. Build and install: cd /path/to/src; ./mkrelease.sh.
  3. Link your mpd music directory to /usr/share/mympd/htdocs/library and put folder.jpg files in your album directories (mkrelease.sh tries to do this for you).
  4. Configure your mpd with http stream output to use the local player.

Run Flags

Usage: ./mympd /etc/mypd/mympd.conf

SSL

  1. Create ca and certificate /usr/share/mympd/crcert.sh (mkrelease.sh does this for you).
  2. Set ssl=true in /etc/mympd/mympd.conf (use default certificate under /etc/mympd/ssl/).
  3. Import /etc/mympd/ssl/ca/ca.pem in your browser to trust the certificate.
  4. myMPD redirects http requests to https, ensure that myMPD hostname is resolvable.

ympd: 2013-2014 andy@ndyk.de

myMPD: 2018 mail@jcgames.de