Brauche ich jetzt ein NAS oder einen ganzen Server

Die Frage ist schwierig zu beantworten, aber zum Glück ist das auch eigentlich nicht Notwendig. Ein NAS kann auch als Home Server mit weniger Aufgaben begriffen werden. Deswegen hängt dies hauptsächlich davon ab, was für Aufgaben gewünscht sind.

Aufgaben

Speicherplatz im eigenen Netzwerk (klassisches NAS)

Hierfür ist keine besondere Hardware notwendig. Die CPU sollte AES-NI unterstützen, da alle Daten eigentlich immer at-rest Verschlüsselt sein sollten. Ansonsten ist hauptsächlich auf eine schnelle Anbindung ans Netzwerk zu achten. Einige Router unterstützen mittlerweile das Anschließen eines Gerätes über einen 2,5 GBit Port. Das ist insbesondere für ein NAS interressant, da dadurch mehrere Geräte mit ihrer jeweiligen maximalen Geschwindigkeit auf das NAS zugreifen können.

Speicher

Als speicher sollten hauptsächlich HDDs in einen RAID verbund verwendet werden. Aus Stromkostensicht ist es zu empfehlen eher wenige große Festplatten zu verwenden, statt mehere kleinere. Insbesondere auch, da die SATA/SAS Ports am Mainboard immer stark limitiert sind.
Dateisysteme wie ZFS unterstützen SSD Caches für schnelleren Zugriff auf den Speicher. Diese sind teilweise jedoch mit vorsicht zu genießen.

Beim Anschluss der Platten stellt sich die Frage, ob SATA oder SAS verwendet werden soll. SAS ist bis zu doppelt so schnell wie SATA, jedoch kann SATA bereits (in der Theorie) bis zu 6 Gbit/s übertragen, was schneller ist, als die meisten Heimnetze können. Außerdem sind SAS Platten in der Regel teurer. Je nach Größe und insbesondere Anzahl an Festplatten kann es sich trotzdem lohnen SAS zu verwenden, weil hier die Bandbreite auch aufgesplittet werden kann und so mehr Platten angesprochen werden können.

RAM

Grundlegend brauch ein NAS eigentlich nicht viel RAM. Die meisten “fertig” NAS kommen mit nur 2 GB. Dateisysteme wie ZFS profitieren hier jedoch auch beim Zugriff von mehr RAM. Wenn höhere Geschwindigkeit wichtig ist, kann es sich also trotzdem lohnen mehr RAM zu verbauen.

Dienst

Für größtmögliche Kompatibilität empfiehlt sich SMB. Der gänige Server unter Linux hierfür ist SAMBA. Aber vorsicht, SAMBA verwendet seine eigenen Passwörter, und lässt sich also nicht wirklich in ein SSO oder centralised identity management System integrieren.

Speicherplatz in fremden Netzwerken (File-Cloud)

Protokolle wie SMB sind für die Verwendung im eignen Netzwerk ausgelegt, und aus sicherheitsperspektieve ist es auch sinvoll diese nicht extern erreichbar zu machen. Sollte auf diese Dienste aus einem anderen Netzwerk zugegriffen werden, sollte also ein VPN genutzt werden.

Die Alternative hierzu ist die Verwendung von File-Cloud Diensten. Diese unterscheiden sich in Komfortabilität und Sicherheit.

sFTP

Das klassische FTP lässt sich auch heute noch nutzen, aber es sollte immer die Verschlüsselte Variante, also sFTP verwendet werden. Automatische Syncronisierung und einfache Einbindung in den eigenen Dateimananger sind jedoch nicht so leicht möglich.

Nextcloud

Nextcloud bietet für diesen Zweck eine ziemlich weit entwickelte Platform. Neben automatischen Sync können auch mehrere Erweiterungen installiert werden, die jedoch auch die Hardware Anforderungen hochtreiben. Wenn Nextcloud nur zusätzlich auf einem einfachen NAS installiert werden soll, reicht in der Regel die Verwendung des Docker-AIO containers. Bei Servern, die mehr erledigen empfehle ich Nextcloud als LXC zu hosten.

BackUps

Für einen guten BackUp Server gilt:

  • Es gibt die Möglichkeit für Inkrementelle Backups.
  • Die Clients, also die zu BackUpenden Geräte können nur Hinzufügen und Lesen, nicht Löschen.
  • Der Server selbst verwalltet, wie viele BackUps nachgehalten werden. Damit sind auch in der Regel Systeme wie ein SMB Server oder (normales) Nextcloud ausgeschlossen.

ToDO: beispiele, etc.

Kalender & Kontakte

Zur Syncronisierung von Kalendern & Kontakten gibt es im Prinzip 2 gute Möglichkeiten.
Die erste ist über das entsprechende Nextcloud Plugin, insbesondere wenn bereits eine Nextcloud gehostet wird.

Die zweite ist über EteSync. EteSync ist ein Syncronisierungstool, bei dem die Daten nur auf den Endgeräten entschlüsselt werden. Es eignet sich insbesondere also für einsätze, in denen dem Server nicht 100% vertraut werden kann, oder wenn die Daten besonders Schützenswert sind.

Dokumente

Mit Paperless-ngx lassen sich Scans von Briefen, etc. und auch andere Dokumete relativ einfach Verwalten. Paperless erfordert aber wiederum durch sein Verarbeiten der Dokumente etwas mehr Prozessorleistung, und je nach Umfang des Einsatzes von 2-8 GiB RAM. Paperless selbst kann in ein normales SSO eingebunden werden.

Grocy

Für alle von euch, die wie ich Probleme mit Vorratshaltung und Einkaufen haben empfehle ich Grocy. Das ist eine Software, die nach hält welche Zutaten noch Vorrätig sind, und welche Rezepte sich aus der Mindeshlatbarkeit dieser Empfehlen. Außerdem kann mensch mit Grocy sich den Einkaufszettel für den Essensplan der Woche erstellen lassen ohne selber nochmal in den Kühlschrank schauen zu müssen.
Grocy selbst kann leider nur über einen Proxy ins SSO eingebunden werden.

mail

Könnt ihr machen, aber wollt ihr vieleicht auch nicht wirklich. Wenn doch braucht ihr nämlich durchaus etwas mehr, und zwar:

  • Eine IP die von den meisten Mailservern als OK angesehen wird um Mails zu versenden. In der Regel sind die HeimIPs hiervon ausgenommen, aber es gibt Weiterleitungsproxys.
  • eine Domain
  • Etwas dedizierte Rechenleistung und so 2 GiB RAM. Wenn ihr das doch umsetzen wollt, empfehle ich mailcow, weil es die meisten Dinge in einem Löst. Mailcow lässt sich auch mit einen SSO integrieren

HomeAssistant

Wenn ihr ein SmartHome system verwenden wollt, das nicht von seltsamen Konzernen kommt, gibt es hier quasie keine Alternative zu. Homeassistant unterstützt leider kein SSO, mit dem HeaderAuth Plugin lässt sich aber SSO über einen proxy lösen.

Keycloak SSO

Bei mehreren Diensten sollte ein SingleSignOn genutzt werden, um sich nicht mehrere Passwörter oder so zu merken. Ich empfehle Keycloak.
Für alle Dienste, die das SSO nur über einen Proxy funktioniert beitet siche der oauth2-proxy an.

Musik, Filme, etc.

Eine Sache, die viele auf ihrem Home Server hosten ist Software, um größere Sammlungen von Filmen, Serien und Musik zugänglich zu machen. Aus all den Diensten, die hierfür in Frage kommen halte ich jellyfin für den besten. Bei der Verwendung von Jellyfin stellen sich aber bereits einige Anforderungen an die Hardware.

Zum einen braucht eine größere Sammlung von Filmen und Serien eine nicht zu unterschätzende Menge an Speicherplatz. Gerade Privatkopein von DVDs, BlueRays, etc. können leicht in Bereiche von 40 GB pro Film und 160 GB pro Staffel gehen (BlueRays hauptsächlich).
Hierbei jedoch Vorsicht, für die Privatkopie darf kein Kopierschutz umgangen werden, der “wirksam” ist. “Wirksam” ist hierbei jedoch nicht wirklich wirksam, sondern bezeichnet alles was im “normalen Gebrauch” das Kopieren verhindert. Im Gegensatz zu DVDs und BlueRays haben z.b. Musik CDs keinen Kopierschutz.

