Tutorial

Comment installer le serveur de streaming musical Ampache sur Ubuntu 18.04

ApacheUbuntu 18.04

L'auteur a choisi Open Internet/Free Speech Fund pour recevoir un don dans le cadre du programme Write for DOnations.

Introduction

Ampache est un serveur de streaming musical open-source qui vous permet d'héberger et de gérer votre collection de musique numérique sur votre propre serveur. Ampache peut diffuser votre musique en continu sur votre ordinateur, votre smartphone, votre tablette ou votre smart TV. Cela signifie que vous n'avez pas à conserver plusieurs copies de votre musique sur l'appareil que vous voulez utiliser pour l'écouter. Avec Ampache, vous pouvez gérer votre collection sur votre serveur en utilisant l'interface web d'Ampache et l'écouter n'importe où.

Dans ce tutoriel, vous allez installer et configurer le serveur web Apache, ainsi que PHP (qui servira votre instance Ampache). Vous créerez ensuite une base de données MySQL qu'Ampache utilisera pour stocker toutes ses informations opérationnelles. Enfin, vous téléchargerez votre collection de musique afin de pouvoir commencer à diffuser votre musique en continu.

Conditions préalables

Avant de commencer ce guide, vous aurez besoin des éléments suivants :

Étape 1 - Installation d'Ampache

Au cours de cette étape, vous allez télécharger l'archive ZIP Ampache sur votre serveur, la décompresser dans le répertoire d'origine de son installation et apporter les modifications nécessaires au système de fichiers.

Tout d'abord, connectez-vous à votre serveur en tant qu'utilisateur non root. Ensuite, créez le répertoire d'accueil d'Ampache avec la commande suivante :

  • sudo mkdir /var/www/ampache

Maintenant, installez l'utilitaire zip dont vous aurez besoin pour décompresser l'archive Ampache :

  • sudo apt install zip

Puis téléchargez la dernière version de l'archive ZIP. Vous pouvez trouver le lien vers la dernière version sur la page GitHub d'Ampache. Dans ces exemples, la version 4.1.1 est utilisée :

  • wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip

Ensuite, décompressez l'archive ZIP dans le répertoire /var/www/ampache/ en utilisant l'option -d :

  • sudo unzip ampache-4.1.1_all.zip -d /var/www/ampache/

Définissez l'identité de l'utilisateur et du groupe des fichiers Ampache afin qu'Apache puisse lire, écrire et exécuter les fichiers d'instance Ampache :

  • sudo chown --recursive www-data:www-data /var/www/ampache/

L'option --recursive fait que chown change la propriété et l'identité de groupe de tous les fichiers et du sous-répertoire sous /var/www/ampache/ en utilisateur et groupe d'Apache www-data.

Maintenant, renommez les fichiers .htaccess qui sont inclus dans l'archive ZIP. Les fichiers .htaccess contiennent des informations sur la sécurité et sur d'autres opérations pour Apache, mais ils ne fonctionneront qu'avec l'extension de fichier .htaccess. Renommez les fichiers .htaccess.dist fournis en .htaccess avec les commandes suivantes :

  • sudo mv /var/www/ampache/rest/.htaccess.dist /var/www/ampache/rest/.htaccess
  • sudo mv /var/www/ampache/play/.htaccess.dist /var/www/ampache/play/.htaccess
  • sudo mv /var/www/ampache/channel/.htaccess.dist /var/www/ampache/channel/.htaccess

Vous allez maintenant créer le répertoire qui contiendra vos fichiers musicaux. Pour des raisons de sécurité, il est préférable de créer ce répertoire en dehors du répertoire d'installation d'Ampache. De cette façon, il ne sera pas lisible ou modifiable par des requêtes web malveillantes, car il réside en dehors du DocumentRoot d'Ampache.

Créez le répertoire /data/Music avec la commande suivante :

  • sudo mkdir -p /data/Music

