JellyFin auf dem Raspberry Pi mit einer Synology NAS

Heute installieren wir einen JellyFin Server auf dem Raspberry Pi und geben die Möglichkeit Daten von der Synology NAS zu lesen (Filme, Serien, was auch immer).
Aber was ist eigentlich JellyFin? JellyFin ist ein emby Fork. Emby ist eine Alternative zum Plex Media-Server. Während bei Plex und emby eine Anmeldung notwendig ist, kann dies bei JellyFin lokal bleiben. JellyFin ist also auch ein Media-Server, der es ermöglicht Multimedia-Dateien zu streamen, nicht nur im Netzwerk, auch unterwegs kann man darauf zugreifen. Eine Einrichtung ist relativ einfach, lediglich die Netzwerkfreigabe hatte ein klein wenig Einarbeitung erfordert.
Beginnen wir mit dem Raspberry Pi:

sudo apt update
sudo apt upgrade

Um alles auf den neusten Stand zu bringen.

sudo apt install apt-transport-https
Damit wir auf https zugreifen können, was für das JellyFin Package notwendig ist.

curl https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin-archive-keyring.gpg >/dev/null

Hiermit fügen wir den GPG-Schlüssel zu.

sudo apt update
Um auch die JellyFin Dateien zu finden.

sudo apt install jellyfin
Um JellyFin schließlich zu installieren.

http://[IPADDRESSE]:8096
Jetzt könnt Ihr auf Euren JellyFin Server zugreifen. Genauer wird das dann hier beschrieben: https://jellyfin.org/docs/general/quick-start.html

Der etwas kniffligere Teil ist das mounten der Netzwerkfreigaben auf dem Raspberry Pi. Hierfür verbinden wir uns wieder mit dem Pi und gehen in die fstab Datei:
sudo nano /etc/fstab
Hier fügen wir folgendes ein:
//192.168.X.X/nas /media/nas cifs
username=XXXXXX,password=XXXXXX,rw,soft

Den Ordner /media/nas müsst Ihr noch erstellen.
Mit sudo mount -a könnt Ihr die Ordner mounten und sie sollten dann auch in Jellyfin sichtbar sein, bzw. aus wählbar.
Bei Fragen dürft Ihr gerne auf Freenetworx nachfragen.

By Jellyfin contributors – <a rel=“nofollow“ class=“external free“ href=“https://github.com/jellyfin/jellyfin-ux/blob/master/branding/SVG/banner-light.svg“>https://github.com/jellyfin/jellyfin-ux/blob/master/branding/SVG/banner-light.svg</a>, CC BY-SA 4.0, Link

Hallo pi.hole

Wir installieren also wieder einen pi.hole im Netzwerk, da es mit dem eBlocker nicht ganz so gut geklappt hat (Ja, ich bin da etwas eigen, entweder es klappt von Anfang an oder ich lass es 🙂 ).Wir benötigen einen RaspberryPi 3b nebst Stromzufuhr, Netzwerkkabel und Gehäuse. Hinzu kommt eine SD-Karte die ich mit dem RaspberryPi OS beschrieben habe. Ganz einfach geht es wie hier beschrieben.

Sobald die Karte beschrieben wurde legen wir eine Datei auf der Karte an „ssh“, also rechtsklick „Neu–Textdokument–ssh.txt–dann das  *.*txt entfernen“ , so dass nur noch „ssh“ vorhanden ist. Somit erhalten wir SSH zugang via WinSCP. Die IP Adresse erhalten wir von unserem Router.

Nachdem wir uns erfolgreich eingeloggt haben (user: pi / Kennwort: raspberry) starten wir putty, kann man auch direkt machen. Erstmal mit „sudo apt-get update && upgrade“ alles auf den neusten Stand bringen. Dann installieren wir auch schon pi.hole mit:

curl -sSL https://install.pi-hole.net | bash

Es folgen ein paar Fragen, ob ein Webserver installiert werden soll oder schon ein paar Blocking-Listen dazu sollen, usw. Ich habe soweit alles bei mir drin stehen gelassen. Das letzte Fenster solltet Ihr beachten, da steht das Admin Passwort.

