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/moodeand 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-plugininterface can augment playback, UI, or networking. - Webhooks – The API accepts JSON payloads; developers can hook into events like
on_playback_startoron_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
- Home Audio Hub – A Pi‑based media center that streams local files, AirPlay devices, and Spotify Connect to a high‑end DAC.
- Multi‑room Audio – Deploy multiple Pi nodes with a shared library; control them via the REST API from a central Home Assistant instance.
- 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.
- 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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Apache Druid
Real‑time analytics database for sub‑second queries
Shaarli
Personal, fast, database‑free link bookmarking
OpenProject
Collaborative project management for secure, on‑premises teams
vod2pod-rss
Turn YouTube or Twitch channels into podcast feeds
Recipya
Simplify family cooking with an intuitive recipe manager
ILIAS
Open Source LMS for schools, universities and enterprises
