Deploying Stretto
Introduction
Stretto is a self-hosted music streaming server that implements the Subsonic API, allowing you to stream your personal music collection from anywhere. Built as a modern alternative to traditional Subsonic servers, Stretto provides a clean web interface and compatibility with a wide ecosystem of Subsonic-compatible mobile and desktop applications.
Key highlights of Stretto:
- Subsonic API Compatibility: Works with popular Subsonic clients like DSub, Ultrasonic, and Submariner
- Modern Web Interface: Stream music directly from your browser with an intuitive player
- Library Scanning: Automatically indexes your music files and extracts metadata
- Transcoding Support: On-the-fly audio transcoding for bandwidth optimization
- Multi-User Support: Create accounts for family members and friends
- Playlist Management: Create, edit, and share playlists across devices
- Album Art: Automatic cover art fetching and display
- Lightweight: Minimal resource requirements for self-hosting
This guide walks through deploying Stretto on Klutch.sh using Docker, configuring persistent storage for your music library, and setting up the application for production use.
Why Deploy Stretto on Klutch.sh
Deploying Stretto on Klutch.sh provides several advantages for streaming your music collection:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Stretto without complex orchestration. Push to GitHub, and your music server deploys automatically.
Persistent Storage: Attach persistent volumes for your music library, database, and configuration. Your collection and settings survive container restarts without data loss.
HTTPS by Default: Klutch.sh provides automatic SSL certificates, ensuring secure access to your music from anywhere without manual certificate management.
GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.
Custom Domains: Assign a custom domain to your Stretto instance for easy access across all your devices.
Prerequisites
Before deploying Stretto on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Stretto configuration
- Basic familiarity with Docker and containerization concepts
- Your music library files ready to upload
Deploying Stretto on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 4040
Create Your Repository
Create a new GitHub repository with a Dockerfile for Stretto:
FROM ghcr.io/stretto-team/stretto:latest
ENV PUID=1000ENV PGID=1000
EXPOSE 4040
VOLUME ["/music", "/data"]Push to GitHub
Initialize and push your repository to GitHub with your Dockerfile and configuration files.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “stretto” or “music-server”.
Create a New App
Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your Stretto Dockerfile.
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 |
|---|---|---|
/data | 5 GB | Database and configuration |
/music | 100+ GB | Your music library |
Deploy Your Application
Click Deploy to start the build process. Klutch.sh will build and deploy your Stretto instance.
Access Stretto
Once deployment completes, access your Stretto instance at your app URL. Create your admin account on first access.
Configuration
Adding Your Music Library
Upload your music files to the /music volume. Stretto will automatically scan and index the files, extracting metadata from ID3 tags.
Connecting Mobile Apps
Use any Subsonic-compatible app with your Stretto server URL. Popular options include:
- DSub (Android)
- Ultrasonic (Android)
- Submariner (macOS)
- play:Sub (iOS)
Additional Resources
Conclusion
Deploying Stretto on Klutch.sh gives you a powerful, self-hosted music streaming server with automatic builds, persistent storage, and secure HTTPS access. Stream your personal music collection from anywhere using the web interface or any Subsonic-compatible app.