Changez ensuite son propriétaire et l'identité de son groupe pour qu'Apache puisse y lire et y écrire :

  • sudo chown www-data:www-data /data/Music

Pour terminer la configuration, vous installerez FFmpeg, utilitaire permettant de convertir l'audio et la vidéo d'un format à un autre. Par exemple, vous pourriez l'utiliser pour convertir un fichier de musique MP3 en un fichier de musique OPUS. Ampache utilise FFmpeg pour convertir l'audio en temps réel du format dans lequel il a été téléchargé vers un format que l'appareil d'écoute peut lire. Il s'agit d'un processus connu sous le nom de transcoding.

C'est utile car tous les appareils ne sont pas capables de lire tous les formats de musique. Ampache peut détecter quels formats sont pris en charge par l'appareil de lecture et fournir automatiquement votre musique dans le format pris en charge.

Installez FFmpeg avec la commande suivante :

  • sudo apt install ffmpeg

Vous avez maintenant décompressé et préparé votre instance Ampache pour l'installateur web et installé l'utilitaire FFmpeg. Ensuite, vous allez configurer Apache et PHP pour servir votre instance Apache.

Étape 2 - Configuration d'Apache et de PHP

Dans cette section, vous configurerez Apache en créant un nouveau fichier VirtualHost, qui fournira la configuration dont Apache a besoin pour servir votre domaine de serveur Ampache. Vous installerez également quelques modules PHP supplémentaires qui étendent les capacités de PHP, afin de couvrir les besoins d'Ampache

Tout d'abord, installez quelques modules PHP supplémentaires qui n'étaient pas inclus dans l'installation par défaut de PHP :

  • sudo apt install php-mysql php-curl php-json php-gd php7.2-xml

Ces modules offrent les fonctionnalités supplémentaires suivantes :

  • php-mysql - Permet à PHP de communiquer avec une base de données MySQL.
  • php-curl - Permet à PHP d'utiliser l'utilitaire curl pour télécharger des fichiers, tels que des pochettes d'album, à partir de serveurs distants.
  • php-json - Permet à PHP de lire et de manipuler des fichiers texte formatés en JSON.
  • php-gd - Permet à PHP de manipuler et de créer des fichiers d'images.
  • php7.2-xml - Permet à PHP de lire et de manipuler des fichiers texte formatés en XML.

Ensuite, activez quelques modules Apache à l'aide de l'utilitaire a2enmod :

  • sudo a2enmod rewrite expires

Ces modules Apache permettent à Apache de faire ce qui suit :

  • rewrite - Modifier ou réécrire les URL en suivant les règles fournies par Ampache.
  • expires - Définir les délais d'expiration du cache pour les objets tels que les images afin qu'ils soient stockés plus efficacement par les navigateurs.

Maintenant, vous allez créer le fichier VirtualHost qui indique à Apache comment et où charger l'instance Ampache.

Remarque : si vous avez créé un fichier VirtualHost de test qui utilise votre nom de domaine Ampache lorsque vous avez suivi le guide “Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 18.0”, vous devez le désactiver. Utilisez l'utilitaire a2dissite pour le désactiver :

  • sudo a2dissite test_virtalhost_file

Maintenant, créez et ouvrez le fichier VirtualHost avec votre éditeur de texte à l'adresse /etc/apache2/sites-available/ampache.conf :

  • sudo nano /etc/apache2/sites-available/ampache.conf

Ajoutez le template VirtualHost suivant dans votre fichier :

/etc/apache2/sites-available/ampache.conf
<VirtualHost *:80>

    ServerName your_domain
    DocumentRoot /var/www/ampache

    <Directory /var/www/ampache/>
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine on
    CustomLog /var/log/apache2/ampache.access.log common
    ErrorLog  /var/log/apache2/ampache.error.log

</VirtualHost>

Vous devez changer your_domain pour le nom de domaine que vous avez redirigé vers votre serveur. Lorsque vous avez fini de modifier ce fichier, sauvegardez et quittez l'éditeur.

