Indice Serie Homelab
Libertà digitale: creare un ecosistema di servizi personali senza dipendere dalle big tech.
- Homelab: Necessità o Capriccio?
- Homelab: Proxmox e Container LXC
- Homelab: Setup Immich
- Homelab: Setup Navidrome
- Homelab: Accesso Remoto Sicuro
- Homelab: Migrazione da iCloud a Immich
- Homelab: Setup AFFiNE
- Homelab: Strategia Backup KISS
- Homelab: Migrazione di Rete e Wireguard
- Homelab: UPS e Network UPS Tools
- Homelab: Da AFFiNE a Obsidian con Syncthing
Dal Controllo Foto al Controllo Musica Link to heading
Nel precedente articolo abbiamo configurato Immich per la gestione delle foto con storage esterno dedicato. Con Immich operativo e i backup ancora da configurare, decido di espandere l’homelab. Il prossimo servizio: Navidrome, un server di streaming musicale self-hosted che trasforma la nostra collezione MP3/FLAC in un servizio simile a Spotify, ma completamente sotto il nostro controllo.
Container Dedicato per Navidrome Link to heading
Seguendo l’approccio di isolamento servizio per container, creiamo un container LXC dedicato esclusivamente a Navidrome.
Creazione Container Navidrome Link to heading
Via Interfaccia Web Proxmox:
-
Create CT → General
- CT ID:
103 - Hostname:
navidrome - Password: Impostare password sicura
- CT ID:
-
Template:
ubuntu-22.04-standard -
Root Disk:
- Storage:
local-lvm - Disk size:
8 GB(minimo, dati su disco esterno)
- Storage:
-
CPU:
- Cores:
1(sufficiente per streaming musicale)
- Cores:
-
Memory:
- Memory:
512 MB - Swap:
512 MB
- Memory:
-
Network:
- Bridge:
vmbr0 - IPv4:
Static - IPv4/CIDR:
192.168.1.206/24 - Gateway:
192.168.1.1 - Firewall: ✓ Enabled
- Bridge:
Mount Point Storage hermes Link to heading
Via Interfaccia Web Proxmox:
- Selezionare container navidrome (ID 103)
- Resources → Add → Mount Point
- Mount Point ID:
mp0(default) - Storage:
hermes - Disk size:
50 GB - Path in Container:
/navidrome-data - Backup: ✓
Preparazione Directory Storage Link to heading
# Dall'HOST PROXMOX
mkdir -p /mnt/hermes/navidrome/{data,music}
# Struttura:
# /mnt/hermes/
# ├── immich/
# └── navidrome/
# ├── data/ (database e cache)
# └── music/ (libreria musicale)
Setup Docker nel Container Link to heading
# Avviare e entrare nel container
pct start 103
pct enter 103
# Aggiornamento e installazione Docker
apt update && apt upgrade -y
curl -fsSL https://get.docker.com | sudo sh
usermod -aG docker $USER
# Verificare mount point
df -h /navidrome-data
ls -la /navidrome-data/
# Creare directory di lavoro
mkdir -p /root/navidrome-app
Setup Navidrome con Docker Compose Link to heading
Seguiamo la guida ufficiale di Navidrome adattata al nostro environment homelab.
Configurazione Docker Compose Link to heading
# Entrare nella directory di lavoro
cd /root/navidrome-app
# Creare docker-compose.yml
nano docker-compose.yml
Configurazione Docker Compose:
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000
ports:
- "4533:4533"
restart: unless-stopped
environment:
- ND_MUSICFOLDER=/music
- ND_DATAFOLDER=/data
- ND_SCANSCHEDULE=@every 1h
- ND_LOGLEVEL=info
- ND_ENABLEDOWNLOADS=true
- ND_SESSIONTIMEOUT=24h
- ND_UIWELCOMEMESSAGE="Musica Homelab"
- ND_DEFAULTTHEME=Dark
volumes:
- "/navidrome-data/data:/data"
- "/navidrome-data/music:/music:ro"
Preparazione Directory e Permessi Link to heading
Prima del primo avvio, configuriamo i permessi corretti per le directory di Navidrome:
# Dal container navidrome (pct enter 103)
# Creare directory necessarie
mkdir -p /navidrome-data/{data,music}
# Impostare permessi corretti per utente Docker 1000:1000
chown -R 1000:1000 /navidrome-data/
chmod -R 755 /navidrome-data/
# Verificare permessi
ls -la /navidrome-data/
Primo Avvio Link to heading
# Avvio container
cd /root/navidrome-app
docker-compose up -d
# Verificare stato
docker-compose ps
docker-compose logs navidrome
# Output atteso:
# navidrome | INFO Navidrome is ready!
Trasferimento Musica dal PC Link to heading
Opzione 1: SCP/rsync da PC (Raccomandato) Link to heading
Prima: Abilitare SSH nel container
# Dal container navidrome (pct enter 103)
# Installare e abilitare SSH
apt update && apt install -y openssh-server
systemctl enable ssh
systemctl start ssh
# Permettere login root via SSH
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart ssh
# Verificare SSH attivo
systemctl status ssh
Trasferimento Musica
# RSYNC (raccomandato) - dal tuo PC
# Copiare CONTENUTO della cartella (nota lo slash finale)
rsync -av --progress /path/to/MusicLibrary/ root@192.168.1.206:/navidrome-data/music/
# SCP alternativo - dal tuo PC
# Copiare cartella e contenuto (senza slash finale)
scp -r /path/to/MusicLibrary root@192.168.1.206:/navidrome-data/music/
# IMPORTANTE: Dopo il trasferimento, correggere permessi nel container
ssh root@192.168.1.206 "chown -R 1000:1000 /navidrome-data/music/ && chmod -R 755 /navidrome-data/music/"
# Struttura finale desiderata:
# /navidrome-data/music/
# ├── Artist1/Album1/01-Track.mp3
# ├── Artist2/Album2/02-Track.flac
# └── ...
Opzione 2: Condivisione di Rete (SMB/CIFS) Link to heading
# Dal container navidrome - installare samba per condivisione
apt update && apt install -y samba
# Creare utente samba
smbpasswd -a root
# Configurare condivisione in /etc/samba/smb.conf
echo '[music-share]
path = /navidrome-data/music
browseable = yes
writable = yes
guest ok = no
valid users = root' >> /etc/samba/smb.conf
# Riavviare samba
systemctl restart smbd
# Dal PC Windows: accedere a \\192.168.1.206\music-share
Opzione 3: Drive USB direttamente su Mini PC Link to heading
# Dal container navidrome - passthrough USB drive
# (Configurare USB passthrough in Proxmox prima)
# Verificare dispositivi USB
lsblk
# Montare drive USB
mkdir -p /mnt/usb-music
mount /dev/sdb1 /mnt/usb-music
# Copiare musica mantenendo struttura
rsync -av --progress /mnt/usb-music/ /navidrome-data/music/
# Smontare drive
umount /mnt/usb-music
Impostazione Permessi Post-Trasferimento Link to heading
# Dopo qualsiasi metodo di trasferimento
# Impostare permessi corretti per Docker
chown -R 1000:1000 /navidrome-data/music/
chmod -R 755 /navidrome-data/music/
# Verificare struttura
ls -la /navidrome-data/music/
Prima Configurazione Web Link to heading
- URL:
http://192.168.1.206:4533 - Prima visita: Creazione account amministratore
- Library Scan: Si avvia automaticamente
Test Funzionalità Link to heading
- Browse Library: Verificare navigazione per artista/album
- Play Music: Test riproduzione nel browser
- Mobile Apps: Configurare app Subsonic - io ho usato Amperfy sia su mac che su ios, il top sembra essere Symfonium
Prossimi Passi Link to heading
Con Navidrome operativo e la musica personale in streaming, l’homelab offre già un’alternativa concreta a Spotify e Apple Music. Immich e Navidrome funzionano perfettamente, ma solo da casa.
Il passo successivo è cruciale: rendere questi servizi accessibili ovunque mantenendo la sicurezza.
→ Continua con: Homelab: Accesso Remoto Sicuro