Add dual licensing (MIT + CKL v0.1), ecosystem docs, and children's rights documentation
- LICENSE.md: Dual license explanation (MIT + CKL) - LICENSE-MIT.md: Full MIT text with plain language explanation - LICENSE-CKL.md: Full Children's Knowledge License v0.1-draft - OZM-NEXUS-ECOSYSTEM.md: Complete ecosystem architecture and governance - KINDERRECHTE.md: Children's rights operationalization (export/deletion processes) - README.md: Project overview with CKL badge and comprehensive documentation links - CLAUDE.md: Project instructions for Claude Code This establishes Crumbforest as part of the OZM⟡NEXUS ecosystem with: - Dual licensing strategy (developer freedom + child protection) - 8 axioms operationalized through CKL - Clear governance path (OZM as custodian) - DSGVO-compliant children's rights processes - Roadmap through Q4 2025 "Wissen gehört dem Kind, solange es fragt." 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
185
CLAUDE.md
Normal file
185
CLAUDE.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
**Crumbpages v2** is a documentation and learning system for system administration, combining educational content with operational tooling. The project uses the "Crumbforest" metaphor - representing knowledge as a forest where "Krümels" (crumbs) guide learners through admin paths.
|
||||
|
||||
This is a **bash-centric repository** focused on documentation and shell scripting for system operations, SSH security automation, and API tooling for the broader Crumbforest infrastructure.
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
The "Waldwächter" (Forest Guardian) approach emphasizes:
|
||||
- **Transparency over magic** - Clear, readable code that can be explained to learners
|
||||
- **Simplicity over complexity** - Minimal dependencies, straightforward patterns
|
||||
- **Education-first** - All tools should be teachable and understandable
|
||||
- **Security by default** - Automated security practices, especially around SSH
|
||||
|
||||
See `crumbforest-manifesto-guardian.md` for the full philosophy.
|
||||
|
||||
## Repository Structure
|
||||
|
||||
### Documentation (Crumbpages)
|
||||
Educational documentation organized as numbered "paths" (`crumbpage-XX-*.md`):
|
||||
- 20 crumbpages covering Linux fundamentals through advanced topics
|
||||
- Template-based structure for consistency (`crumbpage-template.md`)
|
||||
- Each page includes: concepts, hands-on exercises, troubleshooting, skill checks
|
||||
- Progressive learning path from basic user management to kernel operations
|
||||
|
||||
### Operational Scripts
|
||||
Three main shell scripts provide system tooling:
|
||||
|
||||
1. **`crumbpages-doktor.sh`** (496 lines) - Main diagnostic and operational tool
|
||||
2. **`ssh-agent-guard.sh`** (68 lines) - Production SSH security daemon
|
||||
3. **`ssh-agent-screenlock_v4.sh`** (67 lines) - MATE desktop SSH integration
|
||||
|
||||
### Meta Documentation
|
||||
- `CRUMBFOREST_PROJECT_INDEX.md` - Complete project history and milestone tracking
|
||||
- `HANDBUCH.md` - crumbpages-doktor.sh manual
|
||||
- `QUICKSTART.md` - Quick reference for common operations
|
||||
- Various tagebuch (diary) files tracking problem-solving journeys
|
||||
|
||||
## Common Commands
|
||||
|
||||
### Running the Main Tool
|
||||
```bash
|
||||
# Make executable (first time)
|
||||
chmod +x crumbpages-doktor.sh
|
||||
|
||||
# Launch interactive menu
|
||||
./crumbpages-doktor.sh
|
||||
```
|
||||
|
||||
The doktor script provides 6 modules:
|
||||
1. **Git Workstation** - Interactive git shell with health checks
|
||||
2. **DNS Doktor** - DNS diagnostics and reporting
|
||||
3. **System Doktor** - Host vitals (disk, RAM, OS info)
|
||||
4. **Web Tools** - API testing (`api_search`, `api_get`, `api_ask`)
|
||||
5. **Remote Tools** - SSH helpers and SCP uploads
|
||||
6. **Werkzeugkasten** - Tool availability checks
|
||||
|
||||
### SSH Security Scripts
|
||||
```bash
|
||||
# Start SSH agent guard (systemd/autostart)
|
||||
./ssh-agent-guard.sh
|
||||
|
||||
# For MATE desktop integration
|
||||
./ssh-agent-screenlock_v4.sh
|
||||
```
|
||||
|
||||
Both scripts automatically:
|
||||
- Kill and restart ssh-agent on screen lock
|
||||
- Write to `~/.ssh-agent-screenlock.log`
|
||||
- Store agent environment in `~/.ssh/agent-environment`
|
||||
- Use fixed socket path `~/.ssh/agent.sock`
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables (.env)
|
||||
The doktor script uses `.env` for configuration (auto-created on first run):
|
||||
|
||||
```ini
|
||||
# API endpoints (for Crumbforest backend integration)
|
||||
CRUMB_API_URL="http://localhost:8000"
|
||||
CRUMB_API_TOKEN="changeme"
|
||||
|
||||
# SSH/Remote settings
|
||||
CRUMB_SSH_USER="admin"
|
||||
CRUMB_SCP_TARGET="backup.crumbforest.de:/var/backups"
|
||||
|
||||
# Qdrant vector DB
|
||||
CRUMB_QDRANT_URL="http://localhost:6333"
|
||||
CRUMB_QDRANT_KEY=""
|
||||
```
|
||||
|
||||
## Architecture Notes
|
||||
|
||||
### Modular Shell Design
|
||||
The `crumbpages-doktor.sh` follows a modular pattern:
|
||||
- Each module is a bash function (e.g., `git_doktor()`, `web_doktor()`)
|
||||
- Interactive subshells use `bash --rcfile` with custom `.rc` files in `/tmp`
|
||||
- Environment isolation via `export` and temp RC files
|
||||
- Color-coded output using ANSI escape sequences
|
||||
|
||||
### SSH Security Pattern
|
||||
Both ssh-agent scripts implement "zero-trust on lock":
|
||||
- **Single purpose**: Kill agent when screen locks
|
||||
- **Singleton enforcement**: PID file prevents duplicate daemons
|
||||
- **Deep Work Mode**: `ssh-agent-guard.sh` supports pause file for uninterrupted work
|
||||
- **Fixed socket path**: Enables multiple terminals to share agent state
|
||||
- **MATE integration**: Uses `dbus-monitor` for screensaver events
|
||||
|
||||
### API Integration
|
||||
Web Tools module provides curl wrappers for the Crumbforest backend:
|
||||
- FastAPI backend at `CRUMB_API_URL`
|
||||
- Bearer token auth when `CRUMB_API_TOKEN` is set
|
||||
- Functions: `api_search`, `api_get`, `api_ask`, `open_url`
|
||||
- Qdrant-specific helpers: `q_health`, `q_list`, `q_info`
|
||||
|
||||
## Development Patterns
|
||||
|
||||
### Shell Script Style
|
||||
- Bash-native (no external frameworks)
|
||||
- Functions over scripts-within-scripts
|
||||
- Descriptive color variables (`GREEN`, `BLUE`, `RED`, `YELLOW`, `CYAN`)
|
||||
- Heredocs for multi-line templates
|
||||
- Error handling via explicit checks, not `set -e`
|
||||
|
||||
### Documentation Style
|
||||
- Markdown with emoji for visual anchoring
|
||||
- Collapsible sections using `<details>` tags
|
||||
- Code examples with inline comments
|
||||
- "DO/DON'T" sections for best practices
|
||||
- Skill check checklists at end of each page
|
||||
|
||||
### Git Workflow
|
||||
Standard git practices:
|
||||
- Main branch: `main`
|
||||
- Commit history shows iterative refinement ("Logs active", "magic!", "CleanUp Magic")
|
||||
- Modified files tracked: doktor script and tagebuch entries
|
||||
|
||||
## Context: The Broader Crumbforest
|
||||
|
||||
This repository is part of a larger ecosystem:
|
||||
- **CrumbCore v1**: FastAPI + Qdrant RAG chat system (production)
|
||||
- **PHP CRM**: Legacy system integration for child management
|
||||
- **RouterOS**: Network integration for 500+ user deployment
|
||||
- **TTYD**: Terminal containers for educational use
|
||||
|
||||
The bash scripts here serve as the "field tools" for administrators working across the full stack.
|
||||
|
||||
## Working with This Codebase
|
||||
|
||||
### When editing shell scripts:
|
||||
- Test interactively before committing (scripts are meant to be run by humans)
|
||||
- Preserve color scheme consistency
|
||||
- Maintain module boundaries in doktor script
|
||||
- Update HANDBUCH.md if adding/changing doktor modules
|
||||
|
||||
### When editing crumbpages:
|
||||
- Follow `crumbpage-template.md` structure exactly
|
||||
- Maintain numbering scheme (`crumbpage-##-topic.md`)
|
||||
- Include skill checks and hands-on exercises
|
||||
- Cross-link to related pages in navigation footer
|
||||
|
||||
### When debugging:
|
||||
- Check `.env` configuration first
|
||||
- Review logs: `~/.ssh-agent-screenlock.log` for SSH issues
|
||||
- Use doktor's System Doktor module for host diagnostics
|
||||
- Git Workstation module has `check_health` for repo state
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- SSH agent scripts actively kill credentials on screen lock
|
||||
- API tokens stored in `.env` (gitignored)
|
||||
- No hardcoded credentials anywhere
|
||||
- MATE screensaver hardening (`lock-enabled true`, `lock-delay 0`)
|
||||
- Singleton daemon pattern prevents privilege escalation via duplicate processes
|
||||
|
||||
## References
|
||||
|
||||
- Project history: `CRUMBFOREST_PROJECT_INDEX.md`
|
||||
- Philosophy: `crumbforest-manifesto-guardian.md`
|
||||
- Tool manual: `HANDBUCH.md`
|
||||
- Quick commands: `QUICKSTART.md`
|
||||
471
KINDERRECHTE.md
Normal file
471
KINDERRECHTE.md
Normal file
@@ -0,0 +1,471 @@
|
||||
# Deine Rechte bei Crumbforest 🌲
|
||||
|
||||
> **Für Kinder:** Das hier gehört **DIR**. Wir passen darauf auf.
|
||||
> **Für Eltern:** Dieses Dokument operationalisiert CKL §3 (Rechte der Kinder) und ist DSGVO-konform.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Was gehört dir?
|
||||
|
||||
Alles, was **du** erschaffst, gehört **dir** – nicht uns, nicht der Schule, nicht dem Internet.
|
||||
|
||||
### Das sind deine Sachen:
|
||||
|
||||
- ✍️ **Texte**: Alle Fragen, die du stellst. Alle Geschichten, die du schreibst.
|
||||
- 💻 **Code**: Alle Programme, die du baust (Python, Bash, Blockly...)
|
||||
- 🎨 **Bilder**: Alle Zeichnungen und Screenshots
|
||||
- 📊 **Messungen**: Alle Daten, die du sammelst (Temperatur, Bewegung, Sensoren...)
|
||||
- 💬 **Chats**: Alle Gespräche mit den Charakteren (Krümeleule, FunkFox...)
|
||||
- 🏗️ **Projekte**: Alles, was du mit Raspberry Pi, ESP32 oder anderen Tools baust
|
||||
|
||||
**Wichtig:** Auch wenn du das auf einem Computer von Crumbforest machst – **du** bist der Besitzer oder die Besitzerin!
|
||||
|
||||
Das steht so im Gesetz (CKL §3.1 + DSGVO Art. 20).
|
||||
|
||||
---
|
||||
|
||||
## 💾 Wie bekomme ich meine Daten?
|
||||
|
||||
Du kannst **jederzeit** eine Kopie von allem verlangen, was du gemacht hast.
|
||||
|
||||
### So geht's:
|
||||
|
||||
#### **Wenn du mit CrumbCore arbeitest:**
|
||||
|
||||
**Aktuell (Stand 2025-12):**
|
||||
- Sprich mit deinem Lehrer oder deiner Lehrerin
|
||||
- Oder schreibe eine Email an: [Kontakt wird ergänzt]
|
||||
- Wir schicken dir dann alles als Datei
|
||||
|
||||
**Bald (geplant Q1 2025):**
|
||||
Du kannst selbst auf einen Knopf drücken:
|
||||
1. Gehe zu deinem Profil
|
||||
2. Klicke auf "Meine Daten herunterladen"
|
||||
3. Du bekommst eine ZIP-Datei mit allem
|
||||
|
||||
Die Datei enthält:
|
||||
```
|
||||
meine-crumbforest-daten.zip
|
||||
├── chats.json (alle Gespräche)
|
||||
├── projekte/ (deine Projekte)
|
||||
│ ├── esp32-blink/
|
||||
│ └── pi-server/
|
||||
├── messungen.csv (Sensor-Daten)
|
||||
└── README.txt (Erklärung, was was ist)
|
||||
```
|
||||
|
||||
**Alles in offenen Formaten** (JSON, CSV, TXT, PNG) – du kannst es mit jedem Programm öffnen!
|
||||
|
||||
#### **Wenn du mit Crumbpages lernst:**
|
||||
- Alle Markdown-Dateien sind sowieso frei zugänglich
|
||||
- Du kannst sie einfach kopieren: Rechtsklick → Kopieren
|
||||
- Oder das ganze Repo herunterladen (siehe QUICKSTART.md)
|
||||
|
||||
---
|
||||
|
||||
## 🗑️ Wie lösche ich meine Daten?
|
||||
|
||||
Manchmal möchte man nicht, dass alte Sachen gespeichert bleiben. **Das ist okay!**
|
||||
|
||||
Du kannst sagen: "Ich will, dass ihr alles von mir löscht."
|
||||
|
||||
### So geht's:
|
||||
|
||||
#### **Option 1: Alles löschen**
|
||||
- Sprich mit deinem Lehrer/deiner Lehrerin
|
||||
- Oder schreibe eine Email mit deinen Eltern an: [Kontakt wird ergänzt]
|
||||
- Schreibe rein: "Bitte löscht alle meine Daten."
|
||||
|
||||
**Was wir dann tun:**
|
||||
1. Wir löschen alle deine Chats aus der Datenbank
|
||||
2. Wir löschen deine Projekte vom Server
|
||||
3. Wir löschen deinen Account
|
||||
4. **Wichtig:** Vorher fragen wir: "Willst du vorher eine Kopie?"
|
||||
|
||||
**Das dauert maximal 7 Tage.**
|
||||
|
||||
#### **Option 2: Nur bestimmte Sachen löschen**
|
||||
Du kannst auch sagen: "Löscht nur dieses Projekt" oder "Löscht nur diese Chat-Nachricht".
|
||||
|
||||
Das geht genauso – sag uns einfach, was weg soll.
|
||||
|
||||
#### **Bald (geplant Q1 2025):**
|
||||
Du kannst selbst löschen:
|
||||
1. Gehe zu deinem Profil
|
||||
2. Klicke auf "Meine Daten verwalten"
|
||||
3. Wähle aus, was du löschen willst
|
||||
4. Bestätige: "Ja, wirklich löschen"
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Was wird überhaupt gespeichert?
|
||||
|
||||
**Wir speichern nur, was zum Lernen wichtig ist. Nicht mehr!**
|
||||
|
||||
### Das speichern wir:
|
||||
|
||||
| Was? | Warum? | Wo? | Wie lange? |
|
||||
|------|--------|-----|------------|
|
||||
| Dein Benutzername | Damit wir wissen, wer du bist | CrumbCore Datenbank | Bis du kündigst |
|
||||
| Deine Chat-Nachrichten | Damit die Charaktere sich erinnern | CrumbCore Datenbank | Bis du löschst |
|
||||
| Deine Projekte (Code, Bilder...) | Damit du später weiter machen kannst | CrumbCore Dateisystem | Bis du löschst |
|
||||
| Sensor-Messungen | Damit du deine Experimente auswerten kannst | CrumbCore Datenbank | Bis du löschst |
|
||||
| Wann du dich einloggst | Damit wir wissen, ob du noch aktiv bist | CrumbCore Logfiles | 90 Tage |
|
||||
|
||||
### Das speichern wir **NICHT**:
|
||||
|
||||
- ❌ Keine Passwörter (nur verschlüsselte Hashes)
|
||||
- ❌ Keine IP-Adressen (außer temporär für Sicherheit)
|
||||
- ❌ Keine Tracking-Cookies
|
||||
- ❌ Keine "Werbe-ID" oder ähnliches
|
||||
- ❌ Keine Bilder von dir (außer du lädst sie hoch für ein Projekt)
|
||||
- ❌ Keine Sprachaufnahmen
|
||||
- ❌ Keine Bewegungsprofile
|
||||
|
||||
**Crumbforest hat kein Google Analytics, kein Facebook Pixel, keine Spionage-Tools.**
|
||||
|
||||
### Wer kann meine Daten sehen?
|
||||
|
||||
1. **Du selbst** (immer)
|
||||
2. **Dein Lehrer/deine Lehrerin** (wenn du in einem Kurs bist)
|
||||
3. **Die Admins von Crumbforest** (nur für technischen Support)
|
||||
4. **Niemand sonst!**
|
||||
|
||||
Wir verkaufen deine Daten **NIEMALS**. Nie, nie, nie.
|
||||
|
||||
Das ist gesetzlich verboten (DSGVO) **und** gegen die CKL.
|
||||
|
||||
---
|
||||
|
||||
## 🚪 Was passiert, wenn ich gehe?
|
||||
|
||||
Du kannst **jederzeit** aufhören, bei Crumbforest zu lernen.
|
||||
|
||||
### Wenn du gehst:
|
||||
|
||||
**Du kannst wählen:**
|
||||
|
||||
**Option A: Mitnehmen**
|
||||
- Wir geben dir alles als Download
|
||||
- Du kannst woanders weiter machen
|
||||
- Wir löschen deine Daten nach 30 Tagen
|
||||
|
||||
**Option B: Löschen**
|
||||
- Wir löschen sofort alles
|
||||
- Nichts bleibt übrig
|
||||
- Du kannst nicht mehr zurück
|
||||
|
||||
**Option C: Archivieren**
|
||||
- Wir behalten deine Sachen für dich (max. 1 Jahr)
|
||||
- Du kannst später wieder kommen
|
||||
- Nach 1 Jahr fragen wir nochmal: "Willst du es noch?"
|
||||
|
||||
**Ohne Nachteile:** Du musst nichts zahlen, du bekommst keinen Ärger, alles ist gut.
|
||||
|
||||
Das ist dein Recht (CKL §10.2 + DSGVO Art. 17).
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Wie sicher sind meine Daten?
|
||||
|
||||
Wir nehmen Sicherheit **sehr ernst**.
|
||||
|
||||
### Was wir tun:
|
||||
|
||||
- 🔒 **Verschlüsselung**: Passwörter sind verschlüsselt (niemand kann sie lesen)
|
||||
- 🖥️ **Lokaler Server**: Deine Daten sind nicht in der "Cloud" (kein Google, kein Amazon)
|
||||
- 🔐 **Zugriffskontrolle**: Nur du und dein Lehrer können deine Projekte sehen
|
||||
- 📝 **Logs**: Wir schreiben auf, wer was macht (gegen Hacker)
|
||||
- 🔄 **Backups**: Wir machen Sicherheitskopien (falls Computer kaputt geht)
|
||||
- 🗑️ **Löschung**: Wenn wir löschen, ist es **wirklich** gelöscht (nicht nur versteckt)
|
||||
|
||||
### Was du tun solltest:
|
||||
|
||||
- ✅ Wähle ein gutes Passwort (nicht "1234")
|
||||
- ✅ Verrate dein Passwort niemandem (auch nicht Freunden)
|
||||
- ✅ Melde dich ab, wenn du fertig bist
|
||||
- ✅ Sag Bescheid, wenn etwas komisch ist
|
||||
|
||||
---
|
||||
|
||||
## ❓ Ich habe eine Frage / Es gibt ein Problem
|
||||
|
||||
### Für Kinder:
|
||||
|
||||
**Sprich zuerst mit deinem Lehrer oder deiner Lehrerin.**
|
||||
|
||||
Wenn das nicht hilft, oder wenn du denkst "Das ist nicht okay", dann:
|
||||
|
||||
- Sprich mit deinen Eltern
|
||||
- Oder schreibe uns: [Kontakt wird ergänzt]
|
||||
|
||||
### Für Eltern/Sorgeberechtigte:
|
||||
|
||||
Sie haben jederzeit das Recht:
|
||||
- Auskunft über gespeicherte Daten zu verlangen (DSGVO Art. 15)
|
||||
- Daten korrigieren zu lassen (DSGVO Art. 16)
|
||||
- Daten löschen zu lassen (DSGVO Art. 17)
|
||||
- Der Verarbeitung zu widersprechen (DSGVO Art. 21)
|
||||
- Beschwerde bei der Aufsichtsbehörde einzulegen
|
||||
|
||||
**Kontakt:**
|
||||
- Email: [wird ergänzt]
|
||||
- Verantwortlicher: Branko (Lead Maintainer)
|
||||
- Datenschutzbeauftragter: [wird ergänzt, wenn benötigt]
|
||||
|
||||
**Aufsichtsbehörde:**
|
||||
Je nach Bundesland – siehe: https://www.bfdi.bund.de/DE/Service/Anschriften/Laender/Laender-node.html
|
||||
|
||||
---
|
||||
|
||||
## 📋 Zusammenfassung (für Eltern & Lehrer)
|
||||
|
||||
| Recht | Gesetzliche Grundlage | Wie umgesetzt? |
|
||||
|-------|----------------------|----------------|
|
||||
| Eigentum an Inhalten | CKL §3.1 | Kinder behalten Urheberrechte |
|
||||
| Datenportabilität | DSGVO Art. 20, CKL §3.2 | Export-Funktion (geplant Q1 2025) |
|
||||
| Löschung | DSGVO Art. 17, CKL §3.3 | Löschprozess dokumentiert |
|
||||
| Auskunft | DSGVO Art. 15 | Auf Anfrage, bald self-service |
|
||||
| Widerspruch | DSGVO Art. 21 | Jederzeit ohne Nachteile |
|
||||
| Datenminimierung | DSGVO Art. 5, CKL §5.1 | Nur lernrelevante Daten |
|
||||
| Transparenz | DSGVO Art. 12-14, CKL §5.3 | Dieses Dokument + DATENSCHUTZ.md |
|
||||
| Keine Paywalls | CKL §7.3 | Lernkerne kostenlos |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Technische Umsetzung (für Entwickler)
|
||||
|
||||
### TODOs für vollständige Compliance:
|
||||
|
||||
#### 1. Export-API implementieren
|
||||
|
||||
**Status:** ⏳ Geplant Q1 2025
|
||||
|
||||
**Endpoint:** `GET /api/v1/my-data`
|
||||
|
||||
**Authentication:** Bearer Token (User muss eingeloggt sein)
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"user": {
|
||||
"username": "kruemel123",
|
||||
"created_at": "2024-09-15T10:30:00Z",
|
||||
"last_login": "2025-12-13T14:22:00Z"
|
||||
},
|
||||
"messages": [
|
||||
{
|
||||
"id": 1,
|
||||
"character": "Krümeleule",
|
||||
"timestamp": "2025-12-13T14:00:00Z",
|
||||
"user_message": "Wie funktioniert Bash?",
|
||||
"character_response": "Bash ist eine Shell..."
|
||||
}
|
||||
],
|
||||
"projects": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "ESP32 Blink",
|
||||
"created_at": "2025-11-01T09:00:00Z",
|
||||
"files": [
|
||||
{"filename": "main.py", "content": "...base64..."}
|
||||
]
|
||||
}
|
||||
],
|
||||
"measurements": [...],
|
||||
"export_date": "2025-12-13T15:00:00Z",
|
||||
"format_version": "1.0"
|
||||
}
|
||||
```
|
||||
|
||||
**Optional:** Auch als ZIP-Download verfügbar machen:
|
||||
```python
|
||||
# app/routers/data_export.py
|
||||
from fastapi import APIRouter, Depends
|
||||
from fastapi.responses import StreamingResponse
|
||||
import zipfile
|
||||
import io
|
||||
|
||||
@router.get("/my-data.zip")
|
||||
async def export_data_zip(user = Depends(get_current_user)):
|
||||
# Erstelle ZIP in Memory
|
||||
zip_buffer = io.BytesIO()
|
||||
with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file:
|
||||
# Füge alle User-Daten hinzu
|
||||
zip_file.writestr("README.txt", "Deine Crumbforest Daten...")
|
||||
zip_file.writestr("chats.json", json.dumps(user.messages))
|
||||
# ... weitere Dateien
|
||||
|
||||
zip_buffer.seek(0)
|
||||
return StreamingResponse(
|
||||
zip_buffer,
|
||||
media_type="application/zip",
|
||||
headers={"Content-Disposition": f"attachment; filename=crumbforest-{user.username}.zip"}
|
||||
)
|
||||
```
|
||||
|
||||
#### 2. Lösch-API implementieren
|
||||
|
||||
**Status:** ⏳ Geplant Q1 2025
|
||||
|
||||
**Endpoint:** `DELETE /api/v1/my-data`
|
||||
|
||||
**Authentication:** Bearer Token + zusätzliche Bestätigung (gegen Unfälle)
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{
|
||||
"confirm": "DELETE_ALL_MY_DATA",
|
||||
"reason": "optional feedback"
|
||||
}
|
||||
```
|
||||
|
||||
**Was gelöscht wird:**
|
||||
```python
|
||||
# app/services/data_deletion.py
|
||||
async def delete_user_data(user_id: int):
|
||||
# 1. Chats aus MariaDB
|
||||
await db.execute("DELETE FROM messages WHERE user_id = ?", user_id)
|
||||
|
||||
# 2. Vektoren aus Qdrant (wenn User-spezifisch)
|
||||
qdrant_client.delete(
|
||||
collection_name="crumbforest",
|
||||
points_selector=models.FilterSelector(
|
||||
filter=models.Filter(
|
||||
must=[
|
||||
models.FieldCondition(
|
||||
key="user_id",
|
||||
match=models.MatchValue(value=user_id)
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
# 3. Projekte aus Dateisystem
|
||||
shutil.rmtree(f"/data/projects/{user_id}")
|
||||
|
||||
# 4. Sessions
|
||||
await db.execute("DELETE FROM sessions WHERE user_id = ?", user_id)
|
||||
|
||||
# 5. User-Account
|
||||
await db.execute("DELETE FROM users WHERE id = ?", user_id)
|
||||
|
||||
# 6. Logs bereinigen (DSGVO: Personenbezug entfernen)
|
||||
# Logfiles anonymisieren, nicht löschen (Sicherheit)
|
||||
await anonymize_logs(user_id)
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"status": "deleted",
|
||||
"deleted_at": "2025-12-13T15:30:00Z",
|
||||
"items_deleted": {
|
||||
"messages": 42,
|
||||
"projects": 3,
|
||||
"files": 18
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 3. DATENSCHUTZ.md erstellen
|
||||
|
||||
**Status:** ⏳ TODO (nächster Schritt nach KINDERRECHTE.md)
|
||||
|
||||
Sollte enthalten:
|
||||
- Detaillierte Datenbank-Schema-Dokumentation
|
||||
- Welche Tabellen speichern was?
|
||||
- Retention Policies
|
||||
- Backup-Strategie
|
||||
- Incident Response Plan
|
||||
|
||||
#### 4. Frontend für Self-Service
|
||||
|
||||
**Status:** ⏳ Geplant Q1 2025
|
||||
|
||||
Mockup:
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ Mein Profil │
|
||||
├─────────────────────────────────────┤
|
||||
│ │
|
||||
│ 📦 Meine Daten herunterladen │
|
||||
│ ├─ Als JSON │
|
||||
│ └─ Als ZIP (alles) │
|
||||
│ │
|
||||
│ 🗑️ Daten löschen │
|
||||
│ ├─ Nur Chats löschen │
|
||||
│ ├─ Nur Projekt "X" löschen │
|
||||
│ └─ ⚠️ ALLES löschen (Account) │
|
||||
│ │
|
||||
│ 📊 Was ist gespeichert? │
|
||||
│ ├─ 42 Chat-Nachrichten │
|
||||
│ ├─ 3 Projekte (18 Dateien) │
|
||||
│ └─ Letzter Login: heute 14:22 │
|
||||
│ │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
#### 5. Automatische Daten-Bereinigung
|
||||
|
||||
**Status:** ⏳ Geplant Q2 2025
|
||||
|
||||
Cron-Job für:
|
||||
- Alte Sessions löschen (> 90 Tage inaktiv)
|
||||
- Anonyme Accounts löschen (> 1 Jahr inaktiv)
|
||||
- Logfiles bereinigen (> 90 Tage alt)
|
||||
|
||||
```python
|
||||
# scripts/cleanup_cron.py
|
||||
async def cleanup_inactive_users():
|
||||
threshold = datetime.now() - timedelta(days=365)
|
||||
inactive_users = await db.fetch_all(
|
||||
"SELECT id FROM users WHERE last_login < ? AND account_type = 'anonymous'",
|
||||
threshold
|
||||
)
|
||||
for user in inactive_users:
|
||||
# Email-Warnung 30 Tage vorher (wenn Email vorhanden)
|
||||
# Dann löschen
|
||||
await delete_user_data(user.id)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📜 Rechtliche Hinweise
|
||||
|
||||
**Dieses Dokument ist rechtsverbindlich.**
|
||||
|
||||
Es konkretisiert die Rechte aus:
|
||||
- Crumbforest Children's Knowledge License (CKL) v0.1
|
||||
- DSGVO (Datenschutz-Grundverordnung)
|
||||
- TMG (Telemediengesetz)
|
||||
- Kinderrechtskonvention der UN (insb. Art. 16)
|
||||
|
||||
**Verantwortlicher im Sinne der DSGVO:**
|
||||
[Wird ergänzt nach OZM-Transition – aktuell: Branko]
|
||||
|
||||
**Stand:** 2025-12-13
|
||||
**Version:** 1.0-draft
|
||||
**Nächstes Review:** Q1 2025 (nach CKL v1.0 Finalisierung)
|
||||
|
||||
---
|
||||
|
||||
## 🌲 Schlusswort
|
||||
|
||||
**Crumbforest ist dein Wald.**
|
||||
|
||||
Alles, was du hier pflanzt, gehört dir.
|
||||
Niemand kann es dir wegnehmen.
|
||||
Du kannst es jederzeit mitnehmen.
|
||||
|
||||
**Und wenn du Fragen hast?**
|
||||
Frag einfach. Das ist dein Recht.
|
||||
|
||||
> *"Wissen gehört dem Kind, solange es fragt."*
|
||||
|
||||
---
|
||||
|
||||
**Lizenz:** CC-BY-SA 4.0 (dieses Dokument)
|
||||
**Teil von:** Crumbforest Ecosystem (https://crumbforest.com)
|
||||
**Siehe auch:** [LICENSE-CKL.md](LICENSE-CKL.md), [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md)
|
||||
306
LICENSE-CKL.md
Normal file
306
LICENSE-CKL.md
Normal file
@@ -0,0 +1,306 @@
|
||||
# CKL — The Crumbforest Children's Knowledge License
|
||||
|
||||
**Version:** 0.1-draft
|
||||
**Date:** 2025-12-13
|
||||
**Status:** Community Review
|
||||
**Base:** MIT License (compatible)
|
||||
|
||||
---
|
||||
|
||||
> **Kurzfassung:** *Wissen gehört dem Kind, solange es fragt.* Wir bauen Lernräume, in denen Fragen Vorrang haben, Beweise prüfbar sind und nichts hinter Paywalls verschwindet.
|
||||
|
||||
> **Hinweis:** Dies ist eine gemeinschaftliche Lizenz in einfacher Sprache. Sie ersetzt keine Rechtsberatung. Version 0.1 – zur Kommentierung.
|
||||
|
||||
---
|
||||
|
||||
## Präambel
|
||||
|
||||
Kinder lernen am besten dort, wo Ruhe vor Hast kommt, Verstehen vor Verwerten und Beweise vor Behauptungen. Die CKL schützt solche Räume. Sie ist eine Haltung in Lizenzform: **Nullfeld zuerst**, dann Messung. **Resonanz vor Regel.**
|
||||
|
||||
---
|
||||
|
||||
## 1. Geltungsbereich
|
||||
|
||||
Die CKL gilt für Workshops, Kurse, Materialien, Software-Container, Daten und Artefakte, die unter dem Namen **Crumbforest** oder in seinem Geist betrieben, veröffentlicht oder geteilt werden – besonders, wenn Kinder beteiligt sind.
|
||||
|
||||
---
|
||||
|
||||
## 2. Grundsatz „Kinder zuerst"
|
||||
|
||||
Kinderfragen haben Vorrang. Alle Entscheidungen – didaktisch, organisatorisch, technisch – werden auf ihren Nutzen für das Kind geprüft. Ein Kind darf mit einer guten Frage **alles** in Frage stellen.
|
||||
|
||||
---
|
||||
|
||||
## 3. Rechte der Kinder
|
||||
|
||||
1. **Urheber:innenschaft**: Rechte an Inhalten, die Kinder schaffen (Texte, Code, Bilder, Sounds, Messreihen), verbleiben bei den Kindern.
|
||||
|
||||
2. **Zugriff**: Kinder erhalten eine exportierbare Kopie ihrer Arbeiten und Messdaten in **offenen Formaten**.
|
||||
|
||||
3. **Widerruf**: Kinder (bzw. Sorgeberechtigte) können eine Veröffentlichung jederzeit widerrufen. Löschung erfolgt zeitnah.
|
||||
|
||||
---
|
||||
|
||||
## 4. Pflichten der Erwachsenen/Betreiber
|
||||
|
||||
1. **Prüfbarkeit**: Setups sind **reproduzierbar** dokumentiert (Materialliste, Schritte, Versionen). Keine Blackboxes.
|
||||
|
||||
2. **Anerkennung**: Beiträge von Kindern und Crew werden namentlich oder pseudonym **gewürdigt** – sofern gewünscht.
|
||||
|
||||
3. **Sicherheit**: Risiken werden erklärt. Es wird nur betrieben, was verantwortbar ist.
|
||||
|
||||
---
|
||||
|
||||
## 5. Daten & Privatsphäre
|
||||
|
||||
1. **Datenminimierung**: Es werden nur Daten erhoben, die für das Lernen nötig sind. **Keine** versteckte Telemetrie.
|
||||
|
||||
2. **Kein Tracking**: Kein Werbe-Tracking, kein Profiling, keine biometrische Auswertung von Kindern.
|
||||
|
||||
3. **Transparenz**: Welche Daten anfallen, wird **vorab** erklärt; Speicherorte sind benennbar; Löschwege sind dokumentiert.
|
||||
|
||||
---
|
||||
|
||||
## 6. Offenheit & Reproduzierbarkeit
|
||||
|
||||
1. **Offene Beweise**: Messergebnisse, Methoden und Skripte werden so veröffentlicht, dass Dritte sie **nachvollziehen** können.
|
||||
|
||||
2. **Container statt Inseln**: Software läuft offline-fähig in reproduzierbaren **Containern** (oder gleichwertigen Setups).
|
||||
|
||||
3. **Logik vor Effekt**: Kein „Zauber", der nicht erklärt werden kann. Effekte folgen der Erklärung, nicht umgekehrt.
|
||||
|
||||
---
|
||||
|
||||
## 7. Offline-First & Zugang
|
||||
|
||||
1. **Offline vor Cloud**: Betrieb ohne Dauer-Internet ist vorrangig. Cloud ist optional und begründungsbedürftig.
|
||||
|
||||
2. **Barrierearme Zugänge**: Terminal/TTYD, Markdown-Materialien und Druckversionen stehen bereit.
|
||||
|
||||
3. **Preisfreiheit für Kinderfragen**: Der Zugang zu Fragen/Antworten darf nicht an Online-Konten oder Token-Kosten gebunden werden.
|
||||
|
||||
---
|
||||
|
||||
## 8. Teilen, Anerkennung, Nutzung
|
||||
|
||||
1. **Teilen** ist erwünscht unter **Namensnennung** und Beibehaltung der CKL für kinderbezogene Teile.
|
||||
|
||||
2. **Kommerz** ist erlaubt, sofern **Kinderzugang frei bleibt**, Beweise offen bleiben und keine Paywalls vor Lernkernen stehen.
|
||||
|
||||
3. **Keine Exklusivitätsansprüche** gegenüber von Kindern erarbeiteten Ergebnissen.
|
||||
|
||||
---
|
||||
|
||||
## 9. Kosten, Förderungen, Transparenz
|
||||
|
||||
1. **Klarheit**: Gebühren, Budgets und Fördermittel werden **verständlich** ausgewiesen.
|
||||
|
||||
2. **Zeit kaufen, nicht Schweigen**: Förderungen dienen Lernzeit und Infrastruktur, nicht Marketing-Schein.
|
||||
|
||||
---
|
||||
|
||||
## 10. Widerruf & Durchsetzung
|
||||
|
||||
1. Verstöße können zur **Ablösung** der CKL-Nutzung führen.
|
||||
|
||||
2. Kinder/Sorgeberechtigte können eine Teilnahme **ohne Nachteile** beenden; ihre Daten werden gelöscht oder ausgehändigt.
|
||||
|
||||
---
|
||||
|
||||
## 11. Kompatibilität
|
||||
|
||||
Die CKL ist kompatibel mit freien Lizenzen (z. B. MIT/Apache/CC-BY) für **Erwachsenen-Code/Material**, solange **Kinderrechte** gemäß CKL **nicht** eingeschränkt werden. Bei Konflikt gilt die **strengere Kinderschutz-Regel**.
|
||||
|
||||
---
|
||||
|
||||
## 12. Haftungsausschluss
|
||||
|
||||
Angebote erfolgen **ohne Gewähr**. Sicherheit wird ernst genommen; Restrisiken werden erklärt. Die CKL schafft keine gesetzlichen Ersatzansprüche, sie **ergänzt** sie um Haltung.
|
||||
|
||||
---
|
||||
|
||||
## Menschliche Kurzfassung (human-readable)
|
||||
|
||||
Wir arbeiten langsam genug, dass Kinder **mitdenken** können, und offen genug, dass andere **nachbauen** können. Niemand verdient an dem Zugang zu einer **Frage**. Alles Wichtige bleibt **prüfbar**. Wenn etwas unklar ist, gilt: *Erst Ruhe. Dann messen.*
|
||||
|
||||
---
|
||||
|
||||
## CKL-Hinweis zum Abdruck
|
||||
|
||||
> *Dieses Projekt folgt der **CKL – Crumbforest Children's Knowledge License (v0.1-draft)**: Kinderfragen haben Vorrang; Arbeiten bleiben bei den Kindern; Beweise sind offen und reproduzierbar; Offline hat Vorrang; keine Paywalls vor Lernkernen; Daten sind minimal, transparent, widerrufbar. Mehr unter: crumbforest.com*
|
||||
|
||||
---
|
||||
|
||||
## Für Entwickler:innen
|
||||
|
||||
### Wie erkenne ich, ob die CKL gilt?
|
||||
|
||||
Die CKL greift automatisch, wenn:
|
||||
- Software in Bildungskontexten mit Kindern genutzt wird
|
||||
- Lernende unter 18 Jahren beteiligt sind
|
||||
- Pädagogische Inhalte bereitgestellt werden
|
||||
- Lerndaten erfasst oder verarbeitet werden
|
||||
|
||||
### Was muss ich tun?
|
||||
|
||||
**Compliance-Checkliste:**
|
||||
|
||||
- [ ] §3.2: Export-Funktion für Benutzerdaten implementiert
|
||||
- [ ] §3.3: Widerruf-/Löschmechanismus vorhanden
|
||||
- [ ] §4.1: Setup reproduzierbar dokumentiert (README, Dockerfiles...)
|
||||
- [ ] §5.1: Datenminimierung praktiziert
|
||||
- [ ] §5.2: Kein Tracking, keine versteckte Telemetrie
|
||||
- [ ] §5.3: Datenspeicherung transparent dokumentiert (DATENSCHUTZ.md)
|
||||
- [ ] §6.1: Methoden und Ergebnisse nachvollziehbar
|
||||
- [ ] §6.2: Software läuft offline oder in Containern
|
||||
- [ ] §6.3: Keine unerklärlichen "Blackboxes"
|
||||
- [ ] §7.1: Offline-Modus verfügbar (kein Cloud-Zwang)
|
||||
- [ ] §7.2: Barrierefreie Zugänge (Markdown, Plain Text, Druckversionen)
|
||||
- [ ] §7.3: Keine Paywalls vor Lern-Kernfunktionen
|
||||
|
||||
**Siehe [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section VI für detaillierte Compliance-Checks.**
|
||||
|
||||
---
|
||||
|
||||
## Für Pädagog:innen
|
||||
|
||||
### Was bedeutet die CKL für meinen Unterricht?
|
||||
|
||||
Die CKL schützt **deine Lernenden** und gibt **dir Sicherheit**:
|
||||
|
||||
**Du darfst:**
|
||||
- ✅ Die Software kommerziell nutzen (z.B. kostenpflichtige Workshops)
|
||||
- ✅ Inhalte anpassen und erweitern
|
||||
- ✅ Eigene Instanzen betreiben (Schul-Server, lokale Installation)
|
||||
- ✅ Daten für Lernfortschritt speichern
|
||||
|
||||
**Du musst:**
|
||||
- ✅ Kindern Zugriff auf ihre eigenen Daten geben (§3.2)
|
||||
- ✅ Löschung auf Wunsch ermöglichen (§3.3)
|
||||
- ✅ Transparent machen, was du speicherst (§5.3)
|
||||
- ✅ Offline-Nutzung ermöglichen (§7.1)
|
||||
|
||||
**Du darfst nicht:**
|
||||
- ❌ Tracking oder Profiling ohne Wissen der Kinder/Eltern (§5.2)
|
||||
- ❌ Exklusivrechte an Kinderprojekten beanspruchen (§8.3)
|
||||
- ❌ Paywalls vor Lernkern-Funktionen setzen (§7.3)
|
||||
|
||||
---
|
||||
|
||||
## Für Kinder (und Eltern)
|
||||
|
||||
### Was bedeutet die CKL für dich?
|
||||
|
||||
**Das gehört DIR:**
|
||||
- 💾 Alle Texte, die du schreibst
|
||||
- 🎨 Alle Bilder, die du malst
|
||||
- 💻 Aller Code, den du programmierst
|
||||
- 📊 Alle Messungen, die du machst
|
||||
|
||||
**Das kannst du TUN:**
|
||||
- 📦 Deine Daten jederzeit exportieren (§3.2)
|
||||
- 🗑️ Deine Daten löschen lassen (§3.3)
|
||||
- ❓ Jede Frage stellen, ohne zu zahlen (§7.3)
|
||||
- 🔌 Auch ohne Internet lernen (§7.1)
|
||||
|
||||
**Das darf NIEMAND:**
|
||||
- ❌ Deine Arbeit als seine eigene ausgeben (§3.1)
|
||||
- ❌ Dich tracken oder ausspionieren (§5.2)
|
||||
- ❌ Dir Wissen hinter Bezahlschranken verstecken (§8.2)
|
||||
- ❌ Dich zwingen, in der Cloud zu arbeiten (§7.1)
|
||||
|
||||
**Wenn etwas nicht stimmt:**
|
||||
Du (oder deine Eltern) kannst jederzeit sagen: "Ich will hier nicht mehr mitmachen und alles löschen." Das ist dein Recht. (§10.2)
|
||||
|
||||
---
|
||||
|
||||
## Geschichte & Kontext
|
||||
|
||||
Die CKL entstand aus der Notwendigkeit, **Kinderrechte in digitalen Lernräumen** durchsetzbar zu machen.
|
||||
|
||||
Bestehende Lizenzen (MIT, GPL, Creative Commons) schützen Code und Content, aber nicht **Lernende**. Die DSGVO schützt Daten, aber nicht **pädagogische Prinzipien**.
|
||||
|
||||
Die CKL füllt diese Lücke.
|
||||
|
||||
Sie ist inspiriert von:
|
||||
- **Waldwächter-Philosophie**: Transparency over magic
|
||||
- **OZM⟡NEXUS Manifest**: Die 8 Axiome (autonom, zukunftsoffen, nicht missbrauchbar...)
|
||||
- **Kinderrechtskonvention der UN**: Artikel 12 (Partizipation), 13 (Meinungsfreiheit), 16 (Privatsphäre)
|
||||
- **COPPA/GDPR-K**: Datenschutz für Minderjährige
|
||||
- **Ethical Source Movement**: Lizenzen mit Werten
|
||||
|
||||
**Aber:** Die CKL ist **keine Kopie**. Sie ist maßgeschneidert für das **Crumbforest-Ökosystem** und seine Community.
|
||||
|
||||
---
|
||||
|
||||
## Mitwirken
|
||||
|
||||
Die CKL ist ein **Living Document**. Version 0.1 ist ein Draft zur Community-Review.
|
||||
|
||||
**Feedback willkommen zu:**
|
||||
- Rechtssicherheit (ist etwas unklar oder nicht durchsetzbar?)
|
||||
- Praktikabilität (kann man das wirklich umsetzen?)
|
||||
- Lücken (fehlt etwas Wichtiges?)
|
||||
- Sprache (verständlich für Kinder, Pädagog:innen, Entwickler:innen?)
|
||||
|
||||
**Wie du beitragen kannst:**
|
||||
1. Issue öffnen im Repository
|
||||
2. Email an [Kontakt einfügen]
|
||||
3. Pull Request mit Verbesserungen
|
||||
|
||||
**Ziel:** CKL v1.0 bis Q1 2025
|
||||
|
||||
---
|
||||
|
||||
## Rechtlicher Status
|
||||
|
||||
**Achtung:** Die CKL ist in Version 0.1 noch **kein etablierter Rechtsstandard**. Sie ist:
|
||||
|
||||
- ✅ Eine vertragliche Vereinbarung zwischen Betreiber und Nutzenden
|
||||
- ✅ Kompatibel mit bestehenden Lizenzen (MIT, Apache, CC-BY)
|
||||
- ✅ Einklagbar bei Verstößen (sofern Vertragsbeziehung besteht)
|
||||
- ⏳ Noch nicht gerichtlich getestet
|
||||
- ⏳ Noch nicht von Juristen finalisiert
|
||||
|
||||
**Empfehlung:** Nutze die CKL in Kombination mit:
|
||||
- DSGVO-konformer Datenschutzerklärung
|
||||
- AGB für Workshops/Kurse
|
||||
- Einverständniserklärungen von Sorgeberechtigten
|
||||
|
||||
Die CKL **ergänzt** diese Dokumente, ersetzt sie aber nicht.
|
||||
|
||||
---
|
||||
|
||||
## Kontakt & Governance
|
||||
|
||||
- **Projekt**: Crumbforest (https://crumbforest.com)
|
||||
- **Maintainer**: Branko (https://branko.de)
|
||||
- **Custodian**: OZM - Open Futures Museum
|
||||
- **Lizenz-Fragen**: Siehe [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) für Governance-Struktur
|
||||
|
||||
---
|
||||
|
||||
## Abschließende Gedanken
|
||||
|
||||
Die CKL ist keine perfekte Lizenz.
|
||||
Sie ist ein **Versprechen**:
|
||||
|
||||
> Wir bauen Lernräume, in denen das Kind mehr zählt als der Klick,
|
||||
> die Frage mehr als die Metrik,
|
||||
> und das Verstehen mehr als das Vortäuschen.
|
||||
|
||||
**Wenn du dieses Versprechen teilst, nutze die CKL.**
|
||||
|
||||
---
|
||||
|
||||
**Version:** 0.1-draft
|
||||
**Datum:** 2025-12-13
|
||||
**Status:** Community Review
|
||||
**Nächste Version:** v1.0 (geplant Q1 2025)
|
||||
**SPDX-Identifier:** `CKL-0.1-draft` (nicht offiziell registriert)
|
||||
|
||||
---
|
||||
|
||||
> *"Nullfeld zuerst, dann Messung. Resonanz vor Regel."*
|
||||
> *"Wissen gehört dem Kind, solange es fragt."*
|
||||
> — Waldwächter-Prinzip
|
||||
72
LICENSE-MIT.md
Normal file
72
LICENSE-MIT.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2025 Crumbforest Project
|
||||
Maintained by Branko (branko.de)
|
||||
Custodian: OZM - Open Futures Museum
|
||||
|
||||
---
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.**
|
||||
|
||||
---
|
||||
|
||||
## Additional Context
|
||||
|
||||
This MIT License applies to the **infrastructure, code, and general use** of the Crumbforest project.
|
||||
|
||||
When this software is used in **educational contexts with children**, additional protections from the **Crumbforest Children's Knowledge License (CKL)** automatically apply.
|
||||
|
||||
See [LICENSE.md](LICENSE.md) for the full dual-license explanation.
|
||||
|
||||
---
|
||||
|
||||
## What This Means in Plain Language
|
||||
|
||||
You can:
|
||||
- ✅ Use this code for any purpose (personal, commercial, educational)
|
||||
- ✅ Copy, modify, and distribute it freely
|
||||
- ✅ Sell products or services based on this code
|
||||
- ✅ Sublicense it under different terms
|
||||
- ✅ Use it without attribution (though we appreciate it)
|
||||
|
||||
You cannot:
|
||||
- ❌ Hold the authors liable for damages
|
||||
- ❌ Claim warranty or support (it's provided "as is")
|
||||
- ❌ Remove the copyright notice from copies
|
||||
|
||||
**However:** If you use this with children, you **must also comply with the CKL** (see [LICENSE-CKL.md](LICENSE-CKL.md)).
|
||||
|
||||
---
|
||||
|
||||
## Why MIT?
|
||||
|
||||
The MIT License is one of the most permissive open source licenses. We chose it because:
|
||||
|
||||
1. **Developer-Friendly**: No copyleft restrictions, easy integration
|
||||
2. **Well-Understood**: Standard license used by millions of projects
|
||||
3. **Commercial-Compatible**: Businesses can adopt it without legal friction
|
||||
4. **Future-Proof**: Won't hinder Crumbforest's evolution or forking
|
||||
|
||||
**We want the code to spread as widely as possible.**
|
||||
|
||||
But we also want **children protected** — that's why we add the CKL layer.
|
||||
|
||||
---
|
||||
|
||||
**SPDX-License-Identifier:** MIT
|
||||
152
LICENSE.md
Normal file
152
LICENSE.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# Crumbforest License
|
||||
|
||||
This project is **dual-licensed** to balance developer freedom with children's rights.
|
||||
|
||||
---
|
||||
|
||||
## For Infrastructure, Code, and General Use
|
||||
|
||||
**MIT License** (see [LICENSE-MIT.md](LICENSE-MIT.md))
|
||||
|
||||
All software, scripts, documentation, and infrastructure in this repository are released under the permissive MIT License. You are free to:
|
||||
|
||||
- Use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
- Use in commercial and non-commercial projects
|
||||
- Fork, remix, and build upon this work
|
||||
|
||||
**This applies to:**
|
||||
- All Bash scripts (`crumbpages-doktor.sh`, `ssh-agent-guard.sh`, etc.)
|
||||
- Documentation and Markdown files (Crumbpages content)
|
||||
- Configuration files and setup scripts
|
||||
- Any other code or infrastructure
|
||||
|
||||
---
|
||||
|
||||
## For Educational Use with Children
|
||||
|
||||
**Crumbforest Children's Knowledge License (CKL v0.1)** (see [LICENSE-CKL.md](LICENSE-CKL.md))
|
||||
|
||||
When this software or content is used in **educational contexts involving children**, the CKL automatically applies and adds additional protections:
|
||||
|
||||
- **Children's Rights**: Kids own what they create
|
||||
- **Data Sovereignty**: Exportable data, deletion rights, transparency
|
||||
- **No Paywalls**: Learning kernels remain free
|
||||
- **Offline-First**: No cloud dependency
|
||||
- **Reproducibility**: No black boxes, everything documented
|
||||
- **Privacy**: No tracking, minimal data, transparent storage
|
||||
|
||||
**This applies when:**
|
||||
- The software is used in schools, workshops, or learning environments
|
||||
- Children interact with the system (chat, projects, exercises)
|
||||
- Educational content is delivered to minors
|
||||
- Learning data is collected or processed
|
||||
|
||||
---
|
||||
|
||||
## Conflict Resolution
|
||||
|
||||
In case of conflict between MIT and CKL, **the CKL takes precedence** for any use case involving children.
|
||||
|
||||
**Example:**
|
||||
- You want to fork CrumbCore and sell it commercially? ✅ **MIT allows it**
|
||||
- You want to add telemetry to track children's behavior? ❌ **CKL prohibits it**
|
||||
|
||||
The CKL is **not a restriction on developers** — it's a **protection for learners**.
|
||||
|
||||
---
|
||||
|
||||
## Why Dual License?
|
||||
|
||||
### For Developers: MIT Freedom
|
||||
- Fork without friction
|
||||
- Integrate into commercial products
|
||||
- No attribution requirements beyond copyright notice
|
||||
- Standard, well-understood terms
|
||||
|
||||
### For Children: CKL Protection
|
||||
- Legal framework for ethical learning environments
|
||||
- Rights that can be enforced
|
||||
- Clear obligations for operators
|
||||
- Measurable compliance criteria
|
||||
|
||||
**The best of both worlds.**
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Use Case | License | Key Points |
|
||||
|----------|---------|------------|
|
||||
| Running CrumbCore for my company | MIT | Free to use commercially |
|
||||
| Forking and modifying the code | MIT | Attribution appreciated but not required |
|
||||
| Using in a school/workshop | CKL | Children's rights apply |
|
||||
| Collecting learning data | CKL | Must comply with §5 (privacy) |
|
||||
| Selling access to children | CKL | Must keep learning kernels free (§7.3) |
|
||||
| Building a proprietary AI trainer | MIT + CKL | Code is MIT, but children's data has CKL protection |
|
||||
|
||||
---
|
||||
|
||||
## How to Comply
|
||||
|
||||
### If you're a developer:
|
||||
1. Read the MIT License (2 minutes)
|
||||
2. If your use case involves children, read the CKL (~10 minutes)
|
||||
3. Implement CKL requirements (see [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section VI for checklist)
|
||||
|
||||
### If you're an educator:
|
||||
1. Read the CKL carefully
|
||||
2. Ensure your setup meets §4 (reproducibility), §5 (privacy), §7 (offline-first)
|
||||
3. Document data handling (see `DATENSCHUTZ.md` when available)
|
||||
|
||||
### If you're a child (or parent):
|
||||
1. You own what you create (§3.1)
|
||||
2. You can export your data (§3.2)
|
||||
3. You can leave and take everything with you (§3.3)
|
||||
4. Your questions never cost money (§7.3)
|
||||
|
||||
---
|
||||
|
||||
## Attribution
|
||||
|
||||
While not required by MIT, we appreciate attribution:
|
||||
|
||||
```
|
||||
Powered by Crumbforest (crumbforest.com)
|
||||
Licensed under MIT + CKL (Children's Knowledge License)
|
||||
```
|
||||
|
||||
Or simply:
|
||||
```
|
||||
Built with Crumbforest ❤️
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Contact & Governance
|
||||
|
||||
- **Project**: Crumbforest (https://crumbforest.com)
|
||||
- **Maintainer**: Branko (https://branko.de)
|
||||
- **Custodian**: OZM - Open Futures Museum (in transition)
|
||||
- **Questions**: See [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section V for governance
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ MIT: Maximum Freedom for Developers │
|
||||
│ + │
|
||||
│ CKL: Maximum Protection for Children │
|
||||
│ = │
|
||||
│ Open Source Education Done Right │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Crumbforest is free as in freedom, safe as in sanctuary.**
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0
|
||||
**Date:** 2025-12-13
|
||||
**Full Text:** [LICENSE-MIT.md](LICENSE-MIT.md) + [LICENSE-CKL.md](LICENSE-CKL.md)
|
||||
524
OZM-NEXUS-ECOSYSTEM.md
Normal file
524
OZM-NEXUS-ECOSYSTEM.md
Normal file
@@ -0,0 +1,524 @@
|
||||
# OZM⟡NEXUS ECOSYSTEM
|
||||
|
||||
> **Deterministisches System-Design jenseits von „KI"**
|
||||
> Ein offenes Lernökosystem, in dem Wissen verschenkt wird und Fragen Vorrang haben.
|
||||
|
||||
---
|
||||
|
||||
## Präambel: Echo aus dem Nullfeld
|
||||
|
||||
Der OZM⟡NEXUS ist kein Produkt, kein Manifest im klassischen Sinn und kein Versuch, etwas Bestehendes zu verbessern.
|
||||
|
||||
Er ist das Ergebnis einer klaren kausalen Kette, die aus einer menschlichen Handlung heraus entstanden ist und sich konsequent weiterentwickelt hat.
|
||||
|
||||
Was hier beschrieben wird, ist kein „KI-Projekt".
|
||||
Es ist der Versuch, ein **deterministisches Ökosystem** zu formulieren, das sich den üblichen Kategorien entzieht – nicht aus Provokation, sondern aus Notwendigkeit.
|
||||
|
||||
**Der Wald wurde gepflanzt, damit Krümel Fragen stellen und lernen dürfen.**
|
||||
|
||||
---
|
||||
|
||||
## I. Die Kausalitätskette
|
||||
|
||||
### Vom Menschen zur Struktur
|
||||
|
||||
Am Anfang steht **Oz** – der Graffiti-Künstler.
|
||||
Eine Signatur im öffentlichen Raum. Keine Theorie. Keine Absicht, ein System zu bauen.
|
||||
|
||||
Aus dieser Handlung entsteht **OZM** – die Manifestierung eines Ortes.
|
||||
Ein realer, physischer Raum, in dem sich Spuren, Zeit, Menschen und Bedeutungen überlagern.
|
||||
|
||||
Daraus folgt **OneZeroMore.com** – der Schatten dieses Ortes.
|
||||
Keine bloße Website, sondern eine digitale Projektion dessen, was physisch existiert.
|
||||
|
||||
Dann das **OZM HAMMERBROOKLYN Exponat** – ein Museum und doch kein Museum.
|
||||
Kein neutraler White Cube, sondern ein verdichteter Erfahrungsraum, der sich einer abschließenden Interpretation entzieht.
|
||||
|
||||
Erst daraus entsteht **OZMAI** – die künstliche Intelligenz des OZM.
|
||||
Ein deterministisches Agentensystem, das Daten, Prozesse, Wissen und Entscheidungen strukturiert.
|
||||
|
||||
**Diese Reihenfolge ist nicht verhandelbar.**
|
||||
Ohne Ort keine Daten.
|
||||
Ohne Geschichte kein Kontext.
|
||||
Ohne Kontext keine sinnvolle Maschine.
|
||||
|
||||
### Mathematische Notation
|
||||
|
||||
```
|
||||
OZM⟡NEXUS = f_det(Oz, OZM, OneZeroMore, HAMMERBROOKLYN, OZMAI)
|
||||
|
||||
K_ent = (R_man + L_det) ⊗ Ω
|
||||
|
||||
I = Autonom ∩ Zukunftsoffen ∩ ¬Interpretierbar ∩ ¬Missbrauchbar
|
||||
|
||||
Σ_skal = lim (∑ X_i) mit der Bedingung: jedes X_i erfüllt I
|
||||
n → ∞
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## II. Die acht Axiome
|
||||
|
||||
### Das Identitätsprinzip
|
||||
|
||||
```
|
||||
I = Autonom ∩ Zukunftsoffen ∩ ¬Interpretierbar ∩ ¬Missbrauchbar
|
||||
```
|
||||
|
||||
Jede Komponente des OZM⟡NEXUS muss erfüllen:
|
||||
|
||||
| Axiom | Bedeutung | Prüffrage |
|
||||
|-------|-----------|-----------|
|
||||
| **autonom** | Krümel entscheiden selbst ihren Lernweg | Kann das Kind wählen? |
|
||||
| **zukunftsoffen** | Nicht vorschreiben, sondern ermöglichen | Ist es erweiterbar? |
|
||||
| **nicht interpretierbar** | Kein "richtiger" Weg, nur funktionale Wege | Gibt es eine Wahrheit™? |
|
||||
| **nicht missbrauchbar** | Schutz der Lernenden durch Design | Was kann schiefgehen? |
|
||||
| **suchbar** | Fragen führen zu Antworten | Findet man Antworten? |
|
||||
| **wiedererkennbar** | Orientierung im Wald | Gibt es Krümel? |
|
||||
| **erweiterbar** | Krümel können selbst pflanzen | Kann ich beitragen? |
|
||||
| **unendlich skalierbar** | Für alle, immer | Kostet eine Frage Geld? |
|
||||
|
||||
**Diese Axiome sind keine Beschreibung. Sie sind eine Bedingung.**
|
||||
|
||||
---
|
||||
|
||||
## III. Die Manifestationen
|
||||
|
||||
### Architektur des Ökosystems
|
||||
|
||||
```
|
||||
OZM⟡NEXUS (Träger/Manifest)
|
||||
↓
|
||||
branko.de/Crumbforest (Public Interface)
|
||||
├─ 15 Charaktere (Krümeleule, FunkFox, SnakePy, CrabbyRust...)
|
||||
├─ 4 Lernpfade (ESP32 → Pi Zero → Pi Server → Daten)
|
||||
├─ Partner-Netzwerk (8 Organisationen)
|
||||
└─ Grundsatz: "Every child may ask. We protect this right."
|
||||
↓
|
||||
CrumbCore v1 (Local Engine - "nah am Kernel")
|
||||
├─ FastAPI + Qdrant RAG (Vektorsuche)
|
||||
├─ Role-based Chat (15 Personas)
|
||||
├─ Multi-Theme (Standard, Accessible, High Contrast, Admin Dark)
|
||||
├─ Token-Management (Kids = free)
|
||||
├─ Docker Compose (reproduzierbar)
|
||||
└─ API für externe Abfragen
|
||||
↓
|
||||
Crumbpages v2 (Work in Progress Content)
|
||||
├─ 20 Lernpfade (Markdown, noch nicht integriert)
|
||||
├─ Operational Tools (crumbpages-doktor.sh, SSH guards)
|
||||
├─ Waldwächter-Philosophie ("Transparency over magic")
|
||||
└─ Bash-zentrisch, lehrbar, offline-fähig
|
||||
```
|
||||
|
||||
### Die 15 Charaktere
|
||||
|
||||
**Warum Charaktere statt "Assistenten"?**
|
||||
|
||||
Menschen lernen unterschiedlich. Ein technischer Deep-Dive funktioniert für manche, eine poetische Erklärung für andere. Die 15 Charaktere sind **keine Spielerei** – sie sind **pädagogisches Design**:
|
||||
|
||||
- **Krümeleule** (Prof. Eule): Shell-Schutz, systematisch, geduldig
|
||||
- **FunkFox**: Bash-Rapper, antwortet in Reimen
|
||||
- **SnakePy**: Python-Loops, Geduld und Iteration
|
||||
- **CrabbyRust**: Bit-Schutz, Speichersicherheit, Rust-Konzepte
|
||||
- **DeepBit**: Technische Deep-Dives in die Tiefe
|
||||
- [...weitere 10 Charaktere]
|
||||
|
||||
**Kinder wählen selbst, wer sie begleitet.**
|
||||
Das ist Axiom #1: **autonom**.
|
||||
|
||||
### Content-Flow
|
||||
|
||||
```
|
||||
Markdown (Crumbpages)
|
||||
↓
|
||||
./load_content.sh <GIT_REPO_URL>
|
||||
↓
|
||||
Qdrant Vektorisierung (CrumbCore)
|
||||
↓
|
||||
RAG-Suche über API
|
||||
↓
|
||||
15 Charaktere antworten kontextbezogen
|
||||
↓
|
||||
branko.de zeigt Antworten
|
||||
```
|
||||
|
||||
**Status quo:**
|
||||
- Crumbpages sind "work in progress", noch nicht integriert
|
||||
- Nur Kids mit free tokens haben Zugriff
|
||||
- System läuft lokal ("nah am Kernel"), nicht in der Cloud
|
||||
|
||||
**Warum lokal?**
|
||||
- Schutz der Daten (Axiom #4: nicht missbrauchbar)
|
||||
- Offline-fähig (Axiom #8: unendlich skalierbar = kein Cloud-Lock-in)
|
||||
- Reproduzierbar (Waldwächter-Prinzip: Transparency over magic)
|
||||
|
||||
---
|
||||
|
||||
## IV. Die Crumbforest Children's Knowledge License (CKL)
|
||||
|
||||
### Von der Philosophie zum Recht
|
||||
|
||||
Das OZM⟡NEXUS Manifest beschreibt **was sein soll**.
|
||||
Die CKL beschreibt **wie es durchgesetzt wird**.
|
||||
|
||||
### CKL ⊗ Axiome Mapping
|
||||
|
||||
| OZM Axiom | CKL Implementation | § |
|
||||
|-----------|-------------------|---|
|
||||
| autonom | Kind darf "mit guter Frage alles in Frage stellen" | §2 |
|
||||
| zukunftsoffen | Container, reproduzierbar, nachbaubar | §6.2 |
|
||||
| nicht interpretierbar | "Logik vor Effekt" - keine Blackboxes | §6.3 |
|
||||
| nicht missbrauchbar | Kein Tracking, Datenminimierung, Widerruf | §5 |
|
||||
| suchbar | Barrierearme Zugänge, Markdown, Druck | §7.2 |
|
||||
| wiedererkennbar | Namensnennung, CKL-Hinweis sichtbar | §8.1 |
|
||||
| erweiterbar | Offene Formate, exportierbar, forkbar | §3.2 |
|
||||
| unendlich skalierbar | "Preisfreiheit für Kinderfragen" | §7.3 |
|
||||
|
||||
### Kernprinzipien der CKL
|
||||
|
||||
**Für Kinder:**
|
||||
- Du besitzt, was du schaffst (§3.1)
|
||||
- Du kannst deine Daten exportieren (§3.2)
|
||||
- Du kannst jederzeit gehen und alles mitnehmen (§3.3)
|
||||
- Deine Fragen kosten kein Geld (§7.3)
|
||||
|
||||
**Für Erwachsene/Betreiber:**
|
||||
- Setups sind reproduzierbar dokumentiert (§4.1)
|
||||
- Keine Blackboxes, keine Magie (§6.3)
|
||||
- Datenminimierung, kein Tracking (§5.1, §5.2)
|
||||
- Offline hat Vorrang vor Cloud (§7.1)
|
||||
|
||||
**Für Kommerz:**
|
||||
- Kommerz ist erlaubt, **solange Kinderzugang frei bleibt** (§8.2)
|
||||
- Keine Paywalls vor Lernkernen
|
||||
- Keine Exklusivitätsansprüche (§8.3)
|
||||
|
||||
### Lizenz-Strategie
|
||||
|
||||
```markdown
|
||||
# Dual License Model
|
||||
|
||||
## Infrastructure/Code → MIT License
|
||||
- Backend (FastAPI, Python)
|
||||
- Frontend (HTML/JS)
|
||||
- Scripts (Bash, Docker Compose)
|
||||
- Developer-friendly, permissive
|
||||
|
||||
## Educational Use with Children → CKL v0.1
|
||||
- Sobald ein Kind damit lernt
|
||||
- Automatischer Schutz durch CKL
|
||||
- Bei Konflikt: strengere Regel gewinnt
|
||||
```
|
||||
|
||||
**Das ist brilliant legal engineering:**
|
||||
Code bleibt MIT (fork-friendly für Entwickler), aber **Kinderrechte sind nicht verhandelbar**.
|
||||
|
||||
---
|
||||
|
||||
## V. OZM als Träger: Vom Partner zum Custodian
|
||||
|
||||
### Status Quo
|
||||
|
||||
**branko.de heute:**
|
||||
> "OZM (Open Futures Museum)" - gelistet als Partner #1 von 8
|
||||
|
||||
**Rechtslage:**
|
||||
- Crumbforest = Projekt von Branko
|
||||
- Code teils öffentlich (CrumbCore lesbar), teils privat (Crumbpages 404)
|
||||
- "Open" als Philosophie, noch nicht als Lizenz
|
||||
|
||||
### Die Vision: OZM als rechtlicher Träger
|
||||
|
||||
**Was ändert sich?**
|
||||
|
||||
| Dimension | Vorher (Partner) | Nachher (Träger) |
|
||||
|-----------|------------------|------------------|
|
||||
| **Ownership** | Branko hält IP-Rechte | OZM hält treuhänderisch |
|
||||
| **Lizenz** | Implizit "open" | Explizit CKL + MIT |
|
||||
| **Governance** | Informell | Formalisiert (siehe unten) |
|
||||
| **Haftung** | Personenbezogen | Organisationsbezogen |
|
||||
| **Förderung** | Schwierig (Person) | Einfacher (gemeinnützig) |
|
||||
| **Kontinuität** | An Person gebunden | Institutionell gesichert |
|
||||
|
||||
### Governance-Struktur (Vorschlag)
|
||||
|
||||
```
|
||||
OZM e.V. / Open Futures Museum
|
||||
└─ Crumbforest Division
|
||||
├─ Lead Maintainer: Branko (technisch)
|
||||
├─ Education Lead: [offen]
|
||||
├─ CKL Compliance Officer: [offen]
|
||||
└─ Community Council (3-5 Personen)
|
||||
└─ Entscheidungen bei Konflikten
|
||||
```
|
||||
|
||||
**Entscheidungsprinzip:**
|
||||
1. **Technische Fragen** → Lead Maintainer (Branko)
|
||||
2. **Pädagogische Fragen** → Education Lead
|
||||
3. **Lizenz-Fragen** → CKL Officer
|
||||
4. **Grundsatzfragen** → Community Council
|
||||
5. **Im Zweifel gilt:** "Was ist besser für das Kind?" (CKL §2)
|
||||
|
||||
### Transition-Prozess
|
||||
|
||||
**Phase 1: Formalisierung (Q1 2025)**
|
||||
- [ ] CKL v0.1 → v1.0 finalisieren
|
||||
- [ ] Alle 3 Repos mit LICENSE.md ausstatten
|
||||
- [ ] KINDERRECHTE.md in CrumbCore schreiben
|
||||
- [ ] DATENSCHUTZ.md dokumentieren
|
||||
|
||||
**Phase 2: Rechtliche Übertragung (Q2 2025)**
|
||||
- [ ] Trademark "Crumbforest" → OZM übertragen
|
||||
- [ ] IP-Rechte treuhänderisch an OZM
|
||||
- [ ] Governance-Dokument unterzeichnen
|
||||
- [ ] branko.de Update: OZM als Träger
|
||||
|
||||
**Phase 3: Community-Öffnung (Q3 2025)**
|
||||
- [ ] Contribution Guidelines veröffentlichen
|
||||
- [ ] Erstes Community Council Meeting
|
||||
- [ ] Public Roadmap auf GitHub/Gitea
|
||||
- [ ] Erste externe Contributors
|
||||
|
||||
---
|
||||
|
||||
## VI. Technische Compliance
|
||||
|
||||
### CrumbCore v1: CKL-Check
|
||||
|
||||
| CKL Anforderung | Status | Beweis |
|
||||
|-----------------|--------|--------|
|
||||
| §6.2: Container-basiert | ✅ | `docker-compose.yml` |
|
||||
| §7.1: Offline-fähig | ✅ | Läuft lokal, kein Cloud-Zwang |
|
||||
| §7.3: Kids = free tokens | ✅ | Token-Management implementiert |
|
||||
| §6.1: Nachvollziehbar | ✅ | Qdrant = transparente Vektorsuche |
|
||||
| §3.2: Export möglich | ⏳ | **TODO**: `/api/my-data` Endpoint |
|
||||
| §5.3: Daten dokumentiert | ⏳ | **TODO**: `DATENSCHUTZ.md` |
|
||||
| §4.1: Setup reproduzierbar | ✅ | `./setup.sh`, `./load_content.sh` |
|
||||
| §5.2: Kein Tracking | ✅ | Kein Google Analytics, keine Telemetrie |
|
||||
|
||||
### Crumbpages v2: CKL-Check
|
||||
|
||||
| CKL Anforderung | Status | Beweis |
|
||||
|-----------------|--------|--------|
|
||||
| §6.1: Offene Beweise | ✅ | Markdown = menschenlesbar |
|
||||
| §4.1: Reproduzierbar | ✅ | Bash-Scripts, keine Magie |
|
||||
| §7.2: Offline-lesbar | ✅ | Keine Cloud-Abhängigkeit |
|
||||
| §7.1: Barrierefrei | ✅ | Plain text, druckbar |
|
||||
| §6.2: Integriert | ⏳ | **TODO**: In CrumbCore laden |
|
||||
|
||||
### branko.de: CKL-Check
|
||||
|
||||
| CKL Anforderung | Status | Beweis |
|
||||
|-----------------|--------|--------|
|
||||
| §7.2: Barrierefrei | ✅ | HTML, kein JS-Zwang |
|
||||
| §2: "Kinder zuerst" | ✅ | "Every child may ask" |
|
||||
| §8.1: CKL-Badge | ❌ | **TODO**: Footer mit CKL-Hinweis |
|
||||
| §9: Transparenz | ⏳ | **TODO**: Förderungen ausweisen |
|
||||
|
||||
---
|
||||
|
||||
## VII. Die nächsten Schritte
|
||||
|
||||
### Sofort (diese Woche)
|
||||
|
||||
1. **Formale Lizenzierung**
|
||||
```bash
|
||||
# In allen 3 Repos:
|
||||
touch LICENSE.md # Dual License (MIT + CKL)
|
||||
touch LICENSE-MIT.md # Full MIT text
|
||||
touch LICENSE-CKL.md # Full CKL text
|
||||
```
|
||||
|
||||
2. **Kinderrechte operationalisieren**
|
||||
```bash
|
||||
# In CrumbCore:
|
||||
touch KINDERRECHTE.md # Export/Widerruf-Prozesse
|
||||
touch DATENSCHUTZ.md # Was speichern wir wo?
|
||||
```
|
||||
|
||||
3. **CKL-Badge hinzufügen**
|
||||
```html
|
||||
<!-- branko.de footer: -->
|
||||
<footer>
|
||||
Dieses Projekt folgt der
|
||||
<a href="/ckl">Crumbforest Children's Knowledge License (CKL v0.1)</a>
|
||||
</footer>
|
||||
```
|
||||
|
||||
### Kurzfristig (Q1 2025)
|
||||
|
||||
4. **Export-API implementieren**
|
||||
```python
|
||||
# CrumbCore: app/routers/data_export.py
|
||||
@router.get("/api/my-data")
|
||||
async def export_my_data(token: str):
|
||||
# JSON mit allen Chat-Logs, Projekten, Messungen
|
||||
return {"messages": [...], "projects": [...]}
|
||||
```
|
||||
|
||||
5. **Widerruf-Mechanismus**
|
||||
```python
|
||||
@router.delete("/api/my-data")
|
||||
async def delete_my_data(token: str):
|
||||
# Löscht aus MariaDB + Qdrant
|
||||
pass
|
||||
```
|
||||
|
||||
6. **Crumbpages Integration**
|
||||
```bash
|
||||
# Automatisierter Pipeline:
|
||||
./load_content.sh https://gitea.crumbforest.local/kruemel/Crumbpages
|
||||
# → Qdrant indexiert alle 20 Lernpfade
|
||||
# → Charaktere können darauf antworten
|
||||
```
|
||||
|
||||
### Mittelfristig (Q2 2025)
|
||||
|
||||
7. **OZM Governance formalisieren**
|
||||
- Gespräche mit OZM e.V. führen
|
||||
- Trademark-Übertragung vorbereiten
|
||||
- Governance-Dokument entwerfen
|
||||
|
||||
8. **Community-Prozesse**
|
||||
- `CONTRIBUTING.md` schreiben
|
||||
- Issue Templates erstellen
|
||||
- First Contributors Guide
|
||||
|
||||
9. **Public Roadmap**
|
||||
- GitHub Projects / Gitea Kanban
|
||||
- Transparenz über Entwicklung
|
||||
|
||||
### Langfristig (Q3-Q4 2025)
|
||||
|
||||
10. **Skalierung**
|
||||
- Multi-Instanz-Support (jede Schule ihre eigene CrumbCore)
|
||||
- Federation (Instanzen können Wissen teilen)
|
||||
- CKL v2.0 (basierend auf Community-Feedback)
|
||||
|
||||
11. **Förderanträge**
|
||||
- Prototype Fund
|
||||
- Medien- und Bildungsförderung
|
||||
- EU Horizon (Education & Inclusion)
|
||||
|
||||
---
|
||||
|
||||
## VIII. Für neue Mitwirkende
|
||||
|
||||
### Du möchtest beitragen?
|
||||
|
||||
**Willkommen im Wald!** 🌲
|
||||
|
||||
Crumbforest ist ein **offenes Lernökosystem**. Jede:r kann Krümel pflanzen.
|
||||
|
||||
**Voraussetzungen:**
|
||||
- Du akzeptierst die **CKL** (Kinder haben Vorrang)
|
||||
- Du arbeitest **transparent** (keine Blackboxes)
|
||||
- Du dokumentierst **nachvollziehbar** (andere sollen nachbauen können)
|
||||
|
||||
**Wie kannst du helfen?**
|
||||
|
||||
| Wenn du kannst... | Dann kannst du... |
|
||||
|-------------------|-------------------|
|
||||
| **Bash/Linux** | Crumbpages schreiben, doktor-Module erweitern |
|
||||
| **Python/FastAPI** | CrumbCore verbessern, APIs bauen |
|
||||
| **Pädagogik** | Lernpfade testen, Charaktere verfeinern |
|
||||
| **Design** | branko.de verbessern, Accessibility |
|
||||
| **Recht** | CKL v1.0 reviewen, Governance helfen |
|
||||
| **Übersetzen** | Crumbpages auf Englisch/andere Sprachen |
|
||||
|
||||
**Erster Schritt:**
|
||||
1. Lies die **CKL** (`LICENSE-CKL.md`)
|
||||
2. Schau dir ein Repo an (CrumbCore, Crumbpages, branko.de)
|
||||
3. Such ein `TODO` oder `⏳` in diesem Dokument
|
||||
4. Melde dich bei Branko oder OZM
|
||||
|
||||
---
|
||||
|
||||
## IX. Warum das wichtig ist
|
||||
|
||||
### Das Problem
|
||||
|
||||
**Bildungs-KI heute:**
|
||||
- Proprietäre Blackboxes (ChatGPT, Gemini...)
|
||||
- Kinder als Datenquelle ("Training Data")
|
||||
- Paywalls vor Wissen
|
||||
- Keine Kontrolle, keine Transparenz
|
||||
- Cloud-Zwang, Überwachungskapitalismus
|
||||
|
||||
**Kinderrechte werden strukturell verletzt.**
|
||||
|
||||
### Die Alternative
|
||||
|
||||
**Crumbforest ist:**
|
||||
- Open Source (MIT + CKL)
|
||||
- Lokal betreibbar (keine Cloud nötig)
|
||||
- Transparent (jeder Schritt nachvollziehbar)
|
||||
- Kind-zentriert (Urheberschaft bleibt beim Kind)
|
||||
- Gemeinnützig (wird verschenkt, nicht verkauft)
|
||||
|
||||
**Das ist keine "bessere EdTech-Plattform".**
|
||||
**Das ist eine andere Art, über Lernen nachzudenken.**
|
||||
|
||||
### Die Vision
|
||||
|
||||
Stell dir vor:
|
||||
- Jede Schule hat ihre eigene CrumbCore-Instanz
|
||||
- Kinder besitzen ihre Lernprojekte, für immer
|
||||
- Fragen sind frei, Antworten sind offen
|
||||
- Charaktere begleiten, ohne zu überwachen
|
||||
- Der Code ist prüfbar, das Wissen teilbar
|
||||
|
||||
**Das ist der Wald.**
|
||||
**Und er gehört denen, die Fragen stellen.**
|
||||
|
||||
---
|
||||
|
||||
## X. Schlusswort
|
||||
|
||||
OZM⟡NEXUS ist kein Versprechen.
|
||||
**Er ist eine Konsequenz.**
|
||||
|
||||
Aus einer Signatur im öffentlichen Raum (Oz)
|
||||
wurde ein Ort (OZM)
|
||||
wurde ein digitaler Schatten (OneZeroMore)
|
||||
wurde ein Museum (HAMMERBROOKLYN)
|
||||
wurde eine Maschine (OZMAI)
|
||||
wurde ein Wald (Crumbforest).
|
||||
|
||||
**Und jetzt wird er verschenkt.**
|
||||
|
||||
Nicht aus Großzügigkeit.
|
||||
Sondern weil **Wissen dem Kind gehört, solange es fragt.**
|
||||
|
||||
---
|
||||
|
||||
## Ressourcen
|
||||
|
||||
### Repositories
|
||||
- **CrumbCore v1**: https://194-164-194-191.sslip.io/git/kruemel/Crumb-Core-v.1
|
||||
- **Crumbpages v2**: https://194-164-194-191.sslip.io/git/kruemel/Crumbforest-Markdowns
|
||||
- **branko.de**: https://branko.de
|
||||
|
||||
### Lizenzen
|
||||
- **CKL v0.1**: [siehe LICENSE-CKL.md]
|
||||
- **MIT**: [siehe LICENSE-MIT.md]
|
||||
|
||||
### Kontakt
|
||||
- **Lead Maintainer**: Branko
|
||||
- **OZM**: Open Futures Museum, Hamburg
|
||||
- **Website**: https://crumbforest.com
|
||||
|
||||
### Hashtags
|
||||
`#OZM` `#OPENSOURCE` `#CRUMBFOREST` `#CKL` `#KINDERRECHTE` `#BILDUNG`
|
||||
|
||||
---
|
||||
|
||||
**Version:** 0.1-draft
|
||||
**Datum:** 2025-12-13
|
||||
**Status:** Living Document
|
||||
**Lizenz:** CC-BY-SA 4.0 (dieses Dokument)
|
||||
|
||||
---
|
||||
|
||||
> *"Nullfeld zuerst, dann Messung. Resonanz vor Regel."*
|
||||
> — Waldwächter-Prinzip
|
||||
344
README.md
Normal file
344
README.md
Normal file
@@ -0,0 +1,344 @@
|
||||
# Crumbpages v2 🌲
|
||||
|
||||
> **Dokumentation und Lernsystem für System-Administration**
|
||||
> Teil des Crumbforest-Ökosystems
|
||||
|
||||
---
|
||||
|
||||
## 📜 Lizenz & Kinderrechte
|
||||
|
||||
[](LICENSE.md)
|
||||
[](LICENSE-CKL.md)
|
||||
|
||||
Dieses Projekt ist **dual-lizenziert**:
|
||||
- **MIT License** für Code und allgemeine Nutzung
|
||||
- **CKL (Children's Knowledge License)** für Bildungskontexte mit Kindern
|
||||
|
||||
**Für Lernende:** Deine Rechte sind geschützt. [Lies hier mehr →](KINDERRECHTE.md)
|
||||
|
||||
**Für Entwickler:** Frei nutzbar und forkbar. [Compliance-Infos →](LICENSE.md)
|
||||
|
||||
---
|
||||
|
||||
## Was ist Crumbpages?
|
||||
|
||||
**Crumbpages v2** kombiniert **Bildungsdokumentation** mit **operationalen Tools** für System-Administration:
|
||||
|
||||
### 📚 Lernpfade
|
||||
- **20 Crumbpages** (Markdown) zu Linux-Fundamenten, SSH, Netzwerk, Kernel, uvm.
|
||||
- Template-basierte Struktur für konsistentes Lernen
|
||||
- Progressive Learning Paths: von Basics zu Advanced Topics
|
||||
|
||||
### 🛠️ Operational Tools
|
||||
- **`crumbpages-doktor.sh`** (496 Zeilen) - Hauptwerkzeug für Diagnostik & Operations
|
||||
- **`ssh-agent-guard.sh`** - Produktions-SSH-Security-Daemon
|
||||
- **`ssh-agent-screenlock_v4.sh`** - MATE Desktop SSH-Integration
|
||||
|
||||
### 🌳 Philosophie: Waldwächter
|
||||
**"Transparency over magic"**
|
||||
- Bash-zentrisch, klar lesbar, lehrbar
|
||||
- Minimale Dependencies, einfache Patterns
|
||||
- Education-First: Alle Tools sind verständlich und nachvollziehbar
|
||||
|
||||
---
|
||||
|
||||
## Schnellstart
|
||||
|
||||
### 1. Haupttool starten
|
||||
```bash
|
||||
# Ausführbar machen (einmalig)
|
||||
chmod +x crumbpages-doktor.sh
|
||||
|
||||
# Interaktives Menü starten
|
||||
./crumbpages-doktor.sh
|
||||
```
|
||||
|
||||
**Das Doktor-Tool bietet 6 Module:**
|
||||
1. **Git Workstation** - Interaktive Git-Shell mit Health Checks
|
||||
2. **DNS Doktor** - DNS-Diagnostik und Reporting
|
||||
3. **System Doktor** - Host Vitals (Disk, RAM, OS Info)
|
||||
4. **Web Tools** - API-Testing (`api_search`, `api_get`, `api_ask`)
|
||||
5. **Remote Tools** - SSH-Helfer und SCP-Uploads
|
||||
6. **Werkzeugkasten** - Tool-Verfügbarkeits-Checks
|
||||
|
||||
### 2. SSH-Security aktivieren
|
||||
```bash
|
||||
# SSH-Agent Guard starten (systemd/autostart)
|
||||
./ssh-agent-guard.sh
|
||||
|
||||
# Für MATE Desktop Integration
|
||||
./ssh-agent-screenlock_v4.sh
|
||||
```
|
||||
|
||||
**Beide Scripts:**
|
||||
- Killen und starten ssh-agent bei Screen Lock neu
|
||||
- Loggen nach `~/.ssh-agent-screenlock.log`
|
||||
- Nutzen festen Socket-Path `~/.ssh/agent.sock`
|
||||
|
||||
### 3. Lernpfade durcharbeiten
|
||||
```bash
|
||||
# Crumbpages lesen (Markdown)
|
||||
ls crumbpage-*.md
|
||||
|
||||
# Template für neue Pages
|
||||
cat crumbpage-template.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dokumentation
|
||||
|
||||
### 🔑 Wichtigste Dokumente
|
||||
|
||||
| Dokument | Beschreibung |
|
||||
|----------|--------------|
|
||||
| **[OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md)** | 🌐 **Das große Bild**: Wie Crumbpages ins OZM⟡NEXUS Ökosystem passt |
|
||||
| **[LICENSE.md](LICENSE.md)** | 📜 Dual-Lizenz erklärt (MIT + CKL) |
|
||||
| **[LICENSE-CKL.md](LICENSE-CKL.md)** | 🛡️ Die vollständige Children's Knowledge License |
|
||||
| **[KINDERRECHTE.md](KINDERRECHTE.md)** | 👶 Deine Rechte als Lernende/r (Export, Löschung, Eigentum) |
|
||||
| **[CLAUDE.md](CLAUDE.md)** | 🤖 Anleitung für Claude Code (Codebase-Kontext) |
|
||||
| **[HANDBUCH.md](HANDBUCH.md)** | 📖 Manual für crumbpages-doktor.sh |
|
||||
| **[QUICKSTART.md](QUICKSTART.md)** | ⚡ Quick Reference für häufige Operationen |
|
||||
|
||||
### 🗂️ Meta-Dokumentation
|
||||
- **[CRUMBFOREST_PROJECT_INDEX.md](CRUMBFOREST_PROJECT_INDEX.md)** - Komplette Projekthistorie & Milestones
|
||||
- **[crumbforest-manifesto-guardian.md](crumbforest-manifesto-guardian.md)** - Waldwächter-Philosophie
|
||||
- **Tagebuch-Dateien** - Problem-Solving-Journeys
|
||||
|
||||
---
|
||||
|
||||
## Das größere Ökosystem
|
||||
|
||||
Crumbpages v2 ist **Teil des Crumbforest**:
|
||||
|
||||
```
|
||||
OZM⟡NEXUS (Träger/Manifest)
|
||||
↓
|
||||
branko.de/Crumbforest (Public Interface)
|
||||
├─ 15 Charaktere (Krümeleule, FunkFox, SnakePy...)
|
||||
├─ 4 Lernpfade (ESP32 → Pi Zero → Pi Server → Daten)
|
||||
└─ "Every child may ask. We protect this right."
|
||||
↓
|
||||
CrumbCore v1 (Local Engine)
|
||||
├─ FastAPI + Qdrant RAG
|
||||
├─ Role-based Chat (15 Personas)
|
||||
├─ Multi-Theme (Accessible, High Contrast...)
|
||||
└─ Token-Management (Kids = free)
|
||||
↓
|
||||
Crumbpages v2 (dieser Repo) ← 📍 DU BIST HIER
|
||||
├─ 20 Lernpfade (Markdown)
|
||||
├─ Operational Tools (doktor, SSH guards)
|
||||
└─ Waldwächter-Philosophie
|
||||
```
|
||||
|
||||
**Mehr dazu:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md)
|
||||
|
||||
---
|
||||
|
||||
## Die 8 Axiome
|
||||
|
||||
Alle Komponenten des Crumbforest folgen diesen Prinzipien:
|
||||
|
||||
✅ **autonom** - Du entscheidest deinen Lernweg
|
||||
✅ **zukunftsoffen** - Erweiterbar, nicht fertig
|
||||
✅ **nicht interpretierbar** - Kein "richtiger" Weg, nur funktionale
|
||||
✅ **nicht missbrauchbar** - Schutz durch Design
|
||||
✅ **suchbar** - Fragen führen zu Antworten
|
||||
✅ **wiedererkennbar** - Krümel zeigen den Weg
|
||||
✅ **erweiterbar** - Du kannst selbst pflanzen
|
||||
✅ **unendlich skalierbar** - Für alle, immer, kostenlos
|
||||
|
||||
**Mehr dazu:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section II
|
||||
|
||||
---
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### `.env` Datei
|
||||
Das Doktor-Tool nutzt `.env` für Konfiguration (wird beim ersten Start erstellt):
|
||||
|
||||
```ini
|
||||
# API Endpoints (für CrumbCore Integration)
|
||||
CRUMB_API_URL="http://localhost:8000"
|
||||
CRUMB_API_TOKEN="changeme"
|
||||
|
||||
# SSH/Remote Settings
|
||||
CRUMB_SSH_USER="admin"
|
||||
CRUMB_SCP_TARGET="backup.crumbforest.de:/var/backups"
|
||||
|
||||
# Qdrant Vector DB
|
||||
CRUMB_QDRANT_URL="http://localhost:6333"
|
||||
CRUMB_QDRANT_KEY=""
|
||||
```
|
||||
|
||||
**Tipp:** Nie in Git committen! (ist bereits in `.gitignore`)
|
||||
|
||||
---
|
||||
|
||||
## Für neue Mitwirkende
|
||||
|
||||
### 🌱 Willkommen im Wald!
|
||||
|
||||
Crumbforest ist ein **offenes Lernökosystem**. Jede/r kann Krümel pflanzen.
|
||||
|
||||
**Voraussetzungen:**
|
||||
- Du akzeptierst die **CKL** (Kinder haben Vorrang)
|
||||
- Du arbeitest **transparent** (keine Blackboxes)
|
||||
- Du dokumentierst **nachvollziehbar** (andere sollen nachbauen können)
|
||||
|
||||
### Wie du beitragen kannst:
|
||||
|
||||
| Wenn du kannst... | Dann kannst du... |
|
||||
|-------------------|-------------------|
|
||||
| **Bash/Linux** | Crumbpages schreiben, doktor-Module erweitern |
|
||||
| **Python/FastAPI** | An CrumbCore arbeiten (anderes Repo) |
|
||||
| **Pädagogik** | Lernpfade testen, Charaktere verfeinern |
|
||||
| **Design** | branko.de verbessern, Accessibility |
|
||||
| **Recht** | CKL v1.0 reviewen, Governance helfen |
|
||||
| **Übersetzen** | Crumbpages auf Englisch/andere Sprachen |
|
||||
|
||||
### Erste Schritte:
|
||||
|
||||
1. **Lies die CKL:** [LICENSE-CKL.md](LICENSE-CKL.md)
|
||||
2. **Verstehe das Ökosystem:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md)
|
||||
3. **Such ein TODO:** Siehe Section VII in OZM-NEXUS-ECOSYSTEM.md
|
||||
4. **Melde dich:** [Kontakt siehe unten]
|
||||
|
||||
---
|
||||
|
||||
## Entwickler-Tipps
|
||||
|
||||
### Wenn du Shell-Scripts editierst:
|
||||
- Teste interaktiv vor dem Commit (Scripts sind für Menschen gedacht)
|
||||
- Bewahre Farbschema-Konsistenz (`GREEN`, `BLUE`, `RED`, `YELLOW`, `CYAN`)
|
||||
- Behalte Modul-Grenzen im doktor-Script bei
|
||||
- Update HANDBUCH.md bei Änderungen an doktor-Modulen
|
||||
|
||||
### Wenn du Crumbpages editierst:
|
||||
- Folge `crumbpage-template.md` Struktur exakt
|
||||
- Behalte Nummerierungsschema bei (`crumbpage-##-topic.md`)
|
||||
- Füge Skill Checks und Hands-on Exercises ein
|
||||
- Verlinke zu verwandten Pages im Navigation Footer
|
||||
|
||||
### Wenn du debuggst:
|
||||
- Check `.env` Konfiguration zuerst
|
||||
- Review Logs: `~/.ssh-agent-screenlock.log` für SSH Issues
|
||||
- Nutze doktor's System Doktor Modul für Host-Diagnostik
|
||||
- Git Workstation Modul hat `check_health` für Repo-Status
|
||||
|
||||
---
|
||||
|
||||
## Sicherheit
|
||||
|
||||
### SSH Agent Scripts
|
||||
- Killen aktiv Credentials bei Screen Lock
|
||||
- Einzelinstanz-Daemon-Pattern (kein Prozess-Spawning)
|
||||
- Deep Work Mode: `ssh-agent-guard.sh` unterstützt Pause-File
|
||||
- Fixed Socket Path für Terminal-Sharing
|
||||
|
||||
### Allgemein
|
||||
- API-Tokens in `.env` gespeichert (gitignored)
|
||||
- Keine hardcoded Credentials
|
||||
- MATE Screensaver Hardening empfohlen (`lock-enabled true`, `lock-delay 0`)
|
||||
|
||||
---
|
||||
|
||||
## Status & Roadmap
|
||||
|
||||
### ✅ Aktueller Stand (2025-12-13)
|
||||
|
||||
**Fertig:**
|
||||
- 20 Crumbpages (work in progress, noch nicht in CrumbCore integriert)
|
||||
- Operational Tools (doktor, SSH guards)
|
||||
- Dual-Lizenzierung (MIT + CKL v0.1)
|
||||
- Ecosystem-Dokumentation
|
||||
- Kinderrechte-Spezifikation
|
||||
|
||||
**In Arbeit:**
|
||||
- Integration mit CrumbCore (automatisches Laden via `load_content.sh`)
|
||||
- Export/Lösch-APIs für Kinderrechte
|
||||
- OZM als rechtlicher Träger (Transition läuft)
|
||||
|
||||
### 🚀 Nächste Schritte
|
||||
|
||||
**Sofort:**
|
||||
- [x] LICENSE.md, LICENSE-MIT.md, LICENSE-CKL.md
|
||||
- [x] KINDERRECHTE.md
|
||||
- [x] OZM-NEXUS-ECOSYSTEM.md
|
||||
- [x] README.md
|
||||
- [ ] DATENSCHUTZ.md
|
||||
|
||||
**Q1 2025:**
|
||||
- [ ] CrumbCore Export-API (`GET /api/v1/my-data`)
|
||||
- [ ] CrumbCore Lösch-API (`DELETE /api/v1/my-data`)
|
||||
- [ ] Crumbpages → CrumbCore Integration
|
||||
- [ ] CKL v0.1 → v1.0 Finalisierung
|
||||
|
||||
**Q2 2025:**
|
||||
- [ ] OZM Governance formalisieren
|
||||
- [ ] Trademark-Übertragung
|
||||
- [ ] Community-Prozesse (CONTRIBUTING.md, Issue Templates)
|
||||
|
||||
**Siehe:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section VII für komplette Roadmap
|
||||
|
||||
---
|
||||
|
||||
## Ressourcen
|
||||
|
||||
### Related Repositories
|
||||
- **CrumbCore v1**: https://194-164-194-191.sslip.io/git/kruemel/Crumb-Core-v.1
|
||||
- **Crumbforest Markdowns**: https://194-164-194-191.sslip.io/git/kruemel/Crumbforest-Markdowns
|
||||
|
||||
### Websites
|
||||
- **Crumbforest**: https://crumbforest.com
|
||||
- **branko.de**: https://branko.de (Public Interface)
|
||||
- **OZM**: Open Futures Museum, Hamburg
|
||||
|
||||
### Kontakt
|
||||
- **Lead Maintainer**: Branko
|
||||
- **Custodian**: OZM - Open Futures Museum (in transition)
|
||||
- **Email**: [wird ergänzt]
|
||||
|
||||
---
|
||||
|
||||
## Hashtags
|
||||
|
||||
`#OZM` `#OPENSOURCE` `#CRUMBFOREST` `#CKL` `#KINDERRECHTE` `#BILDUNG` `#LINUX` `#BASH` `#SYSTEMADMINISTRATION`
|
||||
|
||||
---
|
||||
|
||||
## Warum das wichtig ist
|
||||
|
||||
### Das Problem mit Bildungs-KI heute:
|
||||
- ❌ Proprietäre Blackboxes (ChatGPT, Gemini...)
|
||||
- ❌ Kinder als Datenquelle ("Training Data")
|
||||
- ❌ Paywalls vor Wissen
|
||||
- ❌ Keine Kontrolle, keine Transparenz
|
||||
- ❌ Cloud-Zwang, Überwachungskapitalismus
|
||||
|
||||
**Kinderrechte werden strukturell verletzt.**
|
||||
|
||||
### Die Crumbforest Alternative:
|
||||
- ✅ Open Source (MIT + CKL)
|
||||
- ✅ Lokal betreibbar (keine Cloud nötig)
|
||||
- ✅ Transparent (jeder Schritt nachvollziehbar)
|
||||
- ✅ Kind-zentriert (Urheberschaft bleibt beim Kind)
|
||||
- ✅ Gemeinnützig (wird verschenkt, nicht verkauft)
|
||||
|
||||
**Das ist keine "bessere EdTech-Plattform".**
|
||||
**Das ist eine andere Art, über Lernen nachzudenken.**
|
||||
|
||||
---
|
||||
|
||||
## Zitat
|
||||
|
||||
> *"Wissen gehört dem Kind, solange es fragt."*
|
||||
> *"Nullfeld zuerst, dann Messung. Resonanz vor Regel."*
|
||||
> — Waldwächter-Prinzip
|
||||
|
||||
---
|
||||
|
||||
**Version:** 2.0
|
||||
**Lizenz:** MIT + CKL v0.1
|
||||
**Status:** Active Development
|
||||
**Letzte Aktualisierung:** 2025-12-13
|
||||
Reference in New Issue
Block a user