Skip to main content

Quickstart

This guide will get you up and running with multi-scrobbler using Docker and docker compose. At the end of the guide you will have:

  • the dashboard served on port 9078 of a host machine which has an IP of 192.168.0.100
  • data saved to the same directory as the docker-compose.yml file
  • multi-scrobbler monitoring Spotify, Jellyfin, Navidrome, Plex, and/or Last.fm for listening activity
  • multi-scrobbler scrobbling to Lastfm, Maloja, and/or Koito
note

If the multi-scrobbler container is on the same machine you will be viewing the dashboard from (IE localhost) you can remove and ignore BASE_URL usage below. Additionally, replace usage of 192.168.0.100 with localhost.

Create Docker Compose File

Create a new folder for multi-scrobbler related data and then create docker-compose.yml with this content:

~/msData/docker-compose.yml
services:
multi-scrobbler:
image: foxxmd/multi-scrobbler
container_name: multi-scrobbler
environment:
- TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- BASE_URL=http://192.168.0.100:9078
# all Environmental Variables in below examples go here!

volumes:
- "./config:/config"
ports:
- "9078:9078"
restart: unless-stopped

Setup Sources

Sources are the services/music players multi-scrobbler monitors to look for listening activity.

Follow the Jellyfin configuration instructions for setting up an API Key.

Then, add these values to the environment section in the docker-compose.yml you created.

~/msData/docker-compose.yml
- JELLYFIN_URL=192.168.0.110:8096 # URL to Jellyfin UI
- JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56b # Api Key created in previous step
- JELLYFIN_USER=MyUser # Your username in Jellyfin

(Optional) Correct Scrobbles with Musicbrainz

Multi-scrobbler can use Musicbrainz to match activity from your Sources in order to fill in missing data, or correct/normalize existing data, before it is scrobbled to the Clients below. This step is optional.

Musicbrainz Setup Instructions

Configure Musicbrainz API

note

This step only needs to be performed once regardless of how many Sources you want to use Musicbrainz for.

You must provide a way for Musicbrainz to contact you.

Add these value to the environment section in the docker-compose.yml you created.

~/msData/docker-compose.yml
# an email or personal website musicbrainz can use to contact you
- MB_CONTACT=myCoolName@emailProvider.com
# how musicbrainz searches and selects matches
# isrc => then tries basic text fields => then tries extracted artists
- MB_PRESETS=default,sensible,native

Presets are found here.

Enable Musicbrainz For A Source

Musicbrainz can be enabled for multiple Sources. Follow the directions in each tab to enable it for that Source.

Add this value to the environment section in the docker-compose.yml you created.

~/msData/docker-compose.yml
- JELLYFIN_TRANSFORMS=musicbrainz

Setup Clients

Clients are services that store scrobbles. Multi-scrobbler will scrobble all listening activity from the Sources you configured to all Clients you configure here.

Setup a Koito server if you have not already done this.

  • Create (or get) an API Key
    • From your Koito server dashboard navigate to Settings (bottom-left icon) => API Keys
    • Create a new Key (or use an existing) and Copy the key using the copy icon to the right of the key
      • EX pM195xPV98CDpk0QW47FIIOR8AKATAX5DblBF-Jq0t1MbbKL
  • Take note of your Koito username (used below as myUser)
  • Determine your Koito URL
    • This is the URL you use to access your Koito dashboard OR whatever URL is accessible from your multi-scrobbler instance.
    • EX dashboard at http://192.168.0.100:4110 => replace myURL below with http://192.168.0.100:4110
    • More info on the URL to use is the full docs

Add/Substitute values above into these examples values and add them to the environment section in the docker-compose.yml you created for multi-scrobbler earlier.

~/msData/docker-compose.yml
- KOITO_TOKEN=myToken
- KOITO_USER=myUser
- KOITO_URL=myURL
tip

Ensure that Koito is configured to allow requests from multi-scrobbler! In Koito config set KOITO_ALLOWED_HOSTS to the IP the multi-scrobbler dashboard is accessible from.

Start Multi-Scrobbler

tip

If you are running your multi-scrobbler container on a Linux host see these instructions for setting proper file permissions.

From the same directory as the docker-compose.yml you created earlier start the container:

~/msData
docker compose up -d

You're done! Multi-scrobbler is now running. It will monitor the sources you configured and scrobble to clients you set up.

Visit http://192.168.0.100:9078 to see the dashboard where

  • configured Sources/Clients
    • show current status and authentication options
    • display statistics about discovered/scrobbled tracks and Now Playing status
  • a real-time log shows multi-scrobbler's activity

Next Steps