Es ist nun etwa eineinhalb Jahre her, dass ich einen kleinen, günstigen Mini-PC mit Intel N100 als Heimserver gekauft habe. Ich kann erfreut berichten, dass er bisher einwandfrei läuft, dabei nur wenige Watt verbraucht und viel schneller ist als ein Raspberry Pi. Nach und nach habe ich Dienste hinzugefügt, die meisten davon laufen als Docker-Container:
- Der Netzwerk-Controller für mein Omada-Netzwerk. Er funktioniert einfach, daher melde ich mich nur gelegentlich in der Weboberfläche an, um nach neuer Firmware zu suchen, einem neuen Gerät eine statische IP-Adresse zuzuweisen oder die VLAN-Zuordnung eines Ports zu ändern. Insgesamt bin ich mit diesem Setup sehr zufrieden, und Updates sind unkompliziert.
- Pi-Hole als Werbeblocker. Die DHCP-Funktion nutze ich nicht, da diese vom Omada-Router übernommen wird. Pi-Hole leistet auf allen Geräten hervorragende Arbeit beim Blockieren vieler Werbebanner. Es ist ziemlich schockierend zu sehen, wie viele DNS-Anfragen werbebezogen sind – je nach Situation werden 25 bis 40 % aller DNS-Anfragen blockiert. Pi-Hole ist wirklich durchdacht, mit einem einzigen Befehl für Updates und einer übersichtlichen Weboberfläche für Verwaltung und Konfiguration.
- Home Assistant. Er verbindet Geräte aus verschiedenen Ökosystemen (Ikea, Sonos, Siemens, Somfy), überwacht Energieerzeugung und -verbrauch und bietet ein einziges Dashboard, das ich von all meinen Geräten aus bedienen kann, statt eine Vielzahl von Apps zu benötigen. Außerdem zeigt er Wetter- und ÖPNV-Informationen an. Da er in einem Docker-Container läuft, genügen für ein Upgrade zwei Befehle. Für mich ist Home Assistant ein wirklich schönes Beispiel dafür, was Open-Source-Software leisten kann, und ich empfehle ihn jedem, der sich für Hausautomation interessiert.
- Frigate. Wir haben eine Video-Türklingel, und ich nutze Frigate als NVR-Software. Es lässt sich sehr gut mit Home Assistant verbinden und läuft ebenfalls als Docker-Container. Mit nur einer Kamera und GPU-Beschleunigung liegt die CPU-Last bei wenigen Prozent, und der Stromverbrauch bleibt niedrig. Ein Python-Skript, das als Dienst läuft, kopiert jeden Clip automatisch an einen Backup-Speicherort.
- Tailormap und Geoserver. Eine weitere neuere Ergänzung. Tailormap ist ein Web-GIS-Frontend, das sich mit WMS-, WFS- und Tile-Servern verbinden kann. Man muss sich nicht mit OpenLayers oder den Einschränkungen von Leaflet herumschlagen. Tailormap kann alles, mit einer einfach zu bedienenden Weboberfläche für die Verwaltung und einem tollen Viewer, der Funktionen wie Messen und das Öffnen von Google Streetview enthält. Geoserver dient zur Bereitstellung von Geodaten als WFS- und WMS-Dienste. Beide laufen samt ihrer jeweiligen PostgreSQL-Datenbanken als Docker-Container. Ich nutze das hauptsächlich als Testumgebung und um stets eine Karte des niederländischen Eisenbahnnetzes zur Hand zu haben, ohne QGIS starten zu müssen.
- Eine Testumgebung mit QuestDB und Grafana.
Mein Heimserver ist von außerhalb des Hauses nicht erreichbar, es sei denn, es wird eine Wireguard-VPN-Verbindung aufgebaut. Für Dienste, die aus dem Internet erreichbar sein sollen, nutze ich eine bei einem Hosting-Anbieter gemietete virtuelle Maschine. Darauf laufen die folgenden Dienste:
- Ein Webserver. Ich bin old-school, also Apache statt NGINX. Er dient hauptsächlich zur Bereitstellung von Potree-Webviewern, kann aber auch Downloads per HTTP anbieten und als Reverse-Proxy dienen.
- Ein FTP-Server. Da ich viele Daten mit Kunden austauschen muss, ist FTP oft deutlich einfacher als eine Filesharing-Website. Einen eigenen FTP-Server mit einigen hundert GB Speicherplatz zu haben, ist für diese Fälle wirklich praktisch. Ich verwende vFTPd; neue Benutzer hinzuzufügen ist recht einfach, auch wenn dafür die Kommandozeile nötig ist.
- Gitlab. Github ist für öffentliche Repositories in Ordnung, aber ich wollte mein Versionierungssystem unbedingt selbst hosten. Ich nutze keine der aufwendigen Funktionen wie Bugtracking oder Actions, aber es ist beruhigend zu wissen, dass es immer ein Backup und die Möglichkeit gibt, zu früheren Versionen zurückzukehren. Die Einrichtung war etwas knifflig, weil ich meine bestehende Apache-Installation verwenden wollte, aber seitdem läuft es einwandfrei, und Updates erfolgen über apt.
- ProjectSend. Die meisten hier nutzen Wetransfer, aber mich hat die (verständlicherweise) begrenzte Dateigröße im kostenlosen Tarif genervt. Nach einigem Suchen habe ich mich für ProjectSend entschieden. Es ist nicht perfekt, aber in Ordnung, wenn man damit leben kann, mehrere Dateien zuerst in eine ZIP-Datei zu packen.
- Mein System für Zeiterfassung und Rechnungsstellung. Das ist ein Muss für Freiberufler. Ich nutze Kimai und bin sehr zufrieden damit. Das Selbsthosting spart mir viel Geld im Vergleich zu einer kommerziellen Lösung wie Exact Online.
- Vikunja. Ich habe so viele To-do-Listen- und Kanban-Dienste ausprobiert: Evernote (vor langer Zeit), Trello, Asana, Google Keep, Microsoft Teams, VTiger als CRM und verschiedene Obsidian-Plugins. Alle hatten Einschränkungen, besonders wenn man beim kostenlosen Tarif bleiben wollte. Obsidian ist großartig und ich nutze es für die meisten meiner Notizen, aber bei To-do-Listen und Kanban-Boards ließ es zu wünschen übrig. Vikunja hat diese Lücke für mich geschlossen. Ich habe ein Haupt-Kanban-Board für To-dos, separate Boards für größere Projekte und ein weiteres, das als eine Art CRM zur Verfolgung von Leads und Ähnlichem dient. Es kann sogar Gantt-Diagramme, aber ich habe GanttProject verwendet, als ich zuletzt wirklich ein Projektmanagement-Tool brauchte (was nicht einmal beruflich war, sondern für den Umbau eines Hauses). Vikunja läuft als Docker-Container.
- Tailormap und Geoserver. Dies sind die Produktivinstanzen, die im Gegensatz zu meiner oben erwähnten Testumgebung von überall erreichbar sind. Auch sie laufen in Docker-Containern, wobei Apache den Reverse-Proxy-Dienst für den https-Zugriff übernimmt.
- Ein kleines Python-Skript, das eine Grafana-Instanz auf einem anderen Server überwacht.
- Nextcloud zur Dateisynchronisation, sodass ich nicht mehr auf Google Drive und OneDrive angewiesen bin.
- Ein Minecraft-Server für meinen Sohn. Das ist ein Spielprojekt von uns und läuft ebenfalls als Docker-Container.
- Ein MegaMek-Server, ein weiterer Docker-Container.
Wie Sie sehen, gibt es also reichlich Gründe, einen eigenen Server zu betreiben, ob als physischen Computer zu Hause oder als virtuelle Maschine irgendwo in der Cloud. Und man kann dabei auch Geld sparen – viele der hier genannten Dienste gibt es in der Cloud, aber jeder davon ist mit einer Abo-Gebühr verbunden. Selbsthosting kann günstiger sein, gibt Ihnen die volle Kontrolle über Ihre Daten und lässt Sie nebenbei etwas über Dienste, Containerisierung und Virtualisierung lernen.