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:
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.