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
- Select HTTP as the traffic type
- Set the internal port to 5000
Create Your Repository
Create a new GitHub repository with a Dockerfile for Supysonic:
FROM odarriba/supysonic:latest
ENV PUID=1000ENV 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:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
PUID | 1000 |
PGID | 1000 |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/lib/supysonic | 1 GB | Database and configuration |
/music | 100+ GB | Your 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:
supysonic-cli user add usernamesupysonic-cli user setadmin usernameAdding Music Folders
Add your music folder through the web interface or CLI:
supysonic-cli folder add /musicScanning Your Library
Trigger a library scan:
supysonic-cli folder scanConnecting 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.