diff --git a/ASCII.txt b/ASCII.txt new file mode 100644 index 0000000..ab7c04d --- /dev/null +++ b/ASCII.txt @@ -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 + +═══════════════════════════════════════════════════════════════════════════════════════════════ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..a6dae20 --- /dev/null +++ b/CLAUDE.md @@ -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 `
` 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` diff --git a/DATENSCHUTZ.md b/DATENSCHUTZ.md new file mode 100644 index 0000000..cf830b0 --- /dev/null +++ b/DATENSCHUTZ.md @@ -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 diff --git a/KINDERRECHTE.md b/KINDERRECHTE.md new file mode 100644 index 0000000..68bec2c --- /dev/null +++ b/KINDERRECHTE.md @@ -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) diff --git a/LICENSE-CKL.md b/LICENSE-CKL.md new file mode 100644 index 0000000..f281067 --- /dev/null +++ b/LICENSE-CKL.md @@ -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 diff --git a/LICENSE-MIT.md b/LICENSE-MIT.md new file mode 100644 index 0000000..d164d4d --- /dev/null +++ b/LICENSE-MIT.md @@ -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 diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..fafac0b --- /dev/null +++ b/LICENSE.md @@ -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) diff --git a/OZM-NEXUS-ECOSYSTEM.md b/OZM-NEXUS-ECOSYSTEM.md new file mode 100644 index 0000000..e2ce0cf --- /dev/null +++ b/OZM-NEXUS-ECOSYSTEM.md @@ -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 + ↓ +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 + + + ``` + +### 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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..47acd29 --- /dev/null +++ b/README.md @@ -0,0 +1,344 @@ +# Crumbpages v2 🌲 + +> **Dokumentation und Lernsystem für System-Administration** +> Teil des Crumbforest-Ökosystems + +--- + +## 📜 Lizenz & Kinderrechte + +[![License: MIT + CKL](https://img.shields.io/badge/License-MIT%20%2B%20CKL-blue.svg)](LICENSE.md) +[![Children's Rights Protected](https://img.shields.io/badge/Children's%20Rights-Protected%20by%20CKL-green.svg)](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 diff --git a/README_OZM_RC1.md b/README_OZM_RC1.md new file mode 100644 index 0000000..f2b89b3 --- /dev/null +++ b/README_OZM_RC1.md @@ -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. ✨** diff --git a/WALD-WACHSTUM.txt b/WALD-WACHSTUM.txt new file mode 100644 index 0000000..508e20a --- /dev/null +++ b/WALD-WACHSTUM.txt @@ -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 ✨🌲 diff --git a/crumbforest-admin-vektor.md b/crumbforest-admin-vektor.md index c78a167..2dbc557 100644 --- a/crumbforest-admin-vektor.md +++ b/crumbforest-admin-vektor.md @@ -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) --- diff --git a/crumbpage-21-backup-raid-cron.md b/crumbpage-21-backup-raid-cron.md new file mode 100644 index 0000000..572f1bc --- /dev/null +++ b/crumbpage-21-backup-raid-cron.md @@ -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."* diff --git a/crumbpage-22-nullfeld-willkommen.md b/crumbpage-22-nullfeld-willkommen.md new file mode 100644 index 0000000..ff319de --- /dev/null +++ b/crumbpage-22-nullfeld-willkommen.md @@ -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. +``` + +🌲✨ diff --git a/crumbpage-23-ai-vektor-philosophie.md b/crumbpage-23-ai-vektor-philosophie.md new file mode 100644 index 0000000..b8549b9 --- /dev/null +++ b/crumbpage-23-ai-vektor-philosophie.md @@ -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.*