Skip to content
Music player server with a web-based user interface.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc labels have colors Oct 3, 2015
.gitignore config.json instead of config.js Oct 6, 2014
.jshintrc don't tolerate missing semicolons Mar 15, 2014
.npmignore fix config.js entry in .npmignore Oct 12, 2014 update CHANGELOG for upcoming release Oct 7, 2015
LICENSE License under MIT Jan 25, 2012 instructions for Ubuntu 18.04 Jul 7, 2018
build build depend on browserify-lite instead of browserify Oct 3, 2014
package.json update yauzl Jul 4, 2018

Groove Basin

Music player server with a web-based user interface.

Run it on a server connected to some speakers in your home or office. Guests can control the music player by connecting with a laptop, tablet, or smart phone. Further, you can stream your music library remotely.

Groove Basin works with your personal music library; not an external music service. Groove Basin will never support DRM content.

Feature Highlights

  • The web client feels like a desktop app, not a web app. It predicts what the server will do in order to hide network lag from the user.

  • Auto DJ which automatically queues random songs, favoring songs that have not been queued recently.

  • Drag and drop upload. Drag and drop playlist editing. Keyboard shortcuts for everything.

  • Lazy multi-core EBU R128 loudness scanning (tags compatible with ReplayGain) and automatic switching between track and album mode. "Loudness Zen"

  • Streaming support. You can listen to your music library - or share it with your friends - even when you are not physically near your home speakers.

  • Groove Basin protocol. Write your own client using the protocol specification, or check out gbremote, a simple command-line remote control.

  • MPD protocol support. This means you already have a selection of clients which integrate with Groove Basin. For example MPDroid.

  • scrobbling.

  • File system monitoring. Add songs anywhere inside your music directory and they instantly appear in your library.

Installation on Ubuntu

For Ubuntu 17.04 Zesty:

  1. sudo apt-get install nodejs libgrooveloudness-dev libgroovefingerprinter-dev libgrooveplayer-dev libgroove-dev
  2. Clone this repo and cd to it.
  3. npm run build
  4. npm start

For Ubuntu 18.04 Bionic:


When Groove Basin starts it will look for config.json in the current directory. If not found it creates one for you with default values.

Use this to set your music library location and other settings.

It is recommended that you generate a self-signed certificate and use that instead of using the public one bundled with this source code.


Search + drag/drop support Multi-select and context menu Keyboard shortcuts Settings Import Events


$ npm run dev

This will install dependencies, build generated files, and then start the sever. It is up to you to restart it when you modify assets or server files.


Pull requests, feature requests, and bug reports are welcome! Live discussion in #libgroove on Freenode.



  1. Music library organization
  2. Accoustid Integration
  3. Finalize GrooveBasin protocol spec
You can’t perform that action at this time.