mStream: Self-Hosted Music Streaming

06-12-2024 - 1 minute, 45 seconds -
documentation mstream docker self-hosted

Introduction

mStream is a self-hosted music streaming server that allows you to stream your music collection to any device with a browser. This guide explains how to deploy mStream using Docker, configure it to use a network share for your music library, and enable persistent storage for configuration.


Prerequisites

  1. Docker and Docker Compose installed on your system.
  2. Access to a network share where your music files are stored.
  3. Basic knowledge of Docker volumes and container management.

Steps to Set Up mStream

1. Create a Docker Compose File

Use the following docker-compose.yml to configure and deploy mStream:

version: '3'

services:
  mstream:
    image: lscr.io/linuxserver/mstream:latest
    container_name: mstream
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=US/Central
    volumes:
      - ./config:/config
      - nas-share:/music
    ports:
      - 3012:3000
    restart: unless-stopped

volumes:
  nas-share:
    driver_opts:
      type: cifs
      o: "username=your_username,password=your_password"
      device: "//your-server/music-share"

2. Start the mStream Service

Run the following commands to pull the necessary image and start the mStream container:

docker-compose pull
docker-compose up -d

3. Access mStream

Once the container is running, access the mStream web interface at:

http://localhost:3012

Log in and configure the server as needed.


Extended Configuration

Configuring the Network Share

If your music library is stored on a network share:

  1. Update the nas-share volume in the docker-compose.yml file to match your network settings.
    volumes:
     nas-share:
       driver_opts:
         type: cifs
         o: "username=your_username,password=your_password"
         device: "//your-server/music-share"
  2. Restart the container to apply changes:
    docker-compose down
    docker-compose up -d

Adjusting Timezone

Ensure the TZ environment variable matches your local timezone. You can find valid timezone strings here.

Persistent Configuration

The container maps its configuration files to the ./config folder. To ensure changes are saved:

  • Make edits in the web interface or the mapped directory (./config).

Updating mStream

To update mStream to the latest version:

docker-compose pull
docker-compose up -d

Resources and References


Conclusion

mStream provides a powerful and flexible way to stream your music library to any device. By leveraging Docker and a network share for your music storage, you can maintain an easily accessible and persistent setup. With this guide, you’re ready to deploy and enjoy mStream in your home or on the go.