MCPSERV.CLUB
moOde

moOde

Self-Hosted

Audiophile‑grade music streaming for Raspberry Pi

Active(100)
1.2kstars
0views
Updated 2 days ago
moOde screenshot 1
1 / 5

Overview

Discover what makes moOde powerful

moOde is a self‑hosted, audiophile‑grade media streaming stack built around the **Music Player Daemon (MPD)**. The project re‑implements and expands upon the original WebUI, providing a modern, responsive web interface that runs on Raspberry Pi and other ARM‑based SBCs. At its core, moOde exposes MPD’s JSON‑RPC API while adding a layer of high‑resolution audio handling, network streaming protocols (AirPlay, DLNA/UPnP, Spotify Connect), and a robust configuration system that persists to the SD card’s filesystem. The application is distributed as a Debian package for Bookworm (64‑bit) and can be flashed onto an SD card using the official Raspberry Pi Imager.

Core Engine

Web Frontend

Audio Backend

Persistence

Overview

moOde is a self‑hosted, audiophile‑grade media streaming stack built around the Music Player Daemon (MPD). The project re‑implements and expands upon the original WebUI, providing a modern, responsive web interface that runs on Raspberry Pi and other ARM‑based SBCs. At its core, moOde exposes MPD’s JSON‑RPC API while adding a layer of high‑resolution audio handling, network streaming protocols (AirPlay, DLNA/UPnP, Spotify Connect), and a robust configuration system that persists to the SD card’s filesystem. The application is distributed as a Debian package for Bookworm (64‑bit) and can be flashed onto an SD card using the official Raspberry Pi Imager.

Architecture

  • Core Engine – MPD (C, 2.6+) serves as the playback engine, handling decoding, buffering, and hardware I/O via ALSA or PulseAudio.
  • Web Frontend – A single‑page React/Redux application (ES6, SASS) communicates with a lightweight Node.js/Express proxy that translates UI actions into MPD JSON‑RPC calls.
  • Audio Backend – The mopidy‑style plugin architecture allows optional modules for AirPlay (shairport-sync), Chromecast, and Spotify Connect to be loaded at boot.
  • Persistence – Configuration lives in /etc/moode and a SQLite database stores playlists, device profiles, and user preferences.
  • Containerization – While not officially containerized, the modular design allows each component (MPD, web UI, plugins) to be Docker‑ized; community images exist on Docker Hub.

Core Capabilities

  • High‑resolution playback – Supports 24/96 kHz PCM, DSD, and lossless formats via libmad/libsndfile.
  • Network streaming – Built‑in AirPlay, DLNA/UPnP, Spotify Connect, and HTTP(S) streaming support.
  • Remote control APIs – Exposes a RESTful API (/api/*) for volume, track metadata, queue manipulation, and device discovery.
  • Webhooks & callbacks – Developers can register HTTP callbacks for events such as track change or power state, enabling integration with home‑automation systems.
  • Plugin hooks – Custom Python or shell scripts can be dropped into /usr/lib/moode/plugins/ and triggered on playback events.

Deployment & Infrastructure

moOde is designed for single‑board deployments but scales to a small cluster by running multiple instances behind an NGINX reverse proxy. The Debian package includes systemd units that automatically start MPD, the web UI, and optional plugins. For larger setups, a dedicated NAS can host the media library while Pi nodes act as lightweight frontends. The application is memory‑efficient (≈ 200 MB RAM on Pi 4) and supports 32‑bit or 64‑bit ARM architectures.

Integration & Extensibility

  • Plugin system – Any executable that follows the moode-plugin interface can augment playback, UI, or networking.
  • Webhooks – The API accepts JSON payloads; developers can hook into events like on_playback_start or on_volume_change.
  • Custom UI themes – The React codebase is modular; CSS variables allow theme overrides without touching the core.
  • Community scripts – A wealth of community‑written scripts (e.g., auto‑tagging, power‑on/off schedules) are available on GitHub and the forum.

Developer Experience

Documentation is comprehensive, with a setup guide that walks through image flashing, SSH configuration, and optional WiFi provisioning. The API reference is auto‑generated from the Express router and includes example payloads. Community support is strong: an active forum, IRC channel, and Discord server provide rapid feedback for bug reports or feature requests. Licensing under GPL‑3 ensures freedom to modify and redistribute, while the open source nature encourages contributions.

Use Cases

  1. Home Audio Hub – A Pi‑based media center that streams local files, AirPlay devices, and Spotify Connect to a high‑end DAC.
  2. Multi‑room Audio – Deploy multiple Pi nodes with a shared library; control them via the REST API from a central Home Assistant instance.
  3. Embedded Audio Player – Integrate moOde into a custom Raspberry Pi build (e.g., a smart speaker) by exposing the web UI over HDMI or a minimal headless interface.
  4. Educational Projects – Use the plugin API to teach students about audio DSP, network protocols, or web development in a real‑world context.

Advantages

  • Performance – Native MPD engine guarantees low latency and high fidelity; no JavaScript decoding overhead.
  • Flexibility – The plugin architecture and REST API allow developers to extend functionality without touching core code.
  • Licensing – GPL‑3 ensures that improvements remain open, fostering a vibrant ecosystem.
  • Hardware Support – Tight integration with Raspberry Pi peripherals (GPIO, I²C audio codecs) makes it a go‑to choice for DIY audio enthusiasts.

In summary, moOde offers a developer‑friendly, high‑performance media streaming platform that can be tailored to both simple home audio setups and more complex multi‑node deployments, all while staying fully open source and community driven.

Open SourceReady to get started?

Join the community and start self-hosting moOde today