Ubuntu 14.04 - DLNA - Plex
Bin zwischenzeilich zu einer anderen Lösung gekommen mit der ich jetzt sehr zufrieden bin. Einfach einen Raspberry Pi nehmen und Kodi installieren. Dann reichen auch normale Dateifreigaben per NFS oder SMB um die eigene Mediensammlung abzuspielen.
Bei meiner Recherche nach DLNA Servern bin ich auf ein weiteres Paket gestoßen, dem ich auch einen Versuch zugestehen möchte. Der Plex Media Server ist mehr als nur ein DLNA Server. Er ist leider nicht in den Paketquellen von Ubuntu zu finden, aber es gibt ein .deb Paket für Ubuntu als Download. Außerdem ist eine umfassende Dokumentation vorhanden.
Also Paket herunterladen:
wget http://downloads.plexapp.com/plex-media-server/0.9.9.7.429-f80a8d6/plexmediaserver_0.9.9.7.429-f80a8d6_amd64.deb
Plex benötigt ein paar Pakete die installiert sein müssen
sudo apt-get install avahi-daemon avahi-utils libavahi-core7 libdaemon0 mime-support ureadahead
und installieren:
sudo dpkg -i plexmediaserver_0.9.9.7.429-f80a8d6_amd64.deb
Ist die Installation abgeschlossen kann man sich an der wirklich sehr schicken Weboberfläche unter <serverip>/web anmelden. Dort registriert man sich für Plex und kann einige weitere Einstellungen treffen und erste Medien Bibliotheken anlegen.
Ubuntu 14.04 - DLNA - Plex
DLNA (Digital Living Network Alliance) ist ein Standard für Geräte in der digitalen Unterhaltungselektronik, mit dem es möglich ist unterschiedliche Geräte mit Multimedia-Inhalten zu versorgen.
Unter Ubuntu gibt es eine ganze Reihe freier und kommerzieller DLNA Server. In diesem Beitrag werde ich den teil-kommerziellen DLNA Server Plex testen. Das Paket ist nicht in den offiziellen Quellen verfügbar und der Lizenztyp wird als Freemium angegeben. Das bedeutet dass die Basisfunktionen kostenlos genutzt werden können nur Erweiterungen sind kostenpflichtig.
Für den Test wurde die Version 0.9.12.4.1192-9a47d21_amd62 des plexmediaserver verwendet.
Eine gute Anleitung gibt es wie immer unter ubuntuusers.de.
Installation
Das Paket ist nicht in den Repositories vorhanden und muss von der Website heruntergeladen werden.
Damit der Server richtig läuft schlägt ubuntuusers.de vor noch die Pakete avahi-daemon und avahi-utils zu installieren.
sudo apt-get install avahi-daemon avahi-utils
Auf der Website kann man unter Downloads wählen ob man Plex auf einer NAS oder einem Computer installieren möchte. Für die Installation unter Ubuntu wählen wir Computer aus. Im folgenden Dialog wählen wir unter Ubuntu die für unser System zutreffende Architektur aus (32/64Bit).
Das heruntergeladene Paket kann man jetzt entweder über den Software-Center oder über die Kommandozeile installieren:
dpgk -i plexmediaserver_0.9.12.4.1192-9a47d21_amd64.deb
Plex installiert dabei gleich ein Update-Repository (/etc/apt/sources.list.d/plexmediaserver.list) um das Paket auf dem aktuellsten Stand zu halten.
Konfiguration
Damit Plex auf die Dateien der Bibliothek zugreifen kann muss für den Benutzer plex, unter dem der Server läuft, eine Zugriffsberechtigung für diese eingerichtet werden.
Dies könnte man z.B. machen indem man den Owner der Dateien auf plex ändert. Alternativ kann man den Benutzer plex auch in eine Gruppe aufnehmen, die allen Dateien zugewiesen ist.
Die Einstellungen des Mediaservers sind in der Datei
/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml
gespeichert. Eine bequemere Möglichkeit als die Datei zu editieren ist die Einstellungen über die Web-Oberfläche vorzunehmen.
Ein paar Einstellungen lassen sich nicht über die Web-Oberfläche setzen, siehe dazu Advanced Server Settings. Um den Server in Betrieb zu nehmen sind diese Einstellungen jedoch nicht relevant.
Webinterface
Das Webinterface ist unter http://<plex-Server>:32400/web zu erreichen. Wobei <plex-server> durch die IP oder den Hostnamen des Rechners ersetzt werden muss auf dem der plexmediaserver läuft.
Am Webinterface merkt man direkt dass es sich um ein kommerzielles Produkt handelt. Hier sind offensichtlich viele Stunden an Entwicklungsarbeit investiert worden.. Die meisten Einstellungen sowie die Medien-Bibliotheken können hier eingerichtet werden.
Plex hinter Apache Proxy
Steht der Plex Server ggf. hinter einer Firewall und möchte nicht noch einen weiteren Port für den Zugriff auf das Webinterface des Plex Media Servers öffnen, so kann man auch den Apache so konfigurieren, dass er als Proxy fugiert und die Anfragen an den Plex Media Server durchreicht.
Dazu muss das Apache Modul mod_proxy und mod_proxy_http installiert und aktiviert werden.
sudo a2enmod proxy proxy_http
Jetzt kann man die Proxyweiterleitungen definieren. Dazu legt man die Datei /etc/apache2/conf-available/plex.conf an und fügt folgenden Inhalt ein:
<IfModule mod_proxy.c>
<Location /web>
ProxyPass http://localhost:32400/web
ProxyPassReverse http://localhost:32400/web
</Location>
<Location /system>
ProxyPass http://localhost:32400/system
ProxyPassReverse http://localhost:32400/system
</Location>
<Location /servers>
ProxyPass http://localhost:32400/servers
ProxyPassReverse http://localhost:32400/servers
</Location>
<Location /accounts>
ProxyPass http://localhost:32400/accounts
ProxyPassReverse http://localhost:32400/accounts
</Location>
<Location /myplex>
ProxyPass http://localhost:32400/myplex
ProxyPassReverse http://localhost:32400/myplex
</Location>
<Location /photo>
ProxyPass http://localhost:32400/photo
ProxyPassReverse http://localhost:32400/photo
</Location>
<Location /clients>
ProxyPass http://localhost:32400/clients
ProxyPassReverse http://localhost:32400/clients
</Location>
</IfModule>
Als nächstes muss diese Konfiguration aktiviert werden:
sudo a2enconf plex
Damit der Apache jetzt nicht als Open Proxy läuft, sollte man, sofern nicht anders gewünscht, die Datei /etc/apache2/conf-available/proxy_default.conf mit folgenden Inhalt anlegen:
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</IfModule>
Wenn der Parameter ProxyRequests Off nicht eingetragen wird läuft der unter mod_proxy_html liegende mod_proxy als Open Proxy was ein Sicherheitsproblem darstellt.
Diese Konfiguration noch aktivieren mit:
a2enconf proxy_default
Und anschließend der Apache neu gestartet werden:
sudo service apache2 restart
Jetzt ist der Plex Media Server sowohl mit als auch ohne SSL Verschlüsselung unter mein.server.de/plex erreichbar.
Will man sicherstellen, dass man nicht doch einen Open Proxy gebastelt hat, kann man sich per telnet auf den Apache verbinden und versuchen Inhalte einer andere Website zu laden:
telnet www.mydomain.com 80
Steht die Verbindung, gibt man folgendes in das Terminal ein
GET http://www.google.de/ HTTP/1.1
Der Server darf jetzt nicht die Seite von Google ausgeben, sondern muss eine Fehlermeldung oder die eigene Website ausgeben.
HTTP/1.1 400 Bad Request
Date: Mon, 20 Jul 2015 09:58:38 GMT
Server: Apache/2.2.12 (Linux/SUSE)
Content-Length: 309
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.12 (Linux/SUSE) Server at www.yahoo.com Port 80</address>
</body></html>
Connection closed by foreign host.
Wird die Seite von Google ausgegeben ist noch etwas an der Konfiguration falsch.
In den Einstellungen von Plex muss jetzt noch unter Server > Remote Access unter Port manuell eingeben den Port auf z.B. 443 einstellen, wenn man eine verschlüsselte Verbindung möchte oder 80 falls man dies nicht wünscht. Ist dieses Eingabefeld nicht vorhanden oben rechts auf Erweiterte Anzeige klicken.