Cum îți faci propriul „Spotify” acasă cu Navidrome + Caddy (HTTPS pe 8443) — ghid pas cu pasCum să-ți construiești propriul „Spotify” self-hosted cu Navidrome (folosind un PC vechi)


În acest ghid vei vedea cum poți transforma un computer vechi într-o platformă modernă de streaming audio, accesibilă din browser, telefon și chiar din mașină – folosind doar software open-source.

Setup-ul final:

  • Navidrome (music server)
  • Docker
  • Disc NTFS montat read-only
  • Caddy ca reverse proxy
  • HTTPS pe port 8443
  • Acces din WAN prin port forwarding (OpenWrt)
  • Aplicații mobile compatibile (Symfonium / play:Sub)

1. Cerințe minime

Hardware:

  • PC vechi sau mini-PC
  • 2–4 GB RAM
  • HDD/SSD cu muzica
  • Conexiune la internet

Software:

  • Ubuntu Server 22.04 / Debian
  • Acces root / sudo
  • Router cu port forwarding (OpenWrt în exemplu)

2. Montarea discului cu muzică (read-only)

Identificare disc:

lsblk

Află UUID:

sudo blkid /dev/sdb1

Creare mount point:

sudo mkdir -p /mnt/music

Adaugă în /etc/fstab:

UUID=1E40C31640C2F915 /mnt/music ntfs-3g ro,uid=1000,gid=1000,noatime 0 0

Aplică:

sudo mount -a

Structura finală:

/mnt/music/mp3

3. Instalare Docker

sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

Logout + login.


4. Instalare Navidrome

mkdir -p ~/navidrome/data
cd ~/navidrome
nano docker-compose.yml

Conținut:

version: "3"

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"
    volumes:
      - /mnt/music/mp3:/music:ro
      - ./data:/data
    environment:
      ND_SCANINTERVAL: 1h
    restart: unless-stopped

Pornire:

docker-compose up -d

Acces:

http://SERVER_IP:4533

Crează utilizator admin.


5. Instalare Caddy (reverse proxy)

sudo apt install caddy -y

6. Generare certificat self-signed

sudo mkdir -p /etc/caddy/certs

sudo openssl req -x509 -newkey rsa:2048 -sha256 -days 825 -nodes \
  -keyout /etc/caddy/certs/navidrome.key \
  -out /etc/caddy/certs/navidrome.crt \
  -subj "/CN=music.example.ro"

sudo chown root:caddy /etc/caddy/certs/*
sudo chmod 640 /etc/caddy/certs/navidrome.key
sudo chmod 644 /etc/caddy/certs/navidrome.crt

7. Configurare Caddy (HTTPS pe 8443)

sudo nano /etc/caddy/Caddyfile
https://:8443 {
  reverse_proxy localhost:4533
  tls /etc/caddy/certs/navidrome.crt /etc/caddy/certs/navidrome.key
}

Restart:

sudo systemctl restart caddy

Verificare:

ss -tuln | grep 8443

8. Firewall pe server

sudo ufw allow 8443/tcp
sudo ufw enable

9. Port forwarding pe OpenWrt

În LuCI:

Network → Firewall → Port Forwards

Regulă:

ParametruValoare
External port8443
Internal IP192.168.0.10
Internal port8443
ProtocolTCP
ZoneWAN → LAN

10. Acces final

LAN:

https://192.168.0.10:8443

WAN:

https://music.example.ro:8443

(Apărea warning TLS – acceptă certificatul)


11. Aplicații mobile

Android – Symfonium

  • Server type: Subsonic
  • URL: https://music.example.ro:8443
  • User normal (non-admin)
  • Ignore SSL errors: ON

iOS – play:Sub

  • Server URL: idem
  • Allow invalid SSL: ON

12. Last.fm scrobbling

Navidrome UI:

Settings → Users → user → Enable Last.fm scrobbling

Autorizează contul.


13. Refresh bibliotecă

Din UI:

Settings → Library → Scan Now

Sau:

docker-compose restart navidrome

Avantaje ale setup-ului

  • Fără abonamente
  • Fără reclame
  • Fără tracking
  • Control total
  • Funcționează offline
  • Compatibil Android Auto / CarPlay
  • Calitate audio originală

Concluzie

Cu puțin efort și un PC vechi, poți avea propriul tău Spotify privat, criptat, rapid și complet sub controlul tău.