finalize blog v1

This commit is contained in:
2026-03-29 20:26:34 +02:00
parent a88af28eb3
commit ddf6272b44
8 changed files with 114 additions and 29 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
public/

View File

@@ -1,2 +1,3 @@
## benji0x3c ## benji0x3c
Mein statische Webauftritt.

View File

@@ -14,7 +14,7 @@ Mir fällt auf, dass sich die meisten Talking Points unter zwei Erzählungen ein
#### "Die jetzige KI ist nur Blendwerk" #### "Die jetzige KI ist nur Blendwerk"
Eine relativ große Gruppe, darunter viele Akademiker, scheinen sich vor allem auf die Probleme und Schwächen Eine relativ große Gruppe, darunter viele Akademiker, scheinen sich vor allem auf die Probleme und Schwächen
der großen Sprachmodelle zu konzentrieren. Im Grunde ist dieser Ansatz wichtig, besonders da viele Benchmarks der großen Sprachmodelle zu konzentrieren. Im Grunde ist dieser Ansatz wichtig, besonders da viele Benchmarks
und Metriken von der Industrie erstellt werden, die ihre Produkte damit testen will. Jedoch fällt mir auf, dass und Metriken von der KI-Industrie erstellt werden und deshalb nicht ganz ohne Bias auskommen. Jedoch fällt mir auf, dass
es einigen Kritikern eher darum geht KI gesamthaft zu diskreditieren. Persönlich glaube ich, dass diese Reaktion es einigen Kritikern eher darum geht KI gesamthaft zu diskreditieren. Persönlich glaube ich, dass diese Reaktion
bei vielen Menschen mit Angst zu tun hat. Denn anzuerkennen, dass wir der Modellierung von Intelligenz bei vielen Menschen mit Angst zu tun hat. Denn anzuerkennen, dass wir der Modellierung von Intelligenz
ein ganzes Stück näher gekommen sind, ist extrem besorgniserregend. ein ganzes Stück näher gekommen sind, ist extrem besorgniserregend.
@@ -33,13 +33,14 @@ Intelligenz-Gap zwischen uns und den Tieren, von denen uns viele ja sogar physis
All das illustriert nur, dass die Bedenken gegenüber KI mehr als berechtigt sind. Diese ändern jedoch nichts am Fakt, All das illustriert nur, dass die Bedenken gegenüber KI mehr als berechtigt sind. Diese ändern jedoch nichts am Fakt,
dass auch aktuelle Sprachsysteme beeindruckende und nützliche Fähigkeiten haben, die über reines Googlen hinausgehen. dass auch aktuelle Sprachsysteme beeindruckende und nützliche Fähigkeiten haben, die über reines Googlen hinausgehen.
Das heißt aber nicht, dass die Superintelligenz bereits unter uns ist. Ich glaube nicht, dass die AGI bereits erreicht wurde, aber die neueren Entwicklungen der kognitiven Algorithmen sind
trotzdem extrem disruptiv und die ersten Anzeichen von einem neuen Zeitalter.
#### "Die Revolution ist da" #### "Die Revolution ist da"
Der andere Standpunkt zu den aktuellen Entwicklungen im Feld der KI ist deutlich optimistischer. Zu optimistisch für Der andere Standpunkt zu den aktuellen Entwicklungen im Feld der KI ist deutlich optimistischer. Zu optimistisch für
meinen Geschmack. Alles ist jetzt KI oder KI-Assisted, für jede Aufgabe gibt es einen Agent und KI-Startupgründer meinen Geschmack. Alles ist jetzt KI oder KI-Assisted, für jede Aufgabe gibt es einen Agent und KI-Startupgründer
unterbieten sich mit Prognosen für das Aussterben diverser Berufszweige. LLMs sind sehr praktisch und nützlich aber unterbieten sich mit Prognosen für das Aussterben diverser Berufszweige. LLMs sind sehr praktisch und nützlich aber
haben immer noch sehr starke Limitierungen. Momentan kann niemand wirklich prognostizieren, ob Sprachmodelle irgendwann haben immer noch sehr starke Limitierungen. Momentan kann niemand wirklich prognostizieren, ob Sprachmodelle irgendwann
an eine gläserne Decke prallen werden. Denn aktuell passieren Verbesserungen vor allem durch Skalierung, also mehr Daten an eine gläserne Decke prallen werden. Denn aktuell werden Verbesserungen vor allem durch Skalierung erreicht, also mehr Daten
mehr Hardware, mehr Daten, mehr Hardware etc. mehr Hardware, mehr Daten, mehr Hardware etc.
Die Auswirkungen auf die Umwelt sind natürlich absolut Katastrophal. Abgesehen Die Auswirkungen auf die Umwelt sind natürlich absolut Katastrophal. Abgesehen
@@ -74,4 +75,4 @@ wie disruptiv diese Revolution sein könnte. Die Technologie wird zugleich unter
aber die eigentlich zentrale Frage bleibt: wer entscheidet darüber wie diese Modelle eingesetzt werden. Ich finde es falsch, dass private Unternehmen aber die eigentlich zentrale Frage bleibt: wer entscheidet darüber wie diese Modelle eingesetzt werden. Ich finde es falsch, dass private Unternehmen
mit Profitinteressen entscheiden wie diese Modelle umgesetzt und eingesetzt werden. Das abgebildete Wissen in den Modellen wurde von der gesamten Gesellschaft mit Profitinteressen entscheiden wie diese Modelle umgesetzt und eingesetzt werden. Das abgebildete Wissen in den Modellen wurde von der gesamten Gesellschaft
produziert, weshalb ihr meiner Meinung ein Mitspracherecht zusteht. Außerdem ist die Technologie existenziell zu relevant, produziert, weshalb ihr meiner Meinung ein Mitspracherecht zusteht. Außerdem ist die Technologie existenziell zu relevant,
um sie in die Obhut von ein paar Silicon Valley "Strategen" zu geben. um sie nur in die Obhut von ein paar Silicon Valley "Strategen" zu geben.

View File

@@ -11,4 +11,41 @@ tags = ["programming","linux"]
local_image = "img/code.svg" local_image = "img/code.svg"
+++ +++
## Einleitung ## Einleitung
Dieser Artikel soll meine Programmiererfahrungen abbilden und einige Beispiele liefern. In diesem Artikel liste ich Programmiersprachen auf, mit welchen ich schon gearbeitet habe und ordne sie nach Erfahrungslevel (1-am wenigsten Erfahrung bis 5-am meisten Erfahrung). Ich gebe jeder Sprache außerdem eine Note abhängig davon wie gerne ich mit der Sprache Programmiere und wie gut ich ihr Design finde.
## Level 1:
#### ein kleineres Projekt
- **C#** - vor einiger Zeit ein paar Berührungspunkte, als ich mit der Unity Engine experimentiert habe *(4+)*
- **Go** - kleines Tool geschrieben, dass Daten von einer öffentlichen Bundesliga API abgerufen hat um diese im Terminal anzuzeigen *(2-, relativ einfach aber sehr effektiv)*
- **Haskell** - ein simples Spiel implementiert *(2, macht Spaß)*
- **Lua** - einfaches neovim Plugin geschrieben um die Funktionen einiger Plugins abzubilden, die ich auf meinem Arbeitsrechner nicht installieren wollte *(2)*
## Level 2:
#### mehrere kleinere Projekte
- **Java** - mit Java habe ich für die Uni einiges Programmiert und zudem ein einfaches Spiel mit GUI, in welchem die Tipp-Geschwindigkeit gemessen wurde *(3-, nicht meins aber besser als C#)*
- **JavaScript** - ich habe einiges mit JavaScript und TypeScript gemacht, auch mit dem Framework VueJS und der Grafikengine ThreeJS *(4-, der JavaScript Kosmos ist wirklich sehr suspekt)*
- **Rust** - ich habe mit Rust einige kleine Projekte umgesetzt, darunter ein Discord Bot und einen API-Client *(2+, harte Lernkurve, aber sehr gutes Design und guter Compiler)*
## Level 3:
#### ein größeres Projekt oder viele kleinere Projekte
- **C** - mit C habe ich Programmieren gelernt und benutze die Sprache gerne für unterschiedlichste kleine Projekte *(1, eine geniale Sprache, die mangels vieler Abstraktionen großen Spaß macht, bei der man sich aber auch leicht ins Knie schießen kann)*
- **C++** - mit C++ habe ich in der Uni ein komplexes Konzept(b-spline Oberflächen) aus der Computergrafik implementiert und dabei die pmp Bibliothek benutzt *(2, macht viel Spaß, C auf Steroiden mir aber zum Teil etwas zu überladen)*
## Level 4:
#### Shell
Unter Shell fasse ich sowohl Wissen über Shellskripte als auch generelles Wissen über die Unix Kommandozeile zusammen.
Für diese Dinge habe ich schon Shellskripte geschrieben:
- Backupskript mit rsync
- Diverse selbstgeschriebene Checks für CheckMK
- Automationsskripte für Cloudsysteme, Cluster und Benchmarking
*(1+, ich gebe dem Shellskript stellvertretend für die Unix-Philosophie eine perfekte Note, weil sich in dem Design das großartige Unix Design fortsetzt)*
## Level 5:
#### Python
Mit Python habe ich am Abstand am meisten gearbeitet. Die Sprache schlägt eine Brücke zwischen simplen Skripten und komplexen Anwendungen. Sie ist sehr einfach zugänglich,
muss aber wegen den Performance-Limitationen richtig eingesetzt werden um nicht zu langsame Software zu erzeugen. Meine Erfahrungen mit der Sprache sehen wie folgt aus:
- professionell Python-Django als Server Backend-Entwickler
- Automationsskripte mit verschiedenen APIs für Netzwerkadministration
- Datenauswertung und Visualisierung per Jupyter Notebook
- Implementierung Kognitiver Algorithmen mit numpy
- Bildbearbeitung mit Pillow
*(2-, eine sehr vielseitige Sprache, braucht allerdings für Typisierung und Performance einige Tweaks)*

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -10,9 +10,10 @@ tags = ["selfhosting","linux"]
[extra] [extra]
local_image = "img/server_icon.svg" local_image = "img/server_icon.svg"
+++ +++
##### Stand 27.03.2026
## Einleitung ## Einleitung
Der folgende Artikel gibt einen Überblick zur aktuellen Architektur meiner privaten IT-Infrastruktur. 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 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. fertig war, suchte ich nach einem sinnvollen Verwendungszweck. So bin ich zum Self-Hosting gekommen.
## Warum Self-Hosting? ## Warum Self-Hosting?
@@ -28,36 +29,80 @@ restlichen Servern handelt es sich um Raspberry Pis verschiedener Generationen.
über einen kleinen Netgear Switch per Ethernet verkabelt, da ich großen Wert auf stabile ü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.
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.
## Architektur ## Architektur
``` ```
____________ ____________ ____________ ____________ ____________ ..........................
| | | | | | | | | | : ____________ _____:______ ____________
| [ VM1 ] | | [ VM2 ] | | [ VM3 ] | | [ VM4 ] | | [ VM5 ] | : | [ VM1 ] | | [ VM3 ] | | [ VM5 ] |
| PW-Manager | | benji0x3c | | Monitoring | | Git-Repo | | jumphost | : | PW-Manager | | Monitoring | | jumphost |
|____________| |____________| |____________| |____________| |____________| : |____________| |____________| |____________|
+ + + + |+| : : ____________ : ____________ |:|
+ + + + |+| : : | [ VM2 ] | : | [ VM4 ] | |:|
+ + + + |+| : : | benji0x3c | : | Git-Repo | |:|
+ + + + |+| : : |____________| : |____________| |:|
+ + + + wg-Tunnel& : :..........:.........:........:..... |:|
+ + + + SSH : : wg-Tunnel&
++++++++++++++++++++ SSH ++++++++++++++++++++++++++++++ |+| :..SSH.......... : SSH
+ + |+| : SSH |:|
Cloud +++ + |+| Cloud : : |:|
--------------------------------------+---------------------+----|+|------ ---------------:-----------------------:----|:|--------
On-Premise +____________ +____|+|_____ On-Prem :____________ :____|:|_____
| | | | | [ Pi2 ] | | [ Pi1 ] |
| [ Pi2 ] | | [ Pi1 ] | | darkstat |...SSH....| Backups |
| |+ SSH ++| Backups | | DiscordBot | | Ansible |
| DiscordBot | | Ansible | |____________| |____________|
|____________| |____________|
``` ```
Die Ascii-Grafik skizziert den groben Aufbau meiner Infrastruktur und ist relativ selbsterklärend. Die Ascii-Grafik skizziert den groben Aufbau meiner Infrastruktur und ist relativ selbsterklärend.
Einige Details möchte ich dennoch hervorheben: 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 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 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 + um mein lokales Netz aus der Distanz warten habe ich eine externe VM per VPN Tunnel mit Pi1 verbunden
## Anwendungen ## Anwendungen
Im folgenden werde kurz Auflisten welche Im folgenden werde kurz Auflisten welche Anwendungen ich betreibe.
#### Passwort-Manager: Vaultwarden
Ich betreibe [Vaultwarden](https://github.com/dani-garcia/vaultwarden), ein Passwort-Management-Server für den Selbstbetrieb.
Der Server ist mit Bitwarden Clients kompatibel und wird inoffiziell auch von Bitwarden Entwicklern unterstützt. Außerdem
läuft auf der VM Fail2Ban um Clients mit zu vielen falschen Passworteingaben zu sperren.
![Vaultwarden Screenshot](vaultwarden.png)
#### Webseite: benji0x3c
Auf einer anderen VM läuft diese statische Webseite. Dafür nutze ich [Zola](https://github.com/getzola/zola) mit dem [tabi](https://github.com/welpo/tabi) Theme.
Ich finde statische Seiten sehr praktisch und glaube, dass sie für viele Anwendungsfälle völlig ausreichen.
Dadurch ließe sich auch die Menge an unsicheren Webauftritten drastische reduzieren.
#### Monitoring: Checkmk
Natürlich braucht jede Infrastruktur ein Monitoring. Ich nutze dafür [Checkmk](https://checkmk.com/), weil mir die Benutzeroberfläche gefällt und es für mich gut funktioniert.
Da ich auf meinem Router kein Port-Forwarding aktivieren möchte, aber der Monitoring-Server die Agents kontaktieren muss, pushen die Raspberries ihren Output
selbständig per SCP auf den Server. Ich habe außerdem eine Reihe an eigenen Checks per Shell-Script gebaut, die z.B. den Wireguard Tunnel oder das Alter der Backups überwachen.
![Vaultwarden Screenshot](checkmk-status.png)
#### Git-Repo: Gitea
Ich hoste eine [Gitea](https://about.gitea.com/) Instanz für meine Repositories. Ich habe lange Github benutzt, aber einerseits finde ich die Repo-Verwaltung dort relativ umständlich,
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.
#### 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.
## 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
und ich lerne fast jede Woche dazu. Einige Pläne habe ich schon, sobald ich Geld für die benötigte Hardware übrig habe:
* redundante Backups mit RAID
* ein Intrusion-Detection-System auf einem Pi mit etwas mehr RAM (z.B. [Suricata](https://suricata.io/))
* einen kleinen Bildschirm mit Monitoring Informationen (z.B. Per Pi Zero)

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB