Documentations Orange PiTransformer votre Orange Pi en Spotify avec Navidrome

Documentation pour transformer votre Orange Pi en un serveur de musique en streaming avec Navidrome

Dans un monde où tout est plus chère, Depuis des années, et de plus en plus ces derniers temps, Spotify, Apple Music, Deezer et bien d’autres nous font payer des prix injustifiés pour écouter notre musique. C’est pourquoi, aujourd’hui, je vous propose de mettre en place facilement Navidrome chez vous sur votre orangepi.

Navidrome est un serveur de streaming musical open source et auto-hébergé qui vous permet d’accéder à votre collection musicale depuis n’importe quel navigateur web ou appareil mobile. En quelques clics, vous pouvez installer Navidrome sur votre ordinateur ou sur un Raspberry Pi, Orange Pi et profiter de vos morceaux préférés sans limite. De plus, Navidrome est compatible avec tous les clients Subsonic (Pour Android), et Flo - Navidrome Client (Pour iOS) vous permettant d’accéder à votre musique depuis un large choix d’applications tierces, que ce soit pour iOS, Android, ou votre ordinateur.

L’un des avantages majeurs de Navidrome est qu’il vous permet de profiter de votre collection de CD de musique en la numérisant et en la rendant accessible partout. Vous pouvez ainsi écouter vos albums préférés où que vous soyez, sans dépendre d’un service de streaming payant.

Mise en place de Navidrome

💡

Avant de commencer ce tutoriel, vous aurez besoin d’avoir déjà configurer votre Orange Pi !

Une fois connecté à votre Orange Pi à votre orangepi.

Installation de Docker

Nous allons mettre en place Navidrome avec Docker. C’est pourquoi nous devons d’abord installer Docker.

Configurer le dépôt apt de Docker

Pour que Docker puisse être géré par votre gestionnaire de paquets, vous devez utiliser le dépôt officiel apt. Pour cela, vous devez d’abord installer les dépendances nécessaires et ajouter la clé GPG de Docker :

apt update 
apt install ca-certificates curl 
install -m 0755 -d /etc/apt/keyrings 
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 
chmod a+r /etc/apt/keyrings/docker.asc

Vous pouvez maintenant ajouter le dépôt à vos sources apt :

echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update

Installation de Docker

apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Mise en place de navidrome

Pour organiser notre Navidrome, nous allons créer un dossier dans /etc. Pour cela, exécutez la commande suivante :

mkdir /etc/navidrome

Vous pouvez aller dans le dossier Navidrome. Pour cela, exécutez la commande suivante :

cd /etc/navidrome

Vous avez donc besoin de crée les dossiers :

mkdir data ; mkdir music

Pour mettre en place Navidrome, je vous invite à utiliser ce docker-compose :

services:
  navidrome:
    image: deluan/navidrome:latest
    restart: unless-stopped
    ports:
      - "4533:4533"
    environment:
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_SCANSCHEDULE: 1h
    volumes:
      - "/etc/navidrome/data:/data"
      - "/etc/navidrome/music:/music:ro"

Vous pouvez donc créer un fichier dans /etc/navidrome nommé docker-compose.yml en utilisant la commande suivante :

nano docker-compose.yml

Une fois la commande exécutée, vous serez dans le fichier. Copiez le contenu du docker-compose.yml ci-dessus, puis appuyez sur CTRL + X et validez avec Y pour enregistrer les modifications.

Pour démarrer Navidrome, exécutez simplement :

docker compose up -d

Une fois cela fait, c’est très rapide : il vous suffit de vous connecter à l’adresse IP de votre serveur Docker, sur le port 4533. Par exemple : http://192.168.1.20:4533

Pour ceux qui ne se préoccupent pas de la sécurité, vous pouvez vous arrêter ici. Mais pour les autres, je vous invite à poursuivre pour comprendre comment activer le HTTPS sur votre Navidrome.

Mise en place de Navidrome en HTTPS

Vous avez donc besoin de crée les dossiers supplémentaire dans /etc/navidrome:

mkdir haproxy ; cd haproxy ;mkdir certs

Ajouter le haproxy.cfg dans /etc/navidrome/haproxy :

nano /etc/navidrome/haproxy/haproxy.cfg
global
    log stdout format raw local0
    maxconn 4000
    tune.ssl.default-dh-param 2048
 
defaults
    log global
    mode http
    option httplog
    timeout connect 5000
    timeout client 50000
    timeout server 50000
 
# Redirection HTTP → HTTPS
frontend navidrome_http
    bind *:80
    redirect scheme https code 301 if !{ ssl_fc }
 
