Installer Navidrome sur Debian

Parmi les possibilités offertes par un serveur auto-hébergé, il y a celle d’en faire un serveur de streaming musical. Eh oui, vous avez à votre disposition plusieurs solutions open source qui vous permettront de mettre en place votre spotify personnel. Dans cet article, nous allons décrire l’installation de Navidrome, un « petit nouveau » sur ce marché qui s’avère très prometteur (https://www.navidrome.org/).

Prérequis

Mettre à jour le système et installer ffmpeg :

sudo apt update
sudo apt upgrade
sudo apt install vim ffmpeg

Créer un utilisateur dédié

sudo adduser navidrome

L’utilisateur « navidrome » et le groupe du même nom seront dédié à ce service.

Créer les répertoires applicatifs

sudo install -d -o navidrome -g navidrome /opt/navidrome
sudo install -d -o navidrome -g navidrome /var/lib/navidrome

Récupérer la dernière version de Navidrome

Au moment de l’écriture de cet article, la dernière release était la 0.40.0.

wget https://github.com/navidrome/navidrome/releases/download/v0.40.0/navidrome_0.40.0_Linux_x86_64.tar.gz -O Navidrome.tar.gz
sudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
sudo chown -R navidrome:navidrome /opt/navidrome

Fichier de configuration

Dans le répertoire /var/lib/navidrome, créer un fichier navidrome.toml .
Y insérer la ligne suivante :

MusicFolder = "Chemin d'accès à votre librairie musicale"

Créer le fichier navidrome.service

Dans /etc/systemd/system/, créer un nouveau fichier navidrome.service avec le contenu suivant :

[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome

[Install]
WantedBy=multi-user.target

[Service]
User=navidrome
Group=navidrome
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
DevicePolicy=closed
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
ReadWritePaths=/var/lib/navidrome

# You can uncomment the following line if you're not using the jukebox This
# will prevent navidrome from accessing any real (physical) devices
#PrivateDevices=yes

# You can change the following line to `strict` instead of `full` if you don't
# want navidrome to be able to write anything on your filesystem outside of
# /var/lib/navidrome.
ProtectSystem=full

# You can uncomment the following line if you don't have any media in /home/*.
# This will prevent navidrome from ever reading/writing anything there.
#ProtectHome=true

# You can customize some Navidrome config options by setting environment variables here. Ex:
#Environment=ND_BASEURL="/navidrome"

Démarrer le service

sudo systemctl daemon-reload
sudo systemctl start navidrome.service
sudo systemctl status navidrome.service

Navidrome doit maintenant être accessible sur votre serveur : [IP serveur]:4533 .

Si vous avez un firewall activé sur votre serveur (ce qui est recommandé), vous ne pourrez pas accéder à Navidrome car le port 4533 n’est pas ouvert. Vous pouvez temporairement désactiver le firewall pour tester, sans oublier de le réactiver ensuite :

sudo ufw disable
sudo ufw enable

Page de login de Navidrome

Lancer Navidrome au démarrage du serveur

Pour que le service Navidrome soit lancé automatiquement au démarrage de votre serveur, exécuter la commande suivante :

sudo systemctl enable navidrome.service

Rendre Navidrome accessible de l’extérieur

Si vous souhaitez rendre Navidrome accessible de n’importe quel navigateur internet, ou d’une application mobile, l’étape suivante sera de mettre en place un reverse proxy à cet effet : Mise en place d’un reverse proxy avec Apache.

Partager sur :