Ich bin schon seit Langem in der Welt des Self-Hostings unterwegs, zurück bis in mein erstes Universitätsjahr, als ich eine Website von einem Linux-Rechner unter meinem Bett betrieb. Über die Jahre nutzte ich Myth TV und dann XBMC, später als Kodi bekannt.
Nachdem ich in Indien gelebt hatte, wo Streamingdienste nach westlichen Maßstäben extrem günstig sind, war ich nicht bereit, westliche Preise für Netflix, Disney Plus (in Indien Hotstar) und Spotify zu zahlen. Außerdem hatte ich das Engagement-Hamsterrad satt, besonders wegen meines Sohnes. Ständige Hinweise wie „Empfohlen für dich“ und „Als Nächstes“ führten zu Streit, und das Einschränken von Inhalten bei jedem Dienst war zu aufwendig. Also habe ich in einem anderen Sinn den Stecker gezogen: Ich habe die Streamingdienste aufgegeben und mich für selbst gehostetes Jellyfin entschieden. Innerhalb von eineinhalb Jahren hat Jellyfin mir die Tür dazu geöffnet, auch viele andere Dienste selbst zu hosten. Das verringerte meine Abhängigkeit von Cloud-Anbietern und brachte eine willkommene Stabilität. Ich werde nicht mehr mit unnötigen Website-Redesigns, fragwürdigen neuen Funktionen oder einer Flut von E-Mails zu Nutzungsbedingungen konfrontiert. Ich lese die Versionshinweise neuer Software und entscheide, ob und wann ich aktualisiere.
Ich habe einige Grundregeln. Mit Ausnahme der VPN-Server auf meinem Router stelle ich keinen Dienst direkt ins öffentliche Internet. Egal wie bequem es wäre oder wie sicher eine Anwendung ist. Gerade angesichts KI-gestützten Hackings halte ich das nicht für klug. Mein Internetanbieter nutzt außerdem CGNAT für IPv4-Adressen, weshalb mein Heimnetzwerk über IPv4 ohnehin nicht direkt erreichbar ist. Meine VPN-Server sind nur über IPv6 öffentlich erreichbar, was einige Nachteile hat, aber für meine Zwecke funktioniert und wahrscheinlich unerwünschte Verbindungsversuche verringert. Der größte Nachteil ist, dass mein VPN in öffentlichen WLAN-Netzen fast nie funktioniert, da diese selten IPv6 anbieten. Unterwegs schalte ich am Handy das WLAN aus und verbinde mich über mobile Daten, sofern ein Netz verfügbar ist.
Ich betreibe Dienste möglichst nativ und setze Container nur bei komplexen Diensten oder solchen mit vielen Abhängigkeiten ein. Liebe: ein Dienst, der aus einem einzigen Go-Binary besteht. Ein Dienst, der nur als Docker-Compose-Datei kommt und MySQL, Redis und drei weitere Container will? Dann suche ich bereits nach einer Alternative. Wenn die Abhängigkeiten nicht überwältigend sind, ist nativ besser, schneller und effizienter. Ich kann dieselben Verwaltungswerkzeuge und Befehle über mehrere Dienste hinweg nutzen. Es gibt keinen geistigen Mehraufwand, in einen Container zu wechseln, um einen Befehl auszuführen, festzustellen, dass im Container curl fehlt, dass ein anderer busybox nutzt und daher alle Argumente anders sind, oder sich mit virtuellen Netzwerken und Host-Port-Mapping zu beschäftigen.
Damit zusammenhängend: Ich nutze Docker nicht mehr. Das ist keine grundsätzliche Haltung, aber ich habe es satt gehabt, ein komplett separates Dienststeuerungssystem auf meinem Server zu verwalten. Ich nutze bereits systemd, und inzwischen ist die Integration von Podman mit systemd ausgezeichnet.
Hardware: Letztes Jahr habe ich einen Beelink-Mini-PC gekauft, konkret ein S12 Pro mit Intel-N100-Prozessor, 16 GB RAM und einer internen 512-GB-SSD. Es war vor der RAM-Krise, und ich zahlte 180 Euro. Das gleiche Angebot auf Amazon kostet aktuell 359 Euro. Autsch! An den Server ist eine 6-TB-Festplatte für Mediendaten angeschlossen. Mein Kommentar auf Hacker News darüber, was ich selbst hoste, führte zu Fragen, wie all das mit 16 GB RAM laufen kann. Wie ich unten beschreibe, gibt es einige Entscheidungen, die den Ressourcenbedarf meines Servers senken, aber letztlich stellt sich heraus, dass man nicht …
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing