Skip to content

From < 0.21.0

The previous docker image used a Linuxserver.io base image that used PUID/PGID environment variables to set the user to use for file permissions in the container.

The new docker image is based on a hardened, distroless image that does not have these variables and defaults to a different non-root user 65532:65532. If you had previously set PUID and PGID you can still use this user setup with a slightly modified setup.

In any scenario, follow the directions below:

If you had set PUID and PGID, write the values down somewhere and then remove them from your docker compose stack now.

docker-compose.yml
services:
multi-scrobbler:
# ...
environment:
- PUID=1000
- PGID=1001
# ...
volumes:
# ...

Use the tabs below to pick how you run docker and mount directories into the multi-scrobbler container.

Each tab will tell you how to migrate MS-related volume permissions (like /config and the optional /data directory) and set a user to use for ownership with the new image. Not every scenario needs permission or user changes.

You use a Linux OS on the physical machine/VM. Docker runs on this machine. (This includes LXC containers.)

You used PUID/PGID environmental variables and host-mounted directories for volumes.

Replace PUID/PGID with user, using the same values:

docker-compose.yml
services:
multi-scrobbler:
# ...
user: 1000:1001 # PUID:PGID
environment:
# ...
volumes:
- /my/host/dir/msConfig:/config
# ...

The upgrade to add Auth for existing users has been designed to be almost painless.

When you upgrade, your MS instance will continue to work exactly as it does today for backend, Sources, Clients, polling, etc…the only thing that changes is how the web dashboard is initially accessed.

Additionally, nothing changes for your Ingress Sources like Listenbrainz Endpoint even after setting up auth. Any external clients that use these Sources will continue to work as-is.

If you haven’t already done so, upgrade to 0.21.0 and re-deploy your instance.

When you instance is re-deployed it will be in insecure mode. In this mode the dashboard and web API endpoints (but not Ingress Source-related endpoints) will either be:

  • full read/write - you can use the dashboard/apis in the same way you did before upgrading
  • read-only mode - you can access the dashboard/apis to view data but you cannot write to MS (cannot requeue, edit plays, restart sources, etc…)

This is based on how you access the dashboard.

Navigate to the dashboard with the same URL you normally use IE

On the landing page you will see a warning banner asking you to set a password.

Click the password setup link here to navigate to /setup.

On the /setup page you will be asked to set (and confirm) a password. You may also be asked to provide a Setup Token.

Your setup page does not ask for a Setup Token

Set (and confirm) your password and click Set Password.

You are now done and your instance is secured 🎉

After your instance is secured:

  • your dashboard and web APIs (except for Ingress as mentioned earlier) will no longer be accessible by unauthenticated users.
  • the dashboard and APIs will be in full read-write mode for any authenticated users

If you have external tools that use web APIs you can create API Keys that they can use to access authenticated routes.

  • Reference the Authentication docs for more configuration concerning trusted hosts, reverse proxy setup, restricting cookies, and more…
  • Setup a Public Dashboard for unauthenticated users to view by navigating to Settings -> Public Dashboard

You can use Auth ENVs to set auth username and password on startup, bypassing the need to visit the dashboard and complete the setup process above.

Re-deploy your MS instance with these ENVs:

  • AUTH_SETUP_PW - Admin password to use.
  • AUTH_SETUP_USER Optional - Admin username to use. Defaults to admin.
    • This can be changed from the Dashboard after securing your instance

Your instance is now secured 🎉 and you can go to Step 4 above.

The SETUP envs will be ignored on subsequent deploys/restarts but you should still remove them once they have been used.

If you already have your own auth solution, such as a reverse proxy + authelia/authentik/keycloak, in front of Multi-Scrobbler you can continue to use this by putting MS in Bring Your Own Auth (BYOA) mode with the ENV AUTH_MODE=disabled.

This disables:

  • authentication on all routes
  • user sign-in, sessions, passwords, etc…
  • API Keys
  • Insecure banner warnings and auth setup

Essentially, this is as close to Multi-Scrobbler before 0.21.0 as possible.

Standardized application directories for storing config, data, and log files separately were introduced in 0.15.0. However, many of the cache/auth flow files used by MS are still stored in the config directory.

In 0.21.0, MS now looks for these files in the data directory.

For non-docker users, and users who have explicitly set a Data directory, use one of the solutions below:

The non-config files are mainly cache and auth-flow related and do not prevent normal usage of MS.

If you decide not to do anything Multi-Scrobbler will still operate normally, however…

If you have any Sources/Clients that rely on auth flows, like Spotify Last.fm…, you will likely need to re-authenticate these once you deploy 0.21.0 because the Source/Client won’t be able to find the auth-flow credentials in their old location.