So jetzt habe ich es endlich hinbekommen. Ich habe mich mit dem Nginx Webserver doch etwas mehr rum ärgern dürfen.
wie man Subsonic unter Ubuntu installiert, steht hier beschrieben
This installation option applies to Debian Linux, including Ubuntu.
First, install Java: sudo apt-get install openjdk-6-jre
Download the Subsonic .deb package and install it: sudo dpkg -i subsonic-x.x.debNotice that the installer configures your system to start Subsonic automatically when booting. After installing, open the Subsonic web page on http://localhost:4040.
Change user
By default the Subsonic process is run as the root user. To improve security it is strongly advised that you run it as a dedicated user with less powerful privileges. You can specify this user by setting the SUBSONIC_USER variable in /etc/default/subsonic.
Note that non-root users are by default not allowed to use ports below 1024. Also make sure to grant the user write permissions in the music directories, otherwise changing album art and tags will fail.
Advanced configuration
To change the port number, Java memory settings or other startup parameters, edit the SUBSONIC_ARGS variable in /etc/default/subsonic. To restart Subsonic, do sudo service subsonic restart
Troubleshooting
Check the logs in /var/subsonic.
Damit ist der Subsonic Server installiert. Aktuell läuft er mit Root rechten. Das sollte schnellstens geändert werden.
Also legen wir noch einen neuen Benutzer unter Ubuntu an.
sudo useradd -r -s /bin/false USERNAME
Unter diesem Benutzer lassen wir dann Subsonic laufen.
Das tragen wir dann in der Subsonic Config Datei ein
sudo nano /etc/default/subsonic
# The user which should run the Subsonic process. Default “root”.
# Note that non-root users are by default not allowed to use ports
# below 1024. Also make sure to grant the user write permissions in
# the music directories, otherwise changing album art and tags will fail.SUBSONIC_USER=UserName
Wenn wir schon in der Config Datei unterwegs sind, fügen wir auch noch gleich den SSL Support hinzu sowie etwas mehr RAM.
SUBSONIC_ARGS=”–https-port=8443 –max-memory=512″
Danach sollte dieser Benutzer noch Rechte im Verzeichnis geben wo die Musik liegt Beispiel /var/musik
Sonst klappt das Indizieren nicht und viele weitere Dinge nicht.
Jetzt geht es dran mit Port 8443 ist nicht so schön nach außen zu kommunizieren.
Ihr habt nun verschiedene Möglichkeiten.
IPTABLES
Wenn der Server daheim hinter einem Router steht Port von außen 443 und innen nach 8443 weiterleiten
NGINX SSL Proxy
Ich verwende letzte Variante
sudo apt-get install nginx
Danach ist der Webserver installiert.
Jetzt erstellt man unter /etc/nginx/sites-available/subsonic.conf eine Datei mit folgendem Inhalt.
server{
listen 443;ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl on;
server_name server.local;
root /usr/share/nginx/html;
index index.html index.htm;location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://localhost:8443;
}
}
Natürlich mit einem symlinc nach sudo ln -s /etc/nginx/sites-available/subsonic.conf /etc/nginx/sites-enabled/subsonic.conf und einem restart von nginx ist die Config nun scharf.
Hier nochmal an Rancor einen Dank. Da ich fast abgedreht hätte an diesem kleinen Config Schnippel. Ich hatte so einen Zusammen nur hatte ich da einen kleinen Fehler drin.
Damit ist der Subsonic Server unter https://server.local mit einer SSL Verbindung zu erreichen. Ohne Angaben irgendwelcher Port Nr. etc. Damit ist der Zugriff von fast allen Netzen in denen der Port 443 freigeben ist, zu erreichen.
Ich habe in der Config zwar ein Cert hinterlegt aber er nimmt doch das Standard Cert von Subsonic, was ich nicht will. Daher hinterlegen wir im Subsonic Server noch ein eigenes Cert.
Dazu erzeugen wir ein eigenes Cert.
sudo keytool -genkey -alias sitename -keyalg RSA -keystore subsonic.jks -keysize 4096 -validity 35600
Ihr könnt natürlich hier die Werte ändern wie ihr gerne möchtet, also nicht so lange gültig ist etc.
Wenn das Cert erstellt ist kopieren wir es nach
sudo cp subsonic.jks /etc/ssl/certs/
Dann editieren wir noch folgende Datei
sudo nano /usr/bin/subsonic
In Nano die alt + C Taste drücken, damit seht ihr die Zeilen
Ihr müsst in Zeile 113 springen und dort zwei Zeilen hinzufügen. Diese sind nicht vorhanden.
-Dsubsonic.ssl.keystore=/etc/ssl/certs/subsonic.jks
-Dsubsonic.ssl.password=123456
Danach noch den Subsonic neustarten.
sudo /etc/init.d/subsonic restart
Danach liefert Subsonic die SSL Verbindung mit eurem neuen SSL Cert aus.
Dazu gibt es noch einen alten Forums Eintrag wo es ähnlich beschrieben ist.