AirSonic Media Server installeren op CentOS 8

AirSonic is een gratis, open-source en web-gebaseerde media streamingserver waarmee je je muziek vanaf een centrale plaats kunt bekijken. Airsonic is compatibel met elk audio/video bestandsformaat en kan ook streamen over het HyperText Transfer protocol. Het is een zelf gehoste mediastreamer, geschreven in de Java taal en in staat om zeer grote muziekverzamelingen te verwerken. Het draait op de meeste besturingssystemen, waaronder Windows, Linux en Mac OS.

In deze zelfstudie laten we je zien hoe je AirSonic media streamingserver op CentOS 8 installeert.

Vereisten

  • Een server die CentOS 8 draait met minimaal 2 GB RAM.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Standaard is SELinux ingeschakeld in CentOS 8 server. Je zult het dus eerst moeten uitschakelen.

Je kunt dit doen door het bestand /etc/selinux/config te bewerken:

nano /etc/selinux/config

Breng de volgende veranderingen aan:

SELINUX=disabled

Bewaar en sluit het bestand. Start daarna je systeem opnieuw op om de wijzigingen toe te passen.

Installeer Java

AirSonic is gebaseerd op Java dus je zult Java op je systeem moeten installeren. Je kunt Java installeren door gewoon het volgende commando uit te voeren:

dnf install java-1.8.0-openjdk-devel

Als Java geïnstalleerd is, kun je de versie van Java verifiëren met het volgende commando:

java -version

Je zou de volgende uitvoer moeten zien:

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)

Installeer AirSonic

Voor je begint, moet je een gebruiker aanmaken om AirSonic te draaien.

Maak eerst een gebruiker aan met het volgende commando:

useradd airsonic

Maak vervolgens een directory voor AirSonic met het volgende commando:

mkdir /var/airsonic /var/media_files

Download vervolgens de nieuwste versie van AirSonic uit de Git repository met het volgende commando:

wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war

Geef vervolgens de juiste toestemming aan de map airsonic met het volgende commando:

chown -R airsonic /var/airsonic
chown -R airsonic /var/media_files

Download vervolgens het voorgeconfigureerde systemd unit bestand voor AirSonic met het volgende commando:

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

Herlaad vervolgens de systemd daemon met het volgende commando:

systemctl daemon-reload

Start vervolgens de AirSonic service en zet hem aan om bij het opstarten te starten met de volgende commando’s:

systemctl start airsonic
systemctl enable airsonic

Je kunt nu de status van AirSonic controleren met het volgende commando:

systemctl status airsonic

Je zou de volgende uitvoer moeten krijgen:

? 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

Je kunt ook het lopende proces van AirSonic controleren met het volgende commando:

ps -ef | grep airsonic

Je zou de volgende uitvoer moeten zien:

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

Toegang tot de AirSonic webinterface

Voordat je de AirSonic webinterface kunt benaderen, moet je poorten 80 en 8080 openen met firewalld. Je kunt dat doen met de volgende commando’s:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

Open vervolgens je webbrowser en typ de URL http://your-server-ip:8080/airsonic. Je wordt doorgestuurd naar de volgende pagina:

airsonic media server login

Geef de standaard gebruikersnaam en wachtwoord op als admin/admin en klik op de knop Log in. Je zou de volgende pagina moeten zien:

Aan de slag

Vervolgens moet je het standaard beheerderswachtwoord veranderen. Klik daarvoor op de knop Change administrator password. Je zou de volgende pagina moeten zien:

Instellingen

Kies admin user, vink het vakje change password aan, typ het nieuwe wachtwoord en klik op de knop Save om het standaard wachtwoord te veranderen.

Vervolgens moet je de mediamap instellen om je muziek en video’s in op te slaan. Klik daarvoor op de instellingen > Mediamappen. Je zou de volgende pagina moeten zien:

Media Mappen

Typ nu /var/media_files in het vak Map en klik op de knop Save.

Configureer Nginx als omgekeerde proxy

Vervolgens moet je Nginx instellen als een omgekeerde proxy voor de Airsonic op poort 8080. Om dat te doen installeer je eerst de Nginx webserver met het volgende commando:

dnf install nginx

Maak na de installatie een Nginx virtual host configuratiebestand:

nano /etc/nginx/conf.d/airsonic.conf

Voeg de volgende regels toe:

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;
}
}

Sla het bestand op en sluit het als je klaar bent. Test Nginx dan op een eventuele syntaxfout met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten zien:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Start vervolgens de Nginx service en zet hem aan om te starten na herstarten van het systeem met het volgende commando:

systemctl start nginx
systemctl enable nginx

Nu kun je de AirSonic benaderen door de URL http://your-server-ip/airsonic te bezoeken.

Conclusie

Gefeliciteerd! je hebt met succes een AirSonic mediaserver geïnstalleerd met Nginx als reverse proxy op CentOS 8. Je kunt nu je eigen mediaserver hosten en muziek delen met je vrienden en familie. Voel je vrij me te vragen als je vragen hebt.