Mein Homelab 2023

Nach nun 3 Jahren möchte ich hier mein aktuelles Setup festhalten. Ich hoste nun schon seit fast vier Jahren auf meinem Server selber.

Viel Software ist gekommen und wieder gegangen. Eine Liste von meiner Meinung nach guter Software findest du in meinem Wiki. Genauso ist es mit der Hardware. Zwischenzeitlich hatte ich drei Server im Cluster laufen aber nachdem mein jetziger Server leistungsstark genug ist und bei den jetzigen Strompreisen auch zu teuer wurden bin ich nun wieder bei einem.

Hardware

Zurzeit verwende ich als Server einen Dell Poweredge R720xd mit 2 Xeon 6 Core Prozessoren mit 2,4 GHz, 150GB Ram und 8 TB Speicher.

Den Internetzugang liefert eine FritzBox 7590 mit einem dummem Gigabit switch. Vorübergehend hatte ich zwei HP 48- Port switches in Betrieb. Für Redundanzen, ein Cluster-, ein Internet- und ein Management Netzwerk getrennt per Vlan.

Als lokaler Backup Server läuft mehrmals die Woche ein alter Desktop Pc mit Proxmox Backup Server Software.

Software

Nach nun vier Jahren habe ich mich nun auf das notwendigste an Software beschränkt und nicht mehr so viel Software zum Spaß am laufen. So fast alles erfüllt nun einen dauerhaften Zweck.

Hypervisor

Als Hypervisor zur Virtualisierung setze ich auf Proxmox. Mit Proxmox kann ich ich auch mal schnell andere Server im Cluster einbinden und die Integration in den Proxmox Backup Server ist super.

Software

  • Proxmox Mail Gateway – ein zentraler Punkt für den Mailversand im Netzwerk (relay zu sendinblue)
  • NginxProxyManager – verteilt die eingehenden Domainanfragen an den richtigen internen Server
  • Wiki.js – meine Wiki/Dokumentations Plattform
  • Cloudpanel.io – hostet meine Webseiten
  • Docker – eine Vm für meine Container mit Portainer als Gui
  • Wallabag – ein read-it-later dienst
  • Cloudron – einfaches Management von wichtigen apps mit Mailserver
  • Nextcloud – Dokumente und Fotos Synchronisation zwischen Geräten
  • Vaultwarden – passwortmanager
  • Heimdall – App Dashboard
  • WordPress und Ghost – Blogs/Webseiten
  • Facil Map – eigener Maps Server
  • Traccer – Handy Tracking
  • Pi-Hole – Werbeblocker
  • Gitlab – github alternative selfhosted
  • Grafana mit Influxdb – logging
  • Matomo und Plausible – tracker
  • Ansible Semaphore – ansible gui
  • Chatwoot – support und websitechat
  • Harbor – container registry
  • Wazuh – vulnerability scanner
  • Pixelfed und Mastodon – mein socialmedia

Externes

Externes ist für mich nur die Überwachung meiner Dienste mit Hetrixtools und Uptimerobots. Außerdem noch ein Anbieter für ein externes Backup.

Zukunft

Ich hoffe in Zukunft noch energiesparsamer zu werden durch z.B. thinclients oder modernere Hardware. Damit mehr Cluster Experimente oder Kubernetes einfacher möglich werden. Leider habe ich auch eine menge daten auf einigen disks welche auch platz finden müssen.

Eigener Sprachassistent: offline, sicher und individuell mit Home Assistant Part: 3 Rhasspy installation

Rhasspy war für mich das perfekte Tool für einen Home Assistenten. Um auf die Ressourcen von Home Assistant zuzugreifen, aber auch meinen Raspberry Pi 3+ noch für weitere Projekte zu verwenden habe ich das Client-Server Setup verfolgt. Dies ging reibungslos und auch das erste Aufsetzen der Einstellungen. Auch eine alte USB-Webcam funktionierte mit dem Raspberry Pi.

