[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

docs: Add more caching guidance

FoxxMD (Mar 31, 2026, 1:46 PM UTC) 04b1bdd9 007d553d

+115 -21
+4
docsite/docs/configuration/transforms/musicbrainz.mdx
··· 777 777 778 778 ## Best Practices 779 779 780 + ### Caching 781 + 782 + You **should** setup [metadata caching](/configuration/transforms#caching) to reduce API calls, improve transform performance, and reduce memory usage when using this stage. 783 + 780 784 ### Sensible Default 781 785 782 786 Generally, the Musicbrainz Stage can be used without any of the [optional configuration](#configuration) and you should still see good results from matches. The top [scored](#score) match is, anecdotally, good enough for correcting and filling in surface-level play data like Title and Artist names.
+41
docsite/docs/configuration/transforms/transforms.mdx
··· 585 585 586 586 </details> 587 587 588 + ## Best Practices 589 + 590 + ### Caching 591 + 592 + MS uses [caching](/configuration/#caching) to reduce the number of API calls needed for stages like [Musicbrainz](/configuration/transforms/musicbrainz) and to speed up all transforms by caching steps and results. However, the default caching strategy uses a small cache size and very short [TTLs](https://en.wikipedia.org/wiki/Time_to_live) because it is *in-memory*. 593 + 594 + **If you are using any Transform stages you should configure [secondary caching with Valkey for Metadata](/configuration/?cacheType=valkey&cachedThings=metadata#secondary-caching-configuration)** to increase the cache size and lifetime of cached items. This will also reduce memory usage in MS. 595 + 596 + <details> 597 + 598 + <summary>Example</summary> 599 + 600 + Add valkey service to your [multi-scrobbler docker compose stack](/installation?runType=docker-compose#docker) and configure MS to use it for metadata: 601 + 602 + ```yaml title="docker-compose.yml" 603 + services: 604 + multi-scrobbler: 605 + image: foxxmd/multi-scrobbler 606 + # ... 607 + environment: 608 + # ... 609 + // highlight-start 610 + - CACHE_METADATA=valkey 611 + - CACHE_METADATA_CONN=redis://valkey:6379 612 + // highlight-end 613 + # ... 614 + 615 + // highlight-start 616 + valkey: 617 + image: valkey/valkey 618 + volumes: 619 + - valkeydata:/data 620 + 621 + volumes: 622 + valkeydata: 623 + driver: local 624 + // highlight-end 625 + ``` 626 + 627 + </details> 628 + 588 629 ## Examples 589 630 590 631 See **Examples** sections in specific Stage docs (also in the sidebar):
+69 -21
docsite/docs/installation/installation.mdx
··· 177 177 - /tmp:noexec 178 178 ``` 179 179 180 + ### (Optional) Caching With Valkey 181 + 182 + Optionally, add a [Valkey](https://valkey.io/) service to your stack for [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) to take advantage of faster performance and reduced memory usage. 183 + 184 + <details> 185 + 186 + <summary>Example</summary> 187 + 188 + ```yaml title="docker-compose.yml" 189 + services: 190 + multi-scrobbler: 191 + image: foxxmd/multi-scrobbler 192 + # ... 193 + environment: 194 + # ... 195 + // highlight-start 196 + CACHE_METADATA=valkey 197 + CACHE_METADATA_CONN=redis://valkey:6379 198 + // highlight-end 199 + # ... 200 + 201 + // highlight-start 202 + valkey: 203 + image: valkey/valkey 204 + volumes: 205 + - valkeydata:/data 206 + 207 + volumes: 208 + valkeydata: 209 + driver: local 210 + // highlight-end 211 + ``` 212 + 213 + </details> 214 + 180 215 ### Docker Usage Example 181 216 182 217 :::tip ··· 193 228 * Docker container located on a different IP (`192.168.0.100`) so use [Base URL](/configuration#base-url) 194 229 * Config/data directory on host machine in a directory next to `docker-compose.yml` 195 230 * Linux uid/gid is `1000:1000` 231 + * Optional caching using valkey (after uncommenting) 196 232 197 233 <Tabs groupId="runType" queryString> 198 234 <TabItem value="docker" label="Docker"> ··· 212 248 <TabItem value="docker-compose" label="Docker Compose" default> 213 249 See [`docker-compose.yml`](#docker) sample above for more options and annotations. 214 250 215 - ```yaml title="docker-compose.yml" 216 - services: 217 - multi-scrobbler: 218 - image: foxxmd/multi-scrobbler 219 - container_name: multi-scrobbler 220 - environment: 221 - - TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 222 - - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c 223 - - JELLYFIN_URL=192.168.0.101:8096 224 - - JELLYFIN_USER=MyUser 225 - - BASE_URL=http://192.168.0.100:9078 226 - - MALOJA_URL=http://domain.tld:42010 227 - - MALOJA_API_KEY=1234 228 - - PUID=1000 229 - - PGID=1000 230 - volumes: 231 - - "./config:/config" 232 - ports: 233 - - "9078:9078" 234 - restart: unless-stopped 235 - ``` 251 + ```yaml title="docker-compose.yml" 252 + services: 253 + multi-scrobbler: 254 + image: foxxmd/multi-scrobbler 255 + container_name: multi-scrobbler 256 + environment: 257 + - TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 258 + - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c 259 + - JELLYFIN_URL=192.168.0.101:8096 260 + - JELLYFIN_USER=MyUser 261 + - BASE_URL=http://192.168.0.100:9078 262 + - MALOJA_URL=http://domain.tld:42010 263 + - MALOJA_API_KEY=1234 264 + - PUID=1000 265 + - PGID=1000 266 + # uncomment along with valkey service/volume below for better caching 267 + #- CACHE_METADATA=valkey 268 + #- CACHE_METADATA_CONN=redis://valkey:6379 269 + volumes: 270 + - ./config:/config 271 + ports: 272 + - 9078:9078 273 + restart: unless-stopped 274 + 275 + #valkey: 276 + # image: valkey/valkey 277 + # volumes: 278 + # - valkeydata:/data 279 + 280 + #volumes: 281 + # valkeydata: 282 + # driver: local 283 + ``` 236 284 </TabItem> 237 285 </Tabs> 238 286
+1
docsite/docs/quickstart.mdx
··· 336 336 ## Next Steps 337 337 338 338 * See more advanced docker options as well as other install methods in the [**Installation**](/installation#docker) docs 339 + * Setup [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) with [valkey](/installation/#optional-caching-with-valkey) for increased performance and reduced memory usage 339 340 * Review the [**Configuration**](/configuration) docs 340 341 * Learn about how to configure multi-scrobbler using files for more complicated Source/Client scenarios 341 342 * See all available [**Sources**](/configuration/sources) and [**Clients**](/configuration/clients) alongside configuration examples