Les directives de ce fichier VirtualHost sont :

  • ServerName - Le nom de domaine qu'Apache utilisera pour servir votre instance Ampache.
  • DocumentRoot - L'emplacement du système de fichiers sur votre serveur où se trouve l'instance Ampache. C'est le même endroit que celui où vous avez déballé les archives ZIP à l'étape 1.
  • Directory - Cette section transmet à Apache la configuration qui s'applique aux fichiers et aux répertoires contenus dans le chemin d'accès.
  • RewriteEngine - Permet de réécrire le module Apache.
  • CustomLog - Crée un fichier journal qu'Apache utilisera pour enregistrer tous les journaux d'accès à votre serveur Ampache.
  • ErrorLog - Crée un fichier journal qu'Apache utilisera pour enregistrer tous les journaux d'erreurs générés par votre serveur Ampache.

Ensuite, vérifiez que le fichier VirtualHost que vous avez créé ne contient aucune erreur, à l'aide de l'utilitaire apachectl :

  • sudo apachectl configtest

Si votre configuration ne contient aucune erreur, vous verrez la sortie suivante après la commande :

Output
Syntax OK

Si votre configuration contient des erreurs, la sortie imprimera le nom du fichier et le numéro de ligne où l'erreur a été rencontrée.

Remarque : si vous voyez l'erreur :

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Vous devrez modifier le fichier de configuration principal d'Apache à l'adresse /etc/apache2/apache2.conf et ajouter la ligne suivante :

ServerName your_domain

Ensuite, activez la nouvelle configuration du VirtualHost en utilisant l'utilitaire a2ensite :

  • sudo a2ensite ampache

La configuration finale est facultative, mais recommandée. Le paramètre par défaut pour le téléchargement de fichiers en PHP est qu'aucun fichier de plus de 2 Mo ne peut être téléchargé. Les fichiers musicaux ont tendance à être plus volumineux que cela, donc augmenter cette taille vous permettra d'utiliser l'interface Ampache pour télécharger des fichiers plus volumineux dans votre collection de musique.

Ouvrez /etc/php/7.2/apache2/php.ini avec la commande suivante :

  • sudo nano /etc/php/7.2/apache2/php.ini

Et modifiez les lignes suivantes :

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 2M
. . .
post_max_size = 8M
. . .

Vers :

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 100M
. . .
post_max_size = 110M
. . .

Vous pourrez désormais télécharger des fichiers de musique jusqu'à 100 Mo. Utilisez une valeur plus élevée si vous avez l'intention de télécharger des fichiers d'une taille supérieure. Enregistrez et quittez le fichier.

Enfin, rechargez votre configuration Apache mise à jour :

  • sudo systemctl reload apache2.service

Vous avez maintenant configuré Apache pour qu'il serve Ampache via HTTP. Ensuite, vous obtiendrez un certificat TLS et configurerez Apache pour l'utiliser afin de pouvoir accéder à Ampache en toute sécurité via HTTPS.

Étape 3 – Activation de HTTPS

Au cours de cette étape, vous obtiendrez gratuitement un certificat Let’s Encrypt TLS en utilisant l'utilitaire Certbot, qui permet la navigation HTTPS. Certbot va créer le certificat, générer automatiquement la configuration Apache requise et gérer le renouvellement automatique du certificat.

C'est important, car chaque fois que vous vous connectez à Ampache, vous envoyez votre nom d'utilisateur et votre mot de passe sur Internet. Si vous n'utilisez pas HTTPS, votre mot de passe sera envoyé en texte clair et pourra donc être lu lors de son passage sur Internet.

Les versions LTS d'Ubuntu ne possèdent pas toujours les derniers packages et cela est vrai pour le programme Certbot. Les développeurs de Certbot gèrent un dépôt Ubuntu dédié, connu sous le nom de PPA, afin que les utilisateurs d'Ubuntu puissent garder une copie à jour de Certbot.