Als ich dann zum Intent Handling gekommen bin war ich mir nicht klar wie die mit Home Assistant funktioniert aber mit der Rhasspy Forum war dies schnell geklärt. Das nächste war einen offline Text to Speech Service zu finden. Da kam nur PicoTTS infrage. Leider musste ich nach stundenlanger Problemsuche feststellen das dies zurzeit ein Problem sei welches mit Home Assistant nicht funktioniert.

Ich werde diesen Fehler weiter verfolgen und muss mich entschuldigen für jeden der so weit mitgekommen ist. Für jeden dem eine solche TTS online Lösung nicht stört, kann diesen Weg gerne weiterführen aber für mich ist hier erstmal Schluss mit dem Sprachassistenten bis es eine Lösung gibt.

Eigener Sprachassistent: offline, sicher und individuell mit Home Assistant Part: 2 – Installation

Nach der richtigen Softwareauswahl kommt nun die Installation von Home Assistent. Die einfachste angegebene Variante der Installation ist es sich das Image von HassOS herunterzuladen und dieses als Operating System auf einem Raspberry Pi anstatt z.B. Rhaspbian zu installieren. Mit meinem VBox Setup gibt es auch schon vorgefertigte vdi Dateien (vorinstalliertes HassOS für VBox).

Manuelle Installation von Home Assistant auf Ubuntu 18.04

Für mehr Kontrolle bei der Installation habe ich mich für die manuelle Version entschieden aber zuerst erstelle ich mir eine neue Vitual Machine. Als Größen habe ich mich für 100 GB an Speicher und für 6 GB Ram entschieden genauso wie mit 2 CPU-Kernen. Mein OS ist wie immer Ubuntu LTS 18.04. Nachdem die VM-Installation abgeschlossen war, folgte ich der offiziellen Anleitung.

Das erste Abarbeiten der benötigten Packages dauert bei der Installation am längsten. Hat man kurzer Hand alles notwendige installiert, kann man auch schon auf die eigene Website von Hass.io wechseln. Dort war es dann einfach meinen Ort anzugeben und das System hat auch gleich meine Sonos Anlage gefunden. Nach einer kurzen Raumaufteilung der Lautsprecher war ich schon auf der Startseite.

Home Assistant rät erstmal das Samba Add-on und das SSH Add-on zu installieren damit man leichter Dateien austauschen kann.

Im nächsten Teil (Part 3) werde ich darauf eingehen Home Assistant mit Rhasspy zu konfigurieren.

Eigener Sprachassistent: offline, sicher und individuell mit Home Assistant Part: 1- die richtige Softwareauswahl

Hier erkläre ich dir wie ich meinen eigenen Sprachassistenten auf meinem Heimserver erstellt habe. Mein Ziel ist es das meine Daten auch mein bleiben. Für mich war auch wichtig die Ausgabe auf meinen Sonos Boxen zu haben. Eine künstliche Intelligenz mit einzubinden schien mir für Anfang zu anspruchsvoll und deswegen hier im Part 1 nur die Wahl des Systems.

Die richtige Software: Snips.ai ist bei einer Google-Suche das erste Ergebnis aber wurde leider diesen Januar (2020) eingestellt. Was für mich nicht in Frage kam war Dialogflow (früher api.ai) von Google welche nur minimale Verarbeitung bietet und alles extern verarbeitet. Schnell schwierig wurde es eine Plattform zu finden welche die Sprachanalyse nicht extern verarbeiten.

Das Datenverarbeitungskonzept von Sprachassistenten ist: 1. Sprache in Text umzuwandeln (STT) 2. diesen Text verarbeiten und 3. das Ergebnis als Sprache wieder auszugeben (TTS).

