Sign inSign up

martadinata666/ympd

By martadinata666

Updated almost 3 years ago

Just another MPD + ympd docker combo

Image
0

3.5K

martadinata666/ympd repository overview

yMPD

ympd

pipeline status

Web Based MPD Client

Notable change

  • 0.23.10 added ncmpcpp

Supported tag(s)

  • latest
  • vX.XX.X Version tag will follow MPD release

Usage

Compose
---
version: '3.5'
services:
  app:
    image: martadinata666/ympd:latest
    volumes:
      - mpd-data:/home/docker/mpd
      - /path/to/music:/music
      # Likely you want to override mpdscribble.conf
      - /path/to/mpdscribble.conf:/home/docker/mpd/mpdscribble.conf
    networks:
      - ympd
    restart: always
    ports:
      - 8083:8080 # web interface
      - 8800:8800 # mpd http output
      - 8000:8000 # icecast2 output http://ip:8000/live.mp3

volumes:
  mpd-data:

networks:
  ympd:
    name: ympd

NCMPCPP client

  • ncmpcpp is a ncurses mpd client, to use this client docker exec -it container-name ncmpcpp , ncmpcpp will detect currently running MPD container, localhost:6060

Listen to Icecast2

Assuming you already set playlist and start song via ympd, you can listen the song via icecast url with mpv http://ip:8000/live.ogg

Default mpd.conf

  • If you are using volumes mount mpd.conf will applied
bind_to_address         "localhost"
port                    "6600"
music_directory    "/music"
playlist_directory "/home/debian/mpd/playlists"
db_file            "/home/debian/mpd/database"
log_file           "/home/debian/mpd/mpd.log"
pid_file           "/home/debian/mpd/mpd.pid"
state_file         "/home/debian/mpd/state"
sticker_file       "/home/debian/mpd/sticker.sql"
auto_update        "yes"
zeroconf_enabled   "no"
replaygain "off"

resampler {
  plugin "libsamplerate"
  type "0"
}

audio_output {
        type            "httpd"
        name            "MPD Docker"
        encoder         "vorbis"
        port            "8800"
#        bitrate         "320"
        quality         "5"
        tags            "no"
        format          "48000:f:2"
}

audio_output {
        type            "shout"
        encoding        "ogg"
        name            "MPD Shout Stream"
        host            "localhost"
        port            "8000"
        mount           "/live.ogg"
        password        "hackme"
        bitrate         "128"
        format          "48000:f:2"
}
MPD Build Info
Music Player Daemon 0.23.10 (v0.23.10)
Copyright 2003-2007 Warren Dukes <[email protected]>
Copyright 2008-2021 Max Kellermann <[email protected]>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Database plugins:
 simple proxy

Storage plugins:
 local curl


Decoders plugins:
 [mad] mp3 mp2
 [mpg123] mp3
 [vorbis] ogg oga
 [oggflac] ogg oga
 [flac] flac
 [opus] opus ogg oga
 [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
 [dsdiff] dff
 [dsf] dsf
 [hybrid_dsd] m4a
 [faad] aac
 [wavpack] wv
 [pcm]

Filters:
 libsamplerate

Tag plugins:
 id3tag

Output plugins:
 shout null fifo pipe oss httpd snapcast recorder

Encoder plugins:
 null vorbis opus lame wave flac

Archive plugins:
 [bz2] bz2

Input plugins:
 file archive curl

Playlist plugins:
 extm3u m3u pls xspf asx rss soundcloud flac cue embcue

Protocols:
 file:// ftp:// ftps:// gopher:// http:// https:// rtmp:// rtmpe:// rtmps:// rtmpt:// rtmpte:// rtmpts:// scp:// sftp:// smb://

Other features:
 epoll icu inotify ipv6 tcp un

mpdscribble.conf

## mpdscribble - an audioscrobbler for the Music Player Daemon.
## https://www.musicpd.org/clients/mpdscribble/

# HTTP proxy URL.
#proxy = http://the.proxy.server:3128

# The location of the pid file.  mpdscribble saves its process id there.
#pidfile = /var/run/mpdscribble.pid

# Change to this system user after daemonization.
#daemon_user = mpdscribble

# The location of the mpdscribble log file.  The special value
# "syslog" makes mpdscribble use the local syslog daemon.  On most
# systems, log messages will appear in /var/log/daemon.log then.
# "-" means log to stderr (the current terminal).
log = -

# How verbose mpdscribble's logging should be.  Default is 1.
verbose = 1

# How often should mpdscribble save the journal file? [seconds]
#journal_interval = 600

# The host running MPD, possibly protected by a password
# ([PASSWORD@]HOSTNAME).  Defaults to $MPD_HOST or localhost.
#host = localhost

# The port that the MPD listens on and mpdscribble should try to
# connect to.  Defaults to $MPD_PORT or 6600.
#port = 6600

#[maloja]
#url = http://maloja-ip/apis/audioscrobbler_legacy/
#username = maloja
#password = get-from-maloja-host-web
# The file where mpdscribble should store its Last.fm journal in case
# you do not have a connection to the Last.fm server.
journal = /home/debian/mpd/scrobble/data.journal

#[libre.fm]
#url = http://turtle.libre.fm/
#username = my_username
#password = my_password
#journal = /var/cache/mpdscribble/librefm.journal

#[jamendo]
#url = http://postaudioscrobbler.jamendo.com/
#username = my_username
#password = my_password
#journal = /var/cache/mpdscribble/jamendo.journal

#[file]
#file = /var/log/mpdscribble/log

Tag summary

Content type

Image

Digest

sha256:6bf8442fb

Size

99.4 MB

Last updated

almost 3 years ago

docker pull martadinata666/ympd