Installez le dépôt Certbot avec la commande suivante :

  • sudo add-apt-repository ppa:certbot/certbot

Maintenant, installez l'utilitaire certbot :

  • sudo apt install python-certbot-apache

Ensuite, utilisez le certbot pour obtenir le certificat TLS :

  • sudo certbot --apache -d your_domain

L'option --apache utilise le plugin Apache qui permet à Certbot de lire et de configurer Apache automatiquement. -d your_domain indique le nom de domaine pour lequel vous souhaitez que Certbot crée le certificat.

Lorsque vous exécutez la commande du certbot, une série de questions vous est posée. Vous serez invité à saisir une adresse électronique et à accepter les conditions de service.

Si certbot confirme avec succès que vous contrôlez votre domaine, il vous demandera de configurer vos paramètres HTTPS :

Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • No redirect : Apache servira Ampache via HTTP et HTTPS.
  • Redirect : Apache redirigea automatiquement toute connexion HTTP vers HTTPS. Cela signifie que votre serveur Ampache ne sera disponible que via HTTPS. Cette option est la plus sûre et n'affectera pas le comportement de votre instance Ampache. C'est le choix recommandé.

Enfin, vérifiez que l'auto-renouvellement du certificat se fera avec succès en exécutant la commande suivante :

  • sudo certbot renew --dry-run

L'option --dry-run signifie que certbot testera une tentative de renouvellement sans apporter de modifications permanentes à votre serveur. Si le test a été concluant, la sortie comprendra la ligne suivante :

Output
Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/your_domain/fullchain.pem (success)

Apache et PHP sont maintenant prêts à servir votre instance Ampache. Dans l'étape suivante, vous allez créer et configurer la base de données d'Ampache.

Étape 4 - Création d'une base de données MySQL

Ampache utilise une base de données MySQL pour stocker des informations telles que les listes de lecture, les préférences des utilisateurs, etc. Au cours de cette étape, vous allez créer une base de données et un utilisateur MySQL qu'Ampache utilisera pour y accéder.

Vous devrez choisir trois éléments d'information pour compléter les instructions suivantes afin de créer la base de données d'Ampache :

  1. ampache_database : le nom de la base de données Ampache.
  2. database_user : l'utilisateur MySQL qu'Ampache utilisera pour accéder à la base de données. Ce n'est pas un utilisateur système et il peut uniquement accéder à la base de données.
  3. database_password : le mot de passe de l'utilisateur de la base de données. Veillez à choisir un mot de passe sécurisé.

Prenez note de ces détails, car vous en aurez besoin plus tard.

Tout d'abord, ouvrez le shell interactif de MySQL avec la commande mysql :

  • mysql --user=root --password

--user=root ouvre le shell MySQL en tant qu'utilisateur root de MySQL et --password demande le mot de passe de l'utilisateur root.

La commande suivante créera une base de données vide :

  • CREATE DATABASE ampache_database;

Ensuite, créez l'utilisateur MySQL :

  • CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'database_password';

Maintenant, donnez au nouvel utilisateur l'accès complet à la base de données :

  • GRANT ALL PRIVILEGES ON ampache_database.* TO 'database_user'@'localhost';

Enfin, vérifiez que la nouvelle base de données existe en exécutant la commande suivante :

  • SHOW DATABASES;

Vous verrez le résultat suivant :

+--------------------+
| Database           |
+--------------------+
| information_schema |
| ampache_database  |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Exécutez le shell MySQL en entrant exit;.

Enfin, testez la base de données, le nom d'utilisateur et le mot de passe en essayant de vous connecter au shell MySQL avec le database_user.

Entrez la commande suivante pour vous connecter au shell MySQL en tant que nouvel utilisateur :

  • mysql --user=database_user --password ampache_database

Vous avez maintenant créé la base de données qu'Ampache utilisera. Vous avez terminé la configuration de votre serveur et êtes prêt à terminer l'installation avec le programme d'installation web.

