Warum sollte man selbst Dienste hosten ?

  Norbert Rüthers   Lesezeit: 9 Minuten  🗪 16 Kommentare

Gedanken zum Sinn und Zweck von selfhosting

warum sollte man selbst dienste hosten ?

Zum Thema Selfhosting gibt es viel zu sagen und ebenso viele Quellen im Internet. Ich möchte an dieser Stelle trotzdem ein paar Erfahrungen und Gedanken mitteilen, warum ich so viel wie möglich selber hoste und warum ich es nur jedem empfehlen kann. Ich habe hier schon einige Artikel verfasst, in denen es um genau solche Dinge geht. Das Thema liegt mir sehr am Herzen, weil ich es nun mal nicht leiden kann, wenn Firmen mit meinen Daten und Surfgewohnheiten Geld verdienen und die anfallenden Daten ungefragt an jeden weitergeben.

Dieser Trend nimmt leider immer mehr zu, also kann man dem nur entgegentreten, indem man ein Stück unabhängiger wird.

Warum also Dienste selber hosten ?

  • Weil es viel Spass macht zu sehen, wie Dienste auf dem eigenen Server laufen und auch von Freunden und Bekannten genutzt werden.
  • Ein wichtiger Schritt in Richtung Datensouveränität.
  • Man lernt sehr viel dabei über aktuelle Techniken.

Was ist dazu nötig und was gibt es zu beachten?

Hardware Voraussetzungen:

