Deploying LMS (Logitech Media Server)
Introduction
Logitech Media Server (LMS), formerly known as SlimServer and SqueezeCenter, is a free, open source streaming music server that powers the Squeezebox audio players and a wide ecosystem of compatible software players. Even though Logitech discontinued the Squeezebox hardware, LMS continues to thrive with an active community maintaining the server and developing new features.
LMS supports a vast array of audio formats and streaming services, provides extensive plugin support, and offers synchronized multi-room audio playback. The web-based interface allows you to browse and control your music from any device.
Key features of LMS:
- Multi-Room Audio: Synchronize playback across multiple players
- Extensive Format Support: FLAC, MP3, AAC, WAV, OGG, and more
- Internet Radio: Access thousands of internet radio stations
- Streaming Service Integration: Spotify, Tidal, Qobuz, and more via plugins
- Rich Plugin Ecosystem: Hundreds of plugins for extended functionality
- Album Art: Automatic artwork fetching and display
- Remote Access: Control your music from anywhere
- Multiple Players: Support for hardware and software players
- Library Management: Tag editing and library scanning
- Playlist Support: Smart playlists and saved favorites
- Web Interface: Browser-based control and management
- Open Source: Active community development
This guide walks through deploying LMS on Klutch.sh using Docker, configuring your music library, and setting up players.
Why Deploy LMS on Klutch.sh
Deploying LMS on Klutch.sh provides several advantages for music streaming:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds LMS without complex orchestration.
Persistent Storage: Attach persistent volumes for your music library and configuration. Your playlists survive container restarts.
HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure remote access.
GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.
Scalable Resources: Allocate CPU and memory based on your library size and transcoding needs.
Environment Variable Management: Securely store configuration without exposing in code.
Custom Domains: Assign a custom domain for easy access to your music server.
Always-On Availability: Stream your music 24/7 from anywhere.
Prerequisites
Before deploying LMS on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker and containerization concepts
- Your music collection ready to upload
- (Optional) Squeezebox hardware or software player applications
- (Optional) A custom domain for your LMS instance
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for deploying LMS on Klutch.sh.
Repository Structure
lms-deploy/├── Dockerfile├── README.md└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM lmscommunity/logitechmediaserver:latest
# Create directories for music and playlistsRUN mkdir -p /music /playlists /config
# Set environment variablesENV PUID=${PUID:-1000}ENV PGID=${PGID:-1000}
# Expose ports# 9000 - Web interface# 9090 - CLI# 3483 - Squeezebox control (TCP/UDP)EXPOSE 9000 9090 3483 3483/udp
# The base image includes the default entrypointEnvironment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
PUID | No | 1000 | User ID for file permissions |
PGID | No | 1000 | Group ID for file permissions |
TZ | No | UTC | Timezone for the server |
HTTP_PORT | No | 9000 | Web interface port |
Deploying LMS on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 9000 (LMS web interface)
- Detect your Dockerfile automatically
- Build the container image
- Attach the persistent volumes
- Start the LMS container
- Provision an HTTPS certificate
Push Your Repository to GitHub
Initialize your repository and push to GitHub:
git initgit add Dockerfile .dockerignore README.mdgit commit -m "Initial LMS deployment configuration"git remote add origin https://github.com/yourusername/lms-deploy.gitgit push -u origin mainCreate a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “lms” 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 LMS Dockerfile.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Add optional environment variables:
| Variable | Value |
|---|---|
PUID | 1000 |
PGID | 1000 |
TZ | Your timezone (e.g., America/New_York) |
Attach Persistent Volumes
Add volumes for data persistence:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/config | 5 GB | LMS configuration and database |
/music | 500+ GB | Your music library files |
/playlists | 1 GB | Playlist files |
Deploy Your Application
Click Deploy to start the build process. Klutch.sh will:
Access LMS
Once deployment completes, access your LMS web interface at https://your-app-name.klutch.sh.
Initial Configuration
First-Time Setup
When you first access LMS:
- The setup wizard will guide you through initial configuration
- Specify your music folder location (
/music) - Specify your playlist folder (
/playlists) - Let LMS scan your library
Adding Your Music Library
Configure music sources:
- Go to Settings > Basic Settings
- Under Media Folders, add
/music - Configure additional folders if needed
- Click Rescan
Library Organization
Organize your music for best results:
/music/├── Artist Name/│ ├── Album Name (Year)/│ │ ├── 01 - Track Name.flac│ │ └── 02 - Track Name.flac│ └── Another Album/└── Various Artists/ └── Compilation Album/Installing Plugins
Popular Plugins
Extend LMS with plugins:
- Go to Settings > Plugins
- Browse available plugins
- Popular choices include:
- Material Skin (modern web interface)
- Spotify (Spotify integration)
- YouTube (YouTube playback)
- Local Player (play on server)
Enabling Plugins
- Check the box next to desired plugins
- Click Apply
- Restart LMS if required
- Configure plugin settings
Player Setup
Software Players
Compatible software players:
- SoftSqueeze (Java)
- Squeezelite (Linux/Mac/Windows)
- iPeng (iOS)
- Squeeze Player (Android)
Connecting Players
- Install player software on your device
- Configure the player to connect to your LMS server
- The player should appear in the LMS interface
- Start playing music
Troubleshooting Common Issues
Library Not Scanning
- Verify music folder path is correct
- Check file permissions (PUID/PGID)
- Ensure music files are in supported formats
Players Not Connecting
- Verify network connectivity
- Check firewall settings for ports 9000, 9090, 3483
- Ensure server address is correct in player settings
Slow Performance
- Increase allocated resources
- Enable artwork caching
- Consider splitting large libraries
Additional Resources
Conclusion
Deploying LMS on Klutch.sh gives you a powerful, open source music streaming server with automatic builds and secure HTTPS access. Enjoy your music collection from anywhere with multi-room audio support.