Skip to content

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
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM lmscommunity/logitechmediaserver:latest
# Create directories for music and playlists
RUN mkdir -p /music /playlists /config
# Set environment variables
ENV 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 entrypoint

Environment Variables Reference

VariableRequiredDefaultDescription
PUIDNo1000User ID for file permissions
PGIDNo1000Group ID for file permissions
TZNoUTCTimezone for the server
HTTP_PORTNo9000Web interface port

Deploying LMS on Klutch.sh

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub:

    Terminal window
    git init
    git add Dockerfile .dockerignore README.md
    git commit -m "Initial LMS deployment configuration"
    git remote add origin https://github.com/yourusername/lms-deploy.git
    git push -u origin main

    Create 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:

    • Select HTTP as the traffic type
    • Set the internal port to 9000 (LMS web interface)

    Set Environment Variables

    Add optional environment variables:

    VariableValue
    PUID1000
    PGID1000
    TZYour timezone (e.g., America/New_York)

    Attach Persistent Volumes

    Add volumes for data persistence:

    Mount PathRecommended SizePurpose
    /config5 GBLMS configuration and database
    /music500+ GBYour music library files
    /playlists1 GBPlaylist files

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will:

    • Detect your Dockerfile automatically
    • Build the container image
    • Attach the persistent volumes
    • Start the LMS container
    • Provision an HTTPS certificate

    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:

  1. The setup wizard will guide you through initial configuration
  2. Specify your music folder location (/music)
  3. Specify your playlist folder (/playlists)
  4. Let LMS scan your library

Adding Your Music Library

Configure music sources:

  1. Go to Settings > Basic Settings
  2. Under Media Folders, add /music
  3. Configure additional folders if needed
  4. 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

Extend LMS with plugins:

  1. Go to Settings > Plugins
  2. Browse available plugins
  3. Popular choices include:
    • Material Skin (modern web interface)
    • Spotify (Spotify integration)
    • YouTube (YouTube playback)
    • Local Player (play on server)

Enabling Plugins

  1. Check the box next to desired plugins
  2. Click Apply
  3. Restart LMS if required
  4. Configure plugin settings

Player Setup

Software Players

Compatible software players:

Connecting Players

  1. Install player software on your device
  2. Configure the player to connect to your LMS server
  3. The player should appear in the LMS interface
  4. 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.