= Updates for SMAPI Run Bonob on your server. == Updates made to original code * Proper Token handling after login. Also handling of periodic token refresh. Something is still funky here after a day or two... * Store Tokens in an SQLite database (in mounted `/config` directory). * Added variable `BNB_TOKEN_CLEANUP_INTERVAL` with a default of `60` (minutes) to set how often expired tokens should be cleaned up out of the database. * Multi-account logins. Register one Bonob and log in with multiple Navidrome users for easy account switching in the Sonos app. * Global Search integration (Artist, Album, Track) * Scrobbling support to Navidrome. After one song has been completely played the album will show up in the "Recently played" section. * Playlist support. It shows both public and private (for the current account) playlists. * Modernized Login page. == To be done * Remove all now unnecessary logic: ** Handling of `BNB_SONOS_SEED_HOST` ** Autoregistration with Sonos devices (`BNB_SONOS_AUTO_REGISTER`) ** Handling of `BNB_SONOS_DEVICE_DISCOVERY` * Implement Thumbs Up/Down or Star ratings (this is probably a Sonos Service configuration thing - with maybe some code changes). * Implement Playlist editing == Running Bonob Bonob now needs a volume to store the token database. 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 database directory should be owned by that user. Also for `BNB_SUBSONIC_URL` you can use the internal or external URL. So instead of `https://music.mydomain.com` you could use `http://192.168.1.100:4533` if your Navidrome runs on a server with IP `192.168.1.100`. .Example systemd file (`/usr/lib/systemd/system/bonob.service`) [source] ---- [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 ----