<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Painite</title><link>https://blog.painite.ch/tags/docker/</link><atom:link href="https://blog.painite.ch/tags/docker/index.xml" rel="self" type="application/rss+xml"/><description>Docker</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>de-ch</language><lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0000</lastBuildDate><image><url>https://blog.painite.ch/media/icon_hu_fc098d57d83abf3d.png</url><title>Docker</title><link>https://blog.painite.ch/tags/docker/</link></image><item><title>Vom Homelab zu Hetzner: Zehn Jahre Self-Hosting</title><link>https://blog.painite.ch/blog/ten-years-self-hosting/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.painite.ch/blog/ten-years-self-hosting/</guid><media:content url="https://blog.painite.ch/blog/ten-years-self-hosting/featured.png" medium="image"/><enclosure url="https://blog.painite.ch/blog/ten-years-self-hosting/featured.png" type="image/png" length="517192"/><description>&lt;p&gt;Vor über zehn Jahren stand bei mir zuhause ein Dell PowerEdge mit Ubuntu in einem Schrank. ownCloud für Dateien, Plex für Medien, ein Torrent-Client, der alles für Plex runtergeladen hat. Das war mein &amp;ldquo;Homelab&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Zehn Jahre später läuft alles auf einer einzigen Hetzner-Box. Kein Keller, kein Lüfterrauschen, keine Stromrechnung. Das ist die Geschichte, wie das zweite Setup das erste abgelöst hat - und warum ich ein Jahrzehnt dafür gebraucht habe.&lt;/p&gt;
&lt;h2 id="die-dell-ära"&gt;Die Dell-Ära&lt;/h2&gt;
&lt;p&gt;Das Home-Setup war eine Zeit lang grossartig. Ubuntu auf einem Dell PowerEdge, ownCloud für Dateien, Plex für Medien, Torrents für den Rest. Es lief.&lt;/p&gt;
&lt;p&gt;Was es beendet hat, war Geld. Einen Server 24/7 laufen zu lassen ist nicht gratis, und als ich anfing, über neue Hardware nachzudenken, ging die Rechnung nicht mehr auf. Der Dell wurde alt, aber einen neuen Server für den Schrank zu kaufen kam mir vor wie gutem Geld schlechtem hinterherwerfen.&lt;/p&gt;
&lt;h2 id="hetzner-entdecken"&gt;Hetzner entdecken&lt;/h2&gt;
&lt;p&gt;Etwa zur gleichen Zeit hatte ich einen Job, in dem wir &lt;strong&gt;Hetzner-Rootserver&lt;/strong&gt; benutzten. Ich sah die Preise. Für das, was ich gerade in neue Hardware plus Jahre an Strom stecken wollte, konnte ich etwas Besseres mieten - in einem echten Rechenzentrum, mit echtem Internet und der Stromrechnung von jemand anderem.&lt;/p&gt;
&lt;p&gt;Zum Vergleich: Meine Hetzner-Box läuft heute etwa &lt;strong&gt;90 CHF im Monat&lt;/strong&gt;. Schon 1 Gbit symmetrisches Internet zuhause wären 30-40 CHF, vor Strom oder Hardware. Die Rechnung war nicht knapp.&lt;/p&gt;
&lt;p&gt;Ich habe mein Zeug rübergezogen. Das war vor etwa zehn Jahren.&lt;/p&gt;
&lt;h2 id="owncloud--nextcloud"&gt;ownCloud → Nextcloud&lt;/h2&gt;
&lt;p&gt;Irgendwann in der Zeit bin ich von ownCloud zu Nextcloud gewechselt. Die Migration war schmerzlos - dieselbe Codebasis unter der Haube. Warum genau ich gewechselt habe, weiss ich nicht mehr. Wahrscheinlich eine Mischung aus &amp;ldquo;alle anderen taten es&amp;rdquo; und &amp;ldquo;Nextcloud entwickelt sich schneller&amp;rdquo;. Hängengeblieben ist es jedenfalls. Es ist bis heute das Rückgrat meiner Datenebene.&lt;/p&gt;
&lt;h2 id="vom-host-zu-docker"&gt;Vom Host zu Docker&lt;/h2&gt;
&lt;p&gt;Die erste Version meines Hetzner-Setups hatte die Services direkt auf dem OS - Nginx als Reverse Proxy auf dem Host, Pakete daneben installiert. Es lief, aber jedes Update war ein kleines Abenteuer.&lt;/p&gt;
&lt;p&gt;Ich habe damals &lt;strong&gt;Docker&lt;/strong&gt; gelernt und das Muster gekippt. Services in Container. Der Reverse Proxy irgendwann auch in einen Container. Heute läuft alles in Docker. Updates sind vorhersehbar, Rollbacks sauber, der Host bleibt sauber.&lt;/p&gt;
&lt;p&gt;Und nein, ich bin nicht zu Kubernetes gewechselt. Der Overhead lohnt sich erst, wenn man mehrere physische Maschinen hat, und ich brauche keine 99,9 % Uptime. Docker ist einfacher. Günstiger. Reicht.&lt;/p&gt;
&lt;h2 id="plex--jellyfin--der-arr-stack"&gt;Plex → Jellyfin + der *arr-Stack&lt;/h2&gt;
&lt;p&gt;Auch die Medien-Seite hat sich entwickelt. &lt;strong&gt;Plex&lt;/strong&gt; wurde durch &lt;strong&gt;Jellyfin&lt;/strong&gt; ersetzt - vollständig Open Source, kein Account, läuft auf meinem Server. Der *&lt;strong&gt;arr-Stack&lt;/strong&gt; (Sonarr, Radarr, Lidarr, Prowlarr) hat meinen handgepflegten Torrent-Client ersetzt. Heute tagge ich, was ich will, und der Stack erledigt den Rest. Das alte &amp;ldquo;runterladen und Dateien sortieren&amp;rdquo; ist einfach weg.&lt;/p&gt;
&lt;h2 id="die-migration-aus-der-arch-wurde"&gt;Die Migration, aus der Arch wurde&lt;/h2&gt;
&lt;p&gt;Eines Tages konnte ich eine bestimmte Datei auf der Hetzner-Box nicht mehr editieren - irgendein Filesystem- oder Permission-State, den ich nie ganz diagnostiziert habe. Statt zu kämpfen, habe ich einen neuen Hetzner-Server gemietet, ihn frisch aufgesetzt und alles per &lt;code&gt;rsync&lt;/code&gt; rübergezogen.&lt;/p&gt;
&lt;p&gt;Neuinstallation hiess freie OS-Wahl. Ich habe &lt;strong&gt;Arch&lt;/strong&gt; genommen, und es ist seitdem Arch geblieben. Auf einem Server schauen einen die Leute dafür komisch an. Meine Gründe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kleiner Footprint.&lt;/strong&gt; Ich installiere nur, was ich brauche.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aktuelle Pakete.&lt;/strong&gt; Ich bekomme aktuelle Versionen, statt sechs Monate auf einen Backport zu warten.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schnelle Security-Updates.&lt;/strong&gt; Wenn in der Linux-Welt etwas bricht, kommt der Patch in Arch schnell.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der einzige echte Schmerz war &lt;strong&gt;UFW&lt;/strong&gt; - das sauber auf Arch einzurichten hat mehr Aufwand gebraucht als gedacht. Danach: nichts mehr.&lt;/p&gt;
&lt;h2 id="das-setup-heute"&gt;Das Setup heute&lt;/h2&gt;
&lt;p&gt;Die Box selbst: ein dedizierter Hetzner-Server, das OS auf einer SSD und &lt;strong&gt;zwei 16-TB-Platten im RAID 0&lt;/strong&gt; (via LVM) für die Daten. Der Backup-NUC zuhause läuft mittlerweile auch auf SSDs - vor einer Weile aufgerüstet.&lt;/p&gt;
&lt;p&gt;Netzwerk: &lt;strong&gt;headscale&lt;/strong&gt; auf dem Server, &lt;strong&gt;tailscale&lt;/strong&gt;-Clients auf meinen Geräten - und auch auf dem Server selbst. Der *&lt;strong&gt;arr-Stack&lt;/strong&gt; lebt komplett im VPN, keine öffentliche Exponierung. Public sind VPN, HTTP/HTTPS und gelegentlich Gameserver-Ports. &lt;strong&gt;Let&amp;rsquo;s Encrypt&lt;/strong&gt; über nginx und certbot kümmert sich um die Zertifikate.&lt;/p&gt;
&lt;h2 id="backups"&gt;Backups&lt;/h2&gt;
&lt;p&gt;Alles auf einer einzigen Hetzner-Box laufen zu lassen ist ein echter Single Point of Failure - also müssen die Backups solide sein.&lt;/p&gt;
&lt;p&gt;Ich nutze &lt;strong&gt;borg&lt;/strong&gt; für Backups, und die gehen auf einen &lt;strong&gt;NUC bei mir zuhause&lt;/strong&gt;. Auf dem NUC läuft auch &lt;strong&gt;Zabbix&lt;/strong&gt;, das alles überwacht. Wenn ein Backup fehlschlägt oder ein Service ausfällt, sehe ich es.&lt;/p&gt;
&lt;p&gt;Das ist der Teil, den ich am lautesten verteidigen würde. Self-Hosting ohne echte Backups sind einfach Daten, die du irgendwann verlieren wirst.&lt;/p&gt;
&lt;p&gt;Ich habe schon ein paar Mal aus diesen Backups wiederhergestellt - meist einzelne Dateien. Borg-Archiv mounten, rüberkopieren, fertig. Einfach, und das ist der Punkt.&lt;/p&gt;
&lt;h2 id="identity"&gt;Identity&lt;/h2&gt;
&lt;p&gt;Eine neuere Ergänzung: &lt;strong&gt;Keycloak&lt;/strong&gt;, integriert mit mehreren Services, sodass ich einen Login-Layer statt N habe. Sobald das läuft, wird das Hinzufügen neuer Services deutlich weniger nervig.&lt;/p&gt;
&lt;h2 id="der-umfang"&gt;Der Umfang&lt;/h2&gt;
&lt;p&gt;Aus ownCloud und Plex ist viel mehr geworden. Auf der Box laufen heute Nextcloud, mein &lt;strong&gt;Mailserver&lt;/strong&gt;, Immich, Jellyfin + der *arr-Stack, Vaultwarden, Vikunja, ntfy, AdGuard Home, Matomo, Keycloak - und seit kurzem auch &lt;strong&gt;Matrix&lt;/strong&gt; mit Bridges, damit ich eine Chat-Ebene über mehrere Netzwerke hinweg behalten kann. Über die Jahre liefen ausserdem ein paar &lt;strong&gt;Gameserver&lt;/strong&gt; für Freunde mit.&lt;/p&gt;
&lt;p&gt;Ein paar dieser Services teile ich auch mit Familie und Freunden. Sie haben den Nutzen, ich betreibe die Box.&lt;/p&gt;
&lt;p&gt;Es hat sich angeschlichen. Jede neue Sache war eine kleine Ergänzung. In Summe ist es viel.&lt;/p&gt;
&lt;p&gt;Mein digitales Leben wäre ohne diese Box unbrauchbar. Ich bin abhängig von ihr - aber eben nur von meinem eigenen Zeug. Nicht von einem Cloud-Provider. Unterwegs bin ich komplett weg von Google. Das ist ein Tausch, den ich jeden Tag wieder machen würde.&lt;/p&gt;
&lt;h2 id="was-kommt-als-nächstes"&gt;Was kommt als Nächstes&lt;/h2&gt;
&lt;p&gt;Das aktuelle Setup ist ausgereift, aber mutable. Das nächste Kapitel ist ein &lt;strong&gt;immutable OS&lt;/strong&gt;-Ansatz: &lt;strong&gt;Fedora CoreOS&lt;/strong&gt;, &lt;strong&gt;Butane/Ignition&lt;/strong&gt; für deklarative Konfiguration, &lt;strong&gt;Quadlets&lt;/strong&gt; für systemd-native Container. Alles in Git, das System aus der Konfiguration neu gebaut statt im Betrieb gepatcht.&lt;/p&gt;
&lt;p&gt;Ich bin noch nicht da. Aber dahin geht es.&lt;/p&gt;
&lt;p&gt;Etwas weiter draussen will ich noch eine echte Security-Monitoring-Ebene. Bei der Arbeit habe ich &lt;strong&gt;Wazuh&lt;/strong&gt; ausgerollt; etwas Ähnliches zuhause ist auf der Liste. Aber der Architektur-Wechsel kommt zuerst.&lt;/p&gt;
&lt;h2 id="rückblick"&gt;Rückblick&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;Homelab&amp;rdquo; als Begriff passt seit etwa Jahr drei nicht mehr. Eine Hetzner-Box im Rechenzentrum ist halt nicht wirklich &lt;em&gt;home&lt;/em&gt;. Aber der Geist ist derselbe geblieben - meine Daten, meine Services, meine Entscheidung bei jeder einzelnen Wahl.&lt;/p&gt;
&lt;p&gt;Zehn Jahre später: Den Wechsel zu Hetzner würde ich früher machen. Mit Docker würde ich vom ersten Tag an starten. Und ich würde Arch (oder etwas Ähnliches) gleich beim ersten Mal nehmen, nicht erst beim zweiten Anlauf. Den Rest würde ich genauso laufen lassen - das Trial and Error war das Lernen.&lt;/p&gt;</description></item></channel></rss>