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