Improves Docker integration by copying config.example.json as the default config.json and updating ownership in the Dockerfile. Adjusts config paths in config.example.json for container compatibility and updates docker-compose.yml to build the image and comment out the config volume for baked-in config testing. Also updates .dockerignore to allow config.example.json.
Added a section explaining how to complete Spotify OAuth authentication when accessing SoulSync remotely via Docker. This provides a workaround for Spotify's redirect URI restrictions and guides users through the necessary steps.
Introduced DOCKER-OAUTH-FIX.md to address 'Insecure redirect URI' errors when using OAuth from devices other than the Docker host. Updated README.md to reference the new guide for users encountering authentication issues.
Redirect URIs for Spotify and Tidal OAuth are now configurable via the web UI and settings. Updated backend clients to use the configured redirect URI if provided, improving flexibility for deployments with custom callback URLs.
Wishlist tracks are now sorted by artist and track name for consistent display. The database query for wishlist tracks now orders by date_added instead of randomly. Added logic to remove completed tracks from the wishlist during failed track processing. Updated docker-compose.yml to mount the H: drive for transfer folders.
Added detailed setup guides for Spotify, Tidal, and Plex APIs, including step-by-step instructions for obtaining credentials and tokens. Clarified prerequisites and configuration steps to help users set up SoulSync more easily.
Changed recommended database mount from /app/database to /app/data in UNRAID.md and soulsync.xml to avoid overwriting Python modules. Updated troubleshooting section to clarify correct mounting and added config.json example for new database path.
Change documentation and template to mount only the config.json file instead of the entire config directory. This prevents overwriting Python module files in /app/config and resolves import errors during container startup.