Nach Mycroft, was ein sehr flexibles Gerüst besitzt, kam für mich hauptsächlich Home-assistant.io mit Hass.io infrage. Mit seinen vielen Schnittstellen wie Sonos oder dem Deutschen Wetterdienst aber auch Ifttt um nur ein paar der ca. 1500 Applikation zu nennen. Home Assistant lässt einen viel steuern und bietet auch eine gute grafische Oberfläche.

Für den Sprachassistent sticht mir für völlige offline Verfügbarkeit Rhasspy als STT und MaryTTS oder Pico TTS ins Auge. Dazu mehr in Part 2.

Im nächsten Artikel (Part 2) die Installation von Homeassistant.

Minecraft Server Bedrock und Java selber hosten auf dem Heimserver 2020

Heute geht es darum wie ich von einem einzigen LAN-Server zur heutigen Größe gewachsen bin. Ich habe immer versucht es so einfach und automatisiert zu machen wie nur möglich. Außerdem habe ich nur Vanilla Minecraft am Anfang gespielt deswegen kam für mich nur die offizielle Server Software von Mojang infrage.

Hosten im LAN:

Da kann man sagen, es gibt nichts einfacheres als einen Minecraft Server egal ob Bedrock oder Java im LAN zu hosten. Einfach die offizielle Software herunterladen, die ZIP-Datei entpacken und die Java Datei starten. Am Anfang habe ich es noch auf dem gleichen PC gehostet wo ich auch gespielt habe.

Spielen mit Freunden:

Als dann auch erstmals Freunde mitspielen wollen, habe ich die Server auf einem alten Windows-Pc gestartet. Damit habe ich mich auch erstmals mit Ports beschäftigen müssen. Aber aus Erfahrung kann ich sagen mit einer FritzBox gibt es nichts einfacheres.

Die ersten Fremden:

Ein paar Wochen später habe ich dann entschieden, dass es doch schön wäre, wenn auch noch mehr Leute auf meinem Server spielen würden. Ich habe also erstmal nur Bedrock auf TopG.org gelistet. Hat nicht lange gedauert bis die ersten Spieler da waren. Schnell musste ich feststellen, dass man Feuer und Tnt deaktivieren sollte, wenn man eine Welt dem Internet zugänglich macht. Siehe Bild …

Im nächsten Beitrag ausführlicher wie ich Griefer umgangen habe.
Picture by smilebasti

Das erste Skript:

Da ich aber regelmäßig den Server noch selber Neustarten musste habe ich mich schnell nach Skripten umgeschaut die solche Funktionen automatisieren. Dabei bin ich für Minecraft Bedrock auf eins von James A. Chambers gestoßen und für Minecraft Java auf das Minecraft Server Management Skript. Beide laufen auf Ubuntu. Also erstmal den World-Ordner extern sicher und dann denn alten Pc mit Linux aufsetzen. Ich habe mich dabei gleich für die Ubuntu Server Software Lts 18.04 entschieden, weil ich keinen Desktop brauchen würde.

Probleme mit den Skripten:

Als ganzer Anfänger mit dem Linux Terminal musste ich mir erstmal viele Commands zusammen suchen. Als Tipp: erstelle dir eine Textdatei mit den Commands, die du sicher wieder brauchen wirst und auch von den Links wo du sie gefunden hast. Das hilft mir heute immer noch. Was mich aber an den Skripten am meisten gestört hat war, dass ich keine Kontrolle über die Ressourcen Zuteilung hatte. Um das zu lösen habe ich zur Überwachung Ajenti 2 installiert. Damit sah alles besser aus als mit Putty.

Vbox:

Um wenigstens etwas mehr Kontrolle über die Ressourcen hatte erstellte ich zwei Virtuelle Maschinen mit dieser Hilfe. Jeweils für Java und Bedrock. Auf einer dritten VM kam dann Cloudron. Da zwei Apps kostenlos waren, testete ich diese Minecraft Server aber stellte schnell fest das man nur schwierig Kontrolle über den Server bekommt und es auch keine automatischen Updates gibt. Deswegen habe ich auf Cloudron nun immer noch Nextcloud und WordPress laufen.

