Oggi siamo abituati a fruire dei contenuti musicali in streaming senza averli fisicamente sui supporti tradizionali o sul nostro disco fisso. Questa situazione però non ha arrestato la vendita di supporti fisici ed anzi oggi esiste una folta community di audiofili che conservano non solo copie fisiche della musica ma ne hanno spesso un backup in un formato digitale non compresso sul proprio SSD o sul NAS.
È infatti innegabile che la riproduzione digitale sia enormemente più semplice ed immediata rispetto al dover inserire manualmente un supporto fisico, come un CD, ogni volta che dobbiamo riprodurre un album. Tuttavia organizzare manualmente intere discografie risulta complesso. Ecco perché ci vengono in aiuto diversi programmi che automatizzano tale processo andando anche a recuperare una serie di informazioni online tramite i metadati presenti nei file.
Navidrome su Linux
Quest'oggi vogliamo parlarvi di Navidrome, un programma che consente di catalogare la nostra libreria musicale digitale in modo automatico e di eseguire uno streaming di tali contenuti su vari dispositivi connessi alla rete LAN. Navidrome si propone quindi come alternativa self-hosted ai più popolari servizi di streaming audio. In questo tutorial, nello specifico, parleremo di come realizzare un music server Linux con tale applicativo.
Potenzialmente è possibile realizzare il progetto con qualsiasi PC, anche uno molto vecchio di riciclo, questo perché la riproduzione audio ed il suo streaming necessità di poche risorse. Inoltre la musica, anche quella distribuita in formati non compressi, occupa uno spazio su disco enormemente minore rispetto a film o serie tv.
Per esempio è possibile installare Navidrome all'interno di una board ARM, come Raspberry Pi, cosi da occupare meno spazio possibile ed assicurarsi bassi consumi energetici.
Per tale progetto non è necessario selezionare una distribuzione Linux specifica. Potete utilizzare quella che preferite, infatti andremo ad usare Navidrome tramite il sistema di container Docker.
Installazione di Docker sul server Linux
Prima di iniziare la configurazione del sistema di container Docker assicuriamoci che la distribuzione Linux che stiamo usando sia aggiornata. Quindi vi consigliamo di utilizzare il vostro gestore di pacchetti di riferimento per controllare la presenza di update. Ad esempio sulle distro basate su Debian:
sudo apt update && sudo apt upgrade -y
Mentre per sistemi come Fedora:
sudo dnf update -y
Oppure per Arch Linux:
sudo pacman -Syu
Finiti i controlli è arrivato il momento di installare Docker. Quindi torniamo nella shell e digitiamo questo comando per reperire l'installer:
curl -sSL https://get.docker.com | sh
Nel caso in cui curl non sia presente nel sistema potete reperirlo dal vostro package manager. Ad esempio su Debian:
sudo apt install curl
Ora avviamo l'installazione vera e propria di Docker:
sudo sh get-docker.sh
Terminato il processo di setup iniziale vi consigliamo di aggiungere il vostro utente all'interno del gruppo Docker. Cosi da poter lavorare più agilmente con tale sistema di container:
sudo usermod -aG docker nomedelnostroutente
Inoltre non dimentichiamoci di impostare Docker in modo che venga avviato in automatico ad ogni boot. Per farlo dobbiamo interpellare systemd:
sudo systemctl enable docker.service && sudo systemctl enable containerd.service
systemd è infatti il sistema di gestione dei processi usato nella stragrande maggioranza delle distribuzioni. Esistono alcuni sistemi Linux che non lo impiegano, in questi casi vi rimandiamo al manuale della vostra distribuzione per capire come impostare quest'ultimo setting.
Generare il Docker compose file di Navidrome
Adesso siamo pronti per avviare la configurazione del container e nello specifico del Docker compose file. Generiamo le directory dove andremo ad operare:
sudo mkdir -p /opt/stacks/navidrome/data
Adesso assicuriamoci che il nostro utente abbia tutti i permessi per lavorare sulle cartelle create:
sudo chown nomedelvostroutente: /opt/stacks/navidrome/data
e spostiamoci dentro /navidrome
:
cd /opt/stacks/navidrome
Quindi rivolgiamoci all'editor di testo nano per creare il Docker compose file:
sudo nano compose.yaml
che va popolato cosi:
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "./data:/data"
- "LADIRECTORYDELLAVOSTRAMUSICA:/music:ro"
Facciamo particolare attenzione all'ultimo parametro. Infatti dobbiamo indicare al container di Navidrome la cartella dove è contenuta la musica che intendiamo importare al suo interno. Quindi modifichiamo l'ultima parte del file con la patch della directory da utilizzare, come ad esempio:
/home/nomeutente/musica
Salviamo le modifiche eseguite premendo CTRL+O e e chiudiamo il file con CTRL+X. Ora possiamo finalmente avviare il container di Navidrome con questo pratico comando:
docker compose up -d
Accedere alla Web interface di Navidrome
Il setup iniziale è finalmente terminato e ora possiamo accedere all'interfaccia Web di Navidrome ed iniziare ad importare la nostra libreria musicale. Spostiamoci quindi nel nostro browser di riferimento e digitiamo questo nella barra degli URL:
192.168.1.12:4533
192.168.1.12
è l'IP locale del device Linux che stiamo usando come music server. Se non conosciamo questo dato non c'è da preoccuparsi, basta tornare nella shell e digitare:
hostname -I
Come output dovremmo ricevere appunto un IP locale simile a quello presentato nell'esempio. Il numero 4533
è invece la porta su cui è in ascolto Navidrome, è possibile visualizzarla anche nel Docker compose file prima compilato. Dopo esserci collegati alla Web GUI di Navidrome ci viene chiesto di creare il nostro utente e di inserire una password per i futuri login.
Ora dovremmo avere accesso completo alla nostra libreria musicale. Se avete inserito la directory corretta nel Docker compose file tutti i brani dovrebbero essere stati rilevati automaticamente.
Navidrome cataloga la musica in base ai vari album o all'artista. Inoltre è possibile realizzare delle playlist o affidarsi alla riproduzione casuale o a delle playlist create automaticamente con i brani più riprodotti.
Tenere aggiornato il Docker di Navidrome
I coder di Navidrome pubblicano aggiornamenti costanti del programma. Se desiderate eseguire l'upgrade del Docker potete seguire queste istruzioni. Innanzitutto aprite bash e spostatevi nella directory di Navidrome :
cd /opt/stacks/navidrome
Ora potete indicare a Docker di reperire l'ultima versione, se disponibile, del container:
docker compose pull
Terminata l'operazione potete riavviare il contaier Docker:
docker compose up -d