Setup docs
45
UPDATES.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# Updates for SMAPI
|
||||||
|
|
||||||
|
Run Bonob on your server.
|
||||||
|
|
||||||
|
Bonob now needs a volume to store OAuth Tokens. In the example below that directory is `/var/containers/bonob`. Adapt as needed.
|
||||||
|
Also the example below uses a `bonob` user on the system with ID `1210` and group `100`. The directory should be owned by that user.
|
||||||
|
|
||||||
|
Example systemd file (`/usr/lib/systemd/system/bonob.service`):
|
||||||
|
====
|
||||||
|
[Unit]
|
||||||
|
Description=bonob Container Service
|
||||||
|
Wants=network.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PODMAN_SYSTEMD_UNIT=%n
|
||||||
|
Restart=always
|
||||||
|
ExecStartPre=-/usr/bin/podman rm -f bonob
|
||||||
|
ExecStart=/usr/bin/podman run --rm \
|
||||||
|
--name bonob \
|
||||||
|
--label "io.containers.autoupdate=image" \
|
||||||
|
--user 1210:100 \
|
||||||
|
--env BNB_SONOS_SERVICE_NAME="Navidrome" \
|
||||||
|
--env BNB_PORT=8200 \
|
||||||
|
--env BNB_URL="https://bonob.mydomain.com" \
|
||||||
|
--env BNB_SECRET="<Some random string>" \
|
||||||
|
--env BNB_SONOS_SERVICE_ID=<Your Sonos ID> \
|
||||||
|
--env BNB_SUBSONIC_URL=https://music.mydomain.com \
|
||||||
|
--env BNB_ICON_FOREGROUND_COLOR="black" \
|
||||||
|
--env BNB_ICON_BACKGROUND_COLOR="#65d7f4" \
|
||||||
|
--env BNB_SONOS_AUTO_REGISTER=false \
|
||||||
|
--env BNB_SONOS_DEVICE_DISCOVERY=false \
|
||||||
|
--env BNB_LOG_LEVEL="info" \
|
||||||
|
--env TZ="Europe/Vienna" \
|
||||||
|
--volume /var/containers/bonob:/config:Z \
|
||||||
|
--publish 8200:8200 \
|
||||||
|
quay.io/wkulhanek/bonob:latest
|
||||||
|
ExecStop=/usr/bin/podman rm -f bonob
|
||||||
|
StandardOutput=syslog
|
||||||
|
StandardError=syslog
|
||||||
|
SyslogIdentifier=bonob
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target default.target
|
||||||
|
====
|
||||||
82
sonos_service/SONOS_SERVICE.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# Setting up Sonos Service
|
||||||
|
|
||||||
|
* Prerequisites
|
||||||
|
** In your Sonos App get your Sonos ID (About my Sonos System)
|
||||||
|
+ image::images/about.png
|
||||||
|
|
||||||
|
** Navidrome running and available from the Internet. E.g. via https://music.mydomain.com
|
||||||
|
** Bonob running and available from the Internet. E.g. via https://bonob.mydomain.com
|
||||||
|
|
||||||
|
You can use any method to make these URLs available. Cloudflare Tunnels, Pangolin, reverse proxy, etc.
|
||||||
|
|
||||||
|
* Log into https://play.sonos.com
|
||||||
|
* Once logged in go to https://developer.sonos.com/s/integrations
|
||||||
|
|
||||||
|
* Create a *New Content Integration*
|
||||||
|
|
||||||
|
** General Information
|
||||||
|
*** Service Name: Navidrome
|
||||||
|
*** Service Availability: Global
|
||||||
|
*** Checkbox checked
|
||||||
|
*** Website/Social Media URLs: https://music.mydomain.com (Some URL - e.g. your Navidrome server)
|
||||||
|
|
||||||
|
** Sonos Music API
|
||||||
|
*** Integration ID: com.mydomain.music (your domain in reverse)
|
||||||
|
*** Configuration Label: 1.0
|
||||||
|
*** SMAPI Endpoint: https://bonob.mydomain.com/ws/sonos
|
||||||
|
*** SMAPI Endpoint Version: 1.1
|
||||||
|
*** Radio Endpoint: empty
|
||||||
|
*** Reporting Endpoint: https://bonob.mydomain.com/report/v1
|
||||||
|
*** Reporting Endpoint Version: 2.3
|
||||||
|
*** Authentication Method: OAuth
|
||||||
|
*** Redirect: https://bonob.mydomain.com/login
|
||||||
|
*** Auth Token Time To Life: Empty
|
||||||
|
*** Browse/Search Results Page Size: 100
|
||||||
|
*** Polling Interval: 60
|
||||||
|
|
||||||
|
** Brand Assets
|
||||||
|
|
||||||
|
Just upload the various assets from the `sonos_artwork` directory.
|
||||||
|
|
||||||
|
** Localization Resources
|
||||||
|
|
||||||
|
Write something about your service in the various fields (except Explicit Filter Description).
|
||||||
|
|
||||||
|
** Integration Capabilities
|
||||||
|
|
||||||
|
Check the first two (*Enable Extended Metadata* and *Enable Extended Metadata for Playlists*) and nothing else.
|
||||||
|
|
||||||
|
** Image Replacement Rules
|
||||||
|
|
||||||
|
No changes
|
||||||
|
|
||||||
|
** Browse Options
|
||||||
|
|
||||||
|
No changes
|
||||||
|
|
||||||
|
** Search Capabilities
|
||||||
|
|
||||||
|
*** API Catalog Type: SMAPI Catalog
|
||||||
|
*** Catalog Title: Music
|
||||||
|
*** Catalog Type: GLOBAL
|
||||||
|
|
||||||
|
Add Three Categories with ID and Mapped ID:
|
||||||
|
|
||||||
|
Albums - albums
|
||||||
|
Artists - artists
|
||||||
|
Tracks - tracks
|
||||||
|
|
||||||
|
** Content Actions
|
||||||
|
|
||||||
|
No changes
|
||||||
|
|
||||||
|
** Service Deployment Settings
|
||||||
|
|
||||||
|
*** Sonos ID: Your Sonos ID (from About my system). This is how only your controller sees the new service.
|
||||||
|
*** System Name: Whatever you want
|
||||||
|
|
||||||
|
** Service Configuration
|
||||||
|
|
||||||
|
Click on *Refresh* and then *Send*. You should get a success message that you can dismiss with *Done*.
|
||||||
|
|
||||||
|
* In your app search for your service name and add Service in your app as usual.
|
||||||
BIN
sonos_service/images/about.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 950 B |
|
Before Width: | Height: | Size: 877 B After Width: | Height: | Size: 877 B |