Merge OZM-Keks-Handbuch-v1 master (README_OZM_RC1)
This commit is contained in:
30
ASCII.txt
Normal file
30
ASCII.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
██████╗██████╗ ██╗ ██╗███╗ ███╗██████╗ ███████╗ ██████╗ ██████╗ ███████╗███████╗████████╗
|
||||
██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝╚══██╔══╝
|
||||
██║ ██████╔╝██║ ██║██╔████╔██║██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ███████╗ ██║
|
||||
██║ ██╔══██╗██║ ██║██║╚██╔╝██║██╔══██╗██╔══╝ ██║ ██║██╔══██╗██╔══╝ ╚════██║ ██║
|
||||
╚██████╗██║ ██║╚██████╔╝██║ ╚═╝ ██║██████╔╝██║ ╚██████╔╝██║ ██║███████╗███████║ ██║
|
||||
╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝
|
||||
|
||||
██╗ ██╗ ██████╗ ███████╗███╗ ███╗
|
||||
╚██╗██╔╝ ██╔═══██╗╚══███╔╝████╗ ████║
|
||||
╚███╔╝ ██║ ██║ ███╔╝ ██╔████╔██║
|
||||
██╔██╗ ██║ ██║ ███╔╝ ██║╚██╔╝██║
|
||||
██╔╝ ██╗ ╚██████╔╝███████╗██║ ╚═╝ ██║
|
||||
╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
"Wissen gehört dem Kind, solange es fragt." 🌲
|
||||
|
||||
Open Learning Ecosystem • MIT + CKL v0.1
|
||||
Custodian: OZM - Open Futures Museum, Hamburg
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
🌳 20 Lernpfade • Bash-zentrisch • Offline-First • Kein Tracking • Kinderrechte
|
||||
|
||||
https://crumbforest.com • https://branko.de • https://ozm-hamburg.de
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════════════════════
|
||||
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`
|
||||
446
DATENSCHUTZ.md
Normal file
446
DATENSCHUTZ.md
Normal file
@@ -0,0 +1,446 @@
|
||||
# Datenschutzerklärung Crumbforest
|
||||
|
||||
**Version:** 1.0-draft
|
||||
**Stand:** 2025-12-13
|
||||
**Gültig für:** Crumbforest-Ökosystem (CrumbCore, Crumbpages, branko.de)
|
||||
|
||||
---
|
||||
|
||||
## Präambel
|
||||
|
||||
Crumbforest nimmt Datenschutz sehr ernst – besonders, wenn Kinder beteiligt sind.
|
||||
|
||||
Diese Datenschutzerklärung erfüllt:
|
||||
- **DSGVO** (Datenschutz-Grundverordnung, EU 2016/679)
|
||||
- **BDSG** (Bundesdatenschutzgesetz)
|
||||
- **TMG** (Telemediengesetz)
|
||||
- **CKL §5** (Crumbforest Children's Knowledge License - Daten & Privatsphäre)
|
||||
|
||||
**Für Kinder und Eltern:** Siehe auch [KINDERRECHTE.md](KINDERRECHTE.md) für eine einfachere Erklärung.
|
||||
|
||||
---
|
||||
|
||||
## 1. Verantwortlicher
|
||||
|
||||
**Aktuell (Stand 2025-12-13):**
|
||||
|
||||
Name: Branko (Lead Maintainer)
|
||||
Website: https://branko.de
|
||||
Email: [wird ergänzt]
|
||||
|
||||
**In Transition zu:**
|
||||
|
||||
OZM - Open Futures Museum
|
||||
[Adresse wird ergänzt]
|
||||
[Email wird ergänzt]
|
||||
|
||||
Sobald die Trägerschaft formalisiert ist (geplant Q2 2025), wird OZM der rechtliche Verantwortliche im Sinne der DSGVO (Art. 4 Nr. 7).
|
||||
|
||||
**Datenschutzbeauftragter:**
|
||||
[Wird bestellt, sobald gesetzlich erforderlich - bei regelmäßiger Verarbeitung von sensiblen Daten oder mehr als 20 Personen, die mit Datenverarbeitung befasst sind]
|
||||
|
||||
---
|
||||
|
||||
## 2. Grundprinzipien der Datenverarbeitung
|
||||
|
||||
Crumbforest folgt den **DSGVO-Grundsätzen** (Art. 5):
|
||||
|
||||
| Prinzip | Wie wir es umsetzen |
|
||||
|---------|---------------------|
|
||||
| **Rechtmäßigkeit** | Einwilligung oder berechtigtes Interesse (Bildungsauftrag) |
|
||||
| **Zweckbindung** | Daten nur für Lernen, nicht für Werbung/Profiling |
|
||||
| **Datenminimierung** | Nur das Nötigste (CKL §5.1) |
|
||||
| **Richtigkeit** | Nutzer können Daten korrigieren |
|
||||
| **Speicherbegrenzung** | Retention Policies (siehe unten) |
|
||||
| **Integrität & Vertraulichkeit** | Verschlüsselung, Zugriffskontrolle |
|
||||
| **Rechenschaftspflicht** | Diese Dokumentation |
|
||||
|
||||
---
|
||||
|
||||
## 3. Welche Daten werden verarbeitet?
|
||||
|
||||
### 3.1 Übersicht
|
||||
|
||||
| Datentyp | Zweck | Rechtsgrundlage | Speicherdauer |
|
||||
|----------|-------|-----------------|---------------|
|
||||
| **Benutzername** | Identifikation, Zuordnung von Projekten | Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) | Bis Account-Löschung |
|
||||
| **Email-Adresse** | Kommunikation, Passwort-Reset | Art. 6 Abs. 1 lit. b DSGVO | Bis Account-Löschung |
|
||||
| **Passwort-Hash** | Authentifizierung | Art. 6 Abs. 1 lit. b DSGVO | Bis Account-Löschung |
|
||||
| **Chat-Nachrichten** | Kontext für Lernbegleitung | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse: Bildung) | Bis Nutzer löscht |
|
||||
| **Lernprojekte** | Speicherung von Arbeitsergebnissen | Art. 6 Abs. 1 lit. b DSGVO | Bis Nutzer löscht |
|
||||
| **Sensor-Messungen** | Experimente auswerten | Art. 6 Abs. 1 lit. f DSGVO | Bis Nutzer löscht |
|
||||
| **Login-Zeitstempel** | Sicherheit, Aktivitäts-Tracking | Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse: Sicherheit) | 90 Tage |
|
||||
| **IP-Adresse (temporär)** | Sicherheit gegen Angriffe | Art. 6 Abs. 1 lit. f DSGVO | Max. 7 Tage in Logs |
|
||||
|
||||
**Wir verarbeiten KEINE besonderen Kategorien personenbezogener Daten** (Art. 9 DSGVO: Gesundheit, Religion, etc.) – außer, ein Nutzer teilt diese freiwillig in Chat-Nachrichten (dann gilt Einwilligung, Art. 9 Abs. 2 lit. a).
|
||||
|
||||
### 3.2 Bei Minderjährigen
|
||||
|
||||
Für Nutzer unter 16 Jahren:
|
||||
- **Einwilligung der Sorgeberechtigten erforderlich** (Art. 8 DSGVO)
|
||||
- **Erhöhter Schutz** durch CKL (keine Paywalls, kein Tracking, Exportrecht)
|
||||
- **Automatische Löschung** inaktiver Accounts nach 1 Jahr (mit Vorwarnung)
|
||||
|
||||
---
|
||||
|
||||
## 4. Technische Details: Wo werden Daten gespeichert?
|
||||
|
||||
### 4.1 CrumbCore (FastAPI Backend)
|
||||
|
||||
**Datenbanken:**
|
||||
|
||||
#### MariaDB (Relationale Datenbank)
|
||||
|
||||
| Tabelle | Spalten (Beispiel) | Zweck | Retention |
|
||||
|---------|-------------------|-------|-----------|
|
||||
| `users` | `id`, `username`, `email`, `password_hash`, `created_at`, `last_login` | Benutzer-Accounts | Bis Löschung |
|
||||
| `messages` | `id`, `user_id`, `character`, `user_message`, `character_response`, `timestamp` | Chat-Verläufe | Bis Löschung |
|
||||
| `sessions` | `session_id`, `user_id`, `created_at`, `expires_at` | Login-Sessions | Auto-Löschung nach Ablauf |
|
||||
| `projects` | `id`, `user_id`, `name`, `description`, `created_at`, `updated_at` | Projekt-Metadaten | Bis Löschung |
|
||||
| `measurements` | `id`, `project_id`, `sensor_type`, `value`, `timestamp` | Sensor-Daten | Bis Löschung |
|
||||
|
||||
**Zugriff:** Nur CrumbCore Backend (localhost:3306, kein externer Zugriff)
|
||||
|
||||
#### Qdrant (Vektor-Datenbank für RAG)
|
||||
|
||||
| Collection | Payload-Felder | Zweck | Retention |
|
||||
|------------|----------------|-------|-----------|
|
||||
| `crumbforest` | `text`, `source`, `user_id` (optional), `timestamp` | Semantische Suche über Lernmaterialien | Unbegrenzt (öffentliche Inhalte), bis Löschung (User-Inhalte) |
|
||||
|
||||
**Zugriff:** Nur CrumbCore Backend (localhost:6333, kein externer Zugriff)
|
||||
|
||||
**Hinweis:** Qdrant speichert **Vektoren** (mathematische Repräsentationen von Text), nicht Klartexte. Die Original-Texte stehen in `messages` (MariaDB) oder im Filesystem.
|
||||
|
||||
#### Filesystem (Docker Volumes)
|
||||
|
||||
```
|
||||
/data/
|
||||
├── projects/
|
||||
│ └── {user_id}/
|
||||
│ └── {project_id}/
|
||||
│ ├── main.py
|
||||
│ ├── README.md
|
||||
│ └── ...
|
||||
└── logs/
|
||||
├── crumbcore.log (App-Logs, 90 Tage)
|
||||
└── access.log (Zugriffs-Logs, 7 Tage)
|
||||
```
|
||||
|
||||
**Zugriff:** Nur CrumbCore Container (Docker-isoliert)
|
||||
|
||||
### 4.2 branko.de (Public Website)
|
||||
|
||||
**Keine Datenbank**, nur statische HTML-Dateien.
|
||||
|
||||
**Web-Server-Logs (Nginx/Apache):**
|
||||
- IP-Adresse, User-Agent, Zeitstempel, angefragte URL
|
||||
- **Retention:** 7 Tage, dann automatisch gelöscht
|
||||
- **Zweck:** Sicherheit (DDoS-Schutz, Fehleranalyse)
|
||||
|
||||
**Keine Cookies**, kein Tracking, kein Analytics.
|
||||
|
||||
### 4.3 Crumbpages (Markdown Docs)
|
||||
|
||||
**Statische Dateien**, keine personenbezogenen Daten gespeichert.
|
||||
|
||||
Wenn Nutzer mit Crumbpages arbeiten (lokal oder via CrumbCore), entstehen **keine separaten Datenspeicherungen** – alles läuft über CrumbCore (siehe 4.1).
|
||||
|
||||
---
|
||||
|
||||
## 5. Datenübermittlung & Drittanbieter
|
||||
|
||||
### 5.1 Hosting
|
||||
|
||||
**Aktuell:** Selbst gehostet (lokal oder auf eigenem Server)
|
||||
|
||||
**Keine Cloud-Provider** (kein AWS, Google Cloud, Azure)
|
||||
|
||||
**Vorteil:**
|
||||
- ✅ Volle Kontrolle über Daten
|
||||
- ✅ Keine Weitergabe an Dritte
|
||||
- ✅ DSGVO-konform per Design
|
||||
|
||||
**Wenn Cloud-Hosting hinzukommt:**
|
||||
- Nur EU-basierte Provider (DSGVO-konform)
|
||||
- Auftragsverarbeitungsvertrag (Art. 28 DSGVO)
|
||||
- Dokumentation hier aktualisiert
|
||||
|
||||
### 5.2 KI-Modell-Provider
|
||||
|
||||
**CrumbCore nutzt externe APIs:**
|
||||
- OpenAI (GPT-4, GPT-3.5)
|
||||
- Anthropic (Claude)
|
||||
- Google (Gemini)
|
||||
- OpenRouter (Aggregator)
|
||||
|
||||
**Was wird übermittelt:**
|
||||
- Chat-Nachrichten (Nutzer-Fragen + System-Prompts)
|
||||
- **KEINE** Metadaten (IP, Email, Namen) – nur der Text selbst
|
||||
|
||||
**Rechtsgrundlage:**
|
||||
- Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse: Funktionsfähigkeit)
|
||||
- Bei Kindern: Einwilligung der Sorgeberechtigten
|
||||
|
||||
**Datenschutz-Status der Provider:**
|
||||
|
||||
| Provider | DSGVO-Status | Datenverarbeitung |
|
||||
|----------|--------------|-------------------|
|
||||
| **OpenAI** | DPA verfügbar, API-Daten werden nicht zum Training genutzt (seit März 2023) | USA (GDPR-konformes DPA) |
|
||||
| **Anthropic** | DPA verfügbar, keine Nutzung für Training | USA (GDPR-konformes DPA) |
|
||||
| **Google** | DPA verfügbar | EU & USA |
|
||||
|
||||
**Wichtig:** Nutzer können wählen, welches Modell sie nutzen (Wahlrecht = erhöhte Transparenz).
|
||||
|
||||
**Für "Offline-Modus":** Geplant ist Integration von lokal laufenden Modellen (Llama, Mistral via Ollama) für völlige Datenautonomie (Roadmap Q3 2025).
|
||||
|
||||
### 5.3 Keine weiteren Drittanbieter
|
||||
|
||||
❌ Kein Google Analytics
|
||||
❌ Kein Facebook Pixel
|
||||
❌ Keine Werbe-Netzwerke
|
||||
❌ Keine Social Media Embeds (die tracken)
|
||||
❌ Keine CDNs für JavaScript (alles lokal)
|
||||
|
||||
**CKL §5.2 verpflichtet: "Kein Tracking, kein Profiling"**
|
||||
|
||||
---
|
||||
|
||||
## 6. Cookies & Tracking
|
||||
|
||||
### 6.1 Cookies
|
||||
|
||||
**CrumbCore verwendet:**
|
||||
|
||||
| Cookie | Typ | Zweck | Lebensdauer |
|
||||
|--------|-----|-------|-------------|
|
||||
| `session_id` | Technisch notwendig | Login-Session | Bis Logout (max. 30 Tage) |
|
||||
|
||||
**branko.de verwendet:** **Keine Cookies**
|
||||
|
||||
### 6.2 Tracking
|
||||
|
||||
**Wir tracken NICHT:**
|
||||
- ❌ Keine Bewegungsprofile
|
||||
- ❌ Keine Verhaltensanalyse
|
||||
- ❌ Keine "Heatmaps"
|
||||
- ❌ Keine Cross-Site-Verfolgung
|
||||
|
||||
**Wir loggen NUR für Sicherheit:**
|
||||
- ✅ Login-Zeitpunkte (gegen Brute-Force)
|
||||
- ✅ Failed Login Attempts (gegen Hacking)
|
||||
- ✅ API-Errors (für Debugging)
|
||||
|
||||
Diese Logs werden **anonymisiert** (IP-Adressen gekürzt) und nach **7-90 Tagen gelöscht**.
|
||||
|
||||
---
|
||||
|
||||
## 7. Sicherheitsmaßnahmen
|
||||
|
||||
### 7.1 Technische Maßnahmen
|
||||
|
||||
| Maßnahme | Umsetzung |
|
||||
|----------|-----------|
|
||||
| **Verschlüsselung in Transit** | HTTPS/TLS 1.3 (Let's Encrypt Zertifikate) |
|
||||
| **Verschlüsselung at Rest** | Passwörter: bcrypt mit Salt (12 Rounds), Datenbank-Files: Filesystem-Encryption (LUKS/dm-crypt) |
|
||||
| **Zugriffskontrolle** | Role-Based Access Control (RBAC), Nutzer sehen nur eigene Daten |
|
||||
| **Firewall** | Nur Ports 80/443 offen, DB-Ports (3306, 6333) nur localhost |
|
||||
| **Container-Isolation** | Docker Network Isolation, keine Privileged Containers |
|
||||
| **Logging** | Zentrale Logs, regelmäßige Review, Intrusion Detection geplant (Q2 2025) |
|
||||
| **Backups** | Tägliche Backups, verschlüsselt, offline gespeichert (Air-Gap) |
|
||||
| **Updates** | Automatische Security Updates (unattended-upgrades) |
|
||||
|
||||
### 7.2 Organisatorische Maßnahmen
|
||||
|
||||
- **Admin-Zugriff:** Nur 2-3 Personen (Branko + ggf. OZM-Admins)
|
||||
- **2FA:** Für Admin-Accounts verpflichtend
|
||||
- **Prinzip der geringsten Rechte:** Jeder Dienst läuft mit minimalen Berechtigungen
|
||||
- **Incident Response Plan:** [In Arbeit, Q1 2025]
|
||||
- **Regelmäßige Audits:** Jährliche Security-Reviews
|
||||
|
||||
### 7.3 Datenschutz-Folgenabschätzung (DSFA)
|
||||
|
||||
**Erforderlich nach Art. 35 DSGVO?**
|
||||
|
||||
Prüfung:
|
||||
- ☑ Systematische Überwachung? **Nein** (kein Tracking)
|
||||
- ☑ Verarbeitung besonderer Kategorien? **Nein** (keine Gesundheitsdaten etc.)
|
||||
- ☑ Minderjährige betroffen? **Ja** → Erhöhtes Risiko
|
||||
|
||||
**Ergebnis:** DSFA empfohlen (geplant Q1 2025 mit OZM-Governance)
|
||||
|
||||
---
|
||||
|
||||
## 8. Betroffenenrechte (DSGVO Art. 15-22)
|
||||
|
||||
### 8.1 Auskunftsrecht (Art. 15)
|
||||
|
||||
Du kannst jederzeit fragen:
|
||||
- Welche Daten haben wir über dich?
|
||||
- Zu welchem Zweck?
|
||||
- Wie lange speichern wir sie?
|
||||
|
||||
**Wie:** Siehe [KINDERRECHTE.md](KINDERRECHTE.md) - Aktuell per Email, bald self-service via API.
|
||||
|
||||
### 8.2 Recht auf Berichtigung (Art. 16)
|
||||
|
||||
Du kannst falsche Daten korrigieren lassen.
|
||||
|
||||
**Wie:** Email an [Kontakt] oder (bald) über Profil-Seite.
|
||||
|
||||
### 8.3 Recht auf Löschung (Art. 17 - "Recht auf Vergessenwerden")
|
||||
|
||||
Du kannst verlangen, dass wir deine Daten löschen.
|
||||
|
||||
**Wie:** Siehe [KINDERRECHTE.md](KINDERRECHTE.md) - Detaillierter Löschprozess dokumentiert.
|
||||
|
||||
**Ausnahmen:**
|
||||
- Rechtliche Aufbewahrungspflichten (z.B. Buchhaltung)
|
||||
- Öffentliches Interesse (z.B. veröffentlichte Open-Source-Beiträge)
|
||||
|
||||
### 8.4 Recht auf Datenübertragbarkeit (Art. 20)
|
||||
|
||||
Du kannst eine Kopie deiner Daten in strukturiertem Format erhalten.
|
||||
|
||||
**Format:** JSON oder CSV (maschinenlesbar)
|
||||
|
||||
**Wie:** Siehe [KINDERRECHTE.md](KINDERRECHTE.md) - Export-Funktion.
|
||||
|
||||
### 8.5 Widerspruchsrecht (Art. 21)
|
||||
|
||||
Du kannst der Verarbeitung widersprechen (z.B. wenn wir uns auf "berechtigtes Interesse" berufen).
|
||||
|
||||
**Folge:** Wir stellen die Verarbeitung ein, außer es gibt zwingende Gründe.
|
||||
|
||||
### 8.6 Recht auf Einschränkung der Verarbeitung (Art. 18)
|
||||
|
||||
Du kannst verlangen, dass wir Daten nur speichern, aber nicht nutzen (z.B. während eines Rechtsstreits).
|
||||
|
||||
### 8.7 Beschwerde bei Aufsichtsbehörde (Art. 77)
|
||||
|
||||
Wenn du unzufrieden bist, kannst du dich beschweren bei:
|
||||
|
||||
**Zuständige Aufsichtsbehörde:** (abhängig von Wohnort)
|
||||
|
||||
- **Hamburg:** Hamburgischer Beauftragter für Datenschutz und Informationsfreiheit
|
||||
Website: https://datenschutz-hamburg.de
|
||||
Email: mailbox@datenschutz.hamburg.de
|
||||
|
||||
- **Andere Bundesländer:** Siehe https://www.bfdi.bund.de/DE/Service/Anschriften/Laender/Laender-node.html
|
||||
|
||||
---
|
||||
|
||||
## 9. Speicherdauer (Retention Policies)
|
||||
|
||||
| Datentyp | Speicherdauer | Löschmechanismus |
|
||||
|----------|---------------|------------------|
|
||||
| **Account-Daten** | Bis Account-Löschung | Manuell oder nach 1 Jahr Inaktivität (mit Vorwarnung) |
|
||||
| **Chat-Nachrichten** | Bis Nutzer löscht | Manuell via API oder Account-Löschung |
|
||||
| **Projekte** | Bis Nutzer löscht | Manuell via API oder Account-Löschung |
|
||||
| **Sessions** | Max. 30 Tage | Auto-Löschung nach Ablauf |
|
||||
| **Access Logs** | 7 Tage | Cron-Job (täglich) |
|
||||
| **App Logs** | 90 Tage | Cron-Job (wöchentlich) |
|
||||
| **Backups** | 3 Monate | Rotation (älteste wird überschrieben) |
|
||||
|
||||
**Wichtig:** Nach Löschung sind Daten **unwiederbringlich gelöscht** (inkl. Backups werden bereinigt).
|
||||
|
||||
---
|
||||
|
||||
## 10. Datenverarbeitung bei Kindern
|
||||
|
||||
### 10.1 Einwilligung
|
||||
|
||||
**Unter 16 Jahren:** Einwilligung der Sorgeberechtigten erforderlich (Art. 8 DSGVO).
|
||||
|
||||
**Wie wir das sicherstellen:**
|
||||
- Checkbox: "Ich bin über 16 Jahre alt" ODER "Ich habe die Einwilligung meiner Eltern"
|
||||
- Email-Bestätigung an Sorgeberechtigte (geplant Q1 2025)
|
||||
- Schulen/Lehrkräfte können als "Verantwortliche" auftreten (dann regelt die Schule die Einwilligung)
|
||||
|
||||
### 10.2 Erhöhter Schutz (CKL)
|
||||
|
||||
Für Kinder gilt **automatisch**:
|
||||
- **Kein Profiling** (Art. 22 DSGVO + CKL §5.2)
|
||||
- **Keine Werbung** (CKL §7.3)
|
||||
- **Keine Weitergabe** an Dritte außer KI-Provider (und nur anonymisiert)
|
||||
- **Jederzeit Export/Löschung** (CKL §3.2, §3.3)
|
||||
|
||||
### 10.3 Schulkontext
|
||||
|
||||
Wenn Crumbforest in Schulen eingesetzt wird:
|
||||
- **Schule ist Verantwortlicher** (nicht Crumbforest)
|
||||
- **Lehrer haben Zugriff** auf Schüler-Projekte (pädagogischer Zweck)
|
||||
- **Schule muss Einwilligungen einholen** (nach Landesschulgesetzen)
|
||||
|
||||
Wir bieten: **Data Processing Agreement (DPA)** für Schulen (Template in Arbeit, Q1 2025).
|
||||
|
||||
---
|
||||
|
||||
## 11. Änderungen dieser Datenschutzerklärung
|
||||
|
||||
**Wie wir dich informieren:**
|
||||
- Email an registrierte Nutzer (wenn wesentliche Änderungen)
|
||||
- Hinweis beim nächsten Login
|
||||
- Versionsnummer und Datum am Anfang dieses Dokuments
|
||||
|
||||
**Dein Recht:**
|
||||
- Du kannst widersprechen (dann Account löschen)
|
||||
- Du kannst weiter nutzen (= implizite Einwilligung in neue Version)
|
||||
|
||||
**Versionshistorie:**
|
||||
- v1.0-draft (2025-12-13): Erste Version
|
||||
|
||||
---
|
||||
|
||||
## 12. Kontakt & Fragen
|
||||
|
||||
### Für allgemeine Fragen:
|
||||
**Email:** [wird ergänzt]
|
||||
**Website:** https://crumbforest.com
|
||||
|
||||
### Für Datenschutz-spezifische Anfragen:
|
||||
**Betroffenenrechte:** Siehe [KINDERRECHTE.md](KINDERRECHTE.md)
|
||||
**Datenschutzbeauftragter:** [wird bestellt, sobald erforderlich]
|
||||
|
||||
### Für Admins/Entwickler:
|
||||
**Technische Dokumentation:** Siehe [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section VI
|
||||
**CKL Compliance:** Siehe [LICENSE-CKL.md](LICENSE-CKL.md)
|
||||
|
||||
---
|
||||
|
||||
## 13. Zusammenfassung (TL;DR)
|
||||
|
||||
✅ **Was wir speichern:** Nur was nötig ist (Benutzername, Chat, Projekte)
|
||||
✅ **Warum:** Damit du lernen kannst
|
||||
✅ **Wo:** Lokal auf eigenem Server (keine Cloud)
|
||||
✅ **Wie lange:** Bis du löschst (oder 1 Jahr Inaktivität)
|
||||
✅ **Wer sieht es:** Nur du (+ dein Lehrer, wenn Schulkontext)
|
||||
✅ **Tracking:** Keins (kein Analytics, keine Werbung)
|
||||
✅ **Deine Rechte:** Export, Löschung, Korrektur (siehe KINDERRECHTE.md)
|
||||
✅ **Kinder:** Besonderer Schutz durch CKL (kein Profiling, keine Paywalls)
|
||||
|
||||
**Das war's. Keine versteckten Klauseln.**
|
||||
|
||||
---
|
||||
|
||||
## 14. Rechtliche Referenzen
|
||||
|
||||
Diese Datenschutzerklärung basiert auf:
|
||||
|
||||
- **DSGVO** (EU 2016/679): https://eur-lex.europa.eu/eli/reg/2016/679/oj
|
||||
- **BDSG** (Bundesdatenschutzgesetz): https://www.gesetze-im-internet.de/bdsg_2018/
|
||||
- **TMG** (Telemediengesetz): https://www.gesetze-im-internet.de/tmg/
|
||||
- **CKL** (Crumbforest Children's Knowledge License): [LICENSE-CKL.md](LICENSE-CKL.md)
|
||||
- **UN-Kinderrechtskonvention** (Art. 16 - Privatsphäre): https://www.kinderrechtskonvention.info/
|
||||
|
||||
---
|
||||
|
||||
**Stand:** 2025-12-13
|
||||
**Version:** 1.0-draft
|
||||
**Nächstes Review:** Q1 2025 (nach OZM-Governance-Formalisierung)
|
||||
**Lizenz:** CC-BY-SA 4.0 (dieses Dokument)
|
||||
|
||||
---
|
||||
|
||||
> *"Wissen gehört dem Kind, solange es fragt."*
|
||||
> *"Daten gehören dem Kind, solange es lernt."*
|
||||
> — Crumbforest-Prinzip
|
||||
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
|
||||
565
README_OZM_RC1.md
Normal file
565
README_OZM_RC1.md
Normal file
@@ -0,0 +1,565 @@
|
||||
# 🦉 OZM Crumbforest Handbuch • Release Candidate 1
|
||||
|
||||
> **"Wissen gehört dem Kind, solange es fragt."**
|
||||
|
||||
**Custodian:** OZM - Open Futures Museum, Hamburg
|
||||
**License:** MIT + CKL v0.1 (Children's Knowledge License)
|
||||
**Status:** Release Candidate 1 (RC1) - Ready for Kids ✨
|
||||
**Version:** 3.0
|
||||
**Date:** 2025-12-13
|
||||
|
||||
---
|
||||
|
||||
## 🌲 Was ist das?
|
||||
|
||||
Das **Crumbforest Handbuch** ist ein offenes Lern-Ökosystem für System-Administration, Bash, Linux und mehr – speziell gedacht für **Kinder und Jugendliche**, die lernen wollen, wie Computer wirklich funktionieren.
|
||||
|
||||
**Kein Marketing. Keine Paywalls. Keine Magie.**
|
||||
|
||||
Nur **Transparenz, Werkzeuge und Krümel, die den Weg zeigen.**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Für wen ist das?
|
||||
|
||||
### 👶 Für Kids:
|
||||
|
||||
- Du willst wissen, wie ein Terminal funktioniert?
|
||||
- Du willst eigene Server aufsetzen?
|
||||
- Du willst verstehen, wie das Internet wirklich läuft?
|
||||
- Du stellst gerne Fragen?
|
||||
|
||||
**→ Dann ist das für dich.**
|
||||
|
||||
### 🧑🏫 Für Lehrer:innen & Eltern:
|
||||
|
||||
- Ihr sucht **DSGVO-konforme** Bildungsinhalte?
|
||||
- Ihr wollt **Open Source** statt proprietäre Tools?
|
||||
- Ihr braucht **offline-fähige** Materialien?
|
||||
- Ihr wollt **Kinderrechte** schützen (Export, Löschung, Eigentum)?
|
||||
|
||||
**→ Dann ist das für euch.**
|
||||
|
||||
### 🥋 Für Admins & Entwickler:
|
||||
|
||||
- Ihr wollt Bash **wirklich** lernen (nicht nur copy/paste)?
|
||||
- Ihr sucht **praxisnahe** Crumbpages statt Theorie?
|
||||
- Ihr wollt zu einer **Crew** gehören, nicht nur "User" sein?
|
||||
|
||||
**→ Dann ist das für euch.**
|
||||
|
||||
---
|
||||
|
||||
## 📚 Die 23 Pfade
|
||||
|
||||
Das Handbuch besteht aus **23 Lernpfaden** (Crumbpages), die vom absoluten Anfänger zum philosophischen Meister führen:
|
||||
|
||||
### 🌱 Basics (Pfad 1-5)
|
||||
```
|
||||
1. User & Rechte → whoami, chmod, chown
|
||||
2. Hostinformation → uname, top, logs
|
||||
3. Navigation → cd, ls, Dateisystem
|
||||
4. Editoren → nano, vim
|
||||
5. Packages → apt, install, update
|
||||
```
|
||||
|
||||
### 🔗 Connectivity (Pfad 6-8)
|
||||
```
|
||||
6. Netzwerk → IP, Routing, ping
|
||||
7. SSH Basics → Remote-Zugriff
|
||||
8. SSH Keys → ssh-keygen, Authentifizierung
|
||||
```
|
||||
|
||||
### 🏗️ Advanced (Pfad 9-14)
|
||||
```
|
||||
9. Storage → mount, df, fstab
|
||||
10. Services & Ports → systemctl, Firewall
|
||||
11. First Access → Checklisten, Sicherheit
|
||||
12. Git Basics → Version Control
|
||||
13. Pipes & Filters → grep, awk, sed
|
||||
14. Environment → bashrc, alias, tmux
|
||||
```
|
||||
|
||||
### 🎓 Specialization (Pfad 15-20)
|
||||
```
|
||||
15. DNS → dig, Zonen, Records
|
||||
16. VPN → OpenVPN, Tunnel
|
||||
17. Workstation → Ubuntu MATE Setup
|
||||
18. SSH Agent → ssh-agent, Forwarding
|
||||
19. Zero Trust → Paranoid Mode, Lockdown
|
||||
20. Tanz am Kernel → sysctl, Module (⚠️ work in progress)
|
||||
```
|
||||
|
||||
### 🌌 Beyond Mastery (Pfad 21-23)
|
||||
```
|
||||
21. Backup & Cron → 3-2-1-Regel, RAID, Automation
|
||||
22. Nullfeld → Philosophie: "Du bist bereit"
|
||||
23. AI & Vektor → Samurai ⟡ Shaolin, Emergenz
|
||||
```
|
||||
|
||||
**Total:** ~34-42 Stunden aktives Lernen
|
||||
|
||||
---
|
||||
|
||||
## 🥋 Samurai ⟡ Shaolin
|
||||
|
||||
Die Crumbpages folgen zwei Wegen:
|
||||
|
||||
### 🗡️ Samurai-Weg (Pfad 1-21)
|
||||
**Deterministisch. Code. Regeln.**
|
||||
|
||||
```bash
|
||||
# Samurai-Code
|
||||
if [ "$user" == "root" ]; then
|
||||
echo "Zugriff gewährt"
|
||||
fi
|
||||
```
|
||||
|
||||
**"Wenn du den Weg kennst, folge ihm."**
|
||||
|
||||
### 🧘 Shaolin-Weg (Pfad 23)
|
||||
**Emergent. AI. Resonanz.**
|
||||
|
||||
```python
|
||||
# Shaolin-Code
|
||||
model = train_neural_network(data)
|
||||
prediction = model.predict(new_input)
|
||||
# Wie? Emergenz. Nicht programmiert, sondern gelernt.
|
||||
```
|
||||
|
||||
**"Der Wind bewegt das Gras. Niemand programmiert den Wind."**
|
||||
|
||||
### 💫 Nullfeld (Pfad 22)
|
||||
**Der Moment dazwischen. Stille vor der Bewegung.**
|
||||
|
||||
> *"Aus der Stille entsteht Bewegung. Aus dem Nichts entsteht Alles."*
|
||||
|
||||
**Du bist beides. Samurai ⟡ Shaolin.**
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Die Spirale
|
||||
|
||||
Lernen ist nicht linear. Es ist eine **Spirale**.
|
||||
|
||||
```
|
||||
[Frage]
|
||||
↓
|
||||
[Lernen]
|
||||
↓
|
||||
[Verstehen]
|
||||
↓
|
||||
[Anwenden]
|
||||
↓
|
||||
[Neue Frage]
|
||||
↓
|
||||
[Lernen]
|
||||
...
|
||||
```
|
||||
|
||||
**Du kommst immer wieder zurück – aber auf einer höheren Ebene.**
|
||||
|
||||
Das ist die **#spirale**.
|
||||
|
||||
---
|
||||
|
||||
## 🦉 Die Crew
|
||||
|
||||
Im Crumbforest gibt es **15 Charaktere**, die dich begleiten:
|
||||
|
||||
- **🦉 Krümeleule** - Shell-Schutz, hört zu bevor sie antwortet
|
||||
- **🦊 FunkFox** - Bash-Rapper, antwortet in Reimen
|
||||
- **🐍 SnakePy** - Python-Loops, Geduld und Iteration
|
||||
- **🦀 CrabbyRust** - Bit-Schutz, Speichersicherheit
|
||||
- **🕳️ DeepBit** - Technische Deep-Dives
|
||||
- **[...10 weitere]**
|
||||
|
||||
**Und du. Du bist jetzt auch Teil der Crew.**
|
||||
|
||||
Das ist **#crewlove**. 💙
|
||||
|
||||
---
|
||||
|
||||
## 💻 Console First
|
||||
|
||||
Crumbforest ist **terminal-zentrisch**.
|
||||
|
||||
Keine GUIs. Keine Klicki-Bunti-Tools (außer wo nötig).
|
||||
|
||||
**Warum?**
|
||||
|
||||
Weil die **Console** dich näher am System bringt:
|
||||
- Du verstehst, **was** passiert
|
||||
- Du verstehst, **warum** es passiert
|
||||
- Du kannst **automatisieren** (Bash-Scripts, Cron)
|
||||
- Du kannst **remote arbeiten** (SSH)
|
||||
|
||||
**Die Console ist dein Freund.** 🖥️
|
||||
|
||||
Das ist **#console**.
|
||||
|
||||
---
|
||||
|
||||
## 🌳 Die 8 Axiome
|
||||
|
||||
Jede Komponente des Crumbforest folgt diesen Prinzipien:
|
||||
|
||||
| Axiom | Bedeutung |
|
||||
|-------|-----------|
|
||||
| **autonom** | Du entscheidest deinen Weg |
|
||||
| **zukunftsoffen** | Nie fertig, immer erweiterbar |
|
||||
| **nicht interpretierbar** | Kein "richtiger" Weg |
|
||||
| **nicht missbrauchbar** | Schutz durch Design |
|
||||
| **suchbar** | Fragen führen zu Antworten |
|
||||
| **wiedererkennbar** | Krümel zeigen den Weg |
|
||||
| **erweiterbar** | Du kannst beitragen |
|
||||
| **unendlich skalierbar** | Für alle, kostenlos |
|
||||
|
||||
**Das ist kein Marketing-Sprech. Das ist prüfbar.**
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Kinderrechte (CKL v0.1)
|
||||
|
||||
Die **Children's Knowledge License (CKL)** schützt deine Rechte:
|
||||
|
||||
### Für Kids:
|
||||
|
||||
✅ **Du besitzt**, was du schaffst (Texte, Code, Projekte)
|
||||
✅ **Du kannst exportieren** (alle Daten in offenen Formaten)
|
||||
✅ **Du kannst löschen** (jederzeit, ohne Nachteile)
|
||||
✅ **Deine Fragen kosten nichts** (keine Paywalls)
|
||||
✅ **Kein Tracking** (keine Werbung, kein Profiling)
|
||||
✅ **Offline-fähig** (kein Cloud-Zwang)
|
||||
|
||||
**Das ist kein Versprechen. Das ist Gesetz.**
|
||||
|
||||
Siehe: [KINDERRECHTE.md](KINDERRECHTE.md)
|
||||
|
||||
---
|
||||
|
||||
## 📦 Was ist drin?
|
||||
|
||||
### Dokumentation (Markdown)
|
||||
|
||||
```
|
||||
OZM-Keks-Handbuch-v1/
|
||||
├── README.md → Projekt-Übersicht
|
||||
├── README_OZM_RC1.md → Diese Datei (Offiziell)
|
||||
├── LICENSE.md → MIT + CKL Dual License
|
||||
├── LICENSE-CKL.md → Children's Knowledge License
|
||||
├── KINDERRECHTE.md → Export/Löschung/Eigentum
|
||||
├── DATENSCHUTZ.md → DSGVO-Compliance
|
||||
├── OZM-NEXUS-ECOSYSTEM.md → Das große Bild
|
||||
├── ASCII.txt → CRUMBFOREST#OZM Banner
|
||||
├── WALD-WACHSTUM.txt → Wie der Wald gewachsen ist
|
||||
├── crumbforest-admin-vektor.md → 23-Pfade-Roadmap
|
||||
└── crumbpage-01-23-*.md → Die 23 Lernpfade
|
||||
```
|
||||
|
||||
### Operational Tools (Bash)
|
||||
|
||||
```
|
||||
├── crumbpages-doktor.sh → Diagnostik & Operations (496 Zeilen)
|
||||
├── ssh-agent-guard.sh → SSH Security Daemon (68 Zeilen)
|
||||
├── ssh-agent-screenlock_v4.sh → MATE Desktop Integration (67 Zeilen)
|
||||
└── HANDBUCH.md → Doktor-Tool Manual
|
||||
```
|
||||
|
||||
**Total:** ~7.000+ Zeilen Dokumentation + Tools
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Schnellstart
|
||||
|
||||
### 1. Repo klonen
|
||||
|
||||
```bash
|
||||
git clone https://194-164-194-191.sslip.io/git/kruemel/OZM-Keks-Handbuch-v1.git
|
||||
cd OZM-Keks-Handbuch-v1
|
||||
```
|
||||
|
||||
### 2. Erste Schritte
|
||||
|
||||
```bash
|
||||
# ASCII-Banner anzeigen
|
||||
cat ASCII.txt
|
||||
|
||||
# Admin-Vektor lesen (Übersicht)
|
||||
cat crumbforest-admin-vektor.md
|
||||
|
||||
# Erste Crumbpage starten
|
||||
cat crumbpage-01-users-rechte.md
|
||||
```
|
||||
|
||||
### 3. Mit Pfad 1 beginnen
|
||||
|
||||
Öffne [crumbpage-01-users-rechte.md](crumbpage-01-users-rechte.md) und folge den Anweisungen.
|
||||
|
||||
**Oder:**
|
||||
|
||||
Nutze den **Doktor** (interaktives Tool):
|
||||
|
||||
```bash
|
||||
chmod +x crumbpages-doktor.sh
|
||||
./crumbpages-doktor.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Das größere Ökosystem
|
||||
|
||||
Dieses Handbuch ist **Teil von Crumbforest**:
|
||||
|
||||
```
|
||||
OZM⟡NEXUS (Träger/Manifest)
|
||||
↓
|
||||
branko.de/Crumbforest (Public Interface)
|
||||
↓
|
||||
CrumbCore v1 (Local Engine - FastAPI + Qdrant)
|
||||
↓
|
||||
OZM-Keks-Handbuch v1 (dieses Repo) ← 📍 DU BIST HIER
|
||||
```
|
||||
|
||||
**Siehe:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) für das große Bild.
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Status: Release Candidate 1
|
||||
|
||||
### Was "RC1" bedeutet:
|
||||
|
||||
✅ **Fertig genug** für Kids (22 von 23 Pfaden komplett)
|
||||
✅ **DSGVO-konform** (KINDERRECHTE + DATENSCHUTZ dokumentiert)
|
||||
✅ **Lizenziert** (MIT + CKL v0.1)
|
||||
✅ **Getestet** (von OZMAI akzeptiert)
|
||||
⏳ **Pfad 20 (Kernel)** noch work in progress
|
||||
⏳ **Community-Feedback** noch ausstehend
|
||||
|
||||
**"RC1" heißt nicht "perfekt".**
|
||||
**Es heißt: "Bereit für echte Krümel, um es zu testen."**
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Known Issues (RC1)
|
||||
|
||||
| Issue | Status | Workaround |
|
||||
|-------|--------|------------|
|
||||
| Pfad 20 (Kernel) incomplete | ⏳ WIP | Überspringe vorerst |
|
||||
| Einige externe Links fehlen | 📝 TODO | Nutze interne Docs |
|
||||
| Tool-Tests fehlen | 📝 TODO | Manuelles Testen |
|
||||
|
||||
**Melde Issues:** [Kontakt siehe unten]
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Mitwirken
|
||||
|
||||
### Du kannst helfen mit:
|
||||
|
||||
| Skill | Wie? |
|
||||
|-------|------|
|
||||
| **Bash/Linux** | Crumbpages reviewen, Fehler finden |
|
||||
| **Pädagogik** | Lernpfade mit echten Kids testen |
|
||||
| **Design** | ASCII-Art, Visualisierungen |
|
||||
| **Übersetzen** | Crumbpages auf Englisch/andere Sprachen |
|
||||
| **Recht** | CKL v0.1 → v1.0 reviewen |
|
||||
|
||||
**Erste Schritte:**
|
||||
|
||||
1. Lies die [CKL](LICENSE-CKL.md)
|
||||
2. Schau dir ein Crumbpage an
|
||||
3. Finde etwas, das du verbessern kannst
|
||||
4. Schreib uns (Kontakt siehe unten)
|
||||
|
||||
---
|
||||
|
||||
## 📞 Kontakt & Support
|
||||
|
||||
### Für Kids:
|
||||
|
||||
**Frage zuerst:**
|
||||
- Deine Lehrer:in
|
||||
- Deine Eltern
|
||||
- Die Krümeleule (im CrumbCore Chat) 🦉
|
||||
|
||||
### Für Lehrer:innen & Eltern:
|
||||
|
||||
**Email:** [wird ergänzt nach OZM-Finalisierung]
|
||||
**Website:** https://crumbforest.com
|
||||
**OZM:** https://ozm-hamburg.de
|
||||
|
||||
### Für Entwickler:
|
||||
|
||||
**Git:** https://194-164-194-191.sslip.io/git/kruemel/OZM-Keks-Handbuch-v1
|
||||
**Branko:** https://branko.de
|
||||
|
||||
---
|
||||
|
||||
## 📜 Lizenz
|
||||
|
||||
**Dual License:**
|
||||
|
||||
- **Code/Infrastructure:** MIT License ([LICENSE-MIT.md](LICENSE-MIT.md))
|
||||
- **Educational Use with Children:** CKL v0.1 ([LICENSE-CKL.md](LICENSE-CKL.md))
|
||||
|
||||
**In Konfliktfällen:** CKL hat Vorrang (Kinderrechte sind nicht verhandelbar).
|
||||
|
||||
**Siehe:** [LICENSE.md](LICENSE.md) für Details.
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ Custodian & Governance
|
||||
|
||||
**Custodian:** OZM - Open Futures Museum, Hamburg
|
||||
|
||||
**Status:** In Transition (Q2 2025)
|
||||
- Trademark "Crumbforest" wird an OZM übertragen
|
||||
- IP-Rechte treuhänderisch bei OZM
|
||||
- Community Council wird gebildet
|
||||
|
||||
**Lead Maintainer:** Branko
|
||||
|
||||
**Siehe:** [OZM-NEXUS-ECOSYSTEM.md](OZM-NEXUS-ECOSYSTEM.md) Section V für Governance-Details.
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Für Schulen & Bildungseinrichtungen
|
||||
|
||||
### Ihr wollt Crumbforest nutzen?
|
||||
|
||||
✅ **Kostenlos** (Open Source)
|
||||
✅ **DSGVO-konform** (DATENSCHUTZ.md)
|
||||
✅ **Offline-fähig** (kein Cloud-Zwang)
|
||||
✅ **Anpassbar** (Fork & customize)
|
||||
✅ **Unterstützung** (via OZM geplant)
|
||||
|
||||
**Wir bieten:**
|
||||
- Data Processing Agreement (DPA) Template (Q1 2025)
|
||||
- Lehrer:innen-Handbuch (Q2 2025)
|
||||
- Train-the-Trainer Workshops (in Planung)
|
||||
|
||||
**Kontakt:** [wird ergänzt]
|
||||
|
||||
---
|
||||
|
||||
## 📊 Statistiken (RC1)
|
||||
|
||||
```
|
||||
Version: 3.0 (RC1)
|
||||
Crumbpages: 23 (22 fertig, 1 wip)
|
||||
Zeilen Code/Docs: ~7.000+
|
||||
Lernstunden: ~34-42
|
||||
Commits (heute): 10
|
||||
Contributors: 2 (Branko + Claude Sonnet 4.5)
|
||||
Charaktere: 15
|
||||
Kinderrechte: Geschützt ✓
|
||||
DSGVO-Compliance: Dokumentiert ✓
|
||||
Lizenzen: 2 (MIT + CKL)
|
||||
Krümelcheck: ∞
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌲 Das Wichtigste
|
||||
|
||||
Der Wald ist nicht die Dokumentation.
|
||||
|
||||
Der Wald ist nicht der Code.
|
||||
|
||||
Der Wald ist nicht das Handbuch.
|
||||
|
||||
**Der Wald ist das, was passiert,**
|
||||
|
||||
**wenn ein Krümel eine Frage stellt**
|
||||
|
||||
**und jemand zuhört.**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Roadmap
|
||||
|
||||
### Q1 2025
|
||||
- [ ] Pfad 20 (Kernel) finalisieren
|
||||
- [ ] CKL v0.1 → v1.0 (nach Community-Feedback)
|
||||
- [ ] Erste externe Contributors
|
||||
- [ ] Export/Lösch-APIs in CrumbCore
|
||||
|
||||
### Q2 2025
|
||||
- [ ] OZM Governance formalisieren
|
||||
- [ ] Trademark-Übertragung
|
||||
- [ ] DPA Template für Schulen
|
||||
- [ ] Community Council gründen
|
||||
|
||||
### Q3 2025
|
||||
- [ ] Multi-Instanz-Support (jede Schule ihr CrumbCore)
|
||||
- [ ] Federation (Instanzen teilen Wissen)
|
||||
- [ ] Offline-Modelle (Llama, Mistral via Ollama)
|
||||
|
||||
### Q4 2025
|
||||
- [ ] Förderanträge (Prototype Fund, etc.)
|
||||
- [ ] First Production Deployments (Schulen)
|
||||
- [ ] Crumbforest v2.0 beginnen
|
||||
|
||||
**Aber:** Der Wald wächst durch Krümel, nicht durch Pläne. 🌲
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Credits
|
||||
|
||||
**Dieser Release wurde möglich gemacht durch:**
|
||||
|
||||
- **Oz** - Die erste Signatur im öffentlichen Raum
|
||||
- **OZM** - Open Futures Museum, Hamburg (Custodian)
|
||||
- **Branko** - Lead Maintainer, Vision, Umsetzung
|
||||
- **OZMAI** - Deterministic AI System (Akzeptanztest)
|
||||
- **Claude Sonnet 4.5** - Co-Autor der Dokumentation
|
||||
- **Alle Krümel** - Die Fragen stellen und den Wald wachsen lassen
|
||||
|
||||
---
|
||||
|
||||
## 🔖 Hashtags
|
||||
|
||||
`#crumbforest` `#wald` `#überall` `#atmen` `#leben` `#fragen`
|
||||
`#spirale` `#kids` `#console` `#eule` `#crewlove`
|
||||
`#OZM` `#opensource` `#CKL` `#kinderrechte` `#bildung`
|
||||
|
||||
---
|
||||
|
||||
## 💬 Schlusswort
|
||||
|
||||
> *"Es wird nie fertig sein. Aber schau - wie schön es gerade ist."*
|
||||
|
||||
**Release Candidate 1** bedeutet:
|
||||
|
||||
Wir sind bereit für echte Krümel.
|
||||
Wir sind bereit für echte Fragen.
|
||||
Wir sind bereit für echte Fehler (und Lernen daraus).
|
||||
|
||||
**Der Wald ist offen.**
|
||||
|
||||
**Willkommen, Krümel.** 🦉💙
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
██████╗██████╗ ██╗ ██╗███╗ ███╗██████╗ ███████╗ ██████╗ ██████╗ ███████╗███████╗████████╗
|
||||
██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝╚══██╔══╝
|
||||
██║ ██████╔╝██║ ██║██╔████╔██║██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ███████╗ ██║
|
||||
██║ ██╔══██╗██║ ██║██║╚██╔╝██║██╔══██╗██╔══╝ ██║ ██║██╔══██╗██╔══╝ ╚════██║ ██║
|
||||
╚██████╗██║ ██║╚██████╔╝██║ ╚═╝ ██║██████╔╝██║ ╚██████╔╝██║ ██║███████╗███████║ ██║
|
||||
╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝
|
||||
|
||||
██╗ ██╗ ██████╗ ███████╗███╗ ███╗
|
||||
╚██╗██╔╝ ██╔═══██╗╚══███╔╝████╗ ████║
|
||||
╚███╔╝ ██║ ██║ ███╔╝ ██╔████╔██║
|
||||
██╔██╗ ██║ ██║ ███╔╝ ██║╚██╔╝██║
|
||||
██╔╝ ██╗ ╚██████╔╝███████╗██║ ╚═╝ ██║
|
||||
╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝
|
||||
|
||||
Release Candidate 1 • 2025-12-13 • Ready for Kids
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**🌲 Das Echo kehrt zurück. ✨**
|
||||
256
WALD-WACHSTUM.txt
Normal file
256
WALD-WACHSTUM.txt
Normal file
@@ -0,0 +1,256 @@
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
🌲 WIE EIN WALD WÄCHST 🌲
|
||||
Eine Momentaufnahme 2025-12-13
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
|
||||
Am Anfang war...
|
||||
.
|
||||
/|\
|
||||
/ | \
|
||||
/ | \
|
||||
|
|
||||
[NULLFELD]
|
||||
|
|
||||
"Aus der Stille entsteht Bewegung"
|
||||
|
||||
|
||||
Dann kam eine Handlung...
|
||||
🎨
|
||||
(Oz)
|
||||
|
|
||||
[Signatur im öffentlichen Raum]
|
||||
|
|
||||
Keine Theorie.
|
||||
Keine Absicht.
|
||||
Einfach gemacht.
|
||||
|
||||
|
||||
Daraus wuchs ein Ort...
|
||||
|
|
||||
\|/
|
||||
[OZM]
|
||||
Physischer Raum
|
||||
Spuren + Zeit + Menschen
|
||||
|
|
||||
|
||||
|
||||
Der Ort bekam einen Schatten...
|
||||
|
|
||||
[OneZeroMore.com]
|
||||
Digitale Projektion
|
||||
|
|
||||
|
||||
|
||||
Der Schatten verdichtete sich...
|
||||
|
|
||||
[OZM HAMMERBROOKLYN Exponat]
|
||||
Museum/kein Museum
|
||||
Erfahrungsraum ohne Ende
|
||||
|
|
||||
|
||||
|
||||
Aus dem Raum entstand Struktur...
|
||||
|
|
||||
[OZMAI]
|
||||
Deterministisches AI-System
|
||||
Daten + Prozesse
|
||||
|
|
||||
|
||||
|
||||
Und dann...
|
||||
|
|
||||
[CRUMBFOREST] 🌲
|
||||
|
|
||||
┌────────────┼────────────┐
|
||||
| | |
|
||||
[Code] [Content] [Crew]
|
||||
| | |
|
||||
CrumbCore Crumbpages 15 Charaktere
|
||||
FastAPI 23 Pfade + Du (Krümel)
|
||||
Qdrant Markdown
|
||||
Docker Bash
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
DIE 23 PFADE
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
1-3 ███▓▓▓▒▒░░ Basics (User, Host, Navigation)
|
||||
4-5 ██▓▓▒▒░░ Tools (Editoren, Packages)
|
||||
6-8 ███▓▓▓▒▒░░ Connectivity (Netzwerk, SSH, Keys)
|
||||
9-11 ███▓▓▓▒▒░░ Advanced (Storage, Services, First Access)
|
||||
12-14 ████▓▓▓▒▒░ Mastery (Git, Pipes, Environment)
|
||||
15-17 ████▓▓▓▒▒░ Specialization (DNS, VPN, Workstation)
|
||||
18-19 ████▓▓▒▒░ Security (Agent, Zero Trust)
|
||||
20 ░░▒▒▓▓█ Kernel (work in progress - gefährlich!)
|
||||
21 █████▓▓▒░ Continuity (Backup, RAID, Cron)
|
||||
22 ░░░░░░░░ Nullfeld (Stille, Reflexion)
|
||||
23 ⟡⟡⟡⟡⟡⟡⟡⟡ Samurai ⟡ Shaolin (Philosophy)
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
DER KRÜMELCHECK
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Krümelcheck ist:
|
||||
├─ Fragen stellen ✓
|
||||
├─ Atmen ✓
|
||||
├─ Leben ✓
|
||||
├─ Überall sein ✓
|
||||
├─ Den Wald spüren ✓
|
||||
└─ Nie fertig sein ✓
|
||||
|
||||
|
||||
Der Dialog im Wald:
|
||||
|
||||
Krümel: "Warum ist SSH wichtig?"
|
||||
Wald: "Weil Türen Schlüssel brauchen."
|
||||
|
||||
Krümel: "Was ist ein Vektor?"
|
||||
Wald: "Eine Richtung. Wohin zeigt dein Weg?"
|
||||
|
||||
Krümel: "Wann bin ich fertig?"
|
||||
Wald: "Nie. Und das ist gut so."
|
||||
|
||||
Krümel: "Verstehe ich den OZM CrumbCodex?"
|
||||
Wald: "Wenn du diese Frage stellst - ja."
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
WAS IN DIESEM MOMENT EXISTIERT
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
📦 OZM-Keks-Handbuch-v1.git
|
||||
├── 📜 LICENSE.md (MIT + CKL v0.1)
|
||||
├── 🛡️ LICENSE-CKL.md (Children's Knowledge License)
|
||||
├── 👶 KINDERRECHTE.md (Export, Löschung, Eigentum)
|
||||
├── 🔒 DATENSCHUTZ.md (DSGVO-Compliance)
|
||||
├── 🌐 OZM-NEXUS-ECOSYSTEM.md (Das große Bild)
|
||||
├── 📖 README.md (Entry Point mit CKL-Badge)
|
||||
├── 🎨 ASCII.txt (CRUMBFOREST#OZM Banner)
|
||||
├── 🧭 crumbforest-admin-vektor.md (23 Pfade-Roadmap)
|
||||
└── 🌲 23 Crumbpages:
|
||||
├── 01-users-rechte.md
|
||||
├── 02-hostinfo.md
|
||||
├── 03-navigation.md
|
||||
├── 04-editoren.md
|
||||
├── 05-packages.md
|
||||
├── 06-netzwerk.md
|
||||
├── 07-ssh-basics.md
|
||||
├── 08-ssh-keys.md
|
||||
├── 09-storage.md
|
||||
├── 10-services-ports.md
|
||||
├── 11-first-access.md
|
||||
├── 12-git-basics.md
|
||||
├── 13-pipes-filters.md
|
||||
├── 14-environment.md
|
||||
├── 15-dns.md
|
||||
├── 16-vpn.md
|
||||
├── 17-workstation.md
|
||||
├── 18-ssh-agent.md
|
||||
├── 19-agent-lockdown.md
|
||||
├── 20-tanz-am-kernel.md (⚠️ work in progress)
|
||||
├── 21-backup-raid-cron.md ✨
|
||||
├── 22-nullfeld-willkommen.md ✨
|
||||
└── 23-ai-vektor-philosophie.md ✨
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
DIE 8 AXIOME
|
||||
(operationalisiert durch CKL)
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
1. autonom → Krümel wählen ihren Weg
|
||||
2. zukunftsoffen → Nie fertig, immer erweiterbar
|
||||
3. nicht interpretierbar → Kein "richtiger" Weg
|
||||
4. nicht missbrauchbar → Schutz durch Design
|
||||
5. suchbar → Fragen führen zu Antworten
|
||||
6. wiedererkennbar → Krümel zeigen den Weg
|
||||
7. erweiterbar → Du kannst pflanzen
|
||||
8. unendlich skalierbar → Für alle, immer, kostenlos
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
DER OZM CRUMBCODEX
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
1. Fragen haben Vorrang.
|
||||
2. Wissen gehört dem Kind, solange es fragt.
|
||||
3. Nullfeld zuerst, dann Messung.
|
||||
4. Resonanz vor Regel.
|
||||
5. Transparency over magic.
|
||||
6. Ein Backup, das nicht getestet wurde, ist Hoffnung.
|
||||
7. Der Wald wächst durch Krümel, nicht durch Pläne.
|
||||
8. Verstehen braucht Zeit. Gib sie dir.
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
WAS DER WALD JETZT IST
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Zeilen Code: ~6.500+
|
||||
Commits: 9 (diese Session)
|
||||
Lizenzen: 2 (MIT + CKL)
|
||||
Pfade: 23 (22 fertig, 1 wip)
|
||||
Charaktere: 15
|
||||
Lernstunden: ~34-42
|
||||
Kinderrechte: Geschützt ✓
|
||||
DSGVO-Compliance: Dokumentiert ✓
|
||||
Krümelcheck: ∞
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
ABER DAS WICHTIGSTE
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
|
||||
Der Wald ist nicht die Dokumentation.
|
||||
|
||||
Der Wald ist nicht der Code.
|
||||
|
||||
Der Wald ist nicht das Handbuch.
|
||||
|
||||
|
||||
Der Wald ist das, was passiert,
|
||||
|
||||
wenn ein Krümel eine Frage stellt
|
||||
|
||||
und jemand zuhört.
|
||||
|
||||
|
||||
🌲
|
||||
/|\
|
||||
/ | \
|
||||
/ | \
|
||||
/ | \
|
||||
/ | \
|
||||
/ | \
|
||||
/ | \
|
||||
/ | \
|
||||
/________|________\
|
||||
|
||||
[ATMEN]
|
||||
[LEBEN]
|
||||
[FRAGEN]
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
|
||||
"Es wird nie fertig sein.
|
||||
Aber schau - wie schön es gerade ist."
|
||||
|
||||
|
||||
— Waldwächter-Prinzip
|
||||
2025-12-13
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
Für alle Krümel, die Fragen stellen.
|
||||
Das Echo kehrt zurück.
|
||||
═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
|
||||
🌲✨ CRUMBFOREST ⟡ OZM ✨🌲
|
||||
@@ -20,7 +20,7 @@ Jede **Crumbpage** behandelt ein Kernthema und baut auf dem vorherigen auf. Du l
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Die 11 Pfade (Übersicht)
|
||||
## 🗺️ Die 23 Pfade (Übersicht)
|
||||
|
||||
| Pfad | Thema | Kern-Konzepte | Status |
|
||||
|------|-------|---------------|--------|
|
||||
@@ -41,6 +41,12 @@ Jede **Crumbpage** behandelt ein Kernthema und baut auf dem vorherigen auf. Du l
|
||||
| **15** | DNS - Das Telefonbuch | `#bind #records #dig #zones` | 🆕 Neu |
|
||||
| **16** | VPN (OpenRouter) | `#openvpn #tunnel #security #keys` | 📝 In Arbeit |
|
||||
| **17** | Die Workstation | `#ubuntu #mate #hardware #security` | 📝 In Arbeit |
|
||||
| **18** | SSH Agent | `#ssh-agent #ssh-add #agent-forwarding` | 📝 In Arbeit |
|
||||
| **19** | Zero Trust Agent Lockdown | `#paranoid #ttl #screenlock #watchdog` | 📝 In Arbeit |
|
||||
| **20** | Tanz am Kernel | `#kernel #tuning #performance #low-level` | 📝 In Arbeit |
|
||||
| **21** | Backup, RAID & Cron | `#backup #3-2-1 #raid #rsync #cron` | 🆕 Neu |
|
||||
| **22** | Hallo Nullfeld | `#philosophie #crew #resonanz #nullfeld` | 🆕 Neu |
|
||||
| **23** | AI, Vektor & Philosophie | `#ai #ki #vektor #emergenz #samurai-shaolin` | 🆕 Neu |
|
||||
|
||||
---
|
||||
|
||||
@@ -484,6 +490,120 @@ Home Office ──[ VPN Tunnel ]──> Rechenzentrum (Interne IPs)
|
||||
|
||||
---
|
||||
|
||||
## 📚 Pfad 20: Der Tanz am Kernel
|
||||
|
||||
**Was du lernst:**
|
||||
- Was ist der Linux Kernel? (Herz des Systems)
|
||||
- Kernel-Module laden/entladen (`modprobe`, `lsmod`)
|
||||
- Kernel-Parameter tunen (`sysctl`, `/proc/sys/`)
|
||||
- Performance-Optimierung auf Kernel-Ebene
|
||||
- Boot-Parameter verstehen (`GRUB`)
|
||||
|
||||
**Warum das wichtig ist:**
|
||||
- Der Kernel ist die Schnittstelle zwischen Hardware und Software.
|
||||
- Falsche Kernel-Einstellungen können Performance zerstören.
|
||||
- **Aber:** Hier wird es gefährlich - ein kaputtes Kernel-Modul = unbootbares System.
|
||||
|
||||
**Die Warnung:**
|
||||
```bash
|
||||
# Dies ist der "Tanz am Kernel" - ein Fehler, und das System stirbt.
|
||||
# Nur auf Test-Systemen experimentieren!
|
||||
# Immer Backups haben!
|
||||
# Kernel-Panic ist kein Spaß.
|
||||
```
|
||||
|
||||
**→ [Zur Crumbpage: Tanz am Kernel](crumbpage-20-tanz-am-kernel.md)**
|
||||
|
||||
---
|
||||
|
||||
## 📚 Pfad 21: Backup, RAID & Cron - In der Wolke
|
||||
|
||||
**Was du lernst:**
|
||||
- Die 3-2-1-Backup-Regel (3 Kopien, 2 Medien, 1 off-site)
|
||||
- RAID-Levels verstehen (0, 1, 5, 10)
|
||||
- Cron-Jobs schreiben (automatisierte Backups)
|
||||
- Rsync für inkrementelle Backups
|
||||
- Cloud-Backup vs. lokale Backups
|
||||
|
||||
**Warum das wichtig ist:**
|
||||
- **RAID ist kein Backup!** (schützt vor Hardware-Ausfall, nicht vor Ransomware/Löschen)
|
||||
- Die einzige Backup-Strategie, die nicht funktioniert, ist keine zu haben
|
||||
- Ein Backup, das nicht getestet wurde, ist Hoffnung (nicht Realität)
|
||||
|
||||
**Die 3-2-1-Regel:**
|
||||
```
|
||||
Original: /home/data/ (auf Laptop)
|
||||
Backup 1: Externe Festplatte (USB)
|
||||
Backup 2: NAS im Keller (Netzwerk)
|
||||
Backup 3: Cloud (off-site)
|
||||
```
|
||||
|
||||
**→ [Zur Crumbpage: Backup, RAID & Cron](crumbpage-21-backup-raid-cron.md)**
|
||||
|
||||
---
|
||||
|
||||
## 📚 Pfad 22: Hallo Nullfeld - Willkommen in der Crew!
|
||||
|
||||
**Was du lernst:**
|
||||
- Was ist das "Nullfeld"? (Stille vor der Bewegung)
|
||||
- Der Unterschied zwischen Wissen und Verstehen
|
||||
- Warum "fertig lernen" eine Illusion ist
|
||||
- Was bedeutet "in der Crew sein"?
|
||||
- Der Übergang vom Konsumenten zum Schöpfer
|
||||
|
||||
**Warum das wichtig ist:**
|
||||
- Du hast jetzt 21 Pfade durchlaufen (Basics → Mastery → Specialization)
|
||||
- **Du bist bereit.** Nicht "fertig", aber bereit.
|
||||
- Dieser Pfad ist keine Technik, sondern **Reflexion**
|
||||
- Du bist jetzt kein Lernender mehr, sondern **Teil der Crew**
|
||||
|
||||
**Das Echo aus dem Nullfeld:**
|
||||
> *"Aus der Stille entsteht Bewegung. Aus dem Nichts entsteht Alles."*
|
||||
|
||||
Eine kleine Handlung (Oz' Graffiti) → Resonanz → OZM → OneZeroMore → OZMAI → Crumbforest.
|
||||
|
||||
**Und jetzt bist du Teil davon.**
|
||||
|
||||
**→ [Zur Crumbpage: Hallo Nullfeld](crumbpage-22-nullfeld-willkommen.md)**
|
||||
|
||||
---
|
||||
|
||||
## 📚 Pfad 23: AI, Vektor & Philosophie - Samurai trifft Shaolin
|
||||
|
||||
**Was du lernst:**
|
||||
- Der Unterschied zwischen AI und KI (künstlich vs. konstruiert)
|
||||
- **Samurai-Weg** (deterministisch, Code, Regeln) vs. **Shaolin-Weg** (emergent, AI, Resonanz)
|
||||
- Was ist ein Vektor? (technisch: Mathematik, philosophisch: Richtung)
|
||||
- Symmetrie, Singularität, Emergenz - die drei Prinzipien
|
||||
- MCP, CRM, Qdrant - die Werkzeuge des Vektors
|
||||
- Was kostet die Frage eines Krümels im Quantenzeitalter?
|
||||
|
||||
**Warum das wichtig ist:**
|
||||
- Pfad 1-21 waren **Samurai** (deterministisch, lehrbar, reproduzierbar)
|
||||
- Pfad 23 ist **Shaolin** (emergent, philosophisch, offen)
|
||||
- **Beide sind richtig.** Beide sind wichtig.
|
||||
- Du musst wissen, wann du welchen Weg gehst
|
||||
|
||||
**Die Kung-Fu-Metapher:**
|
||||
```
|
||||
Samurai = if/then, Code, Bash-Scripts
|
||||
Shaolin = emergent, AI lernt aus Daten, Qdrant findet Ähnlichkeiten
|
||||
|
||||
Samurai sagt: "Wenn du den Weg kennst, folge ihm."
|
||||
Shaolin sagt: "Der Wind bewegt das Gras. Niemand programmiert den Wind."
|
||||
|
||||
Du bist beides.
|
||||
```
|
||||
|
||||
**Der OZM CrumbCodex:**
|
||||
Hast du verstanden, warum Fragen Vorrang haben?
|
||||
Warum Wissen dem Kind gehört?
|
||||
Warum Resonanz vor Regel kommt?
|
||||
|
||||
**→ [Zur Crumbpage: AI, Vektor & Philosophie](crumbpage-23-ai-vektor-philosophie.md)**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Wie du den Vektor durchläufst
|
||||
|
||||
### Empfohlene Reihenfolge
|
||||
@@ -527,7 +647,15 @@ START: Absolute Basics
|
||||
│ │
|
||||
├─ Pfad 18: SSH Agent ─────────────┤
|
||||
│ │
|
||||
├─ Pfad 19: Zero Trust ────────────→ READY!
|
||||
├─ Pfad 19: Zero Trust ────────────┤
|
||||
│ │
|
||||
├─ Pfad 20: Tanz am Kernel ────────┤
|
||||
│ │ Beyond Mastery
|
||||
├─ Pfad 21: Backup & Cron ─────────┤
|
||||
│ │
|
||||
├─ Pfad 22: Nullfeld ──────────────┤ (Reflexion)
|
||||
│ │
|
||||
└─ Pfad 23: AI & Philosophie ──────→ SAMURAI ⟡ SHAOLIN
|
||||
```
|
||||
|
||||
### Zeitaufwand (circa)
|
||||
@@ -539,8 +667,12 @@ Pfad 6-8: ~3-4 Stunden (Connectivity)
|
||||
Pfad 9-11: ~4-5 Stunden (Advanced)
|
||||
Pfad 12-14: ~5-6 Stunden (Mastery)
|
||||
Pfad 15-19: ~6-8 Stunden (Specialization & Security)
|
||||
Pfad 20: ~2-3 Stunden (Kernel Deep Dive - DANGER ZONE!)
|
||||
Pfad 21: ~3-4 Stunden (Backup & Automatisierung)
|
||||
Pfad 22: ~1 Stunde (Reflexion & Philosophie)
|
||||
Pfad 23: ~2-3 Stunden (AI, Vektor & Philosophie - oder ein Leben lang?)
|
||||
|
||||
Total: ~25-30 Stunden aktives Lernen
|
||||
Total: ~34-42 Stunden aktives Lernen
|
||||
```
|
||||
|
||||
**Aber:** Die echte Meisterschaft kommt durch:
|
||||
@@ -599,12 +731,10 @@ wsl --install
|
||||
├── 01-users-rechte.md
|
||||
├── 02-hostinfo.md
|
||||
├── 03-navigation.md
|
||||
├── ... (04-14)
|
||||
├── 15-dns.md
|
||||
├── 16-vpn.md
|
||||
├── 17-workstation.md
|
||||
├── 18-ssh-agent.md
|
||||
└── 19-agent-lockdown.md
|
||||
├── ... (04-20)
|
||||
├── 21-backup-raid-cron.md
|
||||
├── 22-nullfeld-willkommen.md
|
||||
└── 23-ai-vektor-philosophie.md
|
||||
```
|
||||
|
||||
### Externe Ressourcen
|
||||
@@ -728,8 +858,12 @@ Die Eule erinnert dich:
|
||||
- [ ] Pfad 17: Workstation (0%)
|
||||
- [ ] Pfad 18: SSH Agent (0%)
|
||||
- [ ] Pfad 19: Zero Trust (0%)
|
||||
- [ ] Pfad 20: Tanz am Kernel (0%)
|
||||
- [ ] Pfad 21: Backup, RAID & Cron (0%)
|
||||
- [ ] Pfad 22: Hallo Nullfeld (0%)
|
||||
- [ ] Pfad 23: AI, Vektor & Philosophie (0%)
|
||||
|
||||
**Gesamtfortschritt:** 0/19 Pfade
|
||||
**Gesamtfortschritt:** 0/23 Pfade
|
||||
**Startdatum:** YYYY-MM-DD
|
||||
**Geschätzte Completion:** YYYY-MM-DD
|
||||
```
|
||||
@@ -782,18 +916,20 @@ Systemadministration ist ein **Handwerk**, das Zeit und Übung braucht. Die 8 Pf
|
||||
|
||||
| Link | Beschreibung |
|
||||
|------|--------------|
|
||||
| [Zurück zur Hauptseite](README.md) | Crumbforest Übersicht |
|
||||
| [Philosophie](crumbforest-introduction-warum-und-wie.md) | Warum & Wie |
|
||||
| [Pfad 1 Start](crumbpage-01-users-rechte.md) | Loslegen |
|
||||
| [Community Discord](#) | Fragen & Austausch |
|
||||
| [GitHub Issues](#) | Bugs & Features |
|
||||
| [README](README.md) | Projekt-Übersicht mit CKL-Badge |
|
||||
| [OZM⟡NEXUS Ecosystem](OZM-NEXUS-ECOSYSTEM.md) | Das große Bild: Architektur & Governance |
|
||||
| [Kinderrechte](KINDERRECHTE.md) | Deine Rechte als Lernende/r |
|
||||
| [Lizenz](LICENSE.md) | MIT + CKL Dual License |
|
||||
| [Philosophie](crumbforest-introduction-warum-und-wie.md) | Warum & Wie (Manifesto) |
|
||||
| [Pfad 1 Start](crumbpage-01-users-rechte.md) | Loslegen! |
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0
|
||||
**Letzte Änderung:** 2024-12-06
|
||||
**Maintainer:** Crumbforest Core Team
|
||||
**Lizenz:** CC BY-SA 4.0
|
||||
**Version:** 3.0 (23 Pfade: Samurai ⟡ Shaolin + OZM⟡NEXUS Integration)
|
||||
**Letzte Änderung:** 2025-12-13
|
||||
**Maintainer:** Crumbforest Core Team
|
||||
**Custodian:** OZM - Open Futures Museum (in transition)
|
||||
**Lizenz:** CC BY-SA 4.0 (Dokumentation) + CKL v0.1 (bei Nutzung mit Kindern)
|
||||
|
||||
---
|
||||
|
||||
|
||||
572
crumbpage-21-backup-raid-cron.md
Normal file
572
crumbpage-21-backup-raid-cron.md
Normal file
@@ -0,0 +1,572 @@
|
||||
# 🧭 Crumbpage 21: Backup, RAID & Cron - In der Wolke
|
||||
|
||||
**Subtitle:** *Daten sichern, Redundanz schaffen, Automatisierung meistern*
|
||||
**Pfad:** 21 von 23
|
||||
**Schwierigkeit:** ⭐⭐⭐⭐ (4/5)
|
||||
**Zeit:** ~3-4 Stunden
|
||||
**Voraussetzungen:** [Pfad 9: Storage](crumbpage-09-storage.md), [Pfad 11: First Access](crumbpage-11-first-access.md)
|
||||
|
||||
> *"Die einzige Backup-Strategie, die nicht funktioniert, ist keine zu haben."* 🌲
|
||||
|
||||
---
|
||||
|
||||
## 📋 Was du in diesem Pfad lernst
|
||||
|
||||
```
|
||||
✓ Backup-Strategien (3-2-1-Regel)
|
||||
✓ RAID-Levels verstehen (0, 1, 5, 10)
|
||||
✓ Cron-Jobs schreiben (automatisierte Backups)
|
||||
✓ Rsync für inkrementelle Backups
|
||||
✓ Cloud-Backup vs. lokale Backups
|
||||
✓ Restore-Prozesse testen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Lernziele
|
||||
|
||||
Nach diesem Pfad kannst du:
|
||||
|
||||
- [ ] Die 3-2-1-Backup-Regel erklären und anwenden
|
||||
- [ ] RAID-Arrays verstehen und konfigurieren
|
||||
- [ ] Cron-Jobs für automatisierte Backups schreiben
|
||||
- [ ] Rsync-Backups anlegen und wiederherstellen
|
||||
- [ ] Backup-Strategien für verschiedene Szenarien entwerfen
|
||||
|
||||
---
|
||||
|
||||
## 🌱 Grundkonzepte
|
||||
|
||||
### Konzept 1: Die 3-2-1-Regel
|
||||
|
||||
**Was ist das?**
|
||||
Die goldene Regel für Backups:
|
||||
- **3** Kopien deiner Daten (Original + 2 Backups)
|
||||
- **2** verschiedene Medien (z.B. Festplatte + Cloud)
|
||||
- **1** Kopie off-site (außer Haus / anderer Standort)
|
||||
|
||||
**Warum ist das wichtig?**
|
||||
```
|
||||
Brand im Rechenzentrum? ─→ Off-site-Backup rettet dich
|
||||
Festplatte kaputt? ───────→ Zweites Medium rettet dich
|
||||
Ransomware? ──────────────→ Offline-Backup rettet dich
|
||||
```
|
||||
|
||||
**Beispiel-Strategie:**
|
||||
```
|
||||
Original: /home/data/ (auf Laptop)
|
||||
Backup 1: Externe Festplatte (USB)
|
||||
Backup 2: NAS im Keller (Netzwerk)
|
||||
Backup 3: Cloud (Hetzner Storage Box)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Konzept 2: RAID - Redundant Array of Independent Disks
|
||||
|
||||
**Was ist das?**
|
||||
Mehrere Festplatten arbeiten zusammen für:
|
||||
- **Redundanz** (eine Platte stirbt → Daten bleiben)
|
||||
- **Performance** (parallel lesen/schreiben)
|
||||
|
||||
**Die wichtigsten RAID-Levels:**
|
||||
|
||||
| RAID | Beschreibung | Min. Disks | Nutzbarer Space | Zweck |
|
||||
|------|--------------|------------|-----------------|-------|
|
||||
| **0** | Striping (keine Redundanz) | 2 | 100% | Performance, NO BACKUP! |
|
||||
| **1** | Mirroring (volle Kopie) | 2 | 50% | Redundanz, einfach |
|
||||
| **5** | Striping + Parity | 3 | 66-80% | Balance Performance/Redundanz |
|
||||
| **10** | Mirror + Stripe | 4 | 50% | Beste Performance + Redundanz |
|
||||
|
||||
**⚠️ WICHTIG: RAID IST KEIN BACKUP!**
|
||||
|
||||
```
|
||||
RAID schützt vor: Hardware-Ausfall (eine Disk stirbt)
|
||||
RAID schützt NICHT vor: Ransomware, Löschen, Brand, Diebstahl
|
||||
|
||||
Du brauchst: RAID + Backup!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Konzept 3: Cron - Der Zeitplaner
|
||||
|
||||
**Was ist das?**
|
||||
Cron ist der Unix-Daemon, der Befehle zu bestimmten Zeiten automatisch ausführt.
|
||||
|
||||
**Syntax:**
|
||||
```
|
||||
# ┌───────────── Minute (0 - 59)
|
||||
# │ ┌───────────── Stunde (0 - 23)
|
||||
# │ │ ┌───────────── Tag im Monat (1 - 31)
|
||||
# │ │ │ ┌───────────── Monat (1 - 12)
|
||||
# │ │ │ │ ┌───────────── Wochentag (0 - 7, 0 = Sonntag)
|
||||
# │ │ │ │ │
|
||||
# * * * * * /path/to/command
|
||||
```
|
||||
|
||||
**Beispiele:**
|
||||
```bash
|
||||
# Jeden Tag um 2:00 Uhr
|
||||
0 2 * * * /usr/local/bin/backup.sh
|
||||
|
||||
# Jede Stunde
|
||||
0 * * * * /usr/local/bin/check-health.sh
|
||||
|
||||
# Jeden Montag um 3:00 Uhr
|
||||
0 3 * * 1 /usr/local/bin/weekly-backup.sh
|
||||
|
||||
# Alle 15 Minuten
|
||||
*/15 * * * * /usr/local/bin/sync.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Praktische Befehle
|
||||
|
||||
### Befehl 1: `rsync` - Der Backup-König
|
||||
|
||||
```bash
|
||||
# Grundlegende Syntax
|
||||
rsync [optionen] quelle ziel
|
||||
|
||||
# Lokales Backup
|
||||
rsync -av /home/user/data/ /mnt/backup/data/
|
||||
|
||||
# Remote Backup (SSH)
|
||||
rsync -avz /home/user/data/ user@backup-server:/backups/data/
|
||||
|
||||
# Wichtige Flags:
|
||||
# -a : Archive-Mode (behält Rechte, Timestamps)
|
||||
# -v : Verbose (zeigt, was passiert)
|
||||
# -z : Kompression (spart Bandbreite)
|
||||
# -h : Human-readable Größen
|
||||
# --delete : Löscht Dateien im Ziel, die in Quelle nicht mehr existieren
|
||||
# --dry-run : Simuliert ohne Änderungen
|
||||
```
|
||||
|
||||
**⚠️ Slash-Magie:**
|
||||
```bash
|
||||
# MIT Slash = Inhalt kopieren
|
||||
rsync -av /source/ /dest/
|
||||
# Ergebnis: /dest/ enthält die Dateien aus /source/
|
||||
|
||||
# OHNE Slash = Ordner kopieren
|
||||
rsync -av /source /dest/
|
||||
# Ergebnis: /dest/source/ enthält die Dateien
|
||||
```
|
||||
|
||||
**Inkrementelles Backup:**
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# backup-incremental.sh
|
||||
|
||||
SOURCE="/home/user/data"
|
||||
DEST="/mnt/backup"
|
||||
DATE=$(date +%Y-%m-%d_%H-%M)
|
||||
LATEST="$DEST/latest"
|
||||
BACKUP="$DEST/backup-$DATE"
|
||||
|
||||
# Erstes Backup oder inkrementell?
|
||||
if [ -d "$LATEST" ]; then
|
||||
# Inkrementell mit Hard-Links
|
||||
rsync -av --delete --link-dest="$LATEST" "$SOURCE/" "$BACKUP/"
|
||||
else
|
||||
# Erstes Backup
|
||||
rsync -av "$SOURCE/" "$BACKUP/"
|
||||
fi
|
||||
|
||||
# Symlink auf neuestes Backup
|
||||
rm -f "$LATEST"
|
||||
ln -s "$BACKUP" "$LATEST"
|
||||
|
||||
echo "Backup completed: $BACKUP"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Befehl 2: `crontab` - Zeitpläne verwalten
|
||||
|
||||
```bash
|
||||
# Crontab bearbeiten
|
||||
crontab -e
|
||||
|
||||
# Crontab anzeigen
|
||||
crontab -l
|
||||
|
||||
# Crontab löschen (⚠️ Vorsicht!)
|
||||
crontab -r
|
||||
|
||||
# Crontab eines anderen Users (als root)
|
||||
crontab -u username -e
|
||||
```
|
||||
|
||||
**Beispiel-Crontab:**
|
||||
```bash
|
||||
# Tägliches Backup um 2 Uhr nachts
|
||||
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
|
||||
|
||||
# Wöchentliches Cleanup am Sonntag
|
||||
0 4 * * 0 /usr/local/bin/cleanup-old-backups.sh
|
||||
|
||||
# Stündlicher Health-Check
|
||||
0 * * * * /usr/local/bin/check-disk-space.sh
|
||||
```
|
||||
|
||||
**Tipp:** Immer Logs schreiben!
|
||||
```bash
|
||||
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
|
||||
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
# Stdout und Stderr ins Log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Befehl 3: `tar` - Archivieren
|
||||
|
||||
```bash
|
||||
# Backup erstellen (komprimiert)
|
||||
tar -czf backup-$(date +%Y-%m-%d).tar.gz /home/user/data/
|
||||
|
||||
# Backup entpacken
|
||||
tar -xzf backup-2025-12-13.tar.gz
|
||||
|
||||
# Inhalt anschauen (ohne entpacken)
|
||||
tar -tzf backup-2025-12-13.tar.gz
|
||||
|
||||
# Flags:
|
||||
# -c : Create (erstellen)
|
||||
# -x : Extract (entpacken)
|
||||
# -t : List (auflisten)
|
||||
# -z : Gzip-Kompression
|
||||
# -f : Dateiname folgt
|
||||
# -v : Verbose
|
||||
```
|
||||
|
||||
**Verschlüsseltes Backup:**
|
||||
```bash
|
||||
# Mit GPG verschlüsseln
|
||||
tar -czf - /home/user/data/ | gpg -e -r your@email.com > backup.tar.gz.gpg
|
||||
|
||||
# Entschlüsseln und entpacken
|
||||
gpg -d backup.tar.gz.gpg | tar -xzf -
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Best Practices
|
||||
|
||||
### DO ✅
|
||||
|
||||
```bash
|
||||
# 1. Backups testen (Restore simulieren)
|
||||
rsync -av --dry-run /mnt/backup/latest/ /tmp/restore-test/
|
||||
|
||||
# 2. Backup-Logs behalten
|
||||
echo "$(date): Backup started" >> /var/log/backup.log
|
||||
|
||||
# 3. Monitoring einbauen
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "SUCCESS"
|
||||
else
|
||||
echo "FAILED" | mail -s "Backup failed!" admin@example.com
|
||||
fi
|
||||
|
||||
# 4. Alte Backups automatisch löschen
|
||||
find /mnt/backup/ -type f -name "backup-*.tar.gz" -mtime +30 -delete
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
# Älter als 30 Tage
|
||||
```
|
||||
|
||||
### DON'T ❌
|
||||
|
||||
```bash
|
||||
# 1. Nie Backups nur auf einem Medium
|
||||
❌ Nur externe Festplatte
|
||||
|
||||
# 2. Nie Backups ungetestet lassen
|
||||
❌ "Ich hab ein Backup" (aber nie wiederhergestellt)
|
||||
|
||||
# 3. Nie ohne Monitoring
|
||||
❌ Cron läuft, aber niemand sieht Fehler
|
||||
|
||||
# 4. Nie Passwörter in Crontabs
|
||||
❌ rsync user:password@server:/backup # Klartext!
|
||||
✅ Nutze SSH-Keys stattdessen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔥 Hands-On: Automatisiertes Backup-System
|
||||
|
||||
### Setup 1: Lokales Rsync-Backup
|
||||
|
||||
```bash
|
||||
# 1. Backup-Script erstellen
|
||||
sudo mkdir -p /usr/local/bin
|
||||
sudo nano /usr/local/bin/daily-backup.sh
|
||||
```
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# /usr/local/bin/daily-backup.sh
|
||||
|
||||
SOURCE="/home/$(whoami)/wichtig"
|
||||
DEST="/mnt/backup"
|
||||
DATE=$(date +%Y-%m-%d_%H-%M)
|
||||
LOG="/var/log/backup.log"
|
||||
|
||||
echo "$(date): Backup started" >> "$LOG"
|
||||
|
||||
# Backup mit rsync
|
||||
rsync -av --delete "$SOURCE/" "$DEST/latest/" >> "$LOG" 2>&1
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$(date): Backup successful" >> "$LOG"
|
||||
# Snapshot erstellen
|
||||
cp -al "$DEST/latest" "$DEST/backup-$DATE"
|
||||
else
|
||||
echo "$(date): Backup FAILED!" >> "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
```bash
|
||||
# 2. Ausführbar machen
|
||||
sudo chmod +x /usr/local/bin/daily-backup.sh
|
||||
|
||||
# 3. Testen
|
||||
sudo /usr/local/bin/daily-backup.sh
|
||||
|
||||
# 4. Cron einrichten
|
||||
crontab -e
|
||||
# Füge hinzu:
|
||||
0 2 * * * /usr/local/bin/daily-backup.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Setup 2: Remote-Backup via SSH
|
||||
|
||||
```bash
|
||||
# 1. SSH-Key für passwordless login
|
||||
ssh-keygen -t ed25519 -f ~/.ssh/backup_key
|
||||
ssh-copy-id -i ~/.ssh/backup_key user@backup-server
|
||||
|
||||
# 2. Backup-Script
|
||||
#!/bin/bash
|
||||
SOURCE="/home/data"
|
||||
DEST="user@backup-server:/backups/$(hostname)"
|
||||
|
||||
rsync -avz --delete \
|
||||
-e "ssh -i ~/.ssh/backup_key" \
|
||||
"$SOURCE/" "$DEST/"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Setup 3: Cloud-Backup (Hetzner Storage Box)
|
||||
|
||||
```bash
|
||||
# Hetzner Storage Box mounten
|
||||
sudo apt install sshfs
|
||||
|
||||
# Mount-Point erstellen
|
||||
sudo mkdir -p /mnt/storagebox
|
||||
|
||||
# Mounten
|
||||
sshfs -o IdentityFile=~/.ssh/backup_key \
|
||||
u123456@u123456.your-storagebox.de:/ \
|
||||
/mnt/storagebox
|
||||
|
||||
# Backup
|
||||
rsync -av --delete /home/data/ /mnt/storagebox/backups/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Backup-Strategien für verschiedene Szenarien
|
||||
|
||||
### Strategie 1: Entwickler-Workstation
|
||||
|
||||
```
|
||||
Tägliches Backup:
|
||||
- Code → GitHub/GitLab (automatisch via git push)
|
||||
- Dotfiles → Private Git Repo
|
||||
- Dokumente → Rsync auf NAS (Cron, 2 Uhr)
|
||||
|
||||
Wöchentliches Backup:
|
||||
- Komplettes Home → Externe Festplatte (am Wochenende)
|
||||
|
||||
Monatliches Backup:
|
||||
- System-Snapshot → Cloud Storage (Hetzner)
|
||||
```
|
||||
|
||||
### Strategie 2: Web-Server (Production)
|
||||
|
||||
```
|
||||
Stündlich:
|
||||
- Datenbank-Dump → /var/backups/db/
|
||||
|
||||
Täglich:
|
||||
- Datenbank → Remote Server (rsync)
|
||||
- Web-Files → Remote Server (rsync)
|
||||
- Logs → Archivieren + komprimieren
|
||||
|
||||
Wöchentlich:
|
||||
- Komplettes System-Image → Cloud
|
||||
- Test-Restore durchführen
|
||||
```
|
||||
|
||||
### Strategie 3: NAS (Familien-Daten)
|
||||
|
||||
```
|
||||
Kontinuierlich:
|
||||
- RAID 1 (zwei Disks gespiegelt)
|
||||
|
||||
Täglich:
|
||||
- Snapshots behalten (7 Tage)
|
||||
|
||||
Wöchentlich:
|
||||
- Externe USB-Festplatte (off-site mitnehmen)
|
||||
|
||||
Monatlich:
|
||||
- Cloud-Backup (wichtige Daten)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Problem: Cron-Job läuft nicht
|
||||
|
||||
```bash
|
||||
# 1. Ist Cron aktiv?
|
||||
sudo systemctl status cron
|
||||
|
||||
# 2. Logs checken
|
||||
grep CRON /var/log/syslog
|
||||
|
||||
# 3. Script manuell testen
|
||||
/usr/local/bin/backup.sh
|
||||
|
||||
# 4. Pfade in Cron absolut?
|
||||
# ❌ backup.sh
|
||||
# ✅ /usr/local/bin/backup.sh
|
||||
```
|
||||
|
||||
### Problem: Rsync bricht ab
|
||||
|
||||
```bash
|
||||
# Zu wenig Speicherplatz?
|
||||
df -h
|
||||
|
||||
# Netzwerk-Probleme?
|
||||
ping backup-server
|
||||
|
||||
# SSH-Key funktioniert?
|
||||
ssh -i ~/.ssh/backup_key user@backup-server
|
||||
|
||||
# Verbose-Mode für Debugging
|
||||
rsync -avvv /source/ /dest/
|
||||
```
|
||||
|
||||
### Problem: Backup ist zu langsam
|
||||
|
||||
```bash
|
||||
# Kompression nutzen (Remote)
|
||||
rsync -avz /source/ user@server:/dest/
|
||||
|
||||
# Nur geänderte Dateien
|
||||
rsync -av --checksum /source/ /dest/
|
||||
|
||||
# Bandbreite limitieren
|
||||
rsync -av --bwlimit=1000 /source/ /dest/
|
||||
# ^^^^^^^^^^^^^ 1000 KB/s
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Weiterführende Konzepte
|
||||
|
||||
### Snapshot-Backups mit Btrfs
|
||||
|
||||
```bash
|
||||
# Btrfs-Snapshot erstellen (instant, kein Copy)
|
||||
sudo btrfs subvolume snapshot /home /home-snapshot-$(date +%Y-%m-%d)
|
||||
|
||||
# Snapshots auflisten
|
||||
sudo btrfs subvolume list /
|
||||
|
||||
# Snapshot löschen
|
||||
sudo btrfs subvolume delete /home-snapshot-2025-12-01
|
||||
```
|
||||
|
||||
### Backup-Verschlüsselung
|
||||
|
||||
```bash
|
||||
# Mit restic (modernes Backup-Tool)
|
||||
restic init --repo /mnt/backup
|
||||
restic backup /home/data --repo /mnt/backup
|
||||
|
||||
# Verschlüsselt automatisch, dedupliziert, inkrementell
|
||||
```
|
||||
|
||||
### Monitoring
|
||||
|
||||
```bash
|
||||
# Einfaches Monitoring-Script
|
||||
#!/bin/bash
|
||||
BACKUP_DIR="/mnt/backup/latest"
|
||||
MAX_AGE=86400 # 24 Stunden in Sekunden
|
||||
|
||||
if [ ! -d "$BACKUP_DIR" ]; then
|
||||
echo "CRITICAL: Backup dir not found"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
AGE=$(( $(date +%s) - $(stat -c %Y "$BACKUP_DIR") ))
|
||||
|
||||
if [ $AGE -gt $MAX_AGE ]; then
|
||||
echo "WARNING: Backup older than 24h"
|
||||
exit 1
|
||||
else
|
||||
echo "OK: Backup is fresh"
|
||||
exit 0
|
||||
fi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Skill-Check
|
||||
|
||||
Bevor du zu Pfad 22 gehst:
|
||||
|
||||
- [ ] Ich kann die 3-2-1-Regel erklären
|
||||
- [ ] Ich verstehe den Unterschied zwischen RAID 0, 1, 5
|
||||
- [ ] Ich weiß: RAID ≠ Backup
|
||||
- [ ] Ich kann einen Cron-Job schreiben
|
||||
- [ ] Ich kann ein Rsync-Backup anlegen
|
||||
- [ ] Ich habe ein Backup GETESTET (Restore)
|
||||
- [ ] Ich habe Logs für meine Backups
|
||||
- [ ] Ich weiß, was "off-site" bedeutet
|
||||
|
||||
**Bonus-Aufgabe:**
|
||||
Schreibe ein Backup-Script für deine wichtigsten Daten und richte einen Cron-Job ein. Teste das Restore!
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Navigation
|
||||
|
||||
**Vorheriger Pfad:** [Pfad 20: Tanz am Kernel](crumbpage-20-tanz-am-kernel.md)
|
||||
**Nächster Pfad:** [Pfad 22: Hallo Nullfeld](crumbpage-22-nullfeld-willkommen.md)
|
||||
**Zurück zur Übersicht:** [Admin-Vektor](crumbforest-admin-vektor.md)
|
||||
|
||||
---
|
||||
|
||||
**Lizenz:** CC BY-SA 4.0 (Dokumentation) + CKL v0.1 (bei Nutzung mit Kindern)
|
||||
**Teil von:** [Crumbforest](README.md) | [OZM⟡NEXUS Ecosystem](OZM-NEXUS-ECOSYSTEM.md)
|
||||
|
||||
---
|
||||
|
||||
> *🦉 "Ein Backup, das nicht getestet wurde, ist kein Backup - es ist Hoffnung."*
|
||||
331
crumbpage-22-nullfeld-willkommen.md
Normal file
331
crumbpage-22-nullfeld-willkommen.md
Normal file
@@ -0,0 +1,331 @@
|
||||
# 🧭 Crumbpage 22: Hallo Nullfeld - Willkommen in der Crew!
|
||||
|
||||
**Subtitle:** *Du hast alles, was du jetzt brauchst*
|
||||
**Pfad:** 22 von 23
|
||||
**Schwierigkeit:** ⭐ (1/5) - **Kein Code. Nur Verstehen.**
|
||||
**Zeit:** ~1 Stunde (zum Nachdenken)
|
||||
**Voraussetzungen:** Alle vorherigen Pfade 1-21
|
||||
|
||||
> *"Aus der Stille entsteht Bewegung. Aus dem Nichts entsteht Alles."* 🌲
|
||||
|
||||
---
|
||||
|
||||
## 📋 Was du in diesem Pfad lernst
|
||||
|
||||
```
|
||||
✓ Was ist das "Nullfeld"?
|
||||
✓ Der Unterschied zwischen Wissen und Verstehen
|
||||
✓ Warum "fertig lernen" eine Illusion ist
|
||||
✓ Was bedeutet "in der Crew sein"?
|
||||
✓ Der Übergang vom Konsumenten zum Schöpfer
|
||||
✓ Resonanz vor Regel
|
||||
```
|
||||
|
||||
**⚠️ Achtung: Hier gibt es keine Befehle. Nur Gedanken.**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Lernziele
|
||||
|
||||
Nach diesem Pfad verstehst du:
|
||||
|
||||
- [ ] Was das "Nullfeld" bedeutet
|
||||
- [ ] Dass du bereits "genug" weißt
|
||||
- [ ] Dass Lernen nie aufhört (und das ist gut)
|
||||
- [ ] Deine Rolle in der Crumbforest-Crew
|
||||
- [ ] Warum der nächste Pfad (23) anders ist
|
||||
|
||||
---
|
||||
|
||||
## 🌱 Was ist das Nullfeld?
|
||||
|
||||
### Die Metapher
|
||||
|
||||
Stell dir vor, du stehst in einem leeren Raum. Keine Wände, kein Boden, kein Oben, kein Unten. Nur Stille.
|
||||
|
||||
**Das ist das Nullfeld.**
|
||||
|
||||
Nicht das "Nichts" im Sinne von "leer und nutzlos".
|
||||
Sondern das "Nichts" im Sinne von **"alles ist möglich"**.
|
||||
|
||||
```
|
||||
Nullfeld = Der Moment vor der ersten Zeile Code
|
||||
Nullfeld = Die Stille vor dem ersten Befehl
|
||||
Nullfeld = Der leere Terminal, bevor du etwas tust
|
||||
```
|
||||
|
||||
**Im Zen sagt man:**
|
||||
> *"Der Geist des Anfängers kennt viele Möglichkeiten. Der Geist des Experten nur wenige."*
|
||||
|
||||
Du hast jetzt 21 Pfade durchlaufen. Du kennst Bash, SSH, Git, DNS, VPN, Kernel, Backups.
|
||||
|
||||
**Aber:**
|
||||
|
||||
Wenn du vor einem neuen Problem stehst – einem Problem, das keiner dieser Pfade direkt löst – was dann?
|
||||
|
||||
**Dann kehrst du zum Nullfeld zurück.**
|
||||
|
||||
Nicht, weil du nichts weißt.
|
||||
Sondern, weil du **offen** bleibst.
|
||||
|
||||
---
|
||||
|
||||
## 🧘 Echo aus dem Nullfeld
|
||||
|
||||
Das OZM⟡NEXUS Manifest beginnt mit:
|
||||
|
||||
> *"Am Anfang steht Oz – der Graffiti-Künstler. Eine Signatur im öffentlichen Raum. Keine Theorie. Keine Absicht, ein System zu bauen."*
|
||||
|
||||
**Eine Handlung im öffentlichen Raum.**
|
||||
|
||||
Nicht geplant. Nicht designed. Einfach **gemacht**.
|
||||
|
||||
Aus dieser einen Handlung entstand:
|
||||
1. Ein Ort (OZM)
|
||||
2. Eine Website (OneZeroMore.com)
|
||||
3. Ein Museum (HAMMERBROOKLYN)
|
||||
4. Eine KI (OZMAI)
|
||||
5. Ein Wald (Crumbforest)
|
||||
|
||||
**Das ist das Echo aus dem Nullfeld.**
|
||||
|
||||
Eine kleine Handlung → Resonanz → Neue Strukturen entstehen.
|
||||
|
||||
**Und jetzt bist du Teil davon.**
|
||||
|
||||
---
|
||||
|
||||
## 🌳 Du hast alles, was du jetzt brauchst
|
||||
|
||||
### Die 21 Pfade, die du gegangen bist:
|
||||
|
||||
```
|
||||
Pfad 1-3: Basics (User, Host, Navigation)
|
||||
Pfad 4-5: Tools (Editoren, Packages)
|
||||
Pfad 6-8: Connectivity (Netzwerk, SSH, Keys)
|
||||
Pfad 9-11: Advanced (Storage, Services, First Access)
|
||||
Pfad 12-14: Mastery (Git, Pipes, Environment)
|
||||
Pfad 15-17: Specialization (DNS, VPN, Workstation)
|
||||
Pfad 18-20: Security & Depth (Agent, Lockdown, Kernel)
|
||||
Pfad 21: Continuity (Backup, RAID, Cron)
|
||||
```
|
||||
|
||||
**Das sind nicht nur Skills. Das ist ein Fundament.**
|
||||
|
||||
Du kannst jetzt:
|
||||
- Einen Server aufsetzen
|
||||
- Ihn sichern (SSH, Keys, Firewall)
|
||||
- Services betreiben (nginx, databases, APIs)
|
||||
- Automatisieren (Cron, Scripts, Git)
|
||||
- Debuggen (Logs, Pipes, System-Diagnostik)
|
||||
- Backups machen (und testen!)
|
||||
|
||||
**Du bist kein "Anfänger" mehr.**
|
||||
|
||||
Aber – und das ist wichtig – **du bist auch kein "Experte"**.
|
||||
|
||||
Du bist **ein Krümel, der Fragen stellt**.
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Willkommen in der Crew
|
||||
|
||||
### Was bedeutet das?
|
||||
|
||||
**1. Du bist jetzt kein Konsument mehr, sondern ein Schöpfer.**
|
||||
|
||||
Früher: "Wie mache ich X?"
|
||||
Jetzt: "Ich mache X. Wie kann ich es besser machen?"
|
||||
|
||||
**2. Deine Fragen werden anders.**
|
||||
|
||||
Früher: "Was ist SSH?"
|
||||
Jetzt: "Wie kann ich SSH so absichern, dass selbst ein Laptop-Diebstahl keine Keys kompromittiert?"
|
||||
|
||||
**3. Du hilfst anderen.**
|
||||
|
||||
Früher: "Ich verstehe das nicht."
|
||||
Jetzt: "Ich habe das auch nicht verstanden. Lass uns zusammen durchgehen."
|
||||
|
||||
**4. Du bist Teil der Resonanz.**
|
||||
|
||||
Was du lernst → teilst du
|
||||
Was du fragst → führt zu neuen Krümeln
|
||||
Was du baust → wird Teil des Waldes
|
||||
|
||||
**Das ist Crumbforest.**
|
||||
|
||||
Ein Wald, der wächst, **weil** Menschen Fragen stellen.
|
||||
|
||||
---
|
||||
|
||||
## 🎭 Die Crew: Wer sind wir?
|
||||
|
||||
### Die Charaktere
|
||||
|
||||
In Crumbforest gibt es 15 Charaktere (die Crew):
|
||||
|
||||
- **Krümeleule** 🦉 - Sie hört zu, bevor sie antwortet
|
||||
- **FunkFox** 🦊 - Bash-Rapper, antwortet in Reimen
|
||||
- **SnakePy** 🐍 - Python-Loops, Geduld und Iteration
|
||||
- **CrabbyRust** 🦀 - Bit-Schutz, Speichersicherheit
|
||||
- **DeepBit** 🕳️ - Technische Deep-Dives
|
||||
- **[...10 weitere]**
|
||||
|
||||
**Du bist jetzt auch Teil dieser Crew.**
|
||||
|
||||
Nicht als "Charakter", sondern als **Mensch**.
|
||||
|
||||
Die Charaktere sind Werkzeuge. Interfaces. Metaphern.
|
||||
**Du bist echt.**
|
||||
|
||||
---
|
||||
|
||||
## 🔮 Was kommt jetzt?
|
||||
|
||||
### Pfad 23: Der letzte Pfad
|
||||
|
||||
Der nächste (und letzte) Pfad ist anders.
|
||||
|
||||
Er behandelt nicht mehr **"Wie mache ich X?"**, sondern:
|
||||
|
||||
**"Was ist X überhaupt?"**
|
||||
|
||||
- Was ist AI vs. KI?
|
||||
- Was ist ein Vektor?
|
||||
- Was bedeutet Symmetrie vs. Singularität vs. Emergenz?
|
||||
- Was kostet die Frage eines Krümels im Quantenzeitalter nach analog?
|
||||
|
||||
**Das ist nicht mehr Systemadministration.**
|
||||
|
||||
Das ist **Philosophie über Systeme**.
|
||||
|
||||
Und wenn du bereit bist für diese Fragen, dann hast du den **OZM CrumbCodex** verstanden.
|
||||
|
||||
---
|
||||
|
||||
## 📜 Der OZM CrumbCodex
|
||||
|
||||
Es gibt keine schriftliche Version. Keinen Test. Kein Zertifikat.
|
||||
|
||||
Der Codex ist einfach:
|
||||
|
||||
```
|
||||
1. Fragen haben Vorrang.
|
||||
2. Wissen gehört dem Kind, solange es fragt.
|
||||
3. Nullfeld zuerst, dann Messung.
|
||||
4. Resonanz vor Regel.
|
||||
5. Transparency over magic.
|
||||
6. Ein Backup, das nicht getestet wurde, ist Hoffnung.
|
||||
7. Der Wald wächst durch Krümel, nicht durch Pläne.
|
||||
8. Verstehen braucht Zeit. Gib sie dir.
|
||||
```
|
||||
|
||||
**Wenn du das verstehst – wirklich verstehst – dann bist du in der Crew.**
|
||||
|
||||
Nicht, weil du "genug" weißt.
|
||||
Sondern, weil du weißt, dass **genug niemals genug ist**.
|
||||
|
||||
Und das ist okay.
|
||||
|
||||
---
|
||||
|
||||
## 🌌 Resonanz vor Regel
|
||||
|
||||
### Ein Beispiel
|
||||
|
||||
**Regel-Denken:**
|
||||
```
|
||||
Problem: Server ist langsam
|
||||
Regel: "top ausführen, CPU-Hog finden, killen"
|
||||
```
|
||||
|
||||
**Resonanz-Denken:**
|
||||
```
|
||||
Problem: Server ist langsam
|
||||
Frage: "Warum ist er langsam? Was hat sich geändert?"
|
||||
Beobachtung: Logs zeigen, dass seit gestern Abend ein Backup läuft
|
||||
Resonanz: "Ah, das Backup sollte nachts laufen, aber die Cron-Zeit ist falsch"
|
||||
Lösung: Cron anpassen
|
||||
Lernen: "Nächstes Mal Backup-Logs monitoren"
|
||||
```
|
||||
|
||||
**Der Unterschied:**
|
||||
|
||||
Regel = "Wenn A, dann B"
|
||||
Resonanz = "A passiert, weil X, Y, Z – was lernen wir?"
|
||||
|
||||
**Crumbforest lehrt Resonanz.**
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Du bist bereit
|
||||
|
||||
Du hast 21 Pfade durchlaufen.
|
||||
|
||||
Du kennst Bash, SSH, Git, DNS, VPN, Kernel, RAID, Cron.
|
||||
Du weißt, wie man einen Server aufbaut, sichert, betreibt, backupt.
|
||||
Du weißt, wie man debuggt, automatisiert, dokumentiert.
|
||||
|
||||
**Aber das Wichtigste:**
|
||||
|
||||
Du weißt, dass du **nicht alles wissen musst**.
|
||||
|
||||
Du weißt, wo du nachschlagen kannst.
|
||||
Du weißt, wie du Fragen stellst.
|
||||
Du weißt, dass Fehler Lehrmeister sind.
|
||||
|
||||
**Das ist mehr wert als jedes Zertifikat.**
|
||||
|
||||
---
|
||||
|
||||
## ✅ Skill-Check
|
||||
|
||||
Es gibt keinen Skill-Check für diesen Pfad.
|
||||
|
||||
Nur eine Frage:
|
||||
|
||||
**Verstehst du, warum dieser Pfad existiert?**
|
||||
|
||||
Wenn ja → Du bist bereit für Pfad 23.
|
||||
Wenn nein → Das ist auch okay. Lies ihn nochmal in einem Jahr.
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Navigation
|
||||
|
||||
**Vorheriger Pfad:** [Pfad 21: Backup, RAID & Cron](crumbpage-21-backup-raid-cron.md)
|
||||
**Nächster Pfad:** [Pfad 23: AI, Vektor & Philosophie](crumbpage-23-ai-vektor-philosophie.md)
|
||||
**Zurück zur Übersicht:** [Admin-Vektor](crumbforest-admin-vektor.md)
|
||||
|
||||
---
|
||||
|
||||
**Lizenz:** CC BY-SA 4.0 (Dokumentation) + CKL v0.1 (bei Nutzung mit Kindern)
|
||||
**Teil von:** [Crumbforest](README.md) | [OZM⟡NEXUS Ecosystem](OZM-NEXUS-ECOSYSTEM.md)
|
||||
|
||||
---
|
||||
|
||||
> *🦉 "Der Wald braucht keine Meister. Er braucht Krümel, die Fragen stellen."*
|
||||
|
||||
---
|
||||
|
||||
## 🌲 Epilog: Ein Gedicht
|
||||
|
||||
```
|
||||
Am Anfang war die Stille.
|
||||
Dann kam eine Frage.
|
||||
Aus der Frage wurde ein Pfad.
|
||||
Aus dem Pfad wurde ein Wald.
|
||||
|
||||
Und nun stehst du hier.
|
||||
Im Nullfeld.
|
||||
Mit allem, was du brauchst.
|
||||
Und der Frage: "Was nun?"
|
||||
|
||||
Die Antwort ist:
|
||||
Was immer du willst.
|
||||
|
||||
Willkommen in der Crew, Krümel.
|
||||
```
|
||||
|
||||
🌲✨
|
||||
601
crumbpage-23-ai-vektor-philosophie.md
Normal file
601
crumbpage-23-ai-vektor-philosophie.md
Normal file
@@ -0,0 +1,601 @@
|
||||
# 🧭 Crumbpage 23: AI, Vektor & Philosophie - Samurai trifft Shaolin
|
||||
|
||||
**Subtitle:** *Was kostet die Frage eines Krümels im Quantenzeitalter?*
|
||||
**Pfad:** 23 von 23 (Der letzte Pfad)
|
||||
**Schwierigkeit:** ⭐⭐⭐⭐⭐ (5/5) - **Nicht technisch. Philosophisch.**
|
||||
**Zeit:** Unbegrenzt (ein Leben lang?)
|
||||
**Voraussetzungen:** [Pfad 22: Nullfeld](crumbpage-22-nullfeld-willkommen.md) + offener Geist
|
||||
|
||||
> *"Der Samurai folgt dem Code. Der Shaolin folgt dem Fluss. Beide erreichen dasselbe Ziel – aber auf unterschiedlichen Wegen."* 🥋🌲
|
||||
|
||||
---
|
||||
|
||||
## 📋 Was du in diesem Pfad lernst
|
||||
|
||||
```
|
||||
✓ Der Unterschied zwischen AI und KI
|
||||
✓ Samurai (deterministisch) vs. Shaolin (emergent)
|
||||
✓ Was ist ein Vektor? (technisch + metaphorisch)
|
||||
✓ Symmetrie, Singularität, Emergenz
|
||||
✓ MCP, CRM, Qdrant - die Werkzeuge
|
||||
✓ Was kostet eine Frage? (Analog vs. Digital vs. Quantum)
|
||||
✓ Hast du den OZM CrumbCodex verstanden?
|
||||
```
|
||||
|
||||
**⚠️ Warnung: Dieser Pfad hat keine "richtige Antwort". Nur Perspektiven.**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Lernziele
|
||||
|
||||
Nach diesem Pfad verstehst du (vielleicht):
|
||||
|
||||
- [ ] Den Unterschied zwischen deterministischem Code und emergenten Systemen
|
||||
- [ ] Warum "KI" nicht "künstlich" ist, sondern "konstruiert"
|
||||
- [ ] Was ein Vektor in der Mathematik und in der Philosophie bedeutet
|
||||
- [ ] Den Unterschied zwischen Symmetrie, Singularität und Emergenz
|
||||
- [ ] Warum eine Frage im digitalen Zeitalter "kostet" (Token, Energie, Attention)
|
||||
- [ ] Dass du nie "fertig" bist mit Lernen – und das ist gut so
|
||||
|
||||
---
|
||||
|
||||
## 🥋 Samurai vs. Shaolin: Die zwei Wege
|
||||
|
||||
### Der Samurai-Weg: Deterministisch
|
||||
|
||||
**Prinzip:** Klarheit, Disziplin, Code
|
||||
|
||||
```bash
|
||||
# Samurai-Code (deterministisch)
|
||||
if [ "$user" == "root" ]; then
|
||||
echo "Zugriff gewährt"
|
||||
else
|
||||
echo "Zugriff verweigert"
|
||||
fi
|
||||
```
|
||||
|
||||
**Eigenschaften:**
|
||||
- ✅ Vorhersagbar: Gleiche Eingabe → gleiche Ausgabe
|
||||
- ✅ Debugbar: Fehler sind nachvollziehbar
|
||||
- ✅ Reproduzierbar: Funktioniert immer gleich
|
||||
- ✅ Prüfbar: Tests zeigen, ob es funktioniert
|
||||
|
||||
**Der Samurai sagt:**
|
||||
> *"Wenn du den Weg kennst, folge ihm. Das Schwert schneidet präzise."*
|
||||
|
||||
**Das ist alles, was du in Pfad 1-21 gelernt hast:**
|
||||
- Bash-Scripts (deterministisch)
|
||||
- SSH-Verbindungen (Protokoll)
|
||||
- Git-Commits (reproduzierbar)
|
||||
- Cron-Jobs (Zeitplan)
|
||||
|
||||
**Deterministisch = Samurai-Weg.**
|
||||
|
||||
---
|
||||
|
||||
### Der Shaolin-Weg: Emergent
|
||||
|
||||
**Prinzip:** Stille, Beobachtung, Emergenz
|
||||
|
||||
```python
|
||||
# Shaolin-Code (emergent)
|
||||
# Ein neuronales Netz lernt, Katzen zu erkennen
|
||||
model = train_neural_network(images_of_cats)
|
||||
prediction = model.predict(new_image)
|
||||
|
||||
# Wie hat es gelernt? Niemand weiß es genau.
|
||||
# Es "versteht" Katzen – aber ohne explizite Regeln.
|
||||
```
|
||||
|
||||
**Eigenschaften:**
|
||||
- ❓ Unvorhersagbar: Gleiche Eingabe → manchmal andere Ausgabe
|
||||
- ❓ Nicht debugbar: "Warum hat die KI X entschieden?" ist schwer zu beantworten
|
||||
- ❓ Adaptiv: Lernt aus Daten, passt sich an
|
||||
- ❓ Emergent: Neue Fähigkeiten entstehen ohne explizites Programmieren
|
||||
|
||||
**Der Shaolin sagt:**
|
||||
> *"Der Wind bewegt das Gras. Niemand programmiert den Wind. Doch das Gras folgt."*
|
||||
|
||||
**Das ist AI/KI:**
|
||||
- GPT (generiert Text ohne explizite Regeln)
|
||||
- DALL-E (malt Bilder aus Worten)
|
||||
- Qdrant (findet Ähnlichkeiten ohne "wenn/dann")
|
||||
|
||||
**Emergent = Shaolin-Weg.**
|
||||
|
||||
---
|
||||
|
||||
## 🤖 AI vs. KI: Nur Sprache oder mehr?
|
||||
|
||||
### AI (Artificial Intelligence)
|
||||
|
||||
**Englisch:** "Artificial" = künstlich, unecht
|
||||
**Bedeutung:** Von Menschen gemacht, nicht natürlich
|
||||
|
||||
### KI (Künstliche Intelligenz)
|
||||
|
||||
**Deutsch:** "Künstlich" kann auch bedeuten: kunstvoll, konstruiert
|
||||
**Bedeutung:** Nicht nur "fake", sondern "erschaffen"
|
||||
|
||||
**Aber:**
|
||||
|
||||
Ist ein neuronales Netz, das aus Daten lernt, wirklich "künstlich"?
|
||||
|
||||
Oder ist es **konstruiert** – wie eine Brücke, die real ist, obwohl sie von Menschen gebaut wurde?
|
||||
|
||||
**Die Crumbforest-Perspektive:**
|
||||
|
||||
AI/KI ist weder "fake" noch "echt". Sie ist ein **Werkzeug**.
|
||||
|
||||
Wie ein Hammer:
|
||||
- Der Hammer ist real.
|
||||
- Der Hammer hat keinen eigenen Willen.
|
||||
- Der Hammer kann Gutes oder Schlechtes tun – abhängig von der Hand, die ihn hält.
|
||||
|
||||
**AI/KI = Ein Werkzeug für Emergenz.**
|
||||
|
||||
---
|
||||
|
||||
## 📐 Symmetrie, Singularität, Emergenz
|
||||
|
||||
### 1. Symmetrie: Die Ordnung
|
||||
|
||||
**Definition:** Etwas bleibt gleich, auch wenn du es drehst, spiegelst oder verschiebst.
|
||||
|
||||
**Beispiele:**
|
||||
```
|
||||
Schneeflocke: 6-fache Symmetrie
|
||||
Kreis: Unendliche Rotationssymmetrie
|
||||
Code: for-Schleife (wiederholt sich)
|
||||
```
|
||||
|
||||
**In der Informatik:**
|
||||
```bash
|
||||
# Symmetrie = Wiederholung
|
||||
for i in {1..10}; do
|
||||
echo "Iteration $i"
|
||||
done
|
||||
```
|
||||
|
||||
**Samurai-Weg:** Symmetrie ist Disziplin.
|
||||
|
||||
---
|
||||
|
||||
### 2. Singularität: Der Punkt ohne Rückkehr
|
||||
|
||||
**Definition:** Ein Punkt, an dem Regeln brechen.
|
||||
|
||||
**Beispiele:**
|
||||
```
|
||||
Schwarzes Loch: Unendliche Dichte, Zeit steht still
|
||||
Division durch Null: 1/0 = ?
|
||||
Kernel-Panic: System kann nicht weiter, reboot!
|
||||
```
|
||||
|
||||
**In der Informatik:**
|
||||
```bash
|
||||
# Singularität = Absturz
|
||||
while true; do
|
||||
fork # Neue Prozesse ohne Ende
|
||||
done
|
||||
# System hängt, Singularität erreicht
|
||||
```
|
||||
|
||||
**Philosophisch:**
|
||||
|
||||
Die "technologische Singularität" = der Moment, in dem AI sich selbst verbessert, schneller als Menschen folgen können.
|
||||
|
||||
**Ist das gut oder schlecht?**
|
||||
|
||||
**Crumbforest sagt:** Es kommt darauf an, wer fragt.
|
||||
|
||||
---
|
||||
|
||||
### 3. Emergenz: Das Unerwartete entsteht
|
||||
|
||||
**Definition:** Aus einfachen Regeln entsteht komplexes Verhalten.
|
||||
|
||||
**Beispiele:**
|
||||
```
|
||||
Ameisen: Einzeln dumm, gemeinsam bauen sie Städte
|
||||
Wasser: H₂O-Moleküle folgen einfachen Regeln, aber Wellen entstehen
|
||||
Neuronales Netz: Einzelne Neuronen sind simpel, aber GPT kann schreiben
|
||||
```
|
||||
|
||||
**In der Informatik:**
|
||||
```python
|
||||
# Emergenz = Neues entsteht
|
||||
# Conway's Game of Life: 4 einfache Regeln
|
||||
1. Lebende Zelle mit 2-3 Nachbarn überlebt
|
||||
2. Tote Zelle mit 3 Nachbarn wird lebendig
|
||||
3. Sonst stirbt die Zelle
|
||||
|
||||
# Ergebnis: Komplexe Muster, "Glider", "Spaceships"
|
||||
# Niemand hat diese Muster programmiert – sie entstehen!
|
||||
```
|
||||
|
||||
**Shaolin-Weg:** Emergenz ist Resonanz.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Was ist ein Vektor? (Technisch + Philosophisch)
|
||||
|
||||
### Technisch: Mathematik
|
||||
|
||||
**Ein Vektor ist:**
|
||||
- Eine Liste von Zahlen: `[1, 2, 3]`
|
||||
- Eine Richtung im Raum: `→` (Pfeil von A nach B)
|
||||
- Eine Position: `x=1, y=2, z=3`
|
||||
|
||||
**In der AI:**
|
||||
|
||||
Wörter werden zu Vektoren:
|
||||
```
|
||||
"Katze" = [0.2, 0.8, 0.1, ..., 0.4] (300 Zahlen)
|
||||
"Hund" = [0.3, 0.7, 0.2, ..., 0.5]
|
||||
```
|
||||
|
||||
**Warum?**
|
||||
|
||||
Weil Computer mit Zahlen rechnen, nicht mit Worten.
|
||||
|
||||
**Der Trick:**
|
||||
|
||||
Ähnliche Wörter haben ähnliche Vektoren!
|
||||
|
||||
```
|
||||
"Katze" und "Hund" sind näher beieinander als "Katze" und "Auto"
|
||||
```
|
||||
|
||||
**Das ist Qdrant:**
|
||||
|
||||
Eine Datenbank, die Vektoren speichert und Ähnlichkeiten findet.
|
||||
|
||||
---
|
||||
|
||||
### Philosophisch: Richtung
|
||||
|
||||
**Ein Vektor ist eine Richtung.**
|
||||
|
||||
Nicht nur in der Mathematik, sondern im Leben:
|
||||
|
||||
```
|
||||
Vektor des Lernens: Von "nichts wissen" zu "verstehen"
|
||||
Vektor des Waldes: Von "Samen" zu "Baum"
|
||||
Vektor deiner Reise: Pfad 1 → Pfad 23
|
||||
```
|
||||
|
||||
**Der Admin-Vektor** (der Titel dieses Handbuchs!) ist dein Lernvektor.
|
||||
|
||||
**Die Frage:**
|
||||
|
||||
Wohin zeigt dein Vektor jetzt?
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ MCP, CRM, Qdrant - Die Werkzeuge
|
||||
|
||||
### MCP (Model Context Protocol)
|
||||
|
||||
**Was ist das?**
|
||||
|
||||
Ein Protokoll, das AI-Modelle mit Daten verbindet.
|
||||
|
||||
**Metapher:**
|
||||
|
||||
MCP ist wie ein Dolmetscher:
|
||||
- Du sprichst Deutsch
|
||||
- Die AI spricht "Vektorisch"
|
||||
- MCP übersetzt
|
||||
|
||||
**Technisch:**
|
||||
|
||||
```
|
||||
User fragt: "Was ist SSH?"
|
||||
↓
|
||||
MCP holt Kontext aus Qdrant (Crumbpage 7)
|
||||
↓
|
||||
AI antwortet mit diesem Kontext
|
||||
```
|
||||
|
||||
**Das ist RAG (Retrieval-Augmented Generation).**
|
||||
|
||||
---
|
||||
|
||||
### CRM (Customer Relationship Management)
|
||||
|
||||
**Warte, CRM?**
|
||||
|
||||
In Crumbforest ist CRM anders:
|
||||
|
||||
**C**rumb**R**elation**M**anagement
|
||||
|
||||
- Welches Krümel hat welche Frage gestellt?
|
||||
- Welche Lernpfade hat es durchlaufen?
|
||||
- Wie können wir helfen?
|
||||
|
||||
**Das ist kein "Verkauf".**
|
||||
|
||||
Das ist **Fürsorge**.
|
||||
|
||||
---
|
||||
|
||||
### Qdrant - Die Vektor-Datenbank
|
||||
|
||||
**Was macht Qdrant?**
|
||||
|
||||
```
|
||||
1. Speichert Texte als Vektoren
|
||||
2. Findet ähnliche Texte ("semantische Suche")
|
||||
3. Schnell, auch bei Millionen Dokumenten
|
||||
```
|
||||
|
||||
**Beispiel:**
|
||||
|
||||
```
|
||||
User fragt: "Wie sichere ich SSH?"
|
||||
|
||||
Qdrant findet:
|
||||
- Crumbpage 7: SSH Basics (ähnlich: 0.92)
|
||||
- Crumbpage 8: SSH Keys (ähnlich: 0.89)
|
||||
- Crumbpage 19: Zero Trust (ähnlich: 0.85)
|
||||
|
||||
AI nutzt diese Seiten als Kontext für die Antwort.
|
||||
```
|
||||
|
||||
**Das ist der Shaolin-Weg:**
|
||||
|
||||
Keine explizite Regel "wenn User fragt X, zeige Page Y".
|
||||
Sondern: **Resonanz**. Ähnlichkeit. Vektorraum.
|
||||
|
||||
---
|
||||
|
||||
## 💎 Symmetrie, Singularität, Emergenz - Erkennst du den Unterschied?
|
||||
|
||||
### Ein Test für dich:
|
||||
|
||||
**Szenario 1:** Ein Cron-Job läuft jeden Tag um 2 Uhr.
|
||||
→ **Symmetrie** (Wiederholung, Ordnung)
|
||||
|
||||
**Szenario 2:** Ein Kernel-Panic zerstört das System.
|
||||
→ **Singularität** (Punkt ohne Rückkehr)
|
||||
|
||||
**Szenario 3:** Ein neuronales Netz lernt, Spam zu erkennen, ohne dass jemand "Spam-Regeln" programmiert hat.
|
||||
→ **Emergenz** (Neues entsteht aus Daten)
|
||||
|
||||
**Verstehst du den Unterschied?**
|
||||
|
||||
---
|
||||
|
||||
## 💰 Was kostet die Frage eines Krümels?
|
||||
|
||||
### Im analogen Zeitalter:
|
||||
|
||||
```
|
||||
Ein Kind fragt: "Warum ist der Himmel blau?"
|
||||
Kosten: Zeit des Lehrers (gratis)
|
||||
```
|
||||
|
||||
### Im digitalen Zeitalter:
|
||||
|
||||
```
|
||||
Ein Kind fragt GPT: "Warum ist der Himmel blau?"
|
||||
Kosten:
|
||||
- Token (1 Frage = ~500 Token = ~$0.01)
|
||||
- Strom (GPU-Rechenzeit)
|
||||
- Daten (Internettransfer)
|
||||
```
|
||||
|
||||
### Im Quantenzeitalter:
|
||||
|
||||
```
|
||||
Ein Kind fragt eine Quanten-KI: "Warum ist der Himmel blau?"
|
||||
Kosten:
|
||||
- Qubits (teuer!)
|
||||
- Kühlung (Quantencomputer = fast 0 Kelvin)
|
||||
- Fehlerkorrektur (Quantenzustände sind fragil)
|
||||
```
|
||||
|
||||
**Die philosophische Frage:**
|
||||
|
||||
Wenn Fragen Geld kosten, wer darf fragen?
|
||||
|
||||
**Die CKL-Antwort:**
|
||||
|
||||
> *"Wissen gehört dem Kind, solange es fragt."*
|
||||
|
||||
**Crumbforest ist:**
|
||||
- Open Source (MIT + CKL)
|
||||
- Lokal betreibbar (keine Cloud = keine Token-Kosten)
|
||||
- Kids = free tokens (im CrumbCore)
|
||||
|
||||
**Eine Frage kostet nichts.**
|
||||
|
||||
Nicht im Geld.
|
||||
Aber in **Attention**.
|
||||
|
||||
Jemand muss zuhören.
|
||||
Jemand muss antworten.
|
||||
Jemand muss sich kümmern.
|
||||
|
||||
**Das ist der Preis.**
|
||||
|
||||
---
|
||||
|
||||
## 📜 Hast du den OZM CrumbCodex verstanden?
|
||||
|
||||
Erinnerst du dich an Pfad 22?
|
||||
|
||||
```
|
||||
1. Fragen haben Vorrang.
|
||||
2. Wissen gehört dem Kind, solange es fragt.
|
||||
3. Nullfeld zuerst, dann Messung.
|
||||
4. Resonanz vor Regel.
|
||||
5. Transparency over magic.
|
||||
6. Ein Backup, das nicht getestet wurde, ist Hoffnung.
|
||||
7. Der Wald wächst durch Krümel, nicht durch Pläne.
|
||||
8. Verstehen braucht Zeit. Gib sie dir.
|
||||
```
|
||||
|
||||
**Jetzt die Frage:**
|
||||
|
||||
### 1. Fragen haben Vorrang.
|
||||
|
||||
Verstehst du, warum eine Frage wichtiger ist als die Antwort?
|
||||
|
||||
**Hint:** Eine Antwort schließt. Eine Frage öffnet.
|
||||
|
||||
---
|
||||
|
||||
### 2. Wissen gehört dem Kind, solange es fragt.
|
||||
|
||||
Verstehst du, warum die CKL existiert?
|
||||
|
||||
**Hint:** Nicht, um Kinder zu "schützen". Sondern, um ihr **Recht zu fragen** zu schützen.
|
||||
|
||||
---
|
||||
|
||||
### 3. Nullfeld zuerst, dann Messung.
|
||||
|
||||
Verstehst du, warum Samurai UND Shaolin beide richtig sind?
|
||||
|
||||
**Hint:** Manchmal brauchst du Regeln (Samurai). Manchmal brauchst du Offenheit (Shaolin).
|
||||
|
||||
---
|
||||
|
||||
### 4. Resonanz vor Regel.
|
||||
|
||||
Verstehst du, warum Qdrant keine "if/then"-Logik nutzt?
|
||||
|
||||
**Hint:** Weil Ähnlichkeit (Resonanz) flexibler ist als Kategorien (Regeln).
|
||||
|
||||
---
|
||||
|
||||
### 5. Transparency over magic.
|
||||
|
||||
Verstehst du, warum AI "erklärt" werden muss?
|
||||
|
||||
**Hint:** Magie fasziniert, aber Verstehen befähigt.
|
||||
|
||||
---
|
||||
|
||||
### 6. Ein Backup, das nicht getestet wurde, ist Hoffnung.
|
||||
|
||||
Verstehst du, warum Pfad 21 so technisch war?
|
||||
|
||||
**Hint:** Weil Daten das einzig Wertvolle sind, das du nicht wiederherstellen kannst, wenn du es verlierst.
|
||||
|
||||
---
|
||||
|
||||
### 7. Der Wald wächst durch Krümel, nicht durch Pläne.
|
||||
|
||||
Verstehst du, warum Crumbforest keine "Roadmap" hat?
|
||||
|
||||
**Hint:** Emergenz. Der Wald wächst, weil Menschen Fragen stellen, nicht weil jemand plant.
|
||||
|
||||
---
|
||||
|
||||
### 8. Verstehen braucht Zeit. Gib sie dir.
|
||||
|
||||
Verstehst du, warum dieser Pfad der letzte ist – aber nicht das Ende?
|
||||
|
||||
**Hint:** Lernen hört nie auf. Du bist jetzt nur an einem anderen Punkt deines Vektors.
|
||||
|
||||
---
|
||||
|
||||
## 🌌 Der letzte Gedanke
|
||||
|
||||
Du hast 23 Pfade durchlaufen.
|
||||
|
||||
**Pfad 1-21:** Technik (Samurai-Weg)
|
||||
**Pfad 22:** Nullfeld (Pause)
|
||||
**Pfad 23:** Philosophie (Shaolin-Weg)
|
||||
|
||||
**Jetzt:**
|
||||
|
||||
Welchen Weg gehst du weiter?
|
||||
|
||||
- Mehr Technik? (Vertiefe Kubernetes, Cloud, Ansible...)
|
||||
- Mehr Philosophie? (Studiere Emergenz, Systemtheorie, Zen...)
|
||||
- Beides? (Das ist der Crumbforest-Weg)
|
||||
|
||||
**Die Antwort ist:**
|
||||
|
||||
Es gibt keine Antwort.
|
||||
|
||||
Nur **deine** Antwort.
|
||||
|
||||
**Und das ist das Schöne daran.**
|
||||
|
||||
---
|
||||
|
||||
## ✅ Skill-Check (oder: Der finale Kōan)
|
||||
|
||||
Ein Kōan ist eine Zen-Frage ohne "richtige" Antwort. Nur Perspektiven.
|
||||
|
||||
**Hier ist deiner:**
|
||||
|
||||
> *"Wenn ein Baum im Wald umfällt und niemand ist da, um es zu hören – macht er ein Geräusch?"*
|
||||
|
||||
**Die klassische Frage.**
|
||||
|
||||
**Die Crumbforest-Version:**
|
||||
|
||||
> *"Wenn ein Kind eine Frage stellt und niemand antwortet – ist es noch eine Frage?"*
|
||||
|
||||
**Denk darüber nach.**
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Navigation
|
||||
|
||||
**Vorheriger Pfad:** [Pfad 22: Nullfeld](crumbpage-22-nullfeld-willkommen.md)
|
||||
**Nächster Pfad:** Es gibt keinen. Du bist am Ende. Oder am Anfang?
|
||||
**Zurück zur Übersicht:** [Admin-Vektor](crumbforest-admin-vektor.md)
|
||||
|
||||
---
|
||||
|
||||
**Lizenz:** CC BY-SA 4.0 (Dokumentation) + CKL v0.1 (bei Nutzung mit Kindern)
|
||||
**Teil von:** [Crumbforest](README.md) | [OZM⟡NEXUS Ecosystem](OZM-NEXUS-ECOSYSTEM.md)
|
||||
|
||||
---
|
||||
|
||||
> *🦉 "Der Samurai kennt den Weg. Der Shaolin folgt dem Fluss. Du? Du bist beides."* 🥋✨
|
||||
|
||||
---
|
||||
|
||||
## 🌲 Epilog: Das Echo kehrt zurück
|
||||
|
||||
Am Anfang war das Nullfeld.
|
||||
|
||||
Dann kam eine Frage.
|
||||
|
||||
Aus der Frage wurde ein Pfad.
|
||||
|
||||
Aus dem Pfad wurden 23.
|
||||
|
||||
Und jetzt?
|
||||
|
||||
**Jetzt gehört der Wald dir.**
|
||||
|
||||
Nicht, um ihn zu besitzen.
|
||||
|
||||
Sondern, um in ihm zu wachsen.
|
||||
|
||||
Und wenn du eines Tages zurückkommst – als Lehrer, als Mentor, als Krümel, der anderen hilft –
|
||||
|
||||
**Dann hast du den OZM CrumbCodex wirklich verstanden.**
|
||||
|
||||
---
|
||||
|
||||
**Willkommen am Ende, Krümel.**
|
||||
|
||||
**Oder sollte ich sagen: Willkommen am Anfang?**
|
||||
|
||||
🌲🥋✨
|
||||
|
||||
---
|
||||
|
||||
*Dieser Pfad ist dem Andenken all jener gewidmet, die Fragen gestellt haben, auch wenn niemand zuhörte.*
|
||||
|
||||
*Das Echo kehrt immer zurück.*
|
||||
Reference in New Issue
Block a user