GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Sonerezh Music Streaming Server sur Ubuntu 16.04 avec Apache ou Nginx

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.


Ubuntu
  1. Comment installer Nginx sur Ubuntu 20.04

  2. Comment installer Jenkins Automation Server avec Apache sur Ubuntu 16.04

  3. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  4. Comment installer le serveur de diffusion de musique Koel sur Ubuntu 18.04

  5. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 20.04

Installez Roundcube Webmail sur Ubuntu 20.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 18.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 20.04 avec Apache/Nginx

Comment installer phpMyAdmin avec Apache sur Ubuntu 22.04 LTS

Comment installer Nginx sur Ubuntu

Comment installer LetsEncrypt avec Nginx sur Ubuntu 15.04