Project Awesome project awesome

mStream

Music streaming server with GUI management tools. Runs on Mac, Windows, and Linux.

Package 2.3k stars GitHub

mStream Music

mStream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere.

Main Shared Admin
main shared admin

Demo & Other Links

Check Out The Demo!

Discord Channel

Website

Server Features

  • Cross Platform. Works on Windows, OSX, Linux, & FreeBSD and ARM CPUs
  • Light on memory and CPU
  • Tested on multi-terabyte libraries
  • Metadata parser written in Rust for fast indexing - JS fallback included for maximum compatibility
  • Multi-user accounts with per-library access control
  • DLNA / UPnP server for casting to TVs and stereos
  • Subsonic / OpenSubsonic API — works with DSub, play:Sub, Symfonium, Feishin, Supersonic, and other Subsonic clients
  • On-the-fly transcoding via ffmpeg (opus, mp3, aac)
  • Server-side audio playback for headless boxes (Rust audio engine + CLI fallback)

WebApp Features

  • Gapless Playback
  • Milkdrop Visualizer (Butterchurn)
  • Playlist Sharing via signed links
  • Upload, create, and rename files through the file explorer
  • Synced + plain lyrics (embedded, sidecar .lrc, or LRCLib — opt-in)
  • Waveform previews rendered at scan time
  • Album art auto-fetch from MusicBrainz, iTunes, and Deezer
  • Admin UI for server configuration

Installing mStream

Mobile Apps

mStream iOS App

mStream Android App

Made by Niera Tech

Quick Install from CLI

Deploying an mStream server is simple.

# Install From Git
git clone https://github.com/IrosTheBeggar/mStream.git

cd mStream

# Install dependencies and run
npm run-script wizard

Technical Details

  • Dependencies: NodeJS v22.5 or greater
  • Database: SQLite (via node:sqlite) — no external DB server required
  • Scanner: Pre-built Rust binary (Linux x64/arm/arm64 + musl, macOS x64/arm64, Windows x64); falls back to a pure-JS scanner when no binary matches the host
  • Supported File Formats: flac, mp3, wav, ogg, opus, aac, m4a, m4b
  • APIs: mStream /api/v1 (REST, OpenAPI spec) and Subsonic /rest (1.16.1 + OpenSubsonic extensions)

Credits

mStream is built on top of some great open-source libraries:

  • music-metadata - The metadata parser used by the JS scanner fallback
  • Lofty - Audio tag reader powering the Rust scanner
  • Symphonia - Pure-Rust audio decoder used to render waveform previews during a scan
  • Butterchurn - A clone of Milkdrop Visualizer written in JavaScript
  • Syncthing - Powers federation between mStream servers
  • LRCLib - Optional source for synced lyrics

And thanks to the LinuxServer.io group for maintaining the Docker image!

Back to Self Hosted