Eine Hardware sollte dem jeweiligen Zweck angepasst sein. Es reicht ein Raspberry Pi (stellvertretend für alle SBC's) oder ein alter PC der irgendwo noch sein Dasein in einem Kämmerchen fristet. Serverhardware ist natürlich immer besser geeignet, aber für den Anfang nicht nötig. Man kann auch leicht gebrauchte Hardware erwerben, die neu ein vielfaches kosten würde. Manche Dienste (z.B. ein PiHole) benötigen wenig und andere mehr Ressourcen, wie z.B. ein Onlyoffice-Server. Bei mir läuft ein Pihole mit einem VPN Server schon jahrelang problemlos 24/7 auf einem Raspberry Pi 3B. Ein Proxmox-Server sollte aber vorzugsweise auf stärkerer Hardware mit möglichst viel RAM installiert werden. Das Thema Stromverbrauch sollte ebenfalls bedacht werden. Dienste laufen i.d.R. 24/7 und ein Raspberry braucht weniger Strom als ein ausgewachsener Server. Deshalb sollte besonderes Augenmerk auf die Spezifikationen der verwendeten Hardware gerichtet werden. Sonst ist am Ende des Jahres das Staunen über die Stromrechnung gross. Ich versuche deshalb, wo immer es möglich ist, gebrauchte Thin Clients oder SBC's einzusetzen. 

Zum Beispiel so etwas

Oder so etwas

Diese Modelle lassen sich leicht aufrüsten und brauchen wenig Strom

Auch gebrauchte Server in jeder Ausbaustufe sind günstig zu bekommen

Software

Quellen für interessante Projekte gibt es zu hunderten im Netz. Docker Hub alleine bietet Anwendungen im Überfluss.

Wenn die Voraussetzungen gegeben sind, sollte man sich Gedanken machen, welche Dienste man benötigt und wie sie erreichbar sein sollen. Aus dem Internet oder nur im heimischen Netzwerk.

Wenn der eigene Dienst aus dem Internet erreichbar sein soll, muss dem Internet die eigene IP-Adresse bekannt gemacht werden. Weil die Internetverbindung auch heutzutage noch fast jeden Tag Zwangs-getrennt wird und man danach eine andere IP-Adresse bekommt, ist es nötig diese Änderung bekannt zu machen.

Diese Aufgabe übernehmen z.B. Anbieter wie No-Ip oder dynv6 und sogar kostenlos.

Dort kann man den einzelnen Diensten auch Namen zuweisen, unter denen sie erreichbar sein sollen.

Z.B. Meine-Nextcloud.dynv6.net

Die nächste kleine Herausforderung, wenn man mehrere Dienste hosten und aus dem Internet erreichbar machen will, ist die Tatsache, dass man den Port 443 (HTTPS) nur einmal zur Verfügung hat. Wenn man jedoch verschiedene Dienste, die meistens alle den Port 443 benutzen betreiben will, muss man dafür sorgen, dass eine korrekte Zuweisung an den jeweiligen Server oder Docker Container erfolgt. Das erledigt ein Reverse Proxy Manager für uns, den man auch problemlos einrichten kann. Einen Artikel dazu gibt es auch auf gnulinux.ch

Im Reverse Proxy-Manager wird also der Name des Dienstes und das jeweilige Ziel angegeben.

Nebenbei kann man damit auch höchst einfach den einzelnen Diensten Lets Encrypt Zertifikate zuweisen.

Wenn das alles erledigt ist, geht es daran, den oder die Server aufzusetzen. Ich benutze dazu mittlerweile Proxmox (eine kostenlose Virtualisierungsumgebung) und verschiedene Container auf denen die Dienste, teilweise in einzelnen Docker Containern oder eigenständig laufen. Das hört sich kompliziert an und ist es teilweise auch. Aber wie gesagt, man wächst mit seinen Aufgaben und das Ergebnis lohnt die Mühe allemal. Eine komplexe Infrastruktur baut man nicht an einem Tag auf, sie wächst mit der Zeit

Ich will hier einmal ein paar Beispiele nennen, welche Dienste ich hoste und welche davon öffentlich sind oder nur im eigenen LAN verfügbar sind (oder sein sollen)

Aus dem Internet erreichbar:

  • Nextcloud (kennt wohl jeder)
  • Seafile (Ein Filesynchronisationsprogramm)
  • Bludit (ein CMS)
  • Searxng (eine datenschutzfreundliche Suchmaschine)
  • Invidious (eine datenschutzfreundliche Oberfläche für YouTube ohne Werbung)
  • Uptime Kuma (Monitoring für die eigenen oder auch andere Dienste)
  • Bitwarden (Passwortverwaltung)
  • Linkwarden (Komfortable Verwaltung von Links)
  • Syncthing (Filesynchronisationsprogramm)
  • OnlyOffice Dokumentenserver (wie der Name sagt und angesteuert über Nextcloud)
  • LanguageTool (Rechtschreibkorrektur)
  • Wallabag (eine read it later Anwendung wie Pocket)
  • Stirling PDF (ein Schweizer Taschenmesser zur PDF-Bearbeitung)
  • Tarpit/Grafana (eine Oberfläche um SSH Zu/Angriffe auf das eigene Netzwerk zu visualisieren)
  • Wireguard VPN Server (VPN Zugriff aufs eigene LAN)
  • Ein Webserver (für verschiedene Webseiten)

Nur im LAN erreichbar:

  • Mediaserver (Filme, Musik und Bilder)
  • NGINX Proxy Manager
  • PiHole (Netzweiter Werbeblocker und DNS Filter)
  • Proxmox Server (Umgebung für virtuelle Rechner)
  • Portainer (eine komfortable GUI um Docker Container zu managen
  • IP-Fire  (eine Firewall)
  • Proxmox Backup-Server

Das ist mittlerweile ziemlich viel geworden und es ändert sich ständig etwas. Deshalb ist bei steigender Komplexität eine genaue Dokumentation unumgänglich. Keiner kann nachvollziehen, wie ein Dienst der vor Jahren eingerichtet wurde, genau konfiguriert war.

Ein nicht zu verachtender Aspekt (vor allem in Deutschland....smile) ist die zur Verfügung stehende Bandbreite des Internetanschlusses. Je mehr Leute Zugriff haben, desto mehr geht die Geschwindigkeit in die Knie. Aber das sind Dinge, die sich erst im Laufe der Zeit herausstellen und stark von der Art der Dienste abhängen, die man selber hostet.

Ebenfalls muss man sich klar sein, dass Unabhängigkeit auch etwas Arbeit macht. Man ist für Softwareupdates als auch für nötige Datensicherungen selbst verantwortlich. Ein Proxmox Backup-Server hat mir z.B. mehr als einmal aus der Patsche geholfen.

Ich hoffe, diese Anregungen waren für den einen oder anderen hilfreich.

Es lohnt sich auf jeden Fall, sich Gedanken darüber zu machen. Ein Studium von Gnulinux.ch zeigt viele Beispiele dafür detailliert erklärt.

Bildquelle: https://github.com/mikeroyal/Self-Hosting-Guide

Tags

Self Hosted, server, Dienste

bdh
Geschrieben von bdh am 23. Oktober 2023 um 11:02

Schöner Artikel,

Allerdings kommt hier die Wartung und Sciherheit zu kurz. Ich würde nur den VPN aus dem Internet erreichbar machen. Und alle anderen Dienste nur aus dem Lan (oder über VPN) erreichbar.

Gruss

Norbert
Geschrieben von Norbert am 23. Oktober 2023 um 17:25

Da stimme ich grundsätzlich zu und wenn es für mich allene wäre dann würde ich es auch so machen. Aber leider haben viel noch Probleme ein VPN einzurichten und zu nutzen Die Server an sich sind aber nur über VPN erreichbar

bdh
Geschrieben von bdh am 24. Oktober 2023 um 09:47

Jeder Dienst der aus dem Internet errichbar ist, ist ein potenzielles Angriffsziel. Und wer nicht in der Lage ist einen VPN / Firewall aufzusetzen wird auch wahrscheinlich nicht in der Lage sein die Dienste zu warten und zu härten. Er gefährdet somit nicht nur sein Heimnetz und Daten sondern durch Missbrauch als Spam, DDOS Client etc. auch andere.

PB
Geschrieben von PB am 23. Oktober 2023 um 13:15

Vielen Dank fuer den interessanten Ueberblick.

Ich sehe in der Liste drei ueberlappende Dienste:

  • Nexcloud
  • Seafile
  • Syncthing

Wie ist deren Einsatz voneinander abgegrenzt, d.h. welche konkreten Aufgaben werden von welchem Dienst uebernommen?

Norbert
Geschrieben von Norbert am 23. Oktober 2023 um 17:22

Das hast du richtig erkannt. Nextcloud ist für mich die eierlegende Wollmilchsau die ich sowohl privat als auch beruflich nutze. Kalender, Notizen usw. Seafile kommt mit grossen Datenmengen (Einzeldateien) erfahrungsgemäss besser klar Syncthing nehme ich um die Handybilder von mehreren Handys automatisch zu sichern

Udo
Geschrieben von Udo am 23. Oktober 2023 um 18:25

Selfhosting ist schön, aber wenn man sein heimisches Internet via 4G hat (bei mir via Salt), geht das wohl nicht, oder? Mir hat jedenfalls mal jemand erklärt, dass ich dann keine öffentliche IP hätte und von aussen nicht auf mein heimisches Netz zugreifen kann, auch nicht auf meinen Raspi, selbst wenn ich im Router alles richtig einstellen würde. Oder geht das doch irgendwie?

Norbert
Geschrieben von Norbert am 24. Oktober 2023 um 10:30

Ich denke mal du meinst das DS-lite Problem. Ja es geht grundsätzlich auch mit solchen Anschlüssen. Bebor ich jetzt das Rad neu erfinde verweise ich auf einen Artikel einer anderen Seite. https://schroederdennis.de/ipv64-net/dynamisch-dns-dyndns-ds-lite-dsl-dualstack-ipv6-ipv4-problem-loesung/

Julian
Geschrieben von Julian am 24. Oktober 2023 um 11:19

Wie er schon oben im Text geschrieben hat:

Wenn der eigene Dienst aus dem Internet erreichbar sein soll, muss dem Internet die eigene IP-Adresse bekannt gemacht werden. Weil die Internetverbindung auch heutzutage noch fast jeden Tag Zwangs-getrennt wird und man danach eine andere IP-Adresse bekommt, ist es nötig diese Änderung bekannt zu machen.

Diese Aufgabe übernehmen z.B. Anbieter wie No-Ip oder dynv6 und sogar kostenlos.

The_Raven
Geschrieben von The_Raven am 24. Oktober 2023 um 18:56

Meiner Meinung nach geht das nicht. Ich habe das Abo von Digitec/Galaxus und da ist es so, dass du (abgesehen von ipv6 only) keine öffentliche IP erhältst. Die IP die du bekommst hängt hinter einem NAT. Ich verwende es für meine Wildkameras und stelle von dort einen VPN zu meinem Server her. So klappt das dann (rückwärts), aber anders wohl nicht.🤷

neffets
Geschrieben von neffets am 28. Oktober 2023 um 14:52

Schaut euch mal Cloudflare Tunnel (https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) an. Eine gute Übersicht über weitere Alternativen findet sich unter: https://github.com/anderspitman/awesome-tunneling

patrick
Geschrieben von patrick am 24. Oktober 2023 um 08:02

Hey ich wollte fragen, warum/wie du docker auf einem Proxmox hostet. Proxmox unterstützt von Haus aus zumindest nur LXC. Natürlich kann man in der Kommandozeile docker nach installieren, aber wie verwaltest und sicherst du dann die Container?

Norbert
Geschrieben von Norbert am 24. Oktober 2023 um 10:36

Proxmox unterstützt sowohl LXC Container als auch "richtige" virtuelle Maschinen die man i.d.R. per iso installiert Die Container verwalte ich überwiegend mit Portainer Für Backups habe ich einen Proxmox Backup-Server in Betrieb (auch kostenlos" Dort kann man das Backup Intervall und was gesichert werden soll bequem einstellen Ich sichere immer komplette LXC Container als auch VM's.

Alexander
Geschrieben von Alexander am 24. Oktober 2023 um 20:23

hallo, ich habe das ds-light problem gelöst, in dem ich auf einem 1€ vserver wireguard eingerichtet habe. von dort aus komme ich dann immer in mein netzwerk.....egal wie oft irgendwelche ip's wechseln.

mfg alexander

Christoph
Geschrieben von Christoph am 28. Oktober 2023 um 11:21

Interessanter Artikel, danke. Da sind einige Anwendungen dabei, die ich mir näher anschauen werde. Allerdings sehe ich auch ein paar Überlappungen diverser Dienste.

Anstelle Bitwarden würde ich Vaultwarden hosten, FreshRSS ist mir unterdessen auch ans Herz gewachsen und Jellyfin hat kürzlich Plex ersetzt. Spannende Sache diese self-hosterei. :-)

neffets
Geschrieben von neffets am 29. Oktober 2023 um 12:45

Neben der doppelten Datenhaltung störte mich die dezentrale Benutzerverwaltung in den einzelnen Anwendungen, was unter anderem Passwortänderungen aufwendig macht.

Mein Setup besteht aus einem Docker-Container mit Samba-Domain Controller fürs Active Directory-Benutzerverzeichnis und einem zweiten mit Samba-Fileserver als zentrale Dateiablage. In Nextcloud melden sich die Benutzer per LDAP an der Samba-AD an und legen ihre Dateien auf eingebundenen CIFS-Freigaben ab. Außerdem ist Nextcloud Bookmark-Manager mit Browser-Synchronisation (Floccus), RSS-Aggregator und Notizzettelkasen mit nativen Android-Apps.

Eine schlanke Medienserver-Alternative ist übrigens Gerbera (https://gerbera.io/).

neffets
Geschrieben von neffets am 29. Oktober 2023 um 13:06

Um die Frage im Titel zu beantworten: weil man nur so seine Daten bei sich behält. ;-)

Zur Hardware-Auswahl: Lieber einen Intel-basierten Mini-PC nehmen. Für Raspberry Pi sind viele Anwendungen nicht als fertige Docker-Container vorhanden und in gebrauchten Thinclients fehlt es meistens an Anschlüssen und Platz für eine 2,5"-SSD.

Habe seit zwei Monaten einen lüfterlosen JK06 Mini PC (https://www.youtube.com/watch?v=Nz-pm_S6jPA) mit N5100-CPU, 16GB RAM und 500GB SSD als Docker-Host im Einsatz - Kostenpunkt ohne SSD etwa 170 Euro.