Zum anderen gibt es das Problem, dass nicht jedes Gerät mit jedem Codec klarkommt, und manche Filme vieleicht auch Unterwegs geschaut werden wollen. Hier empfiehlt sich dann bereits der einbau einer Dedizierten Grafikkarte (am besten von Intel). Bei neuerer Intel Hardware ist dies glücklicherweise jedoch nicht immer Notwendig, weil die im Prozessor integrierte Grafikkarte bereits viel abdeckt. Da die GPU nur die Konvertierung von Video Codes unterstütz, muss für die Konvertierung der Audio Spur immer noch der Prozessor eingesetzt werden. Es empfiehlt sich hier dann auch mehr als nur das Minimum zu verwenden.

Gerade wenn bereits eine Dedizierte Grafikkarte verwendet wird, kann durch das Konvertieren nach AV1 und vorbis zusätzlich Platz auf der Platte gespart werden, ohne unbedingt die Qualität zu verringern.

Zum Wiedergeben der DVDs und BlueRays und zum Rippen der CDs bietet sich außerdem ein DVD/BlueRay Laufwerk an. Bei BlueRays Achtung, hier wurde sich wirklich mühe mit dem Kopierschutz gegeben, was wie immer auch die normale Benutzung massiv einschränkt. Nicht jede BlueRay kann mit jedem Laufwerk wiedergegeben werden, dies betrifft insbesondere 4K BlueRays.

Um Jellyfin mit Single Sign On zu Nutzen, wird ein PlugIn benötigt.

mediatekview

Der ÖRR beitet über seine Mediatehken auch den Download von Serien und Filmen an. Um den Download zu vereinfachen / zu automatisieren beitet es sich an mediatekview-docker auf dem Server laufen zu lasen. Das ist die Desktopvariante, aber in einen Docker container, der Zugriff erfolgt also über einen Webbrowser. Gerade das unbeaufsichtigt laufenlassen ermöglicht hier das automatisierte Downloaden von Serien.

podgrab

Um Podcasts in Jellyfin zu integrieren ist die Software Podgrab interressant. Damit können echte Podcasts direkt über den RSS Feed gedownloaded werden, und direkt in Jellyfin integriert werden.

eBooks

Zur Verwaltung der eigenen eBook library empfiehlt sich calibre-web. Die Integration ins SSO geht jedoch nur über einen Proxy.
Für Calibre-Web sind eigentlich keine weitergehenden HW-Vorraussetzungen notwendig.

Server Design

Generell Empfehle ich einen Intelprozessor ab der 8ten Generation zu verwenden, weil ab dieser wichtige Energiesparmodi eingeführt wurden. Der Server sollte im Idealfall über 3 PCIe Slots verfügen. GPU, Netzwerkkarte (weil die meisten Mainboards kein 2,5/10Gbit Ethernet haben) und für eine SATA erweiterungskarte. Wenn hier die notwendigen Kapazitäten bereits im Mainboard vorliegen natürlich entsprechend weniger.

Alle Datenspeicher, also HDDs und SSDs sollten immer in einem RAID vorliegen. Am besten mittels ZFS, weil hier RAID mit Verschlüsselung und Dateisystem gekoppelt werden kann. Hierbei sollten natürlich die HDDs jeweils einen Pool bilden, und die SSDs einen anderen.

Das Betriebssystem richtet sich danach, wie viel auf dem Gerät laufen soll. Wenn es nur um ein NAS geht, und vieleicht noch eine Nextcloud und Paperless dann sollte OpenMediaVault reichen. Bei allem was mehr ist empfehle ich stark Proxmox zu nutzen, da hier durch die Virtualisierung eine bessere Trennung möglich ist. Durch die LXContainer gibt es hierbei sogar quasie keinen Performanceverlust.
Insbesondere wenn HomeAssistant verwendet werden soll, muss Proxmox verwendet werden, da HomeAssistant sich am besten als VM nutzen lässt.

Absicherung des Servers

Auch der Server braucht ein BackUp (3-2-1 Strategie…). Wenn das OS des Servers Proxmox ist, läst sich am besten der Proxmox Backup Server verwenden.

Theoretisch kann es bei ZFS, und anderen Filesystems auch, passieren, dass wenn der Strom vor abschluss des Schreibvorganges ausfällt, Daten verloren gehen können. Hier kann ein UPS (monitort mit NUT) abhilfe schaffen.

Ein großes Problem bei den HDDs ist außerdem, dass diese mit der Zeit kaputgehen. Mit smartmon lassen sich diese Überwachen. (Für die extremen kombinierbar mit Grafana :))