Afficher/cacher Sommaire
Airsonic (fork subsonic)
Airsonic est un serveur média libre et open source. Il s’agit d’un streamer multimédia hébergé sur le Web qui offre un accès omniprésent à votre musique, facilite le partage de votre musique avec vos amis ou l’écoute de votre musique pendant que vous travaillez. Airsonic a été créé avec Java comme une fourchette complète du 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 qui peuvent être diffusés en continu sur le protocole HTTP, y compris WMA, FLAC, APE, etc.
Dans ce tutoriel, comment installer Airsonic sur Ubuntu 18.04 ,comment déployer l’installation autonome d’Airsonic en utilisant le package .WAR, exécuter Airsonic en tant que service, puis configurer le serveur web Nginx en tant que reverse proxy pour Airsonic.
Conditions préalables
- Debian Stretch
- Privilèges racine (root)
Les étapes
- Installer Java OpenJDK OpenJDK
- Installer et configurer AirSonic
- Générer un nouveau certificat SSL Letsencrypt Certificate
- Configurer Nginx en tant que Reverse Proxy
- Configurer le pare-feu
- Tests
Installer Java OpenJDK
Airsonic est un logiciel d’application basé sur Java, nous devons donc installer Java sur le serveur, et cela nécessite l’installation de la série OpenJDK 1.8x.
Installation paquet openjdk-8-jre
sudo apt install openjdk-8-jre
Vérification version Java OpenJDK
java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
Si plusieurs versions installées ,définir JAVA_HOME par défaut en utilisant la commande ci-dessous et choisissez la bonne version (1.8.x) :
sudo update-alternatives --config java
Installer et configurer Airsonic
Airsonic fournit différents packs d’installation, pour ce guide, nous utiliserons l’installation autonome WAR.
Créer un nouvel utilisateur nommé ‘airsonic’, et créez un nouveau répertoire ‘/opt/airsonic’.
sudo useradd airsonic
sudo mkdir -p /opt/airsonic
Se rendre dans le dossier ‘/opt/airsonic’ et télécharger le paquet Airsonic ‘.WAR’
sudo -s
cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war
Et changer le propriétaire du répertoire’/opt/airsonic’ pour l’utilisateur et le groupe ‘airsonic’.
chown -R airsonic:airsonic /opt/airsonic
Le paquet binaire Airsonic ‘.WAR’ a été téléchargé, nous devons créer un fichier de service ‘airsonic.service’ pour Airsonic
nano /etc/systemd/system/airsonic.service
Coller la configuration de service Airsonic suivante et sauver le fichier
[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
Rechargez le système systemd et créez un nouveau fichier de configuration par défaut dans le répertoire ‘/etc/default’.
systemctl daemon-reload
nano /etc/default/airsonic
Coller la configuration airsonic par défaut suivante et sauver le fichier
# 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
Démarrer maintenant le service Airsonic et activer le pour qu’il se lance à chaque fois au démarrage du système.
systemctl start airsonic
systemctl enable airsonic
L’installation’stand-alone’ d’airsonic est terminée, vérifier à l’aide de la commande netstat.
netstat -plntu
tcp6 0 0 :::8080 :::* LISTEN 13841/java
Et vous obtiendrez le port par défaut Airsonic’8080’ sur l’état’LISTEN’, utilisé par le service Java Airsonic.
Certificats Let’s Encrypt
Configurer Nginx en tant que Reverse proxy
Configurer nginx en tant que reverse proxy pour le logiciel Airsonic sur le port 8080.
Créer dans le dossier /etc/nginx/conf.d/ un nouveau fichier d’hôte virtuel ‘music.cinay.eu.conf’.
nano /etc/nginx/conf.d/music.cinay.eu.conf
Coller la configuration suivante.
server {
listen 80;
listen [::]:80;
server_name music.cinay.eu;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name music.cinay.eu;
ssl_certificate /etc/ssl/private/crt.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
location / {
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://;
}
}
Vérifier
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrer ‘nginx’
systemctl restart nginx