# Frontend HTTPS pour Navidrome
frontend navidrome_https
    bind *:443 ssl crt /usr/local/etc/haproxy/certs/navidrome-selfsigned.pem
    default_backend navidrome
 
# Backend vers Navidrome
backend navidrome
    server navidrome navidrome:4533 check

Si vous avez déjà créé le fichier docker-compose.yml précédemment, il faut le remplacer par celui-ci en utilisant la commande suivante :

rm docker-compose.yml ; nano docker-compose.yml
services:
  haproxy:
    image: haproxy:latest
    container_name: haproxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/navidrome/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
      - /etc/navidrome/haproxy/certs:/usr/local/etc/haproxy/certs:ro
    networks:
      - internal_network
 
 
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: unless-stopped
    environment:
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_SCANSCHEDULE: 1h
    volumes:
      - "/etc/navidrome/data:/data"
      - "/etc/navidrome/music:/music:ro"
    networks:
      - internal_network
 
 
networks:
  internal_network:
    driver: bridge

Générer un certificat SSL auto-signé (pour le HTTPS local) :

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/navidrome/haproxy/certs/navidrome-selfsigned.key -out /etc/navidrome/haproxy/certs/navidrome-selfsigned.crt

Fusionner le certificat et la clé :

cat /etc/navidrome/haproxy/certs/navidrome-selfsigned.crt /etc/navidrome/haproxy/certs/navidrome-selfsigned.key > /etc/navidrome/haproxy/certs/navidrome-selfsigned.pem

Pour démarrer Navidrome, exécutez simplement :

docker compose up -d

Vous avez maintenant mis en place Navidrome en HTTPS !

Si vous vous connectez et que le navigateur vous indique que la page n’est pas sécurisée, pas d’inquiétude, c’est normal. Cela signifie simplement que votre navigateur ne peut pas certifier l’authenticité du certificat, car il s’agit d’un certificat autosigné. Vous pouvez passer outre en cliquant sur “Avancé” puis sur “Continuer vers”.

Configuration de Navidrome

Une fois Navidrome installé, vous arriverez sur la page d’accueil de Navidrome. Vous pourrez alors créer votre compte administrateur en remplissant les informations de votre choix. Navidrome

Ajout d’un utilisateur

Une fois connecté en tant qu’administrateur, allez dans l’icône du petit bonhomme en haut à droite, cliquez dessus, puis sélectionnez ‘USERS’. Navidrome Cliquez ensuite sur ‘Create’. Cela ouvrira une page où vous pourrez entrer les informations de l’utilisateur. Une fois terminé, il vous suffira de cliquer sur ‘Save’, et l’utilisateur apparaîtra dans la liste des utilisateurs. Navidrome

Configuration pour ajout de musique via WinSCP

Je vous conseille d’utiliser WinSCP pour vous connecter à Navidrome, c’est plus simple et plus rapide.

Installation de WinSCP pour windows

Vous pouvez télécharger WinSCP ici. Exécutez-le une fois installé : WinSCP Faites l’installation pour tous. WinSCP Faites “Accepter”. WinSCP Faites “Installation typique”. WinSCP Faites “Commander”. WinSCP Ensuite faites “Installer” WinSCP Vous pouvez décocher l’option “Aller à la page de démarrage”.

Vous pouvez le laisser ouvert, nous y reviendrons plus tard.

Création du compte navidrom pour WinSCP

Sur votre Orange Pi, vous allez créer un compte et lui affecter les droits sur le dossier /etc/navidrome/music

Pour ajouter l’utilisateur:

useradd -d /etc/navidrome/music -s /bin/bash navidrome

Pour lui affecter les droits:

chown navidrome:navidrome /etc/navidrome/music

Pour lui changer son mot de passe :

passwd navidrome
⚠️

Il est préférable de lui attribuer un mot de passe fort afin d’éviter un accès non autorisé via ce compte.

Ajout de musique via WinSCP avec le compte navidrome

Retournez sur WinSCP et changez le protocole de fichier en SCP. WinSCP Ensuite, entrez vos informations de connexion : dans “Nom d’hôte” mettez l’adresse IP de votre serveur, dans “Utilisateur” entrez “navidrome” et dans “Mot de passe” saisissez le mot de passe que vous lui avez attribué. WinSCP Vous pouvez donc cliquer sur “Connexion”. Vous serez alors dans le répertoire de votre Orange Pi /etc/navidrome/music. WinSCP Vous pouvez alors glisser vos musiques dedans, et elles seront directement transférées sur votre Orange Pi, puis ajoutées à votre Navidrome. Vous pourrez ainsi profiter de votre musique.