From c21a021efb07c70d6aa2f3e48000ff03b3642eaa Mon Sep 17 00:00:00 2001 From: benjilegeek Date: Thu, 30 Jul 2026 09:38:30 +0200 Subject: [PATCH] update self hosting article --- content/projects/self_hosting/index.md | 77 +++++++++++++++----------- 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/content/projects/self_hosting/index.md b/content/projects/self_hosting/index.md index cee2993..7dbdcdf 100644 --- a/content/projects/self_hosting/index.md +++ b/content/projects/self_hosting/index.md @@ -10,7 +10,7 @@ tags = ["selfhosting","linux"] [extra] local_image = "img/server_icon.svg" +++ -##### Stand 27.03.2026 +##### Stand 22.07.2026 ## Einleitung Der folgende Artikel gibt einen Überblick zur aktuellen Architektur meiner privaten IT-Infrastruktur. Ich hatte mir am Anfang meines Studiums einen Raspberry Pi 4 gekauft und als ich mit dem Experimentieren @@ -23,13 +23,14 @@ fertig war, suchte ich nach einem sinnvollen Verwendungszweck. So bin ich zum Se * **Datenschutz** - man entscheidet komplett selbst welche Daten wo vorliegen ## Infrastruktur -Meine Self-Hosting Infrastruktur besteht aktuell aus sieben Maschinen. Fünf davon sind VPS +Meine Self-Hosting Infrastruktur besteht aktuell aus neun Maschinen. Sechs davon sind VPS (**V**irtual**P**rivate**S**erver) die ich bei einem Cloud-Dienstleister anmiete. Bei den -restlichen Servern handelt es sich um Raspberry Pis verschiedener Generationen. Die Pis sind +restlichen Servern handelt es sich um zwei Raspberry Pis verschiedener Generationen, sowie +einem alten Desktop-PC den ich zum Server umfunktioniert habe. Die Pis und der Server sind über einen kleinen Netgear Switch per Ethernet verkabelt, da ich großen Wert auf stabile -Verbindungen und geringe Latenzen lege. +Verbindungen und geringe Latenzen lege. -Auf den VMs läuft überall Debian, auf den Raspberries Arch. +Auf den VMs läuft überall Debian, auf den Raspberries Arch und auf dem Server Alpine Linux. Ich komme eigentliche mit jedem Linux Distro gut zurecht, aber ich nutze privat am liebsten Arch, weil mich das Rolling-Release Modell überzeugt und ich das Paketmanagement mit Arch (pacman, AUR usw.) mag. @@ -37,31 +38,42 @@ ich das Paketmanagement mit Arch (pacman, AUR usw.) mag. ## Architektur ``` -.......................... -: ____________ _____:______ ____________ -: | [ VM1 ] | | [ VM3 ] | | [ VM5 ] | -: | PW-Manager | | Monitoring | | jumphost | -: |____________| |____________| |____________| -: : ____________ : ____________ |:| -: : | [ VM2 ] | : | [ VM4 ] | |:| -: : | benji0x3c | : | Git-Repo | |:| -: : |____________| : |____________| |:| -: :..........:.........:........:..... |:| -: : wg-Tunnel& -:..SSH.......... : SSH - : SSH |:| - Cloud : : |:| ----------------:-----------------------:----|:|-------- - On-Prem :____________ :____|:|_____ - | [ Pi2 ] | | [ Pi1 ] | - | darkstat |...SSH....| Backups | - | DiscordBot | | Ansible | - |____________| |____________| + CLOUD + ____________ ____________ + | [ VM1 ] | ____________ | [ VM5 ] |_______ + | PW-Manager | | [ VM3 ] | | jumphost |_____ | + |____________| | Monitoring | |____________| | | + : |____________| : | | + ____________ : ____________ | | + | [ VM2 ] | ____________ | [ VM6 ] | | | + | benji0x3c | | [ VM4 ] | | jumphost | | | + |____________| | Git-Repo | |____________| | | + : |____________| : | |<- VPN-Tunnel + : : : | | + :..............:..............: | | + : | | + : | | + SSH | | + : | | + ___________________:____________________ | | + | ____________ ____________ | | | + | | [ Pi2 ] | | [ Pi1 ] |_________| | + | | darkstat |.......| Soju |___________| + | | DiscordBot | | Ansible | | + | |____________| |____________| | + | : | + | : | + | _____:______ | + | | [ PC1 ] | | + | | Automation | | + | | Backups | | + | ON-PREMISE |____________| | + |________________________________________| ``` Die Ascii-Grafik skizziert den groben Aufbau meiner Infrastruktur und ist relativ selbsterklärend. Einige Details möchte ich dennoch hervorheben: + da Pi1 der die Maschine ist von der Ansible Automationen gestartet werden können, liegt sein public-key auf jedem anderen Server -+ da Pi1 und Pi2 nicht vom Monitoring Server erreicht werden können, pushen sie ihre Telemetrie-Daten selbstständig per SSH ++ da Pi1, Pi2 und PC1 nicht vom Monitoring Server erreicht werden können, pushen sie ihre Telemetrie-Daten selbstständig per SSH + um mein lokales Netz aus der Distanz warten habe ich eine externe VM per VPN Tunnel mit Pi1 verbunden ## Anwendungen @@ -85,17 +97,20 @@ Ich hoste eine [Gitea](https://about.gitea.com/) Instanz für meine Repositories anderseits möchte weiß man bei Github mittlerweile nicht mehr wofür die eigenen Repositories genutzt werden. #### jumphost Ich habe eine sehr kleine VM die ich ausschließlich als Jumphost benutze, um aus dem WAN auf mein lokales Netzwerk zugreifen zu können. -#### Backups: rsync -Auf einem der Raspberries läuft täglich ein Backupscript, welches die Backups von meinem Desktop-Rechner und den VPS Maschinen in der Cloud schreibt. -Dafür nutze ich rsync um nur das Delta schreiben zu müssen und nicht bei jedem Durchlauf alles zu kopieren. -Dabei werden aber nur für Daten mit sinnvollem Kosten-Nutzen Verhältnis Backups geschrieben, da ich Platz sparen möchte. Perspektivisch möchte ich regelmäßige -Snapshots dieses Backups in ein Cloud schreiben, das ist aber aktuell aus Budget-Gründen noch nicht implementiert. +#### Soju +Auf einem der Raspberries läuft Soju, ein IRC Bouncer, damit ich IRC Verläufe asynchron nachlesen kann. Ich halte mich nicht enorm viel in IRC Chats auf, aber finde diese reduzierte Art der Kommunikation sehr angenehm. #### Netzwerkanalyse: Darkstat Außerdem läuft auf einem der Pis [darkstat](https://unix4lyfe.org/darkstat/), ein Netzwerkanalyse-Tool, dass ich ausprobiert habe weil es extrem wenig Ressourcen benötigt und sehr praktisch ist, wenn man mehrere Geräte in einem Netzwerk verwaltet. #### DiscordBot Des weiteren läuft ein DiscordBot auf einem RaspberryPi, den ich selbst in Rust geschrieben habe. Der Bot wird nur von meinen Freunden und mir verwendet und braucht deshalb nicht viele Ressourcen. +#### Backups: rsync +Auf dem Server läuft täglich ein Backupscript, welches die Backups von meinem Desktop-Rechner und den VPS Maschinen in der Cloud schreibt. +Dafür nutze ich rsync um nur das Delta schreiben zu müssen und nicht bei jedem Durchlauf alles zu kopieren. +Dabei werden aber nur für Daten mit sinnvollem Kosten-Nutzen Verhältnis Backups geschrieben, da ich Platz sparen möchte. Perspektivisch möchte ich regelmäßige +Snapshots dieses Backups in ein Cloud schreiben, das ist aber aktuell aus Budget-Gründen noch nicht implementiert. + ## Fazit& Ausblick Es macht mir großen Spaß Anwendungen selbst zu hosten und die dafür benötigte Infrastruktur zu warten. An meinem aktuellen Setup gibt es aber noch vieles zu verbessern