Setup docs

This commit is contained in:
2025-10-17 17:33:04 +02:00
parent 57c60dd462
commit b777f4fd00
12 changed files with 127 additions and 0 deletions

45
UPDATES.md Normal file
View 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
====

View 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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 950 B

After

Width:  |  Height:  |  Size: 950 B

View File

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 877 B