cgX13

Einstieg in das Self-Hosting auf einem VPS

Dieser Beitrag wurde für meinen Bekanntenkreis geschrieben, die sich für das Thema digitale Unabhängigkeit interessieren. Natürlich erhebe ich an dieser Stelle keinen Anspruch auf Vollständigkeit, sondern will erstmal einen groben Überblick und Denkanstöße geben.

Self-Hosting ist kein Hexwerk. Doch man muss erstmal wissen, wie man anfängt. Wenn man nicht unbedingt alle Dienste nur Lokal im Intranet nutzen will, sondern im Internet eine Homepage, ein eigenes Social Media oder die eigene Cloud betreiben will, muss man ein paar Dinge beachten. Dann ist der Einstieg aber auch schon relativ einfach, wenn man einmal weiß, was alles zu tun ist. Den Rest kann man immer noch in Foren oder Blogs nachlesen - und sich bei vielen Dingen auch durchaus von AI beraten lassen.

Eine Domain auswählen

Eine Domain ist eine Internetadresse und die eigene digitale Identität. Dabei kann man erstmal zwischen unterschiedlichen “top Level Domains” wie .de, .com, .social, etc. auswählen. Die Auswahl ist heute riesig, allerdings hat nicht jeder Anbieter jede tLD im Angebot und die einzelnen Endungen unterscheiden sich zuweilen drastisch im Preis und Verlängerungsmodellen.

Außerdem muss man vorher bedenken, was man alles mit seiner Domain anstellen will. Exotische Endungen wie .to oder .xyz sind erstmal für den Webbrowser und moderne Dienste wie das Fediverse in Ordnung, können aber bei vielen Mailprovidern zu einer automatischen Einstufung als Spam führen. Die langweilige Endung .de ist zwar nicht besonders spannend, dafür aber relativ renommiert und mit ca. einem Euro im Monat auch vergleichsweise günstig.

Bei der Auswahl des Domain-Anbieters muss man leider etwas aufpassen, denn nicht alle geben ihre Einschränkungen direkt bei der Bestellung preis. So habe ich mit den Konfigurationsmöglichkeiten bei Strato beispielsweise schlechte Erfahrungen gemacht und bin gerade sehr zufrieden bei HostEurope.
Wichtig ist auf jeden Fall, dass man die DNS-Einträge selber konfigurieren, dass man A, CNAME, SRV und TXT Records selber anlegen und bearbeiten kann. Keine Sorge, wenn man das noch nicht versteht, das ist auch erstmal nicht wichtig. Aber wenn man solche Einträge selber verwalten kann, kann man unterschiedliche Anbieter für Domain, Webserver, Mail, etc. nutzen, und so konfigurieren, dass alles über eine Domain verfügbar ist.

Pro-Tipp: Geld sparen mit Sub-Domains

Man könnte auf die Idee kommen, dass man für jeden Dienst, den man selber betreibt, eine eigene Domain haben muss. Beispielsweise example-webseite.com, example-mailserver.com oder example-cloud.com. Das kostet aber nur unnötig Geld und man kann mit einer Domain wie example.com bereits alle Bereiche abdecken. Das Zauberwort ist: Sub-Domains.

Wenn man eigenständig DNS-Einträge erstellen und ändern kann, kann mail.example.com auf einen komplett anderen Server zeigen und ihn erreichbar machen. Aber natürlich kann man auch alle Subdomains (oder ein Catch-All) nur auf einen Server verweisen und dann dort im (reverse) Proxy jeden Dienst über eine Sub-Domain verfügbar machen.

An dieser Stelle kann es von Vorteil sein, wenn man sich eine Domain aussucht, die nicht direkt Zweckgebunden erscheint. Also anstelle von mein-mail-server.com sowas wie mein-server.com und der Maildienst liegt dann auf mail.mein-server.com.

Tipp: Geld sparen mit Laufzeitverträgen

Einige Anbieter wechseln nach der initialen Mindestvertragslaufzeit von jährlicher Abrechnung auf monatliche Abrechnung und Kündigungsfrist. Dabei wird der Monatspreis für die Domain dann aber auch teurer, als bei jährlicher Abrechnung mit verlängerter Vertragsbindung.

Einen Provider auswählen

Wie Domain-Anbieter, gibt es auch unzählige Provider für Webspace und Server. Auch wenn sich die meisten Angebote in ähnlichen Preisklassen bewegen, gibt es durchaus Unterschiede - nicht zuletzt im Funktionsumfang.

Gängige Anbieter sind Netcup, All-Inkl, Hetzner, HostEurope oder Hostinger. Wenn man etwas mehr Ahnung hat, ist Uberspace eine gute Alternative.

Für den Einstieg kann ich aber erstmal die Ionos-Marke Strato empfehlen. Hier bekommt man kleine Server bereits ab einem Euro pro Monat, mit denen man seine ersten Experimente machen kann. Größer Skalieren oder Wechseln kann man bei Bedarf immer noch.

Pro-Tipp an dieser Stelle: Wenn man sich für einen Server bei Strato entscheidet, sollte man die Domain unbedingt bei einem anderen Anbieter nehmen. Bei Strato sind Domains immer mit dem Server im Paket und die Konfigurationsmöglichkeiten eher bescheiden. Eine Migration einer Domain auf ein anderes Paket oder eine Portierung zu einem anderen Anbieter geht bei Strato direkt ins Geld.

Wichtig: Kein Webspace, sondern direkt ein VPS

