Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers. The server is the beating heart, the core of Music Assistant and must run on an always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike.
  • Python 98.5%
  • HTML 0.5%
  • CSS 0.5%
  • JavaScript 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-15 08:37:51 +00:00
.claude/skills/review-pr Align PR review instructions with current context engineering guidance (#5097) 2026-07-28 11:11:26 +02:00
.github chore: merge upstream/dev (conflicts: kept fork version) 2026-10-14 09:04:39 +00:00
.vscode Bring back the VS Code launch configuration (#6283) 2026-09-12 00:19:12 +02:00
docs/stylesheets chore: sync workflow wrappers from ma-provider-tools (#114) 2026-02-24 18:52:58 +03:00
music_assistant Keep untouched AI Radio preset hosts in sync with the bundled wording (#6966) 2026-10-15 09:20:39 +02:00
scripts Skip unchanged Apple Music library syncs (#6998) 2026-10-14 15:27:45 +02:00
tests Keep untouched AI Radio preset hosts in sync with the bundled wording (#6966) 2026-10-15 09:20:39 +02:00
.gitattributes Make pre-commit configuration cross-platform compatible using uv (#2971) 2026-01-15 09:03:13 +01:00
.gitignore Bring back the VS Code launch configuration (#6283) 2026-09-12 00:19:12 +02:00
.pre-commit-config.yaml Use consistent line endings in the pre-commit config file (#5488) 2026-08-08 01:37:12 +00:00
.python-version Bump Python to 3.14 (#3702) 2026-04-15 12:40:05 +02:00
AGENTS.md Document ffmpeg 7.0 as the minimum version (#6850) 2026-10-10 20:17:56 +02:00
CLAUDE.md Update review instructions. 2026-06-01 10:14:36 +02:00
codecov.yml Run only affected providers' tests on PRs (HA-style), with Codecov (#4335) 2026-06-19 11:04:32 +02:00
DEVELOPMENT.md Document ffmpeg 7.0 as the minimum version (#6850) 2026-10-10 20:17:56 +02:00
devenv.lock Add devenv Configuration for Consistent Developer Environments (#3641) 2026-04-14 21:24:18 +02:00
devenv.nix Bump Python to 3.14 (#3702) 2026-04-15 12:40:05 +02:00
devenv.yaml Add devenv Configuration for Consistent Developer Environments (#3641) 2026-04-14 21:24:18 +02:00
Dockerfile Update airplay-cli to v0.5.8 (#6984) 2026-10-14 09:01:53 +02:00
Dockerfile.base Remove an unused package from the base image (#6820) 2026-10-10 14:45:10 +02:00
LICENSE Initial commit 2019-05-09 08:17:03 +02:00
MANIFEST.in Fetch AirPlay binaries during image builds (#4881) 2026-07-21 22:11:28 +02:00
NOTICE Keep bundled service credentials out of the source tarball and clarify their license (#6840) 2026-10-11 02:04:02 +02:00
pyproject.toml ⬆️ Update music-assistant-frontend to 2.17.342 (#7013) 2026-10-15 02:39:31 +00:00
README.md Keep bundled service credentials out of the source tarball and clarify their license (#6840) 2026-10-11 02:04:02 +02:00
requirements_all.txt ⬆️ Update music-assistant-frontend to 2.17.342 (#7013) 2026-10-15 02:39:31 +00:00
SECURITY.md Remove redundant md files 2026-04-29 10:34:23 +02:00
setup.cfg Add base for client implementation (#666) 2023-05-17 21:43:11 +02:00

English | Русский


Music Assistant Server — Custom Fork

This is a custom fork of music-assistant/server, maintained as an integration base for a set of custom providers for Russian streaming services.

Providers

Provider Repository Type Docs Issues Changelog
Yandex Music ma-provider-yandex-music Music Docs → Issues → Changelog →
KION Music ma-provider-kion-music Music Docs → Issues → Changelog →
Zvuk Music ma-provider-zvuk-music Music Docs → Issues → Changelog →
MSX Bridge ma-provider-msx-bridge Player Docs → Issues → Changelog →

Do not open issues in this repository. File them in the affected provider's repo (see Issues column above). For upstream Music Assistant bugs use the official support repo.

Branch Structure

Branch Purpose
stable Production-stable. Tracks upstream stable releases. Provider releases are cut from here.
dev Active development. Provider code lands here after testing. Default branch.
integration/dev Staging. All provider dev branches are merged here for full-stack integration testing.
integration/pending-upstream Upstream patches or PRs awaiting merge into official Music Assistant.
upstream/msx_bridge Upstream-tracking branch for MSX Bridge.
feat/msx-bridge-player-provider Active MSX Bridge feature branch.

copilot/* and backport/* branches are created automatically by CI — they can be ignored.

Running via Home Assistant Addon

The official Music Assistant DEV SERVER addon supports a server_repo option that installs directly from any fork or branch — no Docker build required.

1. Add the addon repository to Home Assistant:

Add repository

2. Install "Music Assistant DEV SERVER" from the addon store.

3. Set server_repo in the addon configuration:

Goal server_repo value
Fork, default branch (dev) trudenboy/ma-server
Fork, specific branch trudenboy/ma-server@integration/dev
Fork, specific branch trudenboy/ma-server@stable
# addon configuration
server_repo: "trudenboy/ma-server@integration/dev"

4. Start the addon. It will install the fork's code on startup and start MA normally.

The addon re-installs from source on every restart, so it always picks up the latest commits from the specified branch. No manual steps needed after a branch update.

Running with Docker

Clone any branch and start Music Assistant with the fork's code applied on top of the official nightly image — no build step required.

# 1. Clone the desired branch
git clone -b integration/dev https://github.com/trudenboy/ma-server.git
cd ma-server

# 2. Run
docker run -d \
  --name music-assistant \
  -p 8095:8095 -p 8097:8097 \
  --privileged \
  -v "$(pwd)/music_assistant":/mnt/ma-fork:ro \
  -v ma-data:/data \
  --entrypoint /bin/sh \
  ghcr.io/music-assistant/server:nightly \
  -c 'cp -r /mnt/ma-fork/. "$(/app/venv/bin/python3 -c "import music_assistant,os; print(os.path.dirname(music_assistant.__file__))")/" \
      && exec /usr/local/bin/entrypoint.sh --data-dir /data --cache-dir /data/.cache'

Open http://localhost:8095 in the browser.

# Useful commands
docker logs -f music-assistant        # follow logs
docker stop music-assistant           # stop
docker rm music-assistant             # remove container (data volume is preserved)
docker volume rm ma-data              # wipe persistent data

To switch branches: git checkout <branch>, then stop and recreate the container.

Or use Docker Compose — create a docker-compose.yml in the cloned repo:

services:
  ma:
    image: ghcr.io/music-assistant/server:nightly
    container_name: music-assistant
    ports:
      - "8095:8095"
      - "8097:8097"
    privileged: true
    restart: unless-stopped
    volumes:
      - ./music_assistant:/mnt/ma-fork:ro
      - ma-data:/data
    entrypoint: /bin/sh
    command: >-
      -c 'cp -r /mnt/ma-fork/. "$(/app/venv/bin/python3 -c
      "import music_assistant,os; print(os.path.dirname(music_assistant.__file__))")/"
      && exec /usr/local/bin/entrypoint.sh --data-dir /data --cache-dir /data/.cache'

volumes:
  ma-data:
docker compose up -d          # start in background
docker compose logs -f        # follow logs
docker compose down           # stop
docker compose down -v        # stop and wipe data

How Providers Are Integrated

See trudenboy/ma-provider-tools for the full CI/CD architecture, wrapper distribution system, and incident pipeline.


Music Assistant Server — Кастомный форк

Кастомный форк music-assistant/server, служащий базой интеграции провайдеров для российских стриминговых сервисов.

Провайдеры

Провайдер Репозиторий Тип Документация Задачи Changelog
Яндекс Музыка ma-provider-yandex-music Музыка Docs → Issues → Changelog →
KION Музыка ma-provider-kion-music Музыка Docs → Issues → Changelog →
Звук ma-provider-zvuk-music Музыка Docs → Issues → Changelog →
MSX Bridge ma-provider-msx-bridge Плеер Docs → Issues → Changelog →

Не открывай задачи в этом репозитории. Заводи их в репозитории конкретного провайдера (столбец «Задачи»). Для багов в upstream Music Assistant используй официальный репозиторий поддержки.

Структура веток

Ветка Назначение
stable Production-стабильная. Отслеживает upstream stable-релизы. Здесь выпускаются релизы провайдеров.
dev Активная разработка. Код провайдеров приземляется сюда после тестирования. Ветка по умолчанию.
integration/dev Стейджинг. Dev-ветки всех провайдеров объединяются здесь для полного интеграционного тестирования.
integration/pending-upstream Upstream-патчи или PR, ожидающие слияния в официальный Music Assistant.
upstream/msx_bridge Upstream-ветка для отслеживания MSX Bridge.
feat/msx-bridge-player-provider Активная feature-ветка MSX Bridge.

Ветки copilot/* и backport/* создаются автоматически CI-пайплайном — их можно игнорировать.

Запуск через аддон Home Assistant

Официальный аддон Music Assistant DEV SERVER поддерживает опцию server_repo, которая устанавливает код напрямую из любого форка или ветки — без сборки Docker-образа.

1. Добавь репозиторий аддонов в Home Assistant:

Добавить репозиторий

2. Установи "Music Assistant DEV SERVER" из магазина аддонов.

3. Укажи server_repo в конфигурации аддона:

Цель Значение server_repo
Форк, ветка по умолчанию (dev) trudenboy/ma-server
Форк, конкретная ветка trudenboy/ma-server@integration/dev
Форк, конкретная ветка trudenboy/ma-server@stable
# конфигурация аддона
server_repo: "trudenboy/ma-server@integration/dev"

4. Запусти аддон. При старте он установит код из форка и запустит MA в штатном режиме.

Аддон переустанавливает пакет из исходников при каждом перезапуске — всегда подхватывает последние коммиты из указанной ветки. Никаких ручных действий после обновления ветки не нужно.

Запуск через Docker

Клонируй любую ветку и запусти Music Assistant с кодом форка поверх официального nightly-образа — без сборки.

# 1. Клонируй нужную ветку
git clone -b integration/dev https://github.com/trudenboy/ma-server.git
cd ma-server

# 2. Запусти
docker run -d \
  --name music-assistant \
  -p 8095:8095 -p 8097:8097 \
  --privileged \
  -v "$(pwd)/music_assistant":/mnt/ma-fork:ro \
  -v ma-data:/data \
  --entrypoint /bin/sh \
  ghcr.io/music-assistant/server:nightly \
  -c 'cp -r /mnt/ma-fork/. "$(/app/venv/bin/python3 -c "import music_assistant,os; print(os.path.dirname(music_assistant.__file__))")/" \
      && exec /usr/local/bin/entrypoint.sh --data-dir /data --cache-dir /data/.cache'

Открой http://localhost:8095 в браузере.

# Полезные команды
docker logs -f music-assistant        # следить за логами
docker stop music-assistant           # остановить
docker rm music-assistant             # удалить контейнер (том с данными сохраняется)
docker volume rm ma-data              # сбросить постоянные данные

Чтобы переключить ветку: git checkout <branch>, затем останови и пересоздай контейнер.

Или используй Docker Compose — создай docker-compose.yml в директории клонированного репо:

services:
  ma:
    image: ghcr.io/music-assistant/server:nightly
    container_name: music-assistant
    ports:
      - "8095:8095"
      - "8097:8097"
    privileged: true
    restart: unless-stopped
    volumes:
      - ./music_assistant:/mnt/ma-fork:ro
      - ma-data:/data
    entrypoint: /bin/sh
    command: >-
      -c 'cp -r /mnt/ma-fork/. "$(/app/venv/bin/python3 -c
      "import music_assistant,os; print(os.path.dirname(music_assistant.__file__))")/"
      && exec /usr/local/bin/entrypoint.sh --data-dir /data --cache-dir /data/.cache'

volumes:
  ma-data:
docker compose up -d          # запустить в фоне
docker compose logs -f        # следить за логами
docker compose down           # остановить
docker compose down -v        # остановить и сбросить данные

Как провайдеры интегрируются

Полная архитектура CI/CD, система дистрибуции файлов и пайплайн инцидентов описаны в trudenboy/ma-provider-tools.