diff --git a/README.md b/README.md
index 6fb1acd0..3ced3bb0 100644
--- a/README.md
+++ b/README.md
@@ -48,7 +48,7 @@ A javascript app to scrobble music you listen to, to [Maloja](https://github.com
* Web server interface for stats, basic control, and detailed logs
* Graceful network and client failure handling (queued scrobbles that auto-retry)
* Smart handling of credentials (persistent, authorization through app)
-* Easy configuration through ENVs or JSON
+* Easy configuration through [ENVs or JSON](ttps://foxxmd.github.io/multi-scrobbler/configuration#configuration-types)
* Modify data before scrobbling with [regular expression or search patterns](https://foxxmd.github.io/multi-scrobbler/configuration/transforms)
* Install using [Docker images for x86/ARM](https://foxxmd.github.io/multi-scrobbler/installation#docker) or [locally with NodeJS](https://foxxmd.github.io/multi-scrobbler/installation#nodejs)
@@ -69,11 +69,11 @@ Yes! You can use [Last.fm as a **Source**](https://foxxmd.github.io/multi-scrobb
## How Does multi-scrobbler (MS) Work?
-You set up configurations for one or more **Sources** and one or more **Clients**. MS monitors all of your configured **Sources**. When new tracks are played by a Source it grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to scrobble to.
+You set up [configurations](https://foxxmd.github.io/multi-scrobbler/configuration) for one or more [**Sources**](https://foxxmd.github.io/multi-scrobbler/configuration/sources) and one or more [**Clients**](https://foxxmd.github.io/multi-scrobbler/configuration/clients). MS monitors all of your configured **Sources**. When new tracks are played by a Source MS grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to forward to.
### Source
-A **Source** is a data source that contains information about tracks you are playing like a music player or platform. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Airsonic**, etc...
+A [**Source**](https://foxxmd.github.io/multi-scrobbler/configuration/sources) is a data source that contains information about music you are playing or have listened to, like a desktop player, web music player, or cloud music service. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Navidrome**, etc...
Source configurations consist of:
@@ -83,7 +83,7 @@ Source configurations consist of:
### Client
-A **Client** is an application that stores the historical information about what songs you have played (scrobbles). Examples are **Maloja, Last.fm, Listenbrainz**...
+A [**Client**](https://foxxmd.github.io/multi-scrobbler/configuration/clients) is an application that stores the historical information about what music you have played (scrobbles). Examples are **Maloja, Last.fm, Listenbrainz**...
Client configurations consist of:
diff --git a/docsite/docs/configuration/configuration.mdx b/docsite/docs/configuration/configuration.mdx
index a67f61f1..02a42db0 100644
--- a/docsite/docs/configuration/configuration.mdx
+++ b/docsite/docs/configuration/configuration.mdx
@@ -22,7 +22,7 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
## Configuration Types
-[**Sources** and **Clients**](/#how-does-multi-scrobbler-ms-work) are configured using:
+[**Sources**](/configuration/sources) and [**Clients**](/configuration/clients) are configured using:
* environmental (ENV) variables
* client/source specific json config files
@@ -32,15 +32,46 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
- This is done by passing environmental variables and so does not require any files to run MS.
+ MS will parse environmental variables present in the OS/container when it is run. **This method means MS does not require files to run.**
- * Using a docker container EX `docker run -e "SPOTIFY_CLIENT_ID=yourId" -e "SPOTIFY_CLIENT_SECRET=yourSecret" ...`
- * Using a local installations by exporting variables before running MS EX `SPOTIFY_CLIENT_ID=yourId SPOTIFY_CLIENT_SECRET=yourSecret node index.js`
+
+ Use ENV-based configuration if...
+
+ * You are the only person for whom MS is scrobbling for
+ * You have a very simple setup for MS such as one scrobble [Client](/configuration/clients) and one [Source](/configuration/sources) IE Plex -> Maloja
- Use ENV-based configuration if:
+
- * You are the only person for whom MS is scrobbling for
- * You have a very simple setup for MS such as one scrobble [Client](/#client) and one [Source](/#source) IE Plex -> Maloja
+
+ Config Example
+
+ For Docker container...
+
+ ```shell
+ docker run -e "SPOTIFY_CLIENT_ID=yourId" -e "SPOTIFY_CLIENT_SECRET=yourSecret" ...
+ ```
+
+ For Docker Compose
+
+ ```yaml title="docker-compose.yml"
+ services:
+ multi-scrobbler:
+ image: foxxmd/multi-scrobbler
+ environment:
+ - SPOTIFY_CLIENT_ID=yourId
+ - SPOTIFY_CLIENT_SECRET=yourSecret
+ - MALOJA_URL=http://domain.tld:42010
+ - MALOJA_API_KEY=1234
+ # ...
+ # ...
+ ```
+
+ For a local/node installation export variables before running...
+
+ ```shell
+ SPOTIFY_CLIENT_ID=yourId SPOTIFY_CLIENT_SECRET=yourSecret npm run start
+ ```
+
MS will parse configuration files located in the directory specified by the `CONFIG_DIR` environmental variable. This variable defaults to:
@@ -52,18 +83,19 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
Use File-based configuration if...
- * You have many [Sources](/#source)
+ * You have many [Sources](/configuration/sources)
* You have many of each type of **Source** you want to scrobble from IE 2x Plex accounts, 3x Spotify accounts, 1x
Funkwhale...
* You have more than one scrobble **Client** you want to scrobble to IE multiple Maloja servers
- * You want only some **Sources** to scrobble to some **Clients** IE Fred's Spotify account scrobbles to Fred's Maloja
- server, but not Mary's Maloja server
+ * You want only to scrobble to specific **Clients**
+ * You need to setup more advanced configuration for a Source/Client
+ * Most Source/Clients only support basic configuration through ENV, all configuration is possible using File/AIO
:::tip
* There are **example configurations** for all Source/Client types and AIO config located in the [`/config`](https://github.com/FoxxMD/multi-scrobbler/tree/master/config) directory of this project. These can be used as-is by renaming them to `.json`.
- * For docker/flatpak installations these examples are copied to your configuration directory on first-time use.
+ * For docker installations these examples are copied to your configuration directory on first-time use.
* There is also a [**kitchensink example**](kitchensink.md) that provides examples of using all sources/clients in a complex configuration.
:::
@@ -95,12 +127,13 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
Use AIO-based configuration if...
- * You have many [Sources](/#source)
+ * You have many [Sources](/configuration/sources)
* You have many of each type of **Source** you want to scrobble from IE 2x Plex accounts, 3x Spotify accounts, 1x
Funkwhale...
* You have more than one scrobble **Client** you want to scrobble to IE multiple Maloja servers
- * You want only some **Sources** to scrobble to some **Clients** IE Fred's Spotify account scrobbles to Fred's Maloja
- server, but not Mary's Maloja server
+ * You want only to scrobble to specific **Clients**
+ * You need to setup [monitoring/webhooks](#monitoring)
+ * You want to setup defaults for all Sources/Clients
@@ -108,7 +141,7 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
:::tip
* An example AIO config files can be found in the project directory at [`/config/config.json.example`](https://github.com/FoxxMD/multi-scrobbler/tree/master/config/config.json.example)
- * For docker/flatpak installations this example is copied to your configuration directory on first-time use.
+ * For docker installations this example is copied to your configuration directory on first-time use.
* There is also a [**kitchensink example**](kitchensink.md) that provides examples of using all sources/clients in a complex configuration.
:::
@@ -124,6 +157,15 @@ Check the [**FAQ**](../FAQ.md) if you have any issues after configuration!
+## Setup Sources and Clients
+
+See the [Configuration Types](#configuration-types) above for your options for creating Source and Client configurations.
+
+* Reference [**Scrobble Sources**](/configuration/sources) for what Sources are available
+* Reference [**Scrobble Clients**](/configuration/clients) for what Clients are available
+
+Each entry for a Source/Client includes a **Configuration** section that describes how to configure it using a [configuration type](#configuration-types).
+
## Application Options
These options affect multi-scrobbler's behavior and are not specific to any source/client.
@@ -265,7 +307,7 @@ To set debug mode either add it to [AIO `config.json`](./?configType=aio#configu
}
```
-or set the ENV `DEBUG_MODE=true`
+or set the [ENV](./?configType=env#configuration-types) `DEBUG_MODE=true`
### Disable Web
diff --git a/docsite/docs/index.mdx b/docsite/docs/index.mdx
index 2d4c1dc7..4579741d 100644
--- a/docsite/docs/index.mdx
+++ b/docsite/docs/index.mdx
@@ -49,7 +49,7 @@ A javascript app to scrobble music you listened to, to [Maloja](https://github.c
* Web server interface for stats, basic control, and detailed logs
* Graceful network and client failure handling (queued scrobbles that auto-retry)
* Smart handling of credentials (persistent, authorization through app)
-* Easy configuration through ENVs or JSON
+* Easy configuration through [ENVs or JSON](/configuration#configuration-types)
* Modify data before scrobbling with [regular expression or search patterns](/configuration/transforms)
* Install using [Docker images for x86/ARM](/installation#docker) or [locally with NodeJS](/installation#nodejs)
@@ -70,11 +70,11 @@ Yes! You can use [Last.fm as a **Source**](/configuration/sources/lastfm-source)
## How Does multi-scrobbler (MS) Work?
-You set up configurations for one or more **Sources** and one or more **Clients**. MS monitors all of your configured **Sources**. When new tracks are played by a Source it grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to scrobble to.
+You set up [configurations](/configuration) for one or more [**Sources**](/configuration/sources) and one or more [**Clients**](/configuration/clients). MS monitors all of your configured **Sources**. When new tracks are played by a Source MS grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to forward to.
### Source
-A **Source** is a data source that contains information about tracks you are playing like a music player or platform. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Airsonic**, etc...
+A [**Source**](/configuration/sources) is a data source that contains information about music you are playing or have listened to, like a desktop player, web music player, or cloud music service. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Navidrome**, etc...
Source configurations consist of:
@@ -84,7 +84,7 @@ Source configurations consist of:
### Client
-A **Client** is an application that stores the historical information about what songs you have played (scrobbles). Examples are **Maloja, Last.fm, Listenbrainz**...
+A [**Client**](/configuration/clients) is an application that stores the historical information about what music you have played (scrobbles). Examples are **Maloja, Last.fm, Listenbrainz**...
Client configurations consist of:
diff --git a/docsite/docs/quickstart.mdx b/docsite/docs/quickstart.mdx
index 5fd13e5a..0cfdb632 100644
--- a/docsite/docs/quickstart.mdx
+++ b/docsite/docs/quickstart.mdx
@@ -42,7 +42,7 @@ services:
## Setup Sources
-**Sources** are the services multi-scrobbler monitors to look for listening activity.
+[**Sources**](/configuration/sources) are the services/music players multi-scrobbler monitors to look for listening activity.
@@ -76,7 +76,7 @@ services:
## 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.
+[**Clients**](/configuration/clients) are services that store scrobbles. Multi-scrobbler will scrobble all listening activity from the **Sources** you configured to all **Clients** you configure here.