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.

Navidrome

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.

yaml
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 Navidrome per 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.