Architecture · v1

A library surrounded by players

Volumio is a player, tied to its own sound card. Here the server needs none: it indexes, converts and serves URLs — other things do the playing. Three distinct outbound directions: a renderer plays now, a device holds a copy, an emitter lets others read.

Map of the music library server Server topology: four families of sources feed a SQLite index, one job queue carries every long-running operation, and a single streaming endpoint serves clients, network renderers, devices and emitters. A scheduler and side channels cut across the whole thing. MEDIA SERVER · NODE SCAN RCLONE FETCH MATCH STREAM URL PULL SUBSONIC TRIGGERS EVENTS Local storage disk · USB · mounted Remote sources SMB · S3 · Drive Streams radio · RSS · live { } Enrichment MusicBrainz · LB JOBS Job queue scan · transcode · fingerprint · podcasts · sync · relay — persisted, resumable INDEX Library node:sqlite MEDIA Conversion ffmpeg · chromaprint HOST Plugins manifest · UI zones HTTP Streaming endpoint Range · token · per-renderer profile — the server never pushes audio, it hands out a URL Clients web · tablet · Pi+DAC Network renderers UPnP · Sonos · AirPlay Devices iPod · via satellite { } Emitters OpenSubsonic · DLNA CRON Scheduler named workflows — iPod sync at 3am, podcast feeds every 6h, nightly rescan HORS Side channels scrobble to Last.fm and ListenBrainz · Home Assistant · MQTT LEGEND focal piece core component input / output audio flow indexing trigger

The central mechanism

One queue

  • Scanning, transcoding, fingerprinting, podcasts, sync, acquisition, analysis, stream relaying — same shape, same implementation.
  • Persisted in SQLite, resumable, pausable, concurrency capped per kind.
  • The satellite protocol is this contract seen remotely: same schema, same display component.

Why a single outlet

We hand out a URL

  • Sonos, UPnP and AirPlay all work this way: "here is a URL, go fetch it".
  • No audio byte passes through memory — it is HTTP with Range.
  • The device declares its formats, the server converts only what will not play. Same rule for the iPod.

What is not on this map

The satellites

  • The iPod dock runs elsewhere, often on an armv6 Pi 1 — outside Node's reach.
  • It pulls files at its own pace and resumes after an interruption.
  • Transcoding and fingerprinting stay on the server; the satellite only writes the device database.