Airsonic est un serveur multimédia gratuit et open source. Il s'agit d'un diffuseur multimédia en ligne auto-hébergé qui offre un accès omniprésent à votre musique, facilite le partage de votre musique avec des amis ou l'écoute de votre musique au travail. Airsonic a été créé avec Java en tant que fork complet de Subsonic, et conçu pour gérer de très grandes collections de musique et optimisé pour le flux MP3. Airsonic fonctionne avec tous les formats audio ou vidéo pouvant être diffusés via le protocole HTTP, y compris WMA, FLAC, APE, etc.
Dans ce tutoriel, je vais vous montrer étape par étape comment installer Airsonic sur Ubuntu 18.04. Nous allons vous montrer comment déployer l'installation autonome d'Airsonic à l'aide du package .WAR, exécuter Airsonic en tant que service, puis configurer le serveur Web Nginx en tant que proxy inverse pour Airsonic.
Prérequis
- Ubuntu 18.04
- Privilèges root
Qu'allons-nous faire ?
- Installer Java OpenJDK
- Installer et configurer AirSonic
- Générer un nouveau certificat SSL Letsencrypt
- Configurer Nginx en tant que proxy inverse
- Configurer le pare-feu UFW
- Test
Étape 1 - Installer Java OpenJDK
Airsonic est un logiciel d'application basé sur Java, nous devons donc installer Java sur le serveur, et il nécessite l'installation de la série OpenJDK 1.8x. Dans cette première étape, nous allons installer Java OpenJDK à partir du référentiel PPA webupd8team.
Installez les packages "software-properties-common", puis ajoutez le référentiel Java OpenJDK PPA.
Exécutez les commandes apt suivantes.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y
Installez maintenant Java OpenJDK.
sudo apt install oracle-java8-installer -y
Et une fois l'installation terminée, vérifiez la version de Java OpenJDK.
java -version
Vous obtiendrez maintenant que la série Java OpenJDK 1.8 a été installée sur le système Ubuntu 18.04.
Étape 2 - Installer et configurer Airsonic
Airsonic fournit différents packages d'installation, pour ce guide, nous utiliserons "l'installation WAR autonome".
Créez un nouvel utilisateur nommé 'airsonic' et créez un nouveau répertoire '/opt/airsonic'.
useradd airsonic
mkdir -p /opt/airsonic
Allez maintenant dans le répertoire '/opt/airsonic' et téléchargez le fichier de package Airsonic '.WAR' en utilisant wget.
cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war
Et changez le propriétaire du répertoire '/opt/airsonic' en utilisateur et groupe 'airsonic'.
chown -R airsonic:airsonic /opt/airsonic
Le package binaire Airsonic '.WAR' a été téléchargé.
Ensuite, nous devons créer un nouveau fichier de service pour Airsonic, aller dans le répertoire '/etc/systemd/system' et créer un nouveau fichier de service 'airsonic.service'.
cd /etc/systemd/system/
vim airsonic.service
Collez-y la configuration de service Airsonic suivante.
[Unit] Description=Airsonic Media Server After=remote-fs.target network.target AssertPathExists=/opt/airsonic [Service] Type=simple Environment="JAVA_JAR=/opt/airsonic/airsonic.war" Environment="JAVA_OPTS=-Xmx700m" Environment="AIRSONIC_HOME=/opt/airsonic" Environment="PORT=8080" Environment="CONTEXT_PATH=/airsonic" Environment="JAVA_ARGS=" EnvironmentFile=-/etc/sysconfig/airsonic ExecStart=/usr/bin/java \ $JAVA_OPTS \ -Dairsonic.home=${AIRSONIC_HOME} \ -Dserver.context-path=${CONTEXT_PATH} \ -Dserver.port=${PORT} \ -jar ${JAVA_JAR} $JAVA_ARGS User=airsonic Group=airsonic [Install] WantedBy=multi-user.target
Enregistrez et quittez.
Rechargez le système systemd et créez un nouveau fichier de configuration par défaut airsonic dans le répertoire '/etc/default'.
sudo systemctl daemon-reload
vim /etc/default/airsonic
Collez-y la configuration airsonic par défaut suivante.
# Set the location of the standalone war to use JAVA_JAR=/opt/airsonic/airsonic.war # Set any java opts separated by spaces JAVA_OPTS=-Xmx700m # Set a different location for the airsonic home. # If this path is /opt/libresonic or even contains "libresonic", # the data from a previous libresonic can be used as is (i.e. without # renaming libresonic.properties,db/libresonic*, etc AIRSONIC_HOME=/opt/airsonic # Change the port to listen on PORT=8080 # Change the path that is listened to on CONTEXT_PATH=/airsonic # Add any java args. These are different than JAVA_OPTS in that # they are passed directly to the program. The default is empty: #JAVA_ARGS= # Note that there are several settings for spring boot, not explicitly listed # here, but can be used in either JAVA_OPTS or JAVA_ARGS. The full list # can be found here: # https://docs.spring.io/spring-boot/docs/1.4.5.RELEASE/reference/htmlsingle/#common-application-properties # For example to set debug across the board: #JAVA_ARGS=--debug # Or to change the IP address that is listened to: JAVA_ARGS=--server.address=127.0.0.1
Enregistrez et quittez.
Démarrez maintenant le service Airsonic et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start airsonic
systemctl enable airsonic
L'installation "autonome" d'airsonic est terminée, et maintenant elle est opérationnelle, vérifiez-la à l'aide de la commande netstat.
netstat -plntu
Et vous obtiendrez le port par défaut Airsonic '8080' sur l'état 'LISTEN', utilisé par le service Java Airsonic.
Étape 3 - Générer un nouveau certificat SSL Letsencrypt
Dans ce tutoriel, nous allons déployer Airsonic sous la connexion HTTPS du reverse proxy Nginx avec le nom de domaine 'music.hakase-labs.io'.
Et pour cette étape, nous allons générer les certificats SSL depuis Letsencrypt. Installez l'outil Letsencrypt à l'aide de la commande apt suivante.
sudo apt install letsencrypt -y
L'outil Letsencrypt a été installé.
Ensuite, nous devons générer les nouveaux certificats SSL pour le domaine 'music.hakase-labs.io' en utilisant la commande ci-dessous.
certbot certonly --standalone -d music.hakase-labs.io
L'adresse e-mail vous sera demandée et elle sera utilisée pour la notification de renouvellement. Pour l'accord Letsencrypt TOS, tapez 'A' pour accepter et pour l'adresse e-mail de partage, vous pouvez taper 'N' pour Non.
Lorsque tout est terminé, vous obtiendrez le résultat comme indiqué ci-dessous.
SSL Letsencrypt pour le domaine 'music.hakase-labs.io' a été généré, tous les certificats situés dans le répertoire '/etc/letsencrypt/live/domain'.
Étape 4 - Installer et configurer Nginx en tant que proxy inverse
Dans cette étape, nous allons installer le serveur Web Nginx et le configurer en tant que proxy inverse pour le logiciel Airsonic sur le port 8080.
Installez le serveur Web Nginx à l'aide de la commande apt suivante.
sudo apt install nginx -y
Allez maintenant dans le répertoire '/etc/nginx' et créez un nouveau fichier d'hôte virtuel 'airsonic'.
cd /etc/nginx/
vim sites-available/airsonic
Collez-y la configuration suivante.
server { listen 80; listen [::]:80; server_name music.hakase-labs.io; # enforce https return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name music.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/music.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.hakase-labs.io/privkey.pem; location /airsonic { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header Host $http_host; proxy_max_temp_file_size 0; proxy_pass http://127.0.0.1:8080; proxy_redirect http:// https://; } }
Enregistrez et quittez.
Activez le fichier d'hôte virtuel 'airsonic' et testez la configuration.
ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
nginx -t
Assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service nginx et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl restart nginx
systemctl enable nginx
Le serveur Web Nginx fonctionne maintenant en tant que proxy inverse pour Airsonic sur le port 8080, et il fonctionne sous la connexion sécurisée https.
Vérifiez-le en utilisant la commande netstat ci-dessous.
netstat -plntu
Étape 5 - Configurer le pare-feu UFW
Dans ce didacticiel, nous allons activer le pare-feu et nous utiliserons le pare-feu UFW pour Ubuntu.
Ouvrez le service SSH, HTTP et HTTPS sur la liste de pare-feu UFW en exécutant les commandes ci-dessous.
ufw allow ssh
ufw allow http
ufw allow https
Activez maintenant le pare-feu ufw.
ufw enable
Tapez 'y' et appuyez sur Entrée pour démarrer et activer le pare-feu UFW.
Et le pare-feu ufw a été activé.
Étape 6 - Tester
Ouvrez votre navigateur Web et saisissez l'URL d'installation d'Airsonic dans la barre d'adresse. Le mien est :
https://music.hakase-labs.io/airsonic/
La page de connexion Airsonic s'affiche maintenant.
Connectez-vous en tant qu'utilisateur par défaut 'admin' avec le mot de passe 'admin' et appuyez sur le bouton 'Connexion'.
Et une fois connecté, vous verrez le tableau de bord Airsonic.
- Modifier le mot de passe par défaut
Cliquez sur le bouton "Modifier le mot de passe administrateur".
Sélectionnez maintenant l'utilisateur 'admin' et marquez le 'Modifier le mot de passe', puis tapez le nouveau mot de passe administrateur et cliquez sur 'Enregistrer'.
Le mot de passe administrateur par défaut pour Airsonic a été modifié.
- Configurer les dossiers multimédias
De retour au serveur shell du terminal, créez manuellement de nouveaux dossiers multimédias et changez le propriétaire du répertoire de dossiers multimédias en utilisateur "airsonic".
mkdir -p /var/music
chown -R airsonic:airsonic /var/music
Maintenant, sur le tableau de bord d'administration d'Airsonic, cliquez sur le bouton "Paramètres" et cliquez sur l'onglet "Dossiers multimédias".
Assurez-vous que les dossiers multimédias "Musique" par défaut ont été activés, puis cliquez sur le bouton "Enregistrer".
Passez maintenant à l'onglet "Utilisateur", sélectionnez l'utilisateur "admin" et vérifiez le dossier multimédia "Musique" comme ci-dessous.
Le dossier multimédia "Musique" par défaut a été activé et l'utilisateur "admin" a désormais accès aux dossiers multimédias.
Ci-dessous, mon tableau de bord Airsonic après avoir apporté quelques modifications.
L'installation du diffuseur multimédia Airsonic avec Nginx en tant que proxy inverse sur Ubuntu 18.04 s'est terminée avec succès.