Navidrome è un music server open-source che permette di accedere alla propria libreria musicale in streaming da qualsiasi dispositivo tramite una semplice interfaccia web. È compatibile con il protocollo Subsonic e può essere utilizzato con decine di app client disponibili per ogni piattaforma (iOS, Android, desktop, web). Questo lo rende la soluzione ideale per chi desidera avere il pieno controllo della propria musica senza dipendere da servizi di streaming commerciali.
Navidrome può essere utilizzato come server standalone, permettendo di sfogliare e ascoltare la propria collezione musicale direttamente dal browser. Utilizza pochissime risorse (funziona anche su un Raspberry Pi Zero) ed è in grado di gestire collezioni audio molto grandi, supportando numerosi formati audio. Il sistema supporta più utenti grazie al sistema di autenticazione integrato. Tra le funzionalità più interessanti c’è l’integrazione con Last.fm per ottenere informazioni su artisti e brani, oltre alla capacità di eseguire la transcodifica al volo.
Processo di Installazione
Dopo aver installato Docker Engine e Docker Compose, è possibile procedere con l’installazione di Navidrome utilizzando un container Docker. La configurazione è semplice e richiede solo il file docker-compose.yml per definire il servizio.
Creiamo il File Docker Compose
Il file docker-compose.yml qui sotto configura il servizio Navidrome. Navidrome utilizza un database SQLite integrato, quindi non richiede un container database separato. In questa configurazione la porta a cui Navidrome sarà associato è la 4533, ma questa può essere cambiata senza alcun problema. Inoltre nella configurazione non sarà necessario aggiungere nessun segreto nei file .env.
services:
navidrome:
container_name: Navidrome
image: deluan/navidrome:latest
restart: always
ports:
- '4533:4533'
environment:
ND_SCANSCHEDULE: '1h'
ND_LOGLEVEL: 'info'
ND_SESSIONTIMEOUT: '24h'
# ND_BASEURL: 'https://navidrome.dominio.xx' # Opzionale
volumes:
- navidrome_data:/data
- /directory/della/musica:/music:ro
volumes:
navidrome_data:In questa configurazione abbiamo creato il volume navidrome_data che memorizza il database SQLite integrato, le configurazioni e la cache di Navidrome. La cartella /music è montata in sola lettura (:ro) per sicurezza.
Nella configurazione proposta abbiamo inserito alcune delle variabili più utilizzate. Per una lista completa potete trovarle a questo link della documentazione ufficiale. Qui sotto lo schema delle variabili utilizzate.
| Variabile | Descrizione | Valori |
|---|---|---|
ND_SCANSCHEDULE |
Intervallo di scansione automatica della libreria | 1h, 30m, @daily |
ND_LOGLEVEL |
Livello di dettaglio dei log | error, warn, info, debug |
ND_SESSIONTIMEOUT |
Durata della sessione utente prima della scadenza | es. 24h, 48h |
ND_BASEURL |
URL base se Navidrome è dietro un reverse proxy con subpath | es. https://navidrome.dominio.xx |
Primo Accesso e Configurazione
Al primo accesso all’interfaccia web, Navidrome richiederà la creazione di un account amministratore. Inserire username e password per completare la configurazione iniziale.
Dopo il login, Navidrome avvierà automaticamente la scansione della libreria musicale. Per librerie molto grandi, la prima scansione può richiedere diversi minuti.
Troubleshooting & Consigli
Qui possiamo trovare alcuni consigli per poter andare a sistemare alcuni problemi di configurazione:
- Se Navidrome non trova i file musicali, verificare che il percorso montato nel volume sia corretto e che i permessi permettano la lettura dei file. Controllare i log con
docker logs Navidromeper dettagli. - Se la scansione non rileva nuovi brani, è possibile forzare una scansione manuale dall’interfaccia web (Settings > Scan). Verificare che i file siano in formati supportati (MP3, FLAC, OGG, AAC, etc.).
- Per esporre Navidrome su internet, configurare un reverse proxy (es. NGINX Proxy Manager ) con HTTPS e un certificato SSL valido. Non esporre mai la porta 4533 direttamente su internet senza cifratura.