Was reizt mich am Self-Hosting

Was reizt mich am Self-Hosting
Photo by Stephen Phillips - Hostreviews.co.uk / Unsplash

In diesem Artikel soll es darum gehen, was mich daran reizt, Seiten oder Applikationen selbst zu hosten.

Was ist überhaupt Self-Hosting?

Hierzu gibt es schon ein paar verschiedene Arten der Definition. Für mich bedeutet selbst hosten, dass man Anwendungen und Webseiten selber betreibt. Je nach Definition gehört hier dazu, dass auch die Hardware einem selbst gehört. Für mich ist das nicht der Fall. Ich betreibe nur die Anwendungen, sprich die Softwareseite. Ob der Server nun im eigenen Keller steht oder bei einem Cloud-Anbieter liegt, ist für mich zweitrangig.

Was für Nachteile hat Self-Hosting?

Mit dem Self-Hosting geht natürlich einiges an Arbeit einher. Man muss sich darum kümmern, dass die Anwendungen dann zur Verfügung stehen, wenn man das möchte. Nichts ist ärgerlicher, als am Sonntagabend ein Rezept nachkochen zu wollen und festzustellen, dass der Container mal wieder nicht läuft.

Ebenso muss man sich auch darum kümmern, dass Anwendungen überhaupt erstmal laufen und erreichbar sind. Reverse Proxies konfigurieren, DNS-Einträge pflegen, SSL-Zertifikate erneuern - alles Aufgaben, die sich nicht von selbst erledigen.

Weitere Aufgaben stellen ebenso die IT-Sicherheit in den Fokus. Alles was im Internet erreichbar ist, wird auch angegriffen. Ein Blick in die Logs kann durchaus ernüchternd sein, wenn man sieht wie oft automatisierte Bots versuchen sich Zugang zu verschaffen. Also muss man hierfür auch Gegenmaßnahmen einleiten. Firewalls konfigurieren, Updates einspielen.

Kosten für die Infrastruktur sowie Kosten der Zeit sind somit die Hauptkritikpunkte, warum Self-Hosting keinen Sinn macht. Diese Kritik ist durchaus berechtigt und sollte nicht unter den Tisch gekehrt werden.

Was für Vorteile hat Self-Hosting?

Warum kann ich mich dennoch für das Hosten eigener Anwendungen begeistern?

Freiheit: Es ist natürlich auch eine Form von digitaler Unabhängigkeit. Man schafft seine eigene Welt, in der die Dinge passieren wie man sie selbst möchte. Keine plötzlichen Feature-Updates, die keiner wollte. Keine Umstellung auf ein neues Interface, das alles komplizierter macht. Keine Preiserhöhungen über Nacht.

Übersichtlichkeit: Man findet alles was man benötigt direkt bei sich. Bestes Beispiel ist für mich das Hosten einer eigenen Rezepte-Plattform. Damit meine ich nicht diesen Blog. Ja, ich bediene mich auch auf vielen Rezept-Plattformen, um Inspirationen zu gewinnen. Jedoch passt man sich die Rezepte doch auch mal etwas an für seinen eigenen Gaumen. Nun ist das sehr hilfreich, wenn man das dann in seiner eigenen Plattform hinterlegen kann und somit nicht immer wieder nachdenken muss, was die Änderungen waren. Kein Durchsuchen von WhatsApp-Chats oder vergilbten Notizzetteln mehr.

Flexibilität: Ich bin nicht an eine Anwendung gebunden und kann jederzeit einfach wechseln, wenn ich etwas anderes gut finde. Es steht nicht ein Abo oder ähnliches im Weg. Keine Vendor Lock-ins. Keine Diskussionen mit dem Support, weil man seine Daten exportieren möchte.

Lernen: Ein weiterer Vorteil ist das Lernen mit dem Deployen und Ausrollen von Anwendungen. Das ist für mich als Softwareentwickler natürlich auch maßgeblich interessant hier am Ball der Zeit zu bleiben. Man versteht einfach viel besser, was in Produktionsumgebungen passiert, wenn man selbst mal einen Nginx konfiguriert oder Docker-Compose-Files geschrieben hat. Diese Erfahrungen zahlen sich im Job definitiv aus.

Datenschutz: Wenn man etwas selbst hostet, hat man selbst die Kontrolle wohin Daten fließen oder eben auch nicht.

Tipps und Tricks

Ihr möchtet euch auch selbst mit Self-Hosting beschäftigen? Dann solltet ihr euch in das Thema etwas einlesen. Im Internet gibt es sehr viele gute Quellen und Communities, die einem weiterhelfen können.

IT-Security: Am wichtigsten wäre es sich zu Beginn mit dem Thema IT-Security zu beschäftigen. Ein offener Port ohne Absicherung lädt ungebetene Gäste geradezu ein.

Klein anfangen: Ihr müsst nicht gleich euer eigenes Rechenzentrum aufbauen. Fangt mit einem kleinen VPS und einer einfachen Anwendung an.

Docker: Containervirtualisierung macht vieles einfacher. Man muss nicht mehr manuell Dependencies installieren und kann Anwendungen sauber voneinander trennen.

Backups: Ich kann es nicht oft genug sagen. Irgendwann geht etwas schief. Ein fehlerhaftes Update, ein voller Speicher, menschliches Versagen. Ohne Backup sind eure Daten weg.

Wenn ihr nach Inspirationen oder guten Open-Source-Tools seid, dann kann ich euch das GitHub-Repository awesome-selfhosted ans Herz legen. Dort findet ihr hunderte von Projekten, sortiert nach Kategorien.

Fazit

Self-Hosting ist definitiv nicht für jeden etwas. Es kostet Zeit, Nerven und auch etwas Geld. Aber für mich überwiegen die Vorteile. Die Kontrolle über die eigenen Daten, die Flexibilität und nicht zuletzt der Lerneffekt machen den Aufwand wett. Und mal ehrlich: Es macht auch einfach Spaß, wenn nach stundenlangem Konfigurieren endlich die eigene Anwendung im Browser erreichbar ist.

Was sind eure Erfahrungen mit Self-Hosting? Betreibt ihr selbst etwas?