selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ampd logo

Self-host ampd

ampd-2.2.11

Web-based MPD client with modern responsive UI

ReleaseOpen SourceGPL-3.0
Updated9 hours ago
LanguageTypescript
Setup difficultyEasy
MobileResponsive
ThemeDark mode
Stars
59
Port
8080 (HTTP web interface)
Requires
Music Player Daemon (MPD)
Docker
rain0r/ampd
Install with Docker
ampd desktop view with dark theme showing queue and player controlsampd mobile view with light theme showing browse interface

What is ampd?

ampd is a web-based client for Music Player Daemon (MPD) that runs in a browser. It offers a responsive interface with light and dark themes, displays album covers from local files or the MusicBrainz Cover Art Archive, supports internet radio streams, and can scrobble playback to Last.fm and ListenBrainz. Keyboard shortcuts similar to ncmcpp are included. The application is packaged as a single JAR file requiring Java 17 or newer, defaults to port 8080, and can be run via Docker, systemd, or behind a reverse proxy. Only one MPD server can be connected at a time.

Should you self-host ampd?

ampd scores 42/100 on selfhost.directory (how scoring works) and ranks #40 of 59 in Music Streaming. It has 59 GitHub stars.

It shipped 5 stable releases in the past year. The latest, ampd-2.2.11, came out on 5 October 2026. New versions land roughly every 5 weeks.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is koel (75/100, 17 320 stars). It scores higher overall, so compare the two before you pick. See ampd vs koel side by side.

Features

  • Album cover art support
  • Internet radio streams
  • Keyboard Shortcuts
  • No external resources
  • Reverse proxy deployment
  • Scrobbling to Last.fm
  • Scrobbling to ListenBrainz
  • Single JAR distribution

ampd README

How to install ampd

Install ampd with Docker

Docker Engine
Environment variables
MPD_SERVER, MPD_PORT, LOCAL_COVER_CACHE, MB_COVER_SERVICE, RESET_MODES_ON_CLEAR, CREATE_NEW_PLAYLISTS, DELETE_EXISTING_PLAYLISTS, HOME_DIR

docker run -p 8080:8080 --env MPD_SERVER=my-mpd-server rain0r/ampd

Official image on Docker Hub; configure via environment variables or env file

How to configure ampd

  • albums.qualify.min.tracks2Minimum tracks to qualify as an album

    Minimum tracks to qualify as an album

  • artwork.filename.pattern**.{jpg,jpeg,png}Glob pattern for artwork filenames

    Glob pattern for artwork filenames

  • create.new.playliststrueAllow creating new playlists

    Allow creating new playlists

    values: true,false

  • delete.existing.playliststrueAllow deleting existing playlists

    Allow deleting existing playlists

    values: true,false

  • home.dirampd home directory

    ampd home directory

  • lastfm.api.keyLast.fm API key

    Last.fm API key

  • lastfm.api.passwordLast.fm API password (cleartext or MD5)

    Last.fm API password (cleartext or MD5)

  • lastfm.api.secretLast.fm API secret

    Last.fm API secret

  • lastfm.api.usernameLast.fm API username

    Last.fm API username

  • listenbrainz.scrobblefalseEnable ListenBrainz scrobbling

    Enable ListenBrainz scrobbling

    values: true,false

  • listenbrainz.tokenListenBrainz API token

    ListenBrainz API token

  • local.cover.cachetrueEnable local cover art caching

    Enable local cover art caching

    values: true,false

  • mb.cover.servicetrueEnable MusicBrainz Cover Art Archive fetching

    Enable MusicBrainz Cover Art Archive fetching

    values: true,false

  • min.score75Cover search strictness threshold

    Cover search strictness threshold

  • mpd.music.directoryRoot music directory for album cover art

    Root music directory for album cover art

  • mpd.passwordMPD password if required

    MPD password if required

  • mpd.port6600MPD server port

    MPD server port

  • mpd.serverlocalhostMPD server hostname or IP

    MPD server hostname or IP

  • publisher.delay250Update interval in milliseconds

    Update interval in milliseconds

  • reset.modes.on.clearfalseReset MPD modes (shuffle, consume, etc.) on clear queue

    Reset MPD modes (shuffle, consume, etc.) on clear queue

    values: true,false

  • server.address0.0.0.0HTTP server bind address

    HTTP server bind address

  • server.port8080HTTP server port

    HTTP server port

  • server.servlet.contextPathContext path for reverse proxy deployment

    Context path for reverse proxy deployment

ampd releases & version history

FAQ

Do I have to run ampd on the same computer as the MPD server?

No, ampd can run on a separate computer by setting mpd.server and optionally mpd.port.

Why are there no covers for the currently played track?

Possible reasons: mpd.music.directory not provided, MusicBrainz cover fetching disabled, or no cached cover found.

How can I load similar tracks from Last.fm?

Set lastfm.api.key in application.properties; no username, password, or API secret needed for similar tracks only.

Can I scrobble to Last.fm?

Yes, by configuring lastfm.api.username, lastfm.api.password, lastfm.api.key, and lastfm.api.secret in application.properties.

Can I scrobble to ListenBrainz?

Yes, by setting the listenbrainz.token property in application.properties and enabling listenbrainz.scrobble.

More in Music Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…