Étape 5 – Utilisation du programme d'installation Web

Dans cette étape, vous utiliserez le programme d'installation web d'Ampache pour terminer l'installation en donnant à Ampache les informations dont il aura besoin pour fonctionner, telles qu'un utilisateur de l'interface web, les détails de la base de données et d'autres paramètres.

Démarrez l'installation web en entrant https://your_domain dans votre navigateur.

Choisissez votre langue d'installation

Sélectionnez la langue de l'interface d'Ampache et cliquez sur le bouton Start Configuration pour continuer.

Exigences

C'est sur cette page qu'Ampache vérifie que le serveur répond à ses exigences. Chaque ligne de cette page représente un test que le programme d'installation effectue pour s'assurer, par exemple, que tous les modules PHP requis sont présents et fonctionnent. Vous verrez que chaque test comporte une coche verte pour indiquer que votre serveur est prêt pour Ampache.

Cliquez sur le bouton Continue pour passer à la page suivante.

Insérez la base de données Ampache

Cette page crée la base de données d'Ampache si elle n'existe pas et la met en forme. Remplissez les champs comme suit :

  • Desired Database Name: ampache_database
  • MySQL Hostname: localhost
  • MySQL Port (facultatif):<EMPTY>
  • MySQL Administrative Username: database_user
  • MySQL Administrative Password: database_password
  • Create Database:<UNCHECKED>
  • Create Tables (ampache.sql):<CHECKED>
  • Create Database User:<UNCHECKED>

Image montrant le formulaire complété

Cliquez sur le bouton Insert Database pour continuer.

Générez un fichier de configuration

Cette page crée le fichier de configuration qu'Ampache utilisera pour s'exécuter. Remplissez les champs comme suit :

  • Web Path:<EMPTY>

  • Database Name: ampache_database

  • MySQL Hostname: localhost

  • MySQL Port (facultatif):<EMPTY>

  • MySQL Username: database_user

  • MySQL Password: database_password

Image montrant le formulaire complété

  • Installation Type Laissez le réglage par défaut.

  • Allow Transcoding Sélectionnez ffmpeg dans la liste déroulante.

  • Players Laissez le réglage par défaut.

Cliquez sur le bouton Create Config pour continuer.

Créez un compte administrateur

Cette page crée le premier utilisateur de l'interface web. Cet utilisateur est créé avec des privilèges administratifs complets et c'est celui que vous utiliserez pour vous connecter et pour la configuration initiale d'Ampache.

Choisissez un nom d'utilisateur et un mot de passe sécurisé et saisissez-les dans les champs Password et Confirm Password.

Cliquez sur le bouton Create Account pour continuer.

Mises à jour Ampache

Cette page permet d'effectuer toute modification administrative à apporter à la base de données d'Ampache. Ces modifications sont effectuées lors des mises à jour de version, mais comme il s'agit d'une nouvelle installation, le programme d'installation n'apportera aucune modification.

Cliquez sur le bouton Update Now! pour continuer.

Mises à jour Ampache

Cette page affiche et explique toutes les mises à jour que le programme d'installation a effectuées à l'étape précédente. Vous ne devriez voir aucune mises à jour listée.

Cliquez sur le lien [Return to main page] pour continuer vers la page d'accueil. Entrez votre nom d'utilisateur et votre mot de passe que vous avez définis pour vous connecter à votre serveur Ampache.

Ampache n'est pas tout à fait prêt à être utilisé. Vous allez maintenant compléter l'installation en ajoutant votre musique afin de pouvoir commencer à utiliser votre nouveau serveur Ampache.

Étape 6 - Ajout de votre musique à Ampache

Un serveur musical ne sert à rien s'il n'y a pas de musique à diffuser. Dans cette étape, vous allez configurer un catalogue musical et télécharger de la musique. “Catalogue” est le nom qu'Ampache donne à une collection de musique. Ampache est capable de lire de la musique provenant de nombreuses sources sur le serveur et en dehors, mais dans ce tutoriel, vous allez télécharger et stocker votre musique sur le serveur dans un catalogue local, comme Ampache l'appelle.

