Skip to content

Music Player Daemon

Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files


Install mpd`

echo "media-sound/mpd alsa ffmpeg flac mpg123 opus vorbis id3tag inotify icu curl" > /etc/portage/package.use/mpd
emerge media-sound/mpd media-sound/mpc

Directory Structure and Permissions

MPD usually runs under its own user, so we make sure it has access to your music folder without permanently changing the ownership of the files.

mkdir -p /var/lib/mpd/{music,playlists}
mkdir -p /var/log/mpd
chown -R mpd:audio /var/lib/mpd /var/log/mpd
chown -R wuseman:wuseman /var/lib/mpd /var/log/mpd /var/run/mpd
chmod -R 755 /var/lib/mpd /var/log/mpd /var/run/mpd

Minimalist /etc/mpd.conf

Here is a configuration optimized for your path. MPD will read your files from your USB drive, but since you are running them :ro (read-only), it is completely safe."

cat << "EOF" > /etc/mpd.conf
# --- User ---                
user               "wuseman"
                              
# --- Paths ---               
music_directory    "/mnt/usb/glftpd/site/archive/mp3"
playlist_directory "/var/lib/mpd/playlists"
db_file            "/var/lib/mpd/mpd.db"
log_file           "/var/log/mpd/mpd.log"
pid_file           "/var/run/mpd/mpd.pid"
state_file         "/var/lib/mpd/mpdstate"
                              
# --- Connection/Performance ---
bind_to_address    "127.0.0.1"
port               "6600"  
zeroconf_enabled   "no"       
                              
audio_output {                
        type            "pipewire"
        name            "PipeWire"
}                             
                              
# For visualizer in ncmpcpp                                                                                                                                                                                                                                          
#audio_output {               
#       type            "fifo"
#       name            "Visualizer FIFO"
#       path            "/tmp/mpd.fifo"
#       format          "44100:16:2"
#} 
EOF

OpenRC Init Script

Since we are running Gentoo/OpenRC, you don't need to worry about complex systemd files. MPD has a built-in OpenRC script. Just enable it:

rc-update add mpd default
rc-service mpd start

Index the music library

mpc update

Check mpc stats

mpc stats