Created by potrace 1.13, written by Peter Selinger 2001-2015 image/svg+xml Site Yann
  • Archives
  • Documents
  • Aide

Audio Navidrome, installation sur debian

  • go
  •   2 avr.  2022

Navidrome

Les étapes suivantes ont été testées sur Ubuntu 18.04 et devraient fonctionner sur toutes les versions 16.04 et supérieures ainsi que sur les autres distros basées sur Debian. Tout au long de ces instructions, les commandes auront des espaces réservés pour l’utilisateur (<user>) et le groupe (<group>) sous lesquels vous souhaitez exécuter Navidrome et le chemin du dossier de musique (<library_path>). Si vous utilisez une médiathèque existante, assurez-vous que l’utilisateur a les droits sur la médiathèque.

Prérequis

Conditions préalables à la mise à jour et à l’installation
Assurez-vous que votre système est à jour et installez ffmpeg.

sudo apt update && sudo apt upgrade
sudo apt install libtag1-dev ffmpeg

Utilisateur “navidrome”

Par défaut, la commande useradd ne crée pas de répertoires de base, mais pour un démon, je vous recommande d’utiliser l’option système et de remplacer le shell par un shell inexistant afin que personne ne puisse se connecter à ce compte (sous ssh par exemple):

sudo useradd -r -s /bin/false navidrome

Créer une structure de répertoire

Créez un répertoire pour stocker l’exécutable Navidrome et un répertoire de travail avec les permissions appropriées.

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

Obtenir Navidrome

Sur le git officiel

Téléchargez la dernière version depuis la page des versions, extrayez le contenu dans le répertoire exécutable et définissez les autorisations pour les fichiers. (Remplacez l’URL ci-dessous par celle de la page des versions) :

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

Version compilée

Archlinux Debian - Compilation go Audio Navidrome

Copier le fichier navidrome dans le répertoire /opt/navidrome/ et modifier les droits

sudo mkdir -p /opt/navidrome
sudo cp navidrome /opt/navidrome/
sudo chown -R navidrome:navidrome /opt/navidrome
sudo chmod +x /opt/navidrome/navidrome

Créer le fichier de configuration

Dans le répertoire de travail, créer un nouveau fichier nommé navidrome.toml ( sudo nano /var/lib/navidrome/navidrome.toml ) avec les paramètres suivants.

MusicFolder = "/srv/media/music"
ND_PLAYLISTSPATH = "Playlists"

Pour d’autres options de configuration, voir la page des options de configuration.

Créer une unité Systemd navidrome.service

Créez un nouveau fichier sous /etc/systemd/system/ nommé navidrome.service avec les données suivantes.

/etc/systemd/system/navidrome.service
[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émarrez le service Navidrome
Rechargez le démon de service, démarrez le service nouvellement créé, et vérifiez qu’il a démarré correctement.

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

Si le service a démarré correctement, vérifiez que vous pouvez accéder à http://localhost:4533.
Ouvrir un terminal sur le client linux qui dispose des clés ssh et lancer la commande

ssh -L 9500:localhost:4533  leno@192.168.0.145 -p 55145 -i /home/yann/.ssh/lenovo-ed25519

Ouvrir un navigateur sur le client et saisir localhost:9500 pour afficher le serveur audio

Démarrez Navidrome au démarrage

sudo systemctl enable navidrome.service

Proxy nginx zic.rnmkcy.eu (navidrome)

Le domaine “zic.rnmkcy.eu” est activé avec les certificats let’s encrypt

Le fichier de configuration nginx /etc/nginx/conf.d/zic.rnmkcy.eu.conf

server {
    listen 80;
    listen [::]:80;
    server_name zic.rnmkcy.eu;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name zic.rnmkcy.eu;

    # Certificats Let's Encrypt 
    # TLS 1.3 only
    # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    # OCSP stapling
    # replace with the IP address of your resolver
#    include /etc/nginx/tls-hsts-ocsp.conf;
# Contenu /etc/nginx/tls-hsts-ocsp.conf
    # Certificats Let's Encrypt 
    ssl_certificate /etc/ssl/private/rnmkcy.eu-fullchain.pem;
    ssl_certificate_key /etc/ssl/private/rnmkcy.eu-key.pem;

    # TLS 1.3 only
    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers off;
 
    # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    add_header Strict-Transport-Security "max-age=63072000" always;
 
    # OCSP stapling
    ssl_stapling on;
    ssl_stapling_verify on;
 
    # verify chain of trust of OCSP response using Root CA and Intermediate certs
    ssl_trusted_certificate /etc/ssl/private/rnmkcy.eu-fullchain.pem;

    # replace with the IP address of your resolver
    resolver 1.1.1.1;
# FIN Contenu

    location / { 
        proxy_pass              http://127.0.0.1:4533;
    } 

}

Valider et recharger ginx

sudo nginx -t
sudo systemctl reload nginx

Lien https://zic.rnmkcy.eu

PRÉCÉDENTComment sécuriser un serveur nginx avec Fail2Ban
SUIVANTFlux RSS - Tiny Tiny RSS Nginx PHP-FPM MariaDB
Recherche