AirSonic est un serveur de streaming multimédia gratuit, open source et basé sur le Web qui vous permet d'accéder à votre musique depuis un emplacement central. Airsonic est compatible avec n'importe quel format de fichier audio/vidéo et également capable de diffuser via le protocole HyperText Transfer. Il s'agit d'un streamer multimédia auto-hébergé écrit en langage Java et capable de gérer de très grandes collections de musique. Il fonctionne sur la plupart des systèmes d'exploitation, y compris Windows, Linux et Mac OS.
Dans ce didacticiel, nous allons vous montrer comment installer le serveur de diffusion multimédia AirSonic sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8 avec au moins 2 Go de RAM.
- Un mot de passe root est configuré sur votre serveur.
Mise en route
Par défaut, SELinux est activé sur le serveur CentOS 8. Vous devrez donc d'abord le désactiver.
Vous pouvez le faire en éditant le fichier /etc/selinux/config :
nano /etc/selinux/config
Effectuez les modifications suivantes :
SELINUX=disabled
Enregistrez et fermez le fichier. Ensuite, redémarrez votre système pour appliquer les modifications.
Installer Java
AirSonic est basé sur Java, vous devrez donc installer Java sur votre système. Vous pouvez installer Java en exécutant simplement la commande suivante :
dnf install java-1.8.0-openjdk-devel
Une fois Java installé, vous pouvez vérifier la version de Java avec la commande suivante :
java -version
Vous devriez voir le résultat suivant :
openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Installer AirSonic
Avant de commencer, vous devrez créer un utilisateur pour exécuter AirSonic.
Commencez par créer un utilisateur avec la commande suivante :
useradd airsonic
Ensuite, créez un répertoire pour AirSonic avec la commande suivante :
mkdir /var/airsonic /var/media_files
Ensuite, téléchargez la dernière version d'AirSonic depuis le dépôt Git avec la commande suivante :
wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war
Ensuite, donnez la permission appropriée au répertoire airsonic avec la commande suivante :
chown -R airsonic /var/airsonic
chown -R airsonic /var/media_files
Ensuite, téléchargez le fichier d'unité systemd préconfiguré pour AirSonic avec la commande suivante :
wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/sysconfig/airsonic
Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service AirSonic et activez-le au démarrage avec les commandes suivantes :
systemctl start airsonic
systemctl enable airsonic
Vous pouvez maintenant vérifier l'état d'AirSonic avec la commande suivante :
systemctl status airsonic
Vous devriez obtenir le résultat suivant :
? airsonic.service - Airsonic Media Server Loaded: loaded (/etc/systemd/system/airsonic.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-10-28 12:29:51 EDT; 2min 6s ago Main PID: 29564 (java) Tasks: 18 (limit: 5060) Memory: 315.0M CGroup: /system.slice/airsonic.service ??29564 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/> Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.876 INFO --- l.c.StandardChangeLogHistoryService : Reading from DATABASECHANGEL> Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.877 INFO --- l.executor.jvm.JdbcExecutor : SELECT * FROM DATABASECHANGE> Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.969 INFO --- liquibase.changelog.ChangeSet : Marking ChangeSet: classpath> Oct 28 12:31:49 centos8 java[29564]: classpath:liquibase/db-changelog.xml : Custom Precondition Failed: DBMS Major Version Precondit> Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.972 INFO --- l.executor.jvm.JdbcExecutor : SELECT MAX(ORDEREXECUTED) FR> Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.017 INFO --- l.executor.jvm.JdbcExecutor : INSERT INTO DATABASECHANGELO> Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.020 INFO --- l.l.StandardLockService : Successfully released change> Oct 28 12:31:51 centos8 java[29564]: 2019-10-28 12:31:51.489 INFO --- o.airsonic.player.dao.PlayerDao : Deleted 1 player(s) that hav> Oct 28 12:31:52 centos8 java[29564]: 2019-10-28 12:31:52.424 INFO --- o.a.p.s.MediaScannerService : Automatic media library scan> Oct 28 12:31:53 centos8 java[29564]: 2019-10-28 12:31:53.093 INFO --- o.a.p.service.PodcastService : Automa
Vous pouvez également vérifier le processus d'exécution d'AirSonic avec la commande suivante :
ps -ef | grep airsonic
Vous devriez voir le résultat suivant :
airsonic 29459 1 87 12:07 ? 00:02:08 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/airsonic.war root 29496 6103 0 12:10 pts/0 00:00:00 grep --color=auto airsonic
Accéder à l'interface Web AirSonic
Avant d'accéder à l'interface Web AirSonic, vous devrez ouvrir les ports 80 et 8080 avec firewalld. Vous pouvez le faire avec les commandes suivantes :
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
Ensuite, ouvrez votre navigateur Web et tapez l'URL http://your-server-ip:8080/airsonic . Vous serez redirigé vers la page suivante :
Indiquez le nom d'utilisateur et le mot de passe par défaut en tant qu'administrateur/administrateur et cliquez sur Journal dans bouton. Vous devriez voir la page suivante :
Ensuite, vous devrez changer le mot de passe administrateur par défaut. Pour ce faire, cliquez sur Modifier administrateur mot de passe . Vous devriez voir la page suivante :
Choisissez l'utilisateur administrateur, cochez la case pour changer le mot de passe, saisissez le nouveau mot de passe et cliquez sur Enregistrer bouton pour changer le mot de passe par défaut.
Ensuite, vous devrez configurer le dossier multimédia pour stocker votre musique et vos vidéos. Pour cela, cliquez sur les paramètres > Médias dossiers . Vous devriez voir la page suivante :
Maintenant, tapez /var/media_files dans la zone Dossier et cliquez sur Enregistrer bouton.
Configurer Nginx en tant que proxy inverse
Ensuite, vous devrez configurer Nginx en tant que proxy inverse pour l'Airsonic sur le port 8080. Pour ce faire, installez d'abord le serveur Web Nginx avec la commande suivante :
dnf install nginx
Une fois installé, créez un fichier de configuration d'hôte virtuel Nginx :
nano /etc/nginx/conf.d/airsonic.conf
Ajoutez les lignes suivantes :
server { listen 80; server_name your-server-ip; access_log off; error_log off; location / { proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, testez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez voir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, démarrez le service Nginx et activez-le après le redémarrage du système avec la commande suivante :
systemctl start nginx
systemctl enable nginx
Maintenant, vous pouvez accéder à AirSonic en visitant l'URL http://your-server-ip/airsonic .
Conclusion
Toutes nos félicitations! vous avez installé avec succès un serveur multimédia AirSonic avec Nginx en tant que proxy inverse sur CentOS 8. Vous pouvez maintenant héberger votre propre serveur multimédia et partager de la musique avec vos amis et votre famille. N'hésitez pas à me demander si vous avez des questions.