Skip to content

Deploying Supysonic

Introduction

Supysonic is a Python implementation of the Subsonic server API. It allows you to browse and stream your music collection from any Subsonic-compatible client. Built with simplicity in mind, Supysonic offers a lightweight alternative to heavier music server solutions.

Key highlights of Supysonic:

  • Subsonic API Compatible: Works with all Subsonic clients (DSub, Ultrasonic, etc.)
  • Python Based: Easy to understand, modify, and extend
  • Lightweight: Minimal resource requirements
  • Multiple Database Support: SQLite, MySQL, or PostgreSQL
  • Transcoding: On-the-fly audio transcoding
  • Last.fm Scrobbling: Submit plays to Last.fm
  • Folder Scanning: Automatic library indexing with metadata extraction
  • Web Interface: Basic web UI for administration

This guide walks through deploying Supysonic on Klutch.sh using Docker.

Why Deploy Supysonic on Klutch.sh

Deploying Supysonic on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Supysonic without complex orchestration.

Persistent Storage: Attach persistent volumes for your music library and database.

HTTPS by Default: Secure access to your music from anywhere.

GitHub Integration: Connect your configuration repository for automatic redeployments.

Prerequisites

Before deploying Supysonic on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Supysonic configuration
  • Basic familiarity with Docker and containerization concepts
  • Your music library files ready to upload

Deploying Supysonic on Klutch.sh

    Create Your Repository

    Create a new GitHub repository with a Dockerfile for Supysonic:

    FROM odarriba/supysonic:latest
    ENV PUID=1000
    ENV PGID=1000
    EXPOSE 5000
    VOLUME ["/music", "/var/lib/supysonic"]

    Push to GitHub

    Initialize and push your repository to GitHub with your Dockerfile.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 5000

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    PUID1000
    PGID1000

    Attach Persistent Volumes

    Add the following volumes:

    Mount PathRecommended SizePurpose
    /var/lib/supysonic1 GBDatabase and configuration
    /music100+ GBYour music library

    Deploy Your Application

    Click Deploy to start the build process.

    Access Supysonic

    Once deployment completes, access Supysonic at your app URL.

Configuration

Creating Users

Create users via the command line or web interface:

Terminal window
supysonic-cli user add username
supysonic-cli user setadmin username

Adding Music Folders

Add your music folder through the web interface or CLI:

Terminal window
supysonic-cli folder add /music

Scanning Your Library

Trigger a library scan:

Terminal window
supysonic-cli folder scan

Connecting Clients

Use any Subsonic-compatible client:

  • Server URL: Your Klutch.sh app URL
  • Username: Your Supysonic username
  • Password: Your Supysonic password

Additional Resources

Conclusion

Deploying Supysonic on Klutch.sh gives you a lightweight, Python-based music streaming server with automatic builds, persistent storage, and secure HTTPS access. Stream your music collection from any Subsonic-compatible app.