Tout d'abord, cliquez sur le lien add a Catalog sur la ligne suivante, dans la première page que vous voyez lorsque vous vous connectez à Ampache :

Aucun catalogue n'a encore été créé. Pour commencer à écouter de la musique en streaming, vous devez ajouter un Catalogue.

Cela vous amènera à la page Add Catalog. Remplissez les champs comme suit :

  • Catalog Name: Donnez à ce catalogue un nom court et facile à mémoriser.
  • Catalog Type: local
  • Filename Pattern:<EMPTY>
  • Folder Pattern: Laissez les valeurs par défaut.
  • Gather Art:<CHECKED>
  • Créez des listes de lecture à partir de fichiers de listes de lecture. (m3u, m3u8, asx, pls, xspf):<UNCHECKED>
  • Path: /data/Music

Image montrant le formulaire de catalogue complété

Cliquez sur le bouton Add Catalog pour terminer cette page.

Sur la page qui suit, cliquez sur le bouton Continue. Cela vous amènera à la page Show Catalogs qui affichera les détails du catalogue que vous avez créé. Vous pourrez ensuite modifier les paramètres du catalogue à tout moment.

Maintenant, activez la fonction de téléchargement d'Ampache sur le web en cliquant sur la troisième icône de navigation pour ouvrir les paramètres étendus :

Image montrant la troisième icône de paramètres

Faites défiler vers le bas jusqu'à la section Server Config et cliquez sur le lien System pour ouvrir la page des paramètres système.

Trouvez la ligne Allow user uploads et sélectionnez Enable dans le menu déroulant, dans la colonne Value.

Vous pouvez également choisir quel niveau d'utilisateur est en mesure de télécharger des fichiers musicaux. Le niveau par défaut est Catalog Manager, ce qui permet au Catalog Manager et à tous les utilisateurs avec des privilèges plus importants de télécharger de la musique. Dans ce cas, il s'agit de l'administrateur.

Vous devez également définir le catalogue auquel la musique sera ajoutée. Définissez cela en utilisant la ligne Destination catalog. Sélectionnez le catalogue que vous avez créé dans la liste déroulante Value.

Image montrant les lignes allow upload et destination catalog

Cliquez sur le bouton Update Preferences en bas de la page pour terminer la configuration. Vous êtes maintenant prêt à télécharger de la musique.

Tout d'abord, cliquez sur la première icône des paramètres :

Icône illustrant la première icône des paramètres

Ensuite, cliquez sur le lien Upload dans la section Music.

Image montrant la ligne upload

Dans la page Upload, cliquez sur le bouton Browse et localisez vos fichiers musicaux sur votre ordinateur, puis téléchargez les.

Si vous laissez les étiquettes Artist et Album vides, Ampache lira les balises ID3 des fichiers musicaux pour découvrir automatiquement l'artiste et l'album. Une fois que vous aurez téléchargé de la musique, vous pourrez la trouver en cliquant sur les liens Songs, Albums ou Artists dans la section Music du panneau de navigation, à gauche.

Votre serveur de musique Ampache est maintenant prêt à commencer à diffuser votre musique en continu.

Conclusion

Dans cet article, vous avez installé et configuré un serveur de streaming musical Ampache et téléchargé une partie de votre musique. Vous pouvez désormais écouter votre musique où que vous alliez, sur n'importe lequel de vos appareils. La documentation d'Ampache vous aidera à utiliser et à étendre votre serveur de streaming. Ces apps Android et cette app iOS diffuseront votre musique sur votre téléphone. Ampache organise votre musique sur le serveur en utilisant les balises ID3 dans les fichiers musicaux. Le programme MusicMrainz vous aidera à gérer les balises ID3 de vos fichiers musicaux.

Creative Commons License