Dieser Beitrag ist schon sehr alt, und die Infos hier sind sicherlich hoffnungslos veraltet…
Subsonic ist tot, es lebe Airsonic
Seit ein paar Jahren habe ich einen Subsonic-Server für meine Musik. Ich habe sogar die 12,- Euro Zwangsabgabe pro Jahr bezahlt, damit meine Clients auf den Server zugreifen können.
Heute hab ich Subsonic zu Gunsten von Airsonic verworfen. Airsonic ist ein Subsonic-Fork, es ist “frei” wie in “Bier” (d.h. die 12,- fallen weg) und funktioniert prima mit meinem Apache-Proxy.
Folgendes Szenario möchte ich realisieren:
Airsonic läuft auf einem Port ohne SSL (in meinem Fall 4040)
Damit aber auch https-Verbindungen klappen, richte ich einen Apache-Proxy ein. Dieser leitet dann die HTTPS-Anfrage intern an Airsonic weiter. Das hat zB den Vorteil, dass die LetsEncrypt-Zertifikate nur in Apache aktualisiert werden müssen
Alle Clients haben von überall Zugriff auf Airsonic
Installation
Die Installation unter Archlinux ist recht einfach:
pacaur -S airsonic jre8-openjdk-headless
Jetzt muss ich noch sicherstellen, dass auch wirklich jre8 verwendet wird:
archlinux-java status # auf jre8 umstellen
Konfiguration
Für Airsonic habe ich nur meinen Port eingetragen:
sudo nano /etc/airsonic/airsonic.conf
(...)
PORT=4040
CONTEXT_PATH=/airsonic
(...)
Für das Transcoding (also zB das Runterrechnen auf 128kb/s mp3) muss noch ein Symlink auf ffmpeg gesetzt werden:
cd /var/lib/airsonic/transcode
sudo ln -s /usr/bin/ffmpeg .
sudo chown -h airsonic:airsonic ffmpeg
Für Apache wird die httpd.conf wie folgt ergänzt:
sudo nano /etc/httpd/conf/httpd.conf
(...)
RequestHeader set X-Forwarded-Proto "https"
ProxyPass /airsonic http://127.0.0.1:4040/airsonic
ProxyPassReverse /airsonic http://127.0.0.1:4040/airsonic
(...)
Dies bewirkt, dass Anfragen von http://meinserver.org/airsonic als auch von https://meinserver.org/airsonic intern an den Port 4040, und somit an Airsonic, weitergereicht werden. Ich muss also keine Ports in der Firewall öffnen, und ich kann meine LetsEncrypt-Lösung für SSL verwenden.
Starten…
Nach einem Neustart von Apache kann auch Airsonic gestartet werden:
sudo apachectl graceful
sudo systemctl start airsonic.service
Voila, Airsonic ist nun unter http://IPDESSERVERS:4040 und auch unter http(s)://meinserver.org/airsonic erreichbar.