Die steigenden Kosten und mehrere Limitierungen im Cloud-Betrieb führen viele Entwickler und Gründer dazu, ihre Anwendungen selbst zu hosten. Selbst-Hosting bedeutet, dass man seine Software eigenverantwortlich auf einem eigenen Server oder einem virtuellen privaten Server (VPS) betreibt, anstatt Dienste wie AWS, Vercel oder andere Cloud-Anbieter zu nutzen. Die Idee dahinter ist, Kosten zu senken, die Kontrolle über den Betrieb zurückzugewinnen und Abhängigkeiten von teuren Service-Angeboten zu vermeiden. Doch wie gelingt dieser Schritt richtig und ohne überwältigenden Aufwand? Die Antwort liegt in einem gut durchdachten Ansatz, passenden Technologien und einer soliden Infrastruktur. Viele fragen sich zunächst, warum Selbst-Hosting sinnvoll ist, obwohl Cloud-Dienste einfache Scalierung und schnellen Einstieg bieten.
Die Antwort liegt vor allem in der Kostenstruktur. Bei AWS, Vercel oder ähnlichen Plattformen zahlt man meist nach Verbrauch. Gerade bei wachsendem Traffic können die Rechnungen schnell explodieren, sogar wenn der Server nur moderat beansprucht wird. Berichte von Entwicklern, die allein für ihre kleinen, einfachen Apps mehr als 80 Dollar im Monat zahlen, belegen dieses Problem eindrucksvoll. Demgegenüber steht die Möglichkeit, bei einem Anbieter wie Hetzner für wenige Euro im Monat einen passenden VPS mit ausreichender Leistung zu bekommen.
Dort gibt es Angebote mit 2 CPU-Kernen und 4 GB RAM für weniger als 4 Euro monatlich, was ein unglaubliches Preis-Leistungs-Verhältnis bietet. Doch die zweite häufige Sorge ist die vermeintliche Komplexität des Selbst-Hostings. Viele glauben, das sei nur mit großem Aufwand und viel technischem Wissen machbar, vielleicht sogar nur mit einem ganzen DevOps-Team realisierbar. Diese Ansicht ist jedoch überholt. Gerade Solo-Gründer und kleine Teams können von modernen Open-Source-Tools profitieren, die viele Aufgaben automatisieren und vereinfachen.
Wichtig ist, die richtigen Werkzeuge zu wählen, die einerseits automatisierte Prozessverwaltung bieten, andererseits mit minimalem Ressourcenverbrauch und unkomplizierter Bedienung überzeugen. Eine perfekte Lösung existiert selten, aber der sogenannte „Mittelweg“ aus voll manuell betriebenen Servern und komplexen Kubernetes-Umgebungen ist besonders empfehlenswert. Kubernetes verlangt ein erhebliches Maß an Know-how und Ressourcen, ist für Solo-Entwickler oder kleine Teams meist überdimensioniert und schwer wartbar. Auf der anderen Seite ist das reine Aufsetzen eines Servers mit manuellem Reverse Proxy, Log-Management, Prozessüberwachung und CI-Integration oft zu aufwendig. Deshalb trifft eine selbstgehostete Platform-as-a-Service (PaaS)-Lösung den Sweetspot.
Diese PaaS-Alternativen bieten eine abstrahierte Oberfläche, die trotzdem auf der eigenen Infrastruktur läuft und so volle Kontrolle bietet, ohne dass die tägliche Verwaltung zur Belastung wird. Es gibt einige bekannte Open-Source-PaaS-Projekte, die man in Betracht ziehen sollte. Dazu zählen Dokku, CapRover, Coolify, Kamal und K3s. Aus umfangreichen Tests und Erfahrungsberichten sticht Dokku als klare Empfehlung hervor. Erstens ist Dokku seit über einem Jahrzehnt im Einsatz, hat breite Akzeptanz, umfangreiche Dokumentation und eine aktive Community.
Es installiert sich einfach, benötigt sehr wenig Ressourcen und stellt mit nginx einen effizienten Reverse Proxy bereit. Die Bedienung erfolgt hauptsächlich über die Kommandozeile, was automatisierte Deployments aus Continuous Integration (CI) Pipelines vereinfacht und Skripte ermöglicht. Mit Dokku können Apps per Docker-Image oder Git Push deployed werden, was besonders Entwicklungsprozesse beschleunigt. Im Gegensatz dazu hat Coolify zwar eine hübsche Oberfläche, bringt jedoch viele unnötige Abhängigkeiten wie Redis, PHP oder alte Postgres-Versionen mit, die nicht jeder benötigt und die die Ressourcenauslastung eines kleinen Servers unnötig belasten. Zudem traten Stabilitätsprobleme wie unerwartete Abstürze nach Neustarts auf.
Bei Kamal wiederum ist zwar ein minimalistischer Ansatz gegeben, dennoch führen lückenhafte Dokumentation, fehlende Robustheit und Komplexität bei der Handhabung eher zu Frustration als zu produktiver Nutzung. CapRover bietet eine Benutzeroberfläche auf Kosten der Bedienbarkeit über die Kommandozeile und das Skalieren wirkt hier weniger flexibel. K3s als leichtgewichtige Kubernetes-Variante ist zwar funktional, verbraucht aber verhältnismäßig viel Ressourcen, ist komplex in der Konfiguration und somit ebenfalls nicht ideal für Solo-Hoster oder kleine Teams ohne spezialisierte Infrastruktur-Teams. Wer also eine solide, ressourcenschonende, gut dokumentierte und automatisierbare Lösung sucht, wird mit Dokku am besten bedient. Dies bedeutet nicht nur geringere laufende Kosten, sondern auch weniger Verwaltungsaufwand.
Typische VPS-Server mit 2 Kernen und 4 GB RAM sind mehr als ausreichend, um mehrere Anwendungen parallel laufen zu lassen. Als Betriebssystem empfiehlt sich Debian in seiner aktuellen stabilen Version, da es einerseits sehr zuverlässig ist, andererseits Sicherheitsupdates automatisch einspielen kann – ein entscheidendes Plus für Einzelpersonen ohne dediziertes Sicherheitspersonal. Die Kombination aus arm64-Architektur und Debian harmoniert auch gut mit modernen Entwicklungsumgebungen, zum Beispiel Macs mit ARM-Prozessoren, sodass Entwickeln und Produktivbetrieb konsistent bleiben. Netzwerkeinstellungen spielen bei der Einrichtung ebenfalls eine große Rolle. Obwohl IPv6 zunehmend an Bedeutung gewinnt, sollte man im Produktivbetrieb auf dual-stack oder zumindest IPv4 setzen, da viele externe Dienste wie GitHub oder soziale Netzwerke noch keine vollständige IPv6-Unterstützung gewährleisten.
Nur über IPv6 erreichbar zu sein, kann zu unerklärlichen Verbindungsproblemen führen, die oft nur schwer zu diagnostizieren sind. Ist die Infrastruktur eingerichtet und Dokku installiert, folgt die Einrichtung von SSH-Zugang und Deployment-Methoden. SSH-Schlüssel-basierte Authentifizierung ist Pflicht, um die Sicherheit der Serverzugänge zu gewährleisten und Passwort-Angriffe zu vermeiden. Dazu sollte im SSH-Server die Passwortauthentifizierung deaktiviert und nur noch Login per Schlüssel erlaubt sein. Ebenso empfiehlt es sich, den Root-Login direkt zu sperren und stattdessen mit normalen Useraccounts und sudo Rechteverwaltung zu arbeiten.
Das Deployment der App kann anschließend einfach über GitHub Actions oder andere CI/CD-Tools automatisiert werden. Dokku hat eine eigene GitHub Action, die schnelle Updates möglich macht und den Aufwand minimiert. Um eine reibungslose, automatisierte Auslieferung sicherzustellen, müssen die richtigen Umgebungsvariablen gesetzt werden. Docker-Registries können mit Dokku problemlos angebunden werden, um Images zu pushen und zu ziehen. Sicherheit bleibt auch nach der Basiseinrichtung ein zentrales Thema.
Neben der SSH-Härtung sollte eine Web Application Firewall (WAF) und DDoS-Schutz über Dienste wie Cloudflare eingesetzt werden. Cloudflare bietet nicht nur Schutz vor Angriffen, sondern kann auch als CDN und Caching-Lösung agieren. Indem nur Cloudflare-IP-Adressen per Firewall auf den Server zugelassen werden, lassen sich viele potenzielle Angriffe auf die Infrastruktur schon früh blockieren. Zusätzlich kann das Monitoring mit Tools wie Better Stack eingerichtet werden, welches nahtlos in Dokku integriert werden kann. Das bietet einen Überblick über Logs, Performance-Indikatoren und Alarmfunktionen.