Wenn man selber richtig etwas betreiben will, ist ein Webspace keine gute Wahl. Meist unterstützt Webspace lediglich die Ausführung von PHP oder das simple bereitstellen von klassischen HTML-Dateien. Mit etwas Glück gibt es zwar noch eine MySQL-Datenbank zum Webspace, und man kann einen Wordpress-Blog damit betreiben, allerdings war es dass dann auch schon und die Preise für Webspace sind im Vergleich zu einem eigenen Server relativ hoch.

Natürlich muss man den Kostenunterschied zwischen Webspace und Webserver realistisch betrachten. Beim Webspace hat meist der Anbieter ein Backup-Konzept und übernimmt die Administration des Servers. Beim eigenen Server muss man sich selber um alles kümmern. Doch erstmal ist das gar nicht so schwer und lässt sich mit Skripten auch automatisieren.

Aber was ist überhaupt ein VPS? Ein VPS ist ein Virtual Private Server. Also man bekommt eine virtuelle Maschine, in der ein Betriebssystem ausgeführt wird. Diese Maschine hat meist fest zugewiesene Kapazitäten an RAM, CPU und Disk. Und im Endeffekt verhält sie sich wie ein normaler Computer, auch wenn der Server “nur” virtualisiert ist.

Der Vorteil eines VPS gegenüber reinem Webspace ist, dass man darauf quasi jede Anwendung betreiben kann. Benötigt die Anwendung PHP, installiert man PHP. Braucht man nur einen Webserver für simple HTML-Dateien? Dann installiert man Apache httpd, nginx oder Caddy. Eine Datenbank für das Backend kann man auch selber installieren, hat dann aber die Auswahl zwischen MySQL, MariaDB, PostgreSQL oder gar NoSQL-Datenbanken, was auch immer gerade benötigt wird.

Dank Docker wird die Installation sogar noch einfacher und man kann parallel verschiedene Datenbanken, Webserver oder Webanwendungen laufen lassen, ohne dass diese sich gegenseitig stören.

TLDR; Mit einem VPS hat man wesentlich mehr Möglichkeiten als mit einem Webspace.

Einsteiger-Tipp

Da ich schon Strato für das günstige Experimentieren empfohlen habe, mag ich direkt auch deren VPS VC 2-4 für den Einstieg nahelegen. Für EUR 4 / Monat bekommt man 2 CPUs, 4GB RAM und 120GB Disk. Das ist mehr als ausreichend für die meisten Webservices und man hat ausreichend Kapazitäten um neue Dinge auszuprobieren. Das ist aber keine Werbung, sondern eigene Erfahrung.

Linux als Betriebssystem

Auch wenn das Jahr von Linux auf dem Desktop noch auf sich warten lässt, ist Linux de Facto das Betriebssystem für Server. Es ist robust, sicher und jede moderne Webanwendung läuft auf Linux. Und spätestens, wenn man Anwendungen in Containern, mit Docker oder Podman, betreiben will, kommt man um Linux nicht vorbei.

Die Auswahl des “richtigen” Linux

Doch wie bei den Themen Domain- oder Server-Anbieter, hat man oft auch bei den Linux-Distributionen für seinen VPS eine breite Auswahl. Gängig sind Ubuntu, Debian, Rocky Linux, Alma Linux, manchmal auch Alpine.

Für den Einstieg würde ich ein Debian empfehlen. Es ist robust, hat eine gute Community und sehr viele Anleitungen oder Blog-Beiträge nehmen Debian als Grundlage. Natürlich ist Debian auch vergleichsweise “langweilig” und in Updates zuweilen etwas konservativ. Aber für den Anfang deutlich einfacher als Rocky Linux oder Alma Linux, wo man mit Firewall oder SELinux schnell an Herausforderungen stößt.

Ubuntu mag vielleicht auch einfach erscheinen, basiert es ja auch nur auf Debian. Doch die fragwürdige Politik von Caninical, dass Sicherheitsupdates hinter einem Abo-Modell versteckt werden, macht es eigentlich gänzlich unattraktiv für den Einsteiger.

Weitere Tipps für einen guten Einstieg

  • Wenn ihr einen Server bestellt habt, lest nach, wie ihr das Linux absichert. Nur notwendige Ports freigeben, Login als root verbieten, SSH-Zugriff nur mit SSH-Key und nicht mit Passwort.
  • Lernt die Grundlagen von Docker und nutzt Container für Installationen von Anwendungen. So haltet ihr euer System von Anfang an sauber, vermeidet Konflikte von Abhängigkeiten und könnt bequem Installationen und Updates durchführen.
  • Nutzt Snapshot- und Backup-Funktionen im Admin-Panel eures Server-Anbieters. Wenn ihr mal was kaputt gemacht habt, könnt ihr so immer wieder zum letzten funktionierenden Zustand zurückspringen.
  • Für den Anfang: Nutzt Caddy als (reverse) Proxy. Caddy lässt sich einfach konfigurieren und sorgt dafür, dass eure Dienste direkt über HTTPS, also verschlüsselt, erreichbar sind.
  • Lest Foren, fragt in Communities nach, diskutiert mit AI wie Claude oder ChatGPT darüber, wie man Dinge am besten macht und lasst euch auch gerne Beispiele geben. Versucht aber nach Möglichkeit, die Beispiele von AI auch zu verstehen, bevor ihr Code- und Konfigurationsschnipsel nutzt, oder Linux-Befehle einfach ausführt.
  • Denkt rechtzeitig an ein Backup-Konzept! Sei es ein Cronjob, der täglich eine Zip-Datei generiert, eine Kopie mit rsync oder rclone in ein S3-Bucket oder ausgeklügelte Lösungen mit restic, alles egal, solange ihr immer eine Sicherung eurer Daten und Konfigurationen habt.