Volumio è molto più di un semplice music player per Raspberry Pi e mini-PC: è una piattaforma audio embedded costruita con una architettura ben stratificata che integra Linux, servizi audio nativi, un backend Node.js modulare e una web-UI in tempo reale.
In questo articolo analizziamo in profondità i suoi componenti principali, sulla base dei repository open-source ufficiali:
- Volumio OS Build System
https://github.com/volumio/volumio3-os - Volumio Backend
https://github.com/volumio/volumio3-backend - Volumio User Interface
https://github.com/volumio/Volumio2-UI
Troverai anche un diagramma architetturale a blocchi (SVG/PNG) realizzato appositamente.
Diagramma dell’architettura di Volumio

1. Architettura generale: una pila di componenti ben distinta
Volumio è strutturato come una stack a livelli, in cui ogni layer assume un ruolo specifico:
Layer 1 — Hardware
SBC (Raspberry Pi, Odroid, RockPi, x86), DAC USB o I2S, moduli Wi-Fi/Ethernet.
Layer 2 — Volumio OS
Basato su Debian, costruito tramite multistrap/debootstrap.
Include:
- kernel patchati per board specifiche
- ALSA + driver audio
- servizi di sistema (systemd, networking, mount, udev)
Layer 3 — Servizi Audio
I demoni responsabili della riproduzione:
- MPD (Music Player Daemon)
- Shairport-Sync (AirPlay)
- Snapcast (multiroom)
- upmpdcli (UPnP/DLNA renderer)
Layer 4 — Backend Volumio (Node.js)
È il “cervello” del sistema:
- orchestration del player
- configurazioni
- API REST
- API WebSocket realtime
- gestione dei plugin
- process manager per MPD, shairport, snapcast
Layer 5 — Web UI (SPA)
Applicazione web (storicamente AngularJS) servita dal backend tramite Express.
È il “cruscotto” con cui l’utente interagisce da browser o app.
2. Volumio OS: come viene costruito
Il repository volumio3-os contiene tutto ciò che serve per generare le immagini ufficiali:
Strumenti e tecnologie
- Debian come base
- multistrap/debootstrap per la rootfs
- qemu-user-static per cross-build ARM → x86
- kernel custom e moduli per DAC e SBC
- systemd per servizi e init
Pipeline di build (semplificata)
- Preparazione ambiente (host Debian + toolchain)
- Creazione rootfs minimale con multistrap
- Download/compilazione kernel per target
- Inserimento pacchetti audio (MPD, shairport, snapcast…)
- Inclusione backend + UI compilata
- Compressione e generazione immagine
.img
È una pipeline altamente automatizzata e parametrica.
3. Backend Node.js: il cuore di Volumio
Il backend (volumio3-backend) è un’app Node.js monolitica ma modulare.
Gestisce:
Funzioni principali
- REST API → configurazione, scansione librerie, system actions
- WebSocket API → comunicazione realtime UI ↔ player
- Plugin System → installazione, lifecycle, API helper
- Process orchestration → MPD, Shairport, Snapcast
- Update system → OTA updates (script in
update-helper.js)
Struttura del backend (alto livello)
index.js
app/
- player/
- controllers/
- middleware/
- websocket/
pluginhelper.js
update-helper.js
utils/
Flusso runtime
- La UI apre una connessione WebSocket al backend.
- Il backend espone lo stato corrente del player e riceve comandi.
- Il backend dialoga con MPD / shairport / snapcast tramite wrapper di processo.
- Eventi e aggiornamenti tornano alla UI in realtime.
4. Web UI: una SPA servita dal backend
Il progetto Volumio2-UI contiene:
- codice sorgente AngularJS
- asset grafici
- task runner Gulp
- dipendenze Bower
- cartella
dist/prodotta in fase di build
La UI è completamente realtime grazie al Socket.io.
5. Il sistema dei plugin
Uno degli elementi più potenti di Volumio.
Come sono fatti i plugin
- directory installate nel filesystem di Volumio
- codice JS lato backend
- eventuali estensioni UI (pagine, menu)
- accesso ai servizi interni tramite
pluginhelper.js
Lifecycle
- installazione
- configurazione
- attivazione/disattivazione
- avvio/stop
I plugin possono:
- aggiungere nuove sorgenti musicali
- integrare servizi esterni
- controllare hardware
- modificare UI e comportamenti del sistema
6. Lo stack audio di Volumio
Volumio usa componenti audio Linux “classici”, molto collaudati:
ALSA
Layer di interfaccia verso l’hardware (DAC USB/I2S).
MPD
Riproduzione di file locali e librerie remote.
Shairport-Sync
Supporto ad AirPlay.
Snapcast
Multiroom sincrono all’interno della rete locale.
UPnP/DLNA
Gestiti tramite upmpdcli.
7. Gestione della libreria musicale
La libreria è gestita interamente dal backend:
- scanner delle directory
- metadata extraction
- indexing in database locale
- browse API esposte alla UI
Supporta:
- USB
- NFS/SMB
- UPnP
- Web radio
- Streaming services (tramite plugin)
8. Aggiornamenti OTA
Il backend include:
- downloader degli aggiornamenti
- verifica
- swap dell’immagine
- riavvio controllato
Il sistema permette update trasparenti lato utente.
9. Sicurezza
Punti chiave:
- Il backend espone API sulla rete locale → da non pubblicare su Internet
- I plugin hanno accesso al sistema → vanno installati solo da fonti affidabili
- Gli update devono provenire da canali ufficiali
10. Estendibilità
Volumio è altamente estendibile grazie a:
- plugin system
- backend modulare
- UI separata
- API WebSocket semplici da integrare
È possibile creare:
- nuove viste della UI
- nuovi servizi audio
- integrazioni cloud
- automazioni e controller hardware
Conclusione
Volumio è un progetto architetturalmente solido: Linux a basso livello, demoni audio ben rodati, backend Node.js ricco di funzionalità e una UI realtime moderna.
La forte modularità permette a maker, sviluppatori e appassionati audio di creare sistemi personalizzati e potenti.