Pterodactyl Gamepanel:

Nach langer Recherche habe ich nun Pterodactyl installiert. Am Anfang schien Easy-Wi viel versprechend aber nach einer Testinstallation stellte ich fest, dass es keine Dynamischen Ip-Adressen unterstützt. Die Installation von Pterodactyl ist sicher nicht die einfachste aber für die Funktionen lohnt es sich im Vergleich zu Freemium Software. Die Pterodactyl Community unterstützt einen bei der Installation auch sehr gut.

Ich hoffe diese kurze Beschreibung hilft dir weiter aber, wenn du fragen hast schreib mir einfach oder schreib in die Kommentare. Und zum Schluss noch der Tipp: mach immer ein Backup von der Welt!

Im nächsten Beitrag mehr zu meinen Ansätzen Griefer zu umgehen.

Aktuelles Setup

Endlich mal läuft alles wie es soll und ich habe nun die Zeit gefunden über mein Setup zu schreiben. Ich mache kein Marketing für irgendeine hier erwähnte Firma.

Hardware

Ich hoste alles auf meinem HP Proliant Server zu Hause hinter meiner FritzBox 7490. Da ich nur eine Dynamische IP-Adresse habe verwende ich für eine Domain und DNS Setup, einen DynDns Service (DDns.de). Den Server habe ich günstig auf servershop24.de bekommen. Specs: HP ProLiant SE316M1 Server 2x Xeon E5649 Six Core 2.53 GHz, 16 GB DDR3 RAM, 2x 300 GB SAS 10K

Grundsetup

Als Software versuche ich so viel Open-Source wie möglich zu verwenden. Das Grund-OS ist Ubuntu LTS 18.04. Um alles in Virtuellen Maschinen (VM) laufen zu lassen habe ich mich für VBox von Oracle entschieden. Für weiter Server werde ich aber wahrscheinlich zu Proxmox wechseln wegen einer grafischen Benutzeroberfläche. Um zu sehen, welche Auslastung der Server hat verwende ich Ajenti 2.

Hosting Start Setup

Als Erstes habe ich mich mit Hosting mithilfe von Cloudron beschäftigt. Wie sich herausstellte, eignet es sich für Gamehosting nur im Heimbetrieb da nur 2 Server kostenlos zur Verfügung stehen. Mit minimalen Ressourcen laufen darauf aber immer noch diese Website und meine Nextcloud.

Minecraft Server

Für die ersten Games habe ich Minecraft Java und Minecraft Bedrock gewählt. Mit zwei einfachen Scripts liefen diese in einer weiteren VM parallel. Da ich aber wenig Kontrolle darüber hatte wie viele Ressourcen jeder Server verwendet, habe ich mich schnell nach Game Panel umgeschaut. Easy-Wi sah am Anfang gut aus aber nach der Installation musste ich feststellen, dass es keine DynDns Unterstützung gab. Dann mit Pterodactyl bin ich am Ende sehr zufrieden aber während der Installation gab es leider viele Probleme. Mit Hilfe der Community auf Discord von Pterodactyl ging es dann aber voran.

Apache 2 Revers Proxy

Um aber mehrere Webseiten auf unterschiedlichen Servern zu bedienen, musste dann noch ein Reverse Proxy her. Da es nicht viele Information dazu gab, wie dies in meinem Fall funktioniert musste ich auch viel ausprobieren. Am Ende läuft jetzt der Apache 2 Reverse Proxy in einer weiteren VM mit angepassten Skripten.

Zukunft

Gerne unterstütze ich euch bei einem solchen oder ähnlichem Setup gerne. Einfach mir schreiben auf Discord oder im Support Formular.

In weiteren Blogbeiträgen werde ich meine weiteren Schritte festhalten, um dies zu teilen und für meine eigene Dokumentation.

Cookie Consent mit Real Cookie Banner