+++
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 
(**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
ü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 
