diff --git a/docsite/docs/configuration/configuration.mdx b/docsite/docs/configuration/configuration.mdx
index a10005ee..79131493 100644
--- a/docsite/docs/configuration/configuration.mdx
+++ b/docsite/docs/configuration/configuration.mdx
@@ -294,7 +294,7 @@ All of the activities below are **always** cached **in-memory** with an optional
By default, this data use a [Secondary](#secondary-caching-configuration) [File](./?cacheType=file#secondary-caching-configuration) store, configured for you automatically.
-If you have configured a [persisted volume/bind mount](/installation#storage) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
+If you have configured a [persisted volume/bind mount](/installation?dockerSetting=storage#recommended-settings) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
:::
@@ -337,7 +337,7 @@ Authentication sessions/tokens/etc... are cached for quicker requests and for pe
By default, this data use a [Secondary](#secondary-caching-configuration) [File](./?cacheType=file#secondary-caching-configuration) store, configured for you automatically.
-If you have configured a [persisted volume/bind mount](/installation#storage) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
+If you have configured a [persisted volume/bind mount](/installation?dockerSetting=storage#recommended-settings) for configuration (`/config` is mounted in [docker compose](/quickstart#create-docker-compose-file)) then you are already done. If you are not persisting this directory then you should consider setting up [Valkey Cache](./?cacheType=valkey#secondary-caching-configuration) for this.
:::
diff --git a/docsite/docs/configuration/sources/mpris.mdx b/docsite/docs/configuration/sources/mpris.mdx
index f04cd96a..dad9375c 100644
--- a/docsite/docs/configuration/sources/mpris.mdx
+++ b/docsite/docs/configuration/sources/mpris.mdx
@@ -32,7 +32,7 @@ MPRIS communication requires multi-scrobbler to have access to the host's dbus-d
##### Local Unix Socket
- The most secure way is to **run a multi-scrobbler container on the same host as MPRIS.** In this scenario you can simply mount the **user session** dbus unix socket into the container. Make sure [`PUID` and `PGID` ENVs are configured](/installation/#linux-host) so the container has permissions to access the socket. Then, modify your compose stack with these additional values:
+ The most secure way is to **run a multi-scrobbler container on the same host as MPRIS.** In this scenario you can simply mount the **user session** dbus unix socket into the container. Make sure [`PUID` and `PGID` ENVs are configured](/installation?dockerSetting=linuxHost#recommended-settings) so the container has permissions to access the socket. Then, modify your compose stack with these additional values:
```yaml title="docker-compose.yaml"
diff --git a/docsite/docs/configuration/sources/spotify.mdx b/docsite/docs/configuration/sources/spotify.mdx
index dbb8cf97..d90890b9 100644
--- a/docsite/docs/configuration/sources/spotify.mdx
+++ b/docsite/docs/configuration/sources/spotify.mdx
@@ -65,7 +65,7 @@ Use **one** of the following methods to specify a valid Redirect URI and complet
In this scenario you can use `http://127.0.0.1:9078/callback` as the Spotify Redirect URI and multi-scrobbler `SPOTIFY_REDIRECT_URI` ENV.
- After completing authentication, copy the contents of local multi-scrobbler's [configuration folder](/installation#storage) to the final location of where multi-scrobbler will be run.
+ After completing authentication, copy the contents of local multi-scrobbler's [configuration folder](/installation?dockerSetting=storage#recommended-settings) to the final location of where multi-scrobbler will be run.
**Use a docker container on the same machine your browser is on to "intercept" the callback URL from Spotify authentication, then manually finish the process by changing the domain to your multi-scrobbler instance.**
diff --git a/docsite/docs/installation/installation.mdx b/docsite/docs/installation/installation.mdx
index 6d88cf2a..835e35f5 100644
--- a/docsite/docs/installation/installation.mdx
+++ b/docsite/docs/installation/installation.mdx
@@ -37,81 +37,39 @@ Cross-platform images are built for x86 (Intel/AMD) and ARM64 (IE Raspberry Pi)
:::
-Or use the example `docker-compose.yml`, found in the repo, after modifying it to fit your configuration:
+### Recommended Settings
-
-
-`docker-compose.yml`
-
-{ComposeStack}
-
-
-
-Recommended configuration steps for docker or docker-compose usage:
-
-#### Storage
-
-You should bind a host directory into the container for storing configurations and credentials. Otherwise, these will be lost when the container is updated.
-
-
-
-Example
+
+
+You **should** bind a host directory into the container for storing configurations and credentials. Otherwise, these will be lost when the container is updated.
-
-
- [Using `-v` method for docker](https://docs.docker.com/storage/bind-mounts/#start-a-container-with-a-bind-mount):
- ```shell
- docker run ... -v "$(pwd)/config:/config" foxxmd/multi-scrobbler
- ```
-
-
- [Using docker-compose](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-3):
-
- ```yaml title="docker-compose.yml"
- services:
- multi-scrobbler:
- # ...
- volumes:
- - "./config:/config"
- ```
-
-
-
-
-
-#### Networking
+```yaml title="docker-compose.yml"
+services:
+ multi-scrobbler:
+ # ...
+ // highlight-start
+ volumes:
+ - "./config:/config"
+ // highlight-end
+```
+
+
If you are using a [bridge network](https://www.appsdeveloperblog.com/docker-networking-bridging-host-and-overlay/) (default docker setup) you must map a port to the container in order to access the dashboard and use MS with some sources (Webscrobbler, LFM/LZ Endpoints). The default container port is `9078`.
-
-
- Example
-
-
-
- [Docker `run` publish options](https://docs.docker.com/engine/reference/commandline/run/#publish):
- ```shell
- docker run ... -p 9078:9078 foxxmd/multi-scrobbler
- ```
-
-
- [docker-compose](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-1):
-
- ```yaml title="docker-compose.yml"
- services:
- multi-scrobbler:
- # ...
- ports:
- - "9078:9078"
- ```
-
-
-
-
-
-##### Base URL
+```yaml title="docker-compose.yml"
+services:
+ multi-scrobbler:
+ # ...
+ // highlight-start
+ ports:
+ - "9078:9078"
+ // highlight-end
+```
-Optionally, when
+
+
+**Optionally**, when
* using a [Source or Client](../configuration/configuration.mdx) that has a "Redirect URI" that you have not explicitly defined
* and
@@ -120,70 +78,60 @@ Optionally, when
set the [Base URL](../configuration/configuration.mdx#base-url) as the IP of the host machine. (This is the IP you would use to view the dashboard in a browser)
-
-
- Example
-
-
- ```shell
- docker run ... -e BASE_URL="http://hostMachineIP" foxxmd/multi-scrobbler
- ```
-
-
- [docker-compose](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-1):
-
- ```yaml title="docker-compose.yml"
- services:
- multi-scrobbler:
- # ...
- environment:
- - BASE_URL=http://hostMachineIP
- ```
-
-
-
-
-
-#### Other
-
-* (Optionally) set the [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for the container using the environmental variable `TZ` ([docker](https://docs.docker.com/engine/reference/commandline/run/#env)) ([docker-compose](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment))
+```yaml title="docker-compose.yml"
+services:
+ multi-scrobbler:
+ # ...
+ environment:
+ // highlight-start
+ - BASE_URL=http://hostMachineIP
+ // highlight-end
+```
-#### Linux Host
+
+
+Set the [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for the container using the environmental variable `TZ`.
-::::info
+```yaml title="docker-compose.yml"
+services:
+ multi-scrobbler:
+ # ...
+ environment:
+ # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+ // highlight-start
+ - TZ=America/New_York
+ // highlight-end
+```
-If you are running this container with **Docker** on a **Linux Host** you must specify `user:group` permissions of the user who owns the **configuration directory** on the host to avoid [docker file permission problems.](https://ikriv.com/blog/?p=4698) These can be specified using the [environmental variables **PUID** and **PGID**.](https://docs.linuxserver.io/general/understanding-puid-and-pgid)
+
+
+If you are running this container with **Docker** on a **Linux Host** you **should** specify `user:group` permissions of the user who owns the **configuration directory** on the host to avoid [docker file permission problems.](https://ikriv.com/blog/?p=4698) These can be specified using the [environmental variables **PUID** and **PGID**.](https://docs.linuxserver.io/general/understanding-puid-and-pgid)
To get the UID and GID for the current user run these commands from a terminal:
* `id -u` -- prints UID
* `id -g` -- prints GID
-
-::::
-
-#### Read Only
-
+
+
MS can be hardended by setting the file system as read only with [`read_only`](https://docs.docker.com/reference/compose-file/services/#read_only), with a few exceptions:
```yaml title="docker-compose.yml"
services:
- multi-scrobbler:
- image: foxxmd/multi-scrobbler
- # ...
- read_only: true
- tmpfs:
- - /run:exec
- - /tmp:noexec
+ multi-scrobbler:
+ image: foxxmd/multi-scrobbler
+ # ...
+ // highlight-start
+ read_only: true
+ tmpfs:
+ - /run:exec
+ - /tmp:noexec
+ // highlight-end
```
-### (Optional) Caching With Valkey
-
-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.
-
-
-
-Example
+
+
+**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.
```yaml title="docker-compose.yml"
services:
@@ -210,7 +158,8 @@ volumes:
// highlight-end
```
-
+
+
### Docker Usage Example
@@ -230,23 +179,7 @@ The example scenario:
* Linux uid/gid is `1000:1000`
* Optional caching using valkey (after uncommenting)
-
-
-
-
- ```bash
- docker run --name multi-scrobbler -e "JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c" -e "JELLYFIN_URL=192.168.0.101:8096" -e "JELLYFIN_USER=MyUser" -e "BASE_URL=192.168.0.100" -e "MALOJA_URL=http://domain.tld" -e "MALOJA_API_KEY=1234" -e "PUID=1000" -e "PGID=1000" -p 9078:9078 -v /home/myUser/ms:/config foxxmd/multi-scrobbler
- ```
-
-
- ```bash
- docker run --name multi-scrobbler -e "PUID=1000" -e "PGID=1000" -e "BASE_URL=192.168.0.100" -p 9078:9078 -v "$(pwd)/config:/config" foxxmd/multi-scrobbler
- ```
-
-
-
-
- See [`docker-compose.yml`](#docker) sample above for more options and annotations.
+See [`docker-compose.yml`](#docker) sample above for more options and annotations.
```yaml title="docker-compose.yml"
services:
@@ -281,9 +214,6 @@ services:
# valkeydata:
# driver: local
```
-
-
-
## Local Installation
After installation see [service.md](service.md) to configure multi-scrobbler to run automatically in the background.
diff --git a/docsite/docs/quickstart.mdx b/docsite/docs/quickstart.mdx
index 3860c553..ad8c7bb7 100644
--- a/docsite/docs/quickstart.mdx
+++ b/docsite/docs/quickstart.mdx
@@ -314,7 +314,7 @@ Modify the `lastfm.json` file you created in the [Setup Sources](#setup-sources)
:::tip
-If you are running your multi-scrobbler container on a Linux host see [these instructions for setting proper file permissions.](/installation#linux-host)
+If you are running your multi-scrobbler container on a Linux host see [these instructions for setting proper file permissions.](/installation?dockerSetting=linuxHost#recommended-settings)
:::
@@ -336,7 +336,7 @@ Visit `http://192.168.0.100:9078` to see the dashboard where
## Next Steps
* See more advanced docker options as well as other install methods in the [**Installation**](/installation#docker) docs
- * Setup [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) with [valkey](/installation/#optional-caching-with-valkey) for increased performance and reduced memory usage
+ * Setup [secondary caching](/configuration/?cacheType=valkey#secondary-caching-configuration) with [valkey](/installation?dockerSetting=caching#recommended-settings) for increased performance and reduced memory usage
* Review the [**Configuration**](/configuration) docs
* Learn about how to configure multi-scrobbler using files for more complicated Source/Client scenarios
* See all available [**Sources**](/configuration/sources) and [**Clients**](/configuration/clients) alongside configuration examples