Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Samstag
17
Januar 2015

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.