============================================

🌳 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

  1. Sicherheit durch Transparenz
  2. Kids sehen was passiert
  3. Keine "Magic"-Boxen
  4. Fehler sind Lernchancen

  5. Wachstum durch Schichten

  6. Jedes Level baut auf vorigem auf
  7. Kein Sprung zu groß
  8. Aber auch keine kΓΌnstlichen Limits

  9. Autarkie als Ziel

  10. Eigene Infrastruktur
  11. Keine Cloud-AbhΓ€ngigkeit
  12. Verstehen > Konsumieren

  13. Gemeinschaft als Netz

  14. Gitea = gemeinsames Lernen
  15. Logs = gemeinsames Debuggen
  16. 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!