============================================
π³ DAS KRΓMEL-WALD-NETZ
============================================
Ein Netzwerk, das mit Kindern wΓ€chst
============================================
π± KONZEPT: Vom KrΓΌmel zur Wurzel
Level 1: KRΓMEL (Kids, AnfΓ€nger)
βββ RasPi + Debian
βββ Lernen: Shell, Python, erste Services
Level 2: BΓUME (IntermediΓ€r)
βββ Debian Server
βββ Services: Web, DB, Git
Level 3: WURZELN (Advanced)
βββ Gentoo/FreeBSD
βββ Volle Kontrolle, Kernel, Autarkie
π NETZWERK-TOPOLOGIE (#krabbenschutz & CrumbVPN)
Die Welt da drauΓen bleibt drauΓen. Alles atmet im CrumbVPN-Mesh.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β INTERNET β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β (Nur Port 80/443 fΓΌr Webproxy, oder 51820 fΓΌr VPN)
ββββββββΌβββββββ
β Strato VPS β (TΓ€nzelnder WΓ€chter im IDLE)
β (Router) β (Leitet in den #krabbenschutz-Tunnel)
ββββββββ¬βββββββ
β
[ βοΈ CrumbVPN WireGuard Mesh βοΈ ]
β
βββββββββββββΌββββββββββββ
β β
ββββββΌβββββ βββββββΌββββββ
β ESP32/ β β RasPi β (Kids)
β WLED β β KrΓΌmel β
ββββββ¬βββββ βββββββ¬ββββββ
β β
ββββββββββββ¬ββββββββββββ
β (Γber Tunnel 10.x.x.x)
βββββββΌβββββββ
β RZ Debian β (Postgres, Go-API, Auth)
β Server β
βββββββ¬βββββββ
β
ββββββββββββΌβββββββββββ
β β β
ββββββΌβββββ ββββΌββββ ββββββΌβββββ
β Gitea β βPost- β β Ollama β (Local First AI + DB)
β (3000) β βgres β β (11434) β
βββββββββββ ββββββββ βββββββββββ
π SICHERHEITS-ZONEN
Zone 1: Kids/Learning (RasPi)
- Netz: 192.168.1.100-199
- Zugriff: Limitiert, gefilterter Internetzugang
- Rechte: Sudo erlaubt (zum Lernen!)
- Backup: TΓ€glich Snapshots
Zone 2: Production (Debian Server)
- Netz: 192.168.1.10
- Zugriff: Nur via SSH-Key
- Rechte: Strikte Separation
- Backup: Mehrfach tΓ€glich
Zone 3: Services (localhost only)
- Qdrant: 127.0.0.1:6333 (nur lokal)
- Ollama: 127.0.0.1:11434 (nur lokal)
- MariaDB: 127.0.0.1:3306 (nur lokal)
Zone 4: Extern (Internet-facing)
- Nginx: Port 80/443 (Reverse Proxy)
- Gitea: Port 3000 (via Nginx Proxy)
- API: Via Token Auth
π‘οΈ #KRABBENSCHUTZ (Firewall Rules)
Wir schΓΌtzen den Wald. Nicht indem wir Kinder einsperren, sondern indem wir die TΓΌren nach drauΓen schlieΓen.
RasPi / ESP32 (KrΓΌmel)
# Eingehend: Nur SSH/Status von Mesh-IPs
ufw allow from 10.0.0.0/24 to any port 22
# Ausgehend: Nur DNS und Mesh-Traffc
ufw allow out 53/udp
ufw allow out to 10.0.0.0/24
ufw default deny incoming
ufw default deny outgoing
RZ Debian Server
# Eingehend: WireGuard Port (UDP)
ufw allow 51820/udp
# Innerhalb des Tunnels (wg0)
ufw allow in on wg0 from 10.0.0.0/24
ufw allow out on wg0 to 10.0.0.0/24
# Alle kritischen Services (Postgres, Ollama, API) lauschen NUR auf 10.x.x.x
# Zero public exposure!
ufw default deny incoming
ufw default allow outgoing
π Das CrumbVPN (WireGuard)
Der Lebensnerv des Waldes. Ein dezentrales Mesh.
[ESP32 WLED] <--Tunnelt--> [Strato VPS] <--Tunnelt--> [RZ API & Postgres]
Config: /etc/wireguard/wg0.conf (RZ Server)
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
# Der Strato Router
[Peer]
PublicKey = <STRATO_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32
# Ein KrΓΌmel-ESP32
[Peer]
PublicKey = <ESP32_PUBLIC_KEY>
AllowedIPs = 10.0.0.3/32
π DNS & SERVICE DISCOVERY
Lokales DNS (dnsmasq auf Router)
# /etc/dnsmasq.conf
address=/kruemel.local/192.168.1.10
address=/git.kruemel.local/192.168.1.10
address=/api.kruemel.local/192.168.1.10
Zugriff fΓΌr Kids:
# RasPi kann direkt zugreifen:
ssh user@kruemel.local
git clone http://git.kruemel.local/repo.git
curl http://api.kruemel.local/endpoint
π DATEN-FLOW
βββββββββββ
β RasPi β (Kids programmieren)
β (Dev) β
ββββββ¬βββββ
β git push
βΌ
βββββββββββ
β Gitea β (Code-Repository)
ββββββ¬βββββ
β CI/CD Hook
βΌ
βββββββββββ
β Server β (Tests, Build)
ββββββ¬βββββ
β Deploy
βΌ
βββββββββββ
β Nginx β (Production)
βββββββββββ
π LERNPFAD FΓR KIDS
Woche 1: "Mein erster Server"
- RasPi Setup
- SSH-Verbindung
- Erste Kommandos
Woche 2: "Mein erstes Programm"
- Python-Script schreiben
- Γber SSH ausfΓΌhren
- Logs anschauen
Woche 3: "Mein erster Webserver"
- Nginx installieren
- HTML-Datei erstellen
- Im Browser ΓΆffnen
Woche 4: "Mein erstes Git"
- Git lokal nutzen
- Zu Gitea pushen
- Anderen Code anschauen
Woche 5: "Meine erste API"
- Python FastAPI
- Ersten Endpoint
- Mit curl testen
π¦ EULEN-PRINZIPIEN
- Sicherheit durch Transparenz
- Kids sehen was passiert
- Keine "Magic"-Boxen
-
Fehler sind Lernchancen
-
Wachstum durch Schichten
- Jedes Level baut auf vorigem auf
- Kein Sprung zu groΓ
-
Aber auch keine kΓΌnstlichen Limits
-
Autarkie als Ziel
- Eigene Infrastruktur
- Keine Cloud-AbhΓ€ngigkeit
-
Verstehen > Konsumieren
-
Gemeinschaft als Netz
- Gitea = gemeinsames Lernen
- Logs = gemeinsames Debuggen
- Projekte = gemeinsames Bauen
π³ WACHSTUMSPFAD
RasPi (Debian)
ββ> Verstehen wie Linux funktioniert
ββ> Server (Debian)
ββ> Verstehen wie Services laufen
ββ> Gentoo/FreeBSD
ββ> Verstehen wie ALLES funktioniert
"Der Wald wΓ€chst, weil jeder Baum seine Wurzeln hat.
Die KrΓΌmel lernen, weil das Netz sie trΓ€gt."
π¦ WUHUUUU!