mrkeyoor.com_
Tue 01 Sept 17:45 UTC
Self-Hostedevaluationupdated 28 Aug 2026

server review

Music Assistant Server is a self-hosted music library and playback hub that connects streaming accounts, local media, and networked speakers. It can run beside Home Assistant for automations or as a standalone Docker service on an always-on machine.

+20 / 3dstars / 7d
Verdict

Our Music Assistant install pulled 147 packages and 1,460 MB, then its tests stopped in 6 seconds on a missing hass_client import, so source deployment deserves more caution than the appliance-style install. Use the Home Assistant app or official container if you want one controller for mixed music services and speakers. Choose a simpler library server when multi-room playback and Home Assistant automation are outside the job.

We ran it

Lab card: what happened when we ran serverScreenshot of server (music-assistant.io)
Install✓ · 169s147 packages · 1460 MB
Build✓ · 19s
Tests✗ · 6sran, no count parsed
Known vulns0(pip-audit)
Repo2784 files~670,611 lines of source · 101.7 MB · 16 CI workflows · Dockerfile · tests dir

Answers from our run

Does server build from source?

Dependencies installed in 169 seconds (147 packages), and the build succeeded in 19 seconds. We cloned commit a234bc7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do server's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does server have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use server?

People seeking a supported pip install: the README says the server is not published to PyPI because it needs ffmpeg, native libraries, and bundled binaries.

What are the alternatives to server?

Navidrome, Jellyfin, OwnTone. Our Music Assistant install pulled 147 packages and 1,460 MB, then its tests stopped in 6 seconds on a missing hass_client import, so source deployment deserves more caution than the appliance-style install.

Setup3/5Official images help; source tests missed hass_client
Docs4/5Supported installs and source requirements are explicit
Community5/52,998 stars with same-day pushes and active releases
Maturity4/5Broad provider system with occasional breaking migrations

Who it’s for

Home Assistant users who want music services and different speaker systems under one controller.
Self-hosters with a Raspberry Pi, NAS, or small PC that stays online.
Households combining local files, radio, podcasts, audiobooks, and supported streaming providers.
Developers building playback automations or MCP tools against a local music server.

Who it’s NOT for

People seeking a supported pip install: the README says the server is not published to PyPI because it needs ffmpeg, native libraries, and bundled binaries.
Users without an always-on host: the README says the server must run continuously on a Raspberry Pi, NAS, Intel NUC, or similar device.
Source developers staying on Python 3.12: the current README requires Python 3.14 or newer and ffmpeg 6.1 or newer.
Households that depend on the old local audio provider: release 2.10.0 retires it in favor of the Sendspin add-on.
Teams that require a clean test run in the supplied sandbox: our test collection stopped with a missing hass_client module.

Setup reality

Our sandbox installed 147 packages in 169 seconds and used 1,460 MB on disk. The build succeeded in 19 seconds. Tests failed with exit 4 after 6 seconds because collection reached an import of hass_client, which was not installed. Pip-audit found 0 known vulnerabilities.

The supported routes are the Home Assistant app and ghcr.io/music-assistant/server. Both bundle ffmpeg 6.1 or newer, native libraries, network filesystem clients, and other binaries. Streaming providers need their own account credentials, and Home Assistant integration needs the corresponding service connection.

Running from source is a development path requiring Python 3.14 or newer plus the system dependencies. The server listens on port 8095 in the documented source setup and belongs on an always-on device. Speaker discovery, local networking, mounts, and provider compatibility still depend on the home network.

One server joins music services to networked speakers

Music Assistant is the controller between a music library and the devices that play it. It can combine local files, streaming accounts, radio, podcasts, and audiobooks, then expose them to supported speakers through one interface. The server also gives Home Assistant a place to automate playback. Its README recommends the Home Assistant app, although the official Docker image supports a standalone installation.

This job is broader than serving albums to a phone. Music Assistant tracks libraries, provider accounts, player state, queues, grouping, and audio streams. Release 2.10.0 adds and changes providers across radio, podcasts, cloud storage, speakers, text to speech, and AI-assisted features. That breadth is its reason to exist and the source of its operating cost. Every extra service or playback protocol brings its own login, network behavior, and failure mode.

The official images are the supported installation path

The README names only the Home Assistant app and ghcr.io/music-assistant/server as supported server installations. Both carry system pieces that Python packaging cannot supply by itself: ffmpeg 6.1 or newer with the expected codecs, native libraries such as jemalloc, CIFS and NFS clients, and bundled binaries. The project is deliberately absent from PyPI, so a plain pip install is the wrong production plan.

Source setup is for development. It now requires Python 3.14 or newer and ffmpeg 6.1 or newer, uses scripts/setup.sh to create the environment, and starts a local server on port 8095. This is a substantial jump from copying a single Python package into a virtual environment. Operators also need persistent storage, access to any mounted music library, and local network visibility for the player protocols they intend to use.

What happened when we ran it

Our sandbox installed commit a234bc7 in 169 seconds, pulling 147 packages and occupying 1,460 MB on disk. The build succeeded in 19 seconds. That is a heavy development environment before a music collection, cache, or container image enters the picture. The checkout itself contained 2,784 files, about 670,611 lines of source, and used 101.7 MB.

Tests stopped during collection after 6 seconds with exit code 4. The import chain went through the web server authentication middleware to auth_providers.py, which imports HomeAssistantClient from hass_client. Python then raised ModuleNotFoundError: No module named 'hass_client'. The log does not establish why that module was absent, so we cannot call the suite healthy or assign a broader cause.

Pip-audit found 0 known vulnerabilities in the installed environment. The repository has 16 CI workflow files, a Dockerfile, and a tests directory. Our run used a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. The current README asks source developers to use Python 3.14 or newer, but the missing-module log alone does not prove that interpreter difference caused the failure.

Home Assistant is optional, though the design favors it

The server can operate alone, but its own documentation says it is tailored to sit beside Home Assistant. That makes sense for wake-up routines, presence-based playback, announcements, and controls that span lights and audio. The app installation also hides system dependency work that surfaced in our 1,460 MB source environment. Existing Home Assistant users get the shortest supported path.

Standalone Docker users still get the music controller without adopting the larger automation platform. They must handle the container lifecycle, storage, network access, and service credentials themselves. A NAS with local media may need CIFS or NFS access; cloud and streaming providers need account authorization; discovery-heavy speaker protocols may need more LAN access than a tightly isolated container normally receives. The README promises bundled dependencies, not automatic resolution of home-network policy.

Release 2.10.0 changes providers and retires local audio

Version 2.10.0 was published on August 27, 2026. Its breaking change retires the local audio provider in favor of the Sendspin add-on. Anyone playing directly through audio hardware attached to the server should check that migration before upgrading. A project that coordinates many outside services will keep moving as upstream APIs and playback protocols change, so unattended major upgrades are a poor fit.

The same release adds an MCP set_repeat tool, explicit pause and resume tools, player ungrouping, and further queue controls. Those features make the server interesting for local agents, but they also create an authorization question: an MCP client can change shared household playback. Keep that endpoint inside a trusted network and expose only the controls users should have. The release notes document capability, not a permission model for every deployment.

Current activity is high, with support split across repositories

GitHub recorded a last push on August 28, 2026, one day after the 2.10.0 release. The server repository had 2,998 stars and 59 combined issues and pull requests when fetched. Development is plainly current. The README directs user problems to the separate music-assistant/support tracker and feature ideas to its discussions, so the server repository's combined open count does not represent the full user queue.

Music Assistant earns its place when the household has mismatched speakers and media sources. The official app and container are the sensible ways to evaluate it; our failed source test collection is a warning against improvising another installation route. For a personal library that only needs browsing and playback through Subsonic clients, Navidrome asks less of the operator. For Home Assistant automation across several players, Music Assistant tackles the harder and more useful job.

Alternatives

ProjectWhat it isPick it when
Navidrome gh↗A lightweight self-hosted music server centered on a personal library and Subsonic clients.pick this instead when local-file browsing and mobile clients matter more than coordinating many speaker systems.
Jellyfin gh↗A full personal media server for music, video, and photos.pick this instead when one server should manage television and film libraries alongside music.
OwnToneA self-hosted audio server for local libraries, internet radio, and network playback targets.pick this instead when a narrower audio daemon and Apple-oriented playback protocols fit your devices.

What people are saying

  1. [github-trending] music-assistant/server
  2. [lobsters] The Server Called Paranoia: Defend Autistici/Inventati Before September 25
  3. [hackernews] A curmudgeon tries a language server
  4. [github-trending] atlassian/atlassian-mcp-server
  5. [velocity-scout] duty1g/x64dbg-mcp-server
  6. [lobsters] MNT Station - A modular, open hardware desktop computer and server

Sources

  1. Music Assistant Server repository and README
  2. Music Assistant installation documentation
  3. Music Assistant Server 2.10.0 release
  4. Music Assistant support tracker

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →