Für alle, die Airsonic nicht kennen: Es handelt sich hier um einen klasse open source Musikstreaming-Server, der sich sehr leicht installieren und konfigurieren läßt. Zum Zeitpunkt der Erstellung dieses Artikels ist er auf https://airsonic.github.io/ zu finden. Der in Ubuntu 20.04 verwendete tomcat9 benötigt für den Einsatz von Airsonic weitere Konfiguration.
Lies hier weiter, welche das ist.
Kürzlich habe ich einen release-upgrade von Ubuntu 18.04 auf 20.04 auf meinem VPS gemacht. Dabei wird nicht nur das Betriebssystem auf die nächste Version gehievt, es werden auch alle installierten Applikationen aktualisiert.
Während die meisten Applikationen nach dem Upgrade weiter funktioniert haben, ging Airsonic nicht mehr. Auf dem Blog von Sören Poulsen habe ich dann die Ursache dafür gefunden. Der Tomcat9 in Ubuntu 20.04 hat eine Konfigdatei, in der externe Pfade angegeben werden müssen:
/lib/systemd/system/tomcat9.service
Und in diese Datei muss der Pfad zum Ordner eingetragen werden, in dem die Musik für Airsonic liegt. Du kannst auch mehrere Pfade eintragen, falls bei Deinem Server nicht alles (Musik, Playlists, Vids etc.) im gleichen Ordner liegt.
Der Eintrag sieht bei mir so aus:
ReadWritePaths=/var/airsonic/
Nach einem anschließenden systemctl daemon-reload &&systemctl restart tomcat9 war meine Airsonic-App wieder funktionstüchtig!
Zusätzlich zum Originalbeitrag ist es natürlich empfehlenswert, den Tomcat, der standardmäßig auf Port TCP/8080 läuft, hinter einem reverse proxy wie zum Beispiel dem Apache2 mit mod_proxy zu maskieren. Hier hast Du eine Beispielkonfiguration für einen vhost als reverse proxy für tomcat9:
<VirtualHost *:80> ServerName airsonic.example.com ServerAdmin webmaster@example.com RedirectPermanent / https://airsonic.example.com/ </VirtualHost> <VirtualHost *:443> ServerName airsonic.example.com ServerAdmin webmaster@example.com ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ProxyPreserveHost On ProxyAddHeaders On SSLEngine On SSLCertificateFile /etc/letsencrypt/live/airsonic.example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/airsonic.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/airsonic.example.com/chain.pem SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES SSLHonorCipherOrder on SSLCompression off SSLOptions +StrictRequire </VirtualHost>
Der erste vhost auf Port 80 schickt alle Anfragen an den direkt darunter stehenden vhost auf Port 443. Dort wird mittels der ProxyPass und ProxyPassReverse-Zeilen der Traffic zwischen Apache2 und Tomcat9 ‘geroutet’.
Suchst Du weitere Artikel auf diesem Blog zum Thema Airsonic?