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
- MB_PRESETS=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 Maloja server if you have not already done this.

Maloja Setup Intructions

Using Maloja's example docker-compose.yml:

~/malojaData/docker-compose.yml
loading...

Uncomment environment and add MALOJA_FORCE_PASSWORD=CHANGE_ME to set an admin password

Start the container:

~/malojaData
docker compose up -d

Finally, add these values to the environment section in the docker-compose.yml you created for multi-scrobbler earlier.

~/msData/docker-compose.yml
- MALOJA_URL=http://192.168.0.100:42010
- MALOJA_API_KEY=myApiKey

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