README.md

December 17, 2025 ยท View on GitHub

Important


Please read the release notes for any breaking changes.

Swingsonic

Might have to find a new name...

A translation layer allowing clients from other music servers to work with Swing Music.

Supported

Note: Client compatibility varies; the percentages reflect my experience with client compatibility, not the entire API.

Images

Euterpe EuterpeSubtracks SubtracksUltrasonic UltrasonicFinamp Finamp

Docker

To use this with docker, simply deploy the following docker-compose.

version: '3'

services:
  app:
    image: ghcr.io/prince527github/swingsonic:latest
    container_name: swingsonic
    ports:
      - 3000:3000
    volumes: # Use a config.json file or env (see below)
      - /PATH/config.json:/app/config.json
    environment:
      - SERVER_PORT=3000 # The port to listen on
      - SERVER_URL=http://ip:port # The public URL of this API
      - SERVER_API_SUBSONIC_ENABLE=true # Enable of disable Subsonic API implementation
      - SERVER_API_SUBSONIC_OPTIONS_ZW=true # Enable of Zero Width Character Hack
      - SERVER_API_JELLYFIN=true # Enable of disable Jellyfin API implementation
      - SERVER_API_EUTERPE=true # Enable of disable Enterpe API implementation
      - SERVER_USERS_0_USERNAME=admin # Subsonic and Jellyfin implementation requires a list of Swing Music users's usernames
      - SERVER_USERS_0_PASSWORD=admin # Subsonic and Jellyfin implementation requires a list of Swing Music users's passwords
      - MUSIC=http://ip:port # The URL of your Swing Music server