Files
benji0x3c/content/projects/self_hosting/index.md

3.3 KiB

+++ title = "Self-Hosting" description = "Meine kleine aber feine Infrastruktur" weight = 1 template = "page.html"

[taxonomies] tags = ["selfhosting","linux"]

[extra] local_image = "img/server_icon.svg" +++

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 fertig war, suchte ich nach einem sinnvollen Verwendungszweck. So bin ich zum Self-Hosting gekommen.

Warum Self-Hosting?

  • Digitale Souveränität - Unabhängigkeit von Konzernen
  • Lernen - (Kennen)lernen diverser Technologien
  • Preis - einige Services sind deutliche günstiger, wenn man sie selbst betreibt
  • Datenschutz - man entscheidet komplett selbst welche Daten wo vorliegen

Infrastruktur

Meine Self-Hosting Infrastruktur besteht aktuell aus sieben Maschinen. Fünf davon sind VPS (VirtualPrivateServer) die ich bei einem Cloud-Dienstleister anmiete. Bei den restlichen Servern handelt es sich um Raspberry Pis verschiedener Generationen. Die Pis sind über einen kleinen Netgear Switch per Ethernet verkabelt, da ich großen Wert auf stabile Verbindungen und geringe Latenzen lege.

Architektur

 ____________   ____________   ____________   ____________   ____________
|            | |            | |            | |            | |            |
|  [ VM1 ]   | |  [ VM2 ]   | |  [ VM3 ]   | |  [ VM4 ]   | |  [ VM5 ]   |
| PW-Manager | | benji0x3c  | | Monitoring | |  Git-Repo  | |  jumphost  |
|____________| |____________| |____________| |____________| |____________|
      +              +              +              +             |+|
      +              +              +              +             |+|
      +              +              +              +             |+|
      +              +              +              +             |+|     
      +              +              +              +          wg-Tunnel&
      +              +              +              +             SSH        
      ++++++++++++++++++++ SSH ++++++++++++++++++++++++++++++    |+|    
                                    +                       +    |+|
  Cloud                             +++                     +    |+|        
--------------------------------------+---------------------+----|+|------  
  On-Premise                          +____________         +____|+|_____ 
                                      |            |        |            |
                                      |  [ Pi2 ]   |        |  [ Pi1 ]   |
                                      |            |+ SSH ++|  Backups   |
                                      | DiscordBot |        |  Ansible   |
                                      |____________|        |____________|

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, 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
  • um mein lokales Netz aus der Distanz warten habe ich eine externe VM per VPN Tunnel mit Pi1 verbunden

Anwendungen

Im folgenden werde kurz Auflisten welche