Sonerezh est un serveur de diffusion de musique en ligne auto-hébergé écrit en PHP et HTML5. Il est léger par rapport à Subsonic qui est écrit en Java. Sonerezh est un logiciel open-source, distribué sous les termes de l'AGPL. Ce tutoriel vous montrera comment installer Sonerezh sur Ubuntu 16.04 avec Apache ou Nginx.
Fonctionnalités Sonerezh :
- Interface Web moderne et simple d'utilisation
- Gestion des listes de lecture :ajoutez des titres, des albums et des artistes à vos listes de lecture.
- Partager de la musique via le système de gestion des utilisateurs
- Extraction automatique des métadonnées et importation de fichiers
- Transcodage automatique en mp3
- Moteur de recherche simple
Avec Sonerezh, vous pouvez écouter votre musique où que vous soyez avec un navigateur Web et une connexion Internet.
Pour suivre ce tutoriel, vous devrez avoir installé LAMP ou LEMP sur Ubuntu 16.04. Si vous ne l'avez pas déjà fait, veuillez consulter les didacticiels suivants.
- Comment installer LAMP (Apache, MariaDB, PHP7) sur Ubuntu 16.04
- Comment installer LEMP (Nginx, MariaDB, PHP7-FPM) sur Ubuntu 16.04
Une fois LAMP ou LEMP installé, revenez ici et lisez la suite.
Installer Sonerezh sur Ubuntu 16.04
La dernière version stable est Sonerezh 1.1.3, sortie le 19 décembre 2016. Vous pouvez la télécharger avec Git depuis le dépôt Github.
Changer de répertoire en /var/www/
.
cd /var/www/
Installez git
et utilisez git pour cloner le Sonerezh depuis Github.
sudo apt install git sudo git clone --branch master https://github.com/Sonerezh/sonerezh.git
Définir le serveur Web (www-data
) en tant que propriétaire du nouveau répertoire.
sudo chown www-data:www-data /var/www/sonerezh/ -R
Créer une base de données MariaDB/MySQL pour Sonerezh
Connectez-vous au serveur de base de données MariaDB/MySQL avec la commande suivante :
mysql -u root -p
Créez ensuite une base de données pour Sonerezh. Ce tutoriel nomme la base de données sonerezh
. Vous pouvez utiliser le nom de votre choix.
create database sonerezh;
Créez l'utilisateur de la base de données et accordez à cet utilisateur tous les privilèges sur la base de données sonerezh. Remplacez your-password
avec votre mot de passe préféré.
grant all privileges on sonerezh.* to sonerezh@localhost identified by 'your-password';
Vider les privilèges et quitter.
flush privileges; exit;
Configuration de l'hôte virtuel Apache
Nous allons créer un sonerezh.conf
fichier dans /etc/apache2/sites-available/
répertoire.
sudo nano /etc/apache2/sites-available/sonerezh.conf
Copiez et collez les lignes suivantes dans le fichier. Remplacez le texte rouge par votre nom de domaine préféré. Vous devez également créer un enregistrement A pour le nom de domaine. Si vous installez Sonerezh sur votre serveur domestique, vous devez également configurer la redirection de port dans le routeur.
<VirtualHost *:80> ServerName music.your-domain.com DocumentRoot /var/www/sonerezh <Directory /var/www/sonerezh> Options -Indexes AllowOverride All # Apache 2.2.x <IfModule !mod_authz_core.c> Order Allow,Deny Allow from all </IfModule> # Apache 2.4.x <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> CustomLog /var/log/apache2/sonerezh-access.log "Combined" ErrorLog /var/log/apache2/sonerezh-error.log </VirtualHost>
Enregistrez et fermez le fichier.
sudo a2ensite sonerezh.conf
Activez ensuite le module mod_rewrite et rechargez le serveur Web Apache pour que les modifications prennent effet.
sudo a2enmod rewrite sudo systemctl reload apache2
Allez maintenant sur music.your-domain.com/install
. Vous verrez le programme d'installation Web de Sonerezh, qui répertorie certaines exigences. Pour répondre à ces exigences, exécutez la commande suivante.
sudo apt install php7.0-gd libav-tools
Activer HTTPS (Apache)
Pour terminer l'installation, vous devez entrer les détails de la base de données et créer un compte administrateur. Mais avant cela, installons un certificat TLS gratuit de Let's Encrypt afin que ce que vous entrez dans le programme d'installation Web ne soit pas reniflé.
Installez le client certbot (Let's Encrypt).
sudo apt install letsencrypt python-letsencrypt-apache
Émettez maintenant la commande suivante pour obtenir un certificat TLS/SSL gratuit. Remplacez le texte de couleur rouge par vos données réelles.
sudo letsencrypt --apache --agree-tos --redirect --hsts --email your-email-address -d music.your-domain.com
Explication :
- –apache :Utilisez le plugin Apache pour obtenir et installer automatiquement le certificat.
- –d'accord :acceptez les conditions d'utilisation.
- –redirection :rediriger tout le trafic HTTP vers HTTPS pour l'hôte virtuel
- –hsts : Forcer le navigateur à toujours utiliser TLS.
En quelques secondes, vous devriez voir ce qui suit, ce qui signifie qu'un certificat TLS/SSL gratuit a été obtenu et installé sur votre serveur Apache.
Les configurations TLS/SSL par défaut obtiennent A+ dans le test SSL Labs.
Configuration du bloc serveur Nginx
Si vous utilisez Nginx au lieu d'Apache, créez un fichier de bloc de serveur Nginx.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Copiez et collez les lignes suivantes dans le fichier. Remplacez le texte rouge par votre nom de domaine préféré. Vous devez également créer un enregistrement A pour le nom de domaine. Si vous installez Sonerezh sur votre serveur domestique, vous devez également configurer la redirection de port dans le routeur.
server { listen 80; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Enregistrez et fermez le fichier. Testez ensuite la configuration.
sudo nginx -t
Si le test réussit, rechargez Nginx.
sudo systemctl reload nginx
Allez maintenant sur music.your-domain.com/install
. Vous verrez le programme d'installation Web de Sonerezh, qui répertorie certaines exigences. Pour répondre à ces exigences, exécutez la commande suivante.
sudo apt install php7.0-gd libav-tools
Activer HTTPS (Nginx)
Pour terminer l'installation, vous devez entrer les détails de la base de données et créer un compte administrateur. Mais avant cela, installons un certificat TLS gratuit de Let's Encrypt afin que ce que vous entrez dans le programme d'installation Web ne soit pas reniflé.
Installez le client certbot (Let's Encrypt).
sudo apt install letsencrypt
Émettez maintenant la commande suivante pour obtenir un certificat TLS/SSL gratuit. Remplacez le texte de couleur rouge par vos données réelles.
sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d music.your-domain.com -w /var/www/sonerezh/app/webroot/
En quelques secondes, vous devriez voir ce qui suit, ce qui signifie qu'un certificat TLS/SSL gratuit est obtenu.
Modifiez maintenant le fichier de bloc du serveur Sonerezh pour configurer TLS.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Modifiez les configurations comme suit.
server { listen 80; server_name music.your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; ssl_certificate /etc/letsencrypt/live/music.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.your-domain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # modern configuration. tweak to your needs. ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Enregistrez et fermez le fichier. Testez ensuite la configuration.
sudo nginx -t
Si le test réussit, rechargez Nginx.
sudo systemctl reload nginx
Terminer l'installation
Maintenant que votre connexion est compatible HTTPS, vous pouvez entrer les détails de votre base de données dans le programme d'installation Web. Et créez également un compte administrateur et spécifiez le dossier de musique.
Serveur de diffusion de musique en ligne Sonerezh
Certificat de renouvellement automatique
Pour renouveler automatiquement le certificat Let's Encrypt, modifiez le fichier crontab de l'utilisateur root.
sudo crontab -e
Ajoutez la ligne suivante à la fin du fichier.
@daily letsencrypt renew --quiet && systemctl reload apache2
Si vous utilisez Nginx, remplacez apache2 par nginx.
@daily letsencrypt renew --quiet && systemctl reload nginx
Un rechargement est nécessaire pour que le serveur Web récupère le nouveau certificat.
C'est ça! J'espère que ce tutoriel vous a aidé à installer le serveur de streaming musical Sonerezh sur Ubuntu 16.04 avec Apache ou Nginx. Vous pouvez également vérifier comment installer le serveur de diffusion de musique Subsonic.