Jetzt sollte pi.hole laufen. Damit aber auch gefiltert wird, sollte der pi.hole in der Fritz.box als Standard hinterlegt werden:

  • Links zuerst „Heimnetz“ und dann „Netzwerk“ auswählen
  • Im Reiter „Netzwerkverbindungen“ ganz oben die IP der fritz.box aufschreiben, da ihr später nicht über „fritz.box“ draufkommt
  • Auf den Reiter „Netzwerkeinstellungen“ wechseln
  • unten bei „Weitere Einstellungen“  IP-Adressen IPv4- bzw. IPv6-Adressen auswählen (IPv4-Konfiguration, bzw. IPv6) Dort bei Lokaler DNS-Server die IP Eures pi.holes eingeben und bestätigen.

Jetzt starten wir den Router neu und loggen uns ins Admin Menü des pi.holes ein. Unter „Group Management“ finden wir den Punkt „Adlist“. Hier tragen wir unsere Filterlisten ein. Ich verwende 9 Listen und das ergibt in etwa 421.651 blockierte Domains/Tracker.

Meine verwendeten Listen:

https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt adservers.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/facebook.txt facebook.txt
https://phishing.army/download/phishing_army_blocklist_extended.txt Phishing Army
https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Hosts/GoodbyeAds.txt GoodbyeAds
https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-YouTube-AdBlock.txt GoodbyeAds YouTube Adblock
https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-LeEco-Extension.txt GoodbyeAds LeEco AdBlock
https://block.energized.pro/blu/formats/domains.txt  Energized Blu
https://block.energized.pro/extensions/social/formats/domains.txt Energized Social
https://block.energized.pro/extensions/social/formats/hosts-ipv6.txt Energized Social IPv6

Verwendung natürlich auf eigene Gefahr 🙂

Viel Spaß

Eine kleine Aufstellung der Nerd-Seiten

Da ich ja ganz gerne mit verschiedenen Scripten experimentiere und immer wieder was dazulerne, kommt dabei natürlich auch ab und an etwas heraus. Mittlerweile sind es drei größere Bereiche, welche im produktiv betrieb sind. Es handelt sich um ein Forum, ein Soziales Netzwerk und ein Tor-Hosting Angebot. Diese drei möchte ich nun etwas näher erklären.

Tor-Hosting @ Freenetworx.de – kostenloses Tor-Hosting

Bei Tor-Hosting möchte ich kostenloses Tor-Hosting anbieten. Natürlich alles im machbaren Rahmen und auch im legalen Bereich. Die Technik dahinter ist nicht so umfangreich wie man denke könnte. Es wird kein RaspberryPi oder so verwendet, wobei das natürlich auch recht einfach wäre. Nein, es ist viel banaler, ein einfach vServer von Netcup und ein bisschen eingerichtet und abgesichert und fertig ist das ganze. Allerdings benötigt man noch „Handarbeit“ um eine Seite im Darknet online zu stellen. Aber dazu findet Ihr auf Tor-Hosting mehr Informationen.

vF-Social.de – werbefreies und kostenloses Soziales Netzwerk –> Heisst jetzt: FreeNetworX

„Wenn etwas umsonst ist, dann bist du das Produkt!“ lautet eine alte Weisheit. Ich weiß nicht von wem diese ist, aber sie ist sehr treffend in unserer Gesellschaft. Auch wenn viele große Player Dienste vermeintlich kostenlos anbieten, müssen auch diese Geld verdienen um eben diese anbieten zu können. Es wird einem nichts geschenkt. Bei vF-Social.tk Freenetworx.de läuft es ein klein wenig anders. Ich habe kein finanzielles Interesse an dem Projekt. Es macht mir lediglich Spaß und ich lerne ein wenig. Es werden keine Daten verkauft, keine Werbung geschaltet oder ähnliches. Die Kosten werden aus meiner eigenen Tasche getragen. Sinn und Zweck liegt darin, dass sich Menschen online austauschen, eigene Spaces gründen (Gruppen) und all das tun was man in anderen Netzwerken auch kann: Sich vernetzen!

Wie man in der derzeitigen Netflix Doku sehen kann, ist es auch höchste Zeit, dass Alternativen geschaffen werden.

Das Dilemma mit den Sozialen Netzwerken

https://www.netflix.com/title/81254224?s=a&trkid=13747225&t=cp

vF-Forum – Support und Hilfe-Forum –>

Das dritte Projekt ist ein einfaches phpBB Forum, das unter Nerdistan.xyz erreichbar ist. hier erhaltet Ihr Support/Anregungen zum Hosting und zu Euren RaspberryPi-Projekten. Aber auch anderer Nerd-Kram wird hier angegangen.

Schaut einfach mal bei den Projekten dabei. Vielleicht habt Ihr Anregungen, dann lasst diese doch einfach hier bei den Kommentaren oder im Forum.

oDroid-XU4, neuer in der SBC-Familie

zusätlich zu den zwei RaspberryPi gesellt sich nun auch ein oDroid-XU4 in die SCB-Familie. Dieser ist nun mit dem aktuellen armbian buster ausgestattet. Bisher habe ich nur den emby-Server installiert und am laufen. Was sich leider als schwierig erweist, da der emby-Server ab und an mal seinen Dienst quittiert und ich ihn von Hand mit“service emby-server start“ starten muss. Das passiert ab und an, wenn ich mit einem Browser (Firefox oder Chrome) darauf zugreifen möchte. Dann muss der Server manuell gestartet werden und läuft es, mal ein paar Tage mal stürzt er mehrmal hintereinander ab. Die Log-Datei gibt leider nicht viel her:
2020-06-11 10:31:07.394 Error App: Error downloading news
*** Error Report ***
Version: 4.4.3.0
Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_armhf.deb
Operating system: Unix 4.14.180.4
64-Bit OS: False
64-Bit Process: False
User Interactive: True
Runtime: file:///opt/emby-server/system/System.Private.CoreLib.dll
System.Environment.Version: 3.1.2
Processor count: 8
Program data path: /var/lib/emby
Application directory: /opt/emby-server/system
MediaBrowser.Model.Net.HttpException: MediaBrowser.Model.Net.HttpException: ServiceUnavailable
at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod)
at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsync(HttpRequestOptions options, String httpMethod)
at Emby.Server.Implementations.News.NewsEntryPoint.DownloadNews(String path)
at Emby.Server.Implementations.News.NewsEntryPoint.OnTimerFired(Object state)
Source: Emby.Server.Implementations
TargetSite: Void MoveNext()

Da er ein fehler beim Downloader der News hat, habe den oDroid mal bei piHole „befreit“. Ob das der fehler war, kann ich bisher noch nicht sagen, da es momentan funktioniert, liegt aber nahe. Sollte der odroid in ein paar Tagen immer noch fleissig seinen Dienst erledigen, wird vielleicht noch ein Plex Media Server installiert. Warten wir es mal ab.

RaspberryPi neu aufgesetzt (mount Probleme)

Es gab ein größeres pi-Hole update auf die Version 5.0. Welche ich natürlich auch verwenden wollte. Allerdings hatte ich meinen RaspberryPi ja mit DietPi aufgesetzt, was noch zum Problem werden sollte. Ein Update war zwar möglich verlief aber nicht so sauber wie ich es mir vorstellte. Nach längerem suchen, dachte ich mir ich setze den Raspberry komplett neu und ohne DietPi auf. Ziel war also pi-Hole v5.0, Plex Mediaserver, emby-Mediaserver und NetData von Hand zu installieren und einrichten. An sich war alles problem mit Hilfe der entwicklerseiten zu bewerkstelligen. Ich hatte allerdings zwei Grundlegende Probleme:
– pi-Hole blockte nicht alles, zumindest scheinbar
– Bei plex musste der NAS-Speicher eingebunden werden

pi-Hole v5.0 installiert und soweit einige Blocklisten eingepflegt (ca. 1 Mio Domains auf der Blocklist). Den DNS wollte ich von Hand bei den Geräten angeben, da ja nicht viele Geräte im Netzwerk sind. Das war allerdings gar nicht so erfolgreich, da die Smartphones trotzdem Werbung angezeigt haben, bzw alles durchkam. Also, dann doch der Weg über die Fritz.Box unter den Netzwerkeinstellungen den eigenen DNS angegeben und neugestartet. Perfekt, jetzt wird alles was geblockt werden soll auch geblockt.

Das größere Problem waren die Mediendateien der NAS, diese mussten in Raspbian eingebunden werden. Nach einigen Tutorials war ich etwas frustriert, weil nichts klappte. Ich konnte dann zwar manuell mounten, aber ich hätte es gerne automatisch gehabt. Also die /etc/fstab/ bearbeitet und folgendes eingefügt:
//192.168.178.21/Filme/ /home/NAS/Filme cifs guest,auto,vers=1.0 0 0
//192.168.178.21/Serien/ /home/NAS/Serien cifs guest,auto,vers=1.0 0 0
//192.168.178.21/Musik/ /home/NAS/Musik cifs guest,auto,vers=1.0 0 0

mit df überprüft und siehe da es wurde alles eingebunden. War ne nervenaufreibende Sache, da man viel im Netz findet, aber vieles zu alt ist. Vielleicht hilft es dem ein oder anderen ja mal 🙂

pi-hole um ein paar Listen erweitert + ipv6

Heute wurde der pi-hole ein wenig gefüttert. Nun sind 1.229.157 Domains geblockt. Verwendet habe ich folgende Listen: https://v.firebog.net/hosts/lists.php?type=nocross

Alle Einträge kopiert und unter „Settings/Blocklists“ alles eingefügt, danach auf „Save & Update“ und dann gewartet. Nachdem das durch war, den pi neugestartet.

Dann kam noch das blocken über IPv6. Hierfür habe ich folgende Anleitung verwendet:

https://adminforge.de/dns/pi-hole-ipv6-und-die-fritzbox/

pi-hole eingerichtet

Nun haben wir uns entschieden zuhause einen RaspberryPi mit pi-hole aufzusetzen und diesen an die Fritz.Box zu hängen. Dadurch wird sämtlicher Internetverkehr, welcher über den Router läuft gefiltert, anhand von angegebenen Filterlisten.

Ihr seht nun, was da alles in nichtmal 48 Stunden angesammelt wurde.

Kommen wir zur Vorbereitung. Zuallererst benötigen wir einen RaspberryPi 3b+ (kleiner würde auch gehen) plus zubehör, Gehäuse, Netzteil und SD-Karte. Nachdem alles zusammen gebaut wird, installieren wir Raspbian auf die SD-Karte. Ich habe die Lite-Version verwendet, die man hier bekommt: https://www.raspberrypi.org/downloads/raspbian/

Das Image könnt Ihr mit WIN32DiskImager auf die SD-Karte kopieren und in den pi stecken. Bei ersten Start habe ich den pi an einen Fernseher angeschlossen und eingerichtet, bzw nur SSH aktiviert. Das macht Ihr in dem Ihr Euch einloggt mit Benutzername und Passwort:

Benutzername: pi

Passwort: raspberry

Wenn Ihr Euch eingeloggt habt, ruft Ihr die Config auf:

sudo raspi-config

Nun könnt Ihr die Interfacing Options ändern und SSH aktivieren, sofern es nicht schon aktiv ist. Weitere Einstellungsmöglichkeiten findet Ihr hier: https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Solltet Ihr alles eingerichtet haben empfiehlt es sich den pi an seinen bestimmungsort zu bringen und via Kabel an den Router anzuschliessen. Ihr könnt Euch nun via SSH mit dem pi verbinden. Die IP-Adresse erhaltet Ihr über die Netzwerkübersicht Eures Routers. Ihr solltet Eurem pi eine feste IP-Adresse vergeben, das macht es gleich einfacher. Ich bin nach folgender Anleitung vorgegangen: https://www.elektronik-kompendium.de/sites/raspberry-pi/1912151.htm
Nachdem der pi nun eine feste Adresse hat, können wir ihn updaten und aktualisieren.

Mit folgendem Befehl installiert Ihr pi-hole auf Eurem pi:

curl -sSL https://install.pi-hole.net | bash

https://pi-hole.net

Ihr solltet bei der Installation immer wieder mal lesen, was Euch angezeigt wird. Im Normalfall ist alles Selbsterklärend, z.B. Wenn Ihr keinen Server (lighttpd) installiert, funktioniert das Webinterface auch nicht. Als letztes wird Euch eine Information angezeigt die Ihr Euch notieren solltet. Nach der Installation könnt Ihr das Webinterface aufrufen: DieIPDesPI/admin
Ihr könnt Euch einloggen und PiHole einrichten. Unter Settings–Blocklists habe ich folgende Listen eingetragen:

  • https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  • https://mirror1.malwaredomains.com/files/justdomains
  • http://sysctl.org/cameleon/hosts
  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
  • https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
  • https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
  • https://hosts-file.net/ad_servers.txt
  • https://raw.githubusercontent.com/EnergizedProtection/block/master/basic/formats/hosts

Somit sind ca. 554.000 Domains gesperrt, Nachteile habe ich bisher nicht bemerkt. Zur Not kann man einzelne Blocklisten auch wieder entfernen.

Solltet Ihr eine Fritz.Box 7590 besitzen könnt Ihr unter Heimnetz–Netzwerk–Netzwerkeinstellungen (Den Reiter oben)–IPv4-Adressen einen lokalen DNS-Server eingeben. Somit wird der pi-hole als DNS im Netzwerk an alle Geräte bekannt gegeben.