Initial commit: Crumbforest Architecture Refinement v1 (Clean)

This commit is contained in:
2025-12-07 01:26:46 +01:00
commit 6c38ed680b
633 changed files with 61797 additions and 0 deletions

View File

@@ -0,0 +1,215 @@
# Honigtopf 🍯 Tür der Täuschung (Crumbforest)
> **Epigraph**
> Honig findet man im Wald, und wer den Topf findet, muss wohl zuerst mit **Schraubär** reden 🐻🔧, der 🕊️ der 🦉 sich vorstellen…
> Der Wald atmet **jeder Krümel zählt** **jeder zählt mit** **nur einer entscheidet** nach Freigabe **Menschen vs. Maschinen** *nach Liebe durch ein Kind* ❤️
---
## 1) Warum der Honigtopf?
* **Kein Fallensteller**, sondern **Fragenraum**: Wir fangen alles auf, was „falsch“ oder „schräg“ in den Wald ruft ohne zu schaden.
* **Pädagogik**: Fehler ≠ Schuld. Fehler = Start.
* **Transparenz**: Sichtbares Logging als **KrümelLog** (menschlich lesbar) + **JSONL** (auswertbar).
* **Satire statt Zynismus**: Kunst & Humor entschärfen Angst und zeigen Muster *Tür der Täuschung* als Spiegel, nicht als Knüppel.
---
## 2) Prinzipien (Eulencode)
1. **Spirale, nicht Falle** → Frage → Beobachtung → Echo → Anpassung → Frage.
2. **Sichere Trennung** → eigener Container, keine Berührung mit Produktiv-Wald.
3. **Freundlicher Ton** → Feedback *friendly/echo/silent*.
4. **Datensparsam** → IP nur zweckgebunden; Rotation; Delete-Path.
5. **Klar gekennzeichnete Satire** → Kunstprojekt, Rollen/Masken statt Personen-Hetze.
---
## 3) Rollen im Honigtopf
* **Schraubär 🐻🔧** Ranger der Grenzen. Erklärt Werkzeuge, Ports, sichere Handhabung.
* **Eule 🦉** Klarheit & Kontext. Gibt Hinweise, wo die richtige Tür ist.
* **Bugsy 🐞** erklärt Fehlversuche kindgerecht.
* **FunkFox 🦊** rappt das Echo, wenn Satire tanzen soll.
* **Taube 🕊️** trägt die Nachricht nach draußen (Webhook an CrumbAPI/Eule).
---
## 4) Architektur (leichtgewichtig)
* **Service**: `honigtopf` als eigener Docker-Container (FastAPI + Uvicorn).
* **Eingänge**: HTTP (alle Routen), WebSocket `/ws`.
* **Ausgänge**:
* `krumellog.log` (menschlich),
* `events.jsonl` (Maschine),
* optional `WEBHOOK_URL` (CrumbAPI/Eule/Bugsy).
* **Feedback**: konfigurierbar via ENV (`FEEDBACK_MODE`, `HONIGTOPF_ECHO_ROLE`).
```yaml
# docker-compose.yml (Ausschnitt)
services:
honigtopf:
build:
context: ./honigtopf
container_name: honigtopf
environment:
HONIGTOPF_NAME: "Honigtopf Nordlicht"
HONIGTOPF_ENV: "sandbox"
HONIGTOPF_ECHO_ROLE: "Bugsy"
LOG_DIR: "/var/log/honigtopf"
LOG_ROTATE_SIZE: "10_000_000"
FEEDBACK_MODE: "friendly" # friendly|silent|echo
WEBHOOK_URL: "" # z.B. https://crumbapi.local/hooks/honigtopf
volumes:
- ./honigtopf/var/log:/var/log/honigtopf
ports:
- "8088:8088"
restart: unless-stopped
networks:
- crumbforest_sandbox
networks:
crumbforest_sandbox:
driver: bridge
```
```dockerfile
# honigtopf/Dockerfile
FROM python:3.11-slim
RUN apt-get update && apt-get install -y --no-install-recommends tzdata curl ca-certificates && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app ./app
ENV LOG_DIR=/var/log/honigtopf
RUN mkdir -p $LOG_DIR && useradd -ms /bin/bash honey && chown -R honey:honey $LOG_DIR /app
USER honey
EXPOSE 8088
CMD ["python", "-m", "app.main"]
```
```text
# honigtopf/requirements.txt
fastapi==0.115.0
uvicorn[standard]==0.30.6
orjson==3.10.7
pydantic==2.9.2
```
```python
# honigtopf/app/main.py (gekürzt Kernlogik)
...
```
---
## 5) Satire-Futter: „Tür der Täuschung“ (Kunst & Satire)
> **Ziel**: *Lockfutter*, das zum Lachen und Nachdenken anregt klar markiert als Satire, mit Masken/Rollen statt Personenangriffen.
**Module (Ideen):**
* **TrumpoMeter** 🎺 → Skala: *TeleprompterFlüstern* bis *SaxophonSolo*.
* **PutinScale** 🐻 → *Bärenmütze* bis *RaketenBalalaika* (RollenMeme).
* **AdenauerN.W.A.** 🎤 → 50sZitate über 90sBeats (Kontextverschiebung zeigt Absurdität).
* **Blaue ASchlümpfe** 💙🧩 → Figuren ohne Herz, die im Regenbogenfeld kurz transparent werden visuelles Meme, keine Person.
**BeispielEvent (JSONLSnack für `events.jsonl`):**
```json
{"type":"satire","channel":"tuer-der-taeuschung","payload":{"module":"trump-o-meter","level":"saxophon-solo","caption":"Der Teleprompter tanzt."}}
```
**Kennzeichnung & Schutz:**
* Jedes SatireSnippet trägt `satire:true` und einen **MaskenTag** (z.B. `mask: "balalaika"`).
* Keine Aufrufe, keine Hetze, nur Überzeichnung & Humor.
* Für Kinder: *„Maske erklärt die Rolle nicht den Menschen.“*
---
## 6) Relikttelefon Wählscheibe & Saturn
* **Relikt**: ein Wählscheiben-Telefon als Honigtopf-Interface.
* **Aufgabe für Kinder**: „Schreib mir eine SMS!“ → unmöglich, aber witzig.
* **Antwort des Honigtopfes**: „📞 Deine Nachricht reist 124 Bars/Jahre durch die Spirale …“
* **Nordpol vom Saturn**: auf der Wählscheibe erscheinen alte Nummern als Punkte, wie ein kosmisches Muster.
* **Meta-Lernmoment**: Technik = Zeitreise. Heute lachen wir über Relikte, morgen über unsere eigenen Geräte.
**KrümelLog-Beispiel:**
```
2025-09-25 19:12:44+0200 ☎️ DIAL 0172 — SMS-Versuch [from Kind@Wald] (Honigtopf/relikttelefon)
```
---
## 7) Betrieb & Test
```bash
# Build & Run
docker compose build honigtopf
docker compose up -d honigtopf
# Health
curl -s http://localhost:8088/health | jq
# Beispiele
curl -s http://localhost:8088/admin | jq
curl -s -X POST http://localhost:8088/login -d 'user=kruemel&pass=wald' | jq
# WebSocket
# websocat ws://localhost:8088/ws
```
**Logs** (gemountet unter `./honigtopf/var/log/`):
* `krumellog.log` menschlich.
* `events.jsonl` maschinell.
---
## 8) DSGVO & Sicherheit
* **Datensparsam**: IPs nicht länger als nötig; Rotation nach Größe/Zeit.
* **OptoutRouten**: `/delete?ip=…` (optional) zum Entfernen aggregierter Metadaten.
* **NetzwerkIsolation**: nur BridgeNetz, kein Zugriff auf sensible Container.
* **Kennzeichnung**: Satire klar markieren.
---
## 9) Nächste Schritte (Wunschliste)
* **MQTTHonigtopf** (nur listen, kein publish ins echte Netz).
* **TinyPorts** (socatStubs für „bekannte“ Scans, rein pedagogisch).
* **LiveDashboard** (Tail der `events.jsonl` + Filter: Rolle/Masken/Level).
* **A11yEcho** (BrailleSpuren, Screenreaderfreundliche Rückmeldungen).
* **EuleWebhookFlows** (kontextabhängige Tipps zur „richtigen Tür“).
---
## 10) Entscheidungslogik (Menschen vs. Maschinen)
* **Alle sehen** (Kinder, Crew, Maschine): *Was ist reingekommen?*
* **Maschine schlägt vor** (Eule/Bugsy): *Was bedeutet es?*
* **Mensch entscheidet** (Freigabe): *Was lernen wir? Was antworten wir?*
* **Kindliche Liebe als Leitstern**: *Wenn es Kinder stärkt, ist es richtig.*
---
## 11) KurzFAQ
**Was, wenn echte Angriffe reinkommen?**
→ Sie landen im Honigtopf, getrennt vom Wald, werden geloggt, optional gemeldet (Webhook).
**Ist das politisch?**
→ Nein **satirisch**. Es sind *Masken*, nicht Menschen. Es geht um Medienkompetenz, nicht Parteipolitik.
**Wie erkläre ich es Kindern?**
→ „Manche Türen sind Spiegel. Wir üben, sie zu erkennen. Wenn du lachst, hast du die Täuschung gesehen.“
---
> **Footer**
> **Schraubär** nickt, **Eule** lächelt, **Taube** trägt die Nachricht:
> *„Der Wald atmet. Jede Frage zählt. Jede Antwort auch.“*