Handbuch

Systemarchitektur und Datenschutz

Wie Ephraim technisch aufgebaut ist und welche Maßnahmen den Datenschutz im schulischen Betrieb absichern. Ephraim ist die KI- und Projektplattform des Lessing-Gymnasiums Karlsruhe.

· Stand: Juni 2026

1. Was ist das System?

Ephraim ist eine schulische Webplattform für KI-gestütztes Lernen, Chat, Dateiablage, Projektarbeit und Wissensquellen. Sie besteht aus zwei klar getrennten Teilen:

Kernprinzip: KI-Anfragen werden nicht an externe Cloud-APIs kommerzieller Anbieter geschickt. Webserver und Mailserver werden durch die Schule betrieben — der Mailserver auf einer eigenen Maschine. Webserver und Spark tauschen Daten nur im isolierten LAN aus; dieses ist vom Schulnetz getrennt. Die Spark ist von außen nicht direkt zugänglich.

2. Physische und logische Infrastruktur

Infrastruktur-Übersicht Browser per HTTPS zum Webserver. Webserver und Spark im isolierten LAN, getrennt vom Schulnetz. Mailserver auf eigener Maschine. Schulgebäude Browser pfSense Isoliertes LAN — getrennt vom Schulnetz Webserver Ephraim-Anwendung MySQL · Redis/Valkey Dateispeicher, Vault Basiswissen per URL Ephraim Spark Inference · Embeddings · TTS Runtime · Supervisor kein URL-Abruf Mailserver eigene Maschine · Schulnetz Webserver ruft freigegebene URLs ab HTTPS HTTPS SMTP
Von außen ist nur der HTTPS-Endpunkt des Webservers erreichbar. Webserver und Spark kommunizieren ausschließlich im isolierten LAN — getrennt vom Schulnetz und ebenfalls verschlüsselt per HTTPS. Der Mailserver steht auf einer anderen Maschine in der Schule.

Die relationale Datenbank läuft in Produktion auf MySQL auf dem Webserver. Zusätzlich kann auf demselben Host ein Redis/Valkey-kompatibler Speed-Layer laufen. Er ist nur maschinenintern erreichbar und dient nicht als dauerhafte Datenbank. Nutzerinnen und Nutzer greifen von zu Hause oder aus dem Unterricht per Browser auf den Webserver zu; dieser ist der einzige Teil von Ephraim, der nach außen sichtbar ist. E-Mails (Zugangsdaten, Sicherheitshinweise) versendet der Webserver über den separaten Mailserver im Schulnetz.

3. Aufbau der Ephraim-Anwendung

Bereich Aufgabe
Benutzeroberfläche Chat, Dateien, Projekte, Einstellungen, Hilfe
Anwendungslogik Anmeldung, Rollen, Vault, Chat-Verarbeitung, Projekte, Uploads
Datenbank (MySQL) Konten, Metadaten, verschlüsselte Chat-Inhalte, Projekte
Redis/Valkey-Speed-Layer Kurzlebige verschlüsselte Stream-Puffer und Worker-Wakeups auf demselben Host
Dateispeicher Verschlüsselte persönliche Dateien außerhalb des öffentlich erreichbaren Webroots
Basiswissen Schulische Quellen und freigegebene externe URLs — Abruf und Aufbereitung durch den Webserver

4. Ephraim Spark

Die Spark ist die schuleigene KI-Hardware. Für Version 1 von Ephraim laufen dort das zentrale Sprachmodell GPT-OSS-120B (OpenAI-kompatibles 120-Milliarden-Parameter-Modell, lokal gehostet) sowie ein TTS-Dienst für das Vorlesen von Chat-Antworten.

Das Sprachmodell ist dabei als Inferenzprofil betrieben, nicht als fest in die Oberfläche eingebauter Bestandteil. Ephraim spricht den lokalen Inferenzdienst über denselben OpenAI-kompatiblen Endpunkt an. Der aktuelle produktive und dokumentierte Stand nutzt GPT-OSS-120B. Externe Modellanbieter und externe Modellproxys gehören nicht zur freigegebenen V1-Konfiguration; jede Abweichung vom dokumentierten GPT-OSS-120B-Pfad wäre neu zu bewerten und zu dokumentieren.

NVIDIA DGX Spark auf einem Tisch mit angeschlossenen Kabeln und USB-Stick
Die Ephraim Spark ist kein abstrakter Cloud-Dienst, sondern ein lokaler Rechner im Besitz der Schule. Foto: Dr. Daniel Roth, Lessing-Gymnasium Karlsruhe.
Komponente Funktion in V1
Inference Erzeugt Chat-Antworten mit GPT-OSS-120B
Embeddings Berechnet Vektoren für semantische Suche, Projektmaterial und Basiswissen-Retrieval
TTS Wandelt ausgewählten Chat-Text in gesprochene Sprache um (Vorlesen-Funktion)
Runtime Technisches Monitoring und administrierte Betriebsaktionen
Supervisor Geplante Updates, Job-Status, Audit-Export für Super-Admins

Embeddings und Retrieval in der Webanwendung

Der Retrieval-Pfad von Version 1 liegt in der Webanwendung. Ephraim extrahiert Text, zerlegt ihn in kurze Abschnitte, prüft Rechte, verschlüsselt Abschnittstext und Vektor und speichert beides in MySQL.

Für die reine Vektorberechnung ruft die Webanwendung den konfigurierten OpenAI-kompatiblen /embeddings-Endpunkt auf. Im lokalen Spark-Stack ist dieser Endpunkt der lokale SGLang-Embedding-Dienst school-ui-embedding. Ephraim nutzt ihn aktuell direkt für Datei-RAG, Projektmaterial-RAG und Basiswissen-RAG. Der Embedding-Endpunkt erzeugt keine Antworttexte, sondern Zahlenlisten: Ein Klartext-Chunk und eine Suchfrage werden in denselben mathematischen Raum übersetzt. Ähnliche Inhalte liegen dort näher beieinander als unähnliche Inhalte. Die Spark speichert diese Klartexte, Suchfragen und Vektoren dabei nicht dauerhaft.

Bei einer späteren Frage erzeugt der Webserver einen Fragevektor und vergleicht ihn mit den gespeicherten Vektoren. Bewertet werden nur Abschnitte, die für diese Person, Rolle und Situation zugelassen und entschlüsselbar sind. Auswahl, Zugriffskontrolle, Entschlüsselung, Cosinus-Vergleich und Kontextaufbau passieren in Ephraim auf dem Webserver.

Beim Vorlesen sendet der Webserver den markierten Text verschlüsselt an den TTS-Dienst auf der Spark und gibt die erzeugte Sprachausgabe an den Browser weiter. Der Browser spricht den Text nicht an externe Cloud-Dienste.

Wichtig: Die Spark führt das Sprachmodell aus, surft aber nicht selbst im Internet. Wenn Ephraim Wetter, Wikipedia, Kalender oder andere freigegebene Webquellen einbezieht, holt der Webserver diese Inhalte per URL ab, prüft sie und reicht nur den freigegebenen Kontext an die Spark weiter.

5. Datenfluss: Vorlesen mit Spark-TTS

Die Vorlesefunktion ist in der Architektur ein eigener Spark-Pfad. Sie benutzt nicht das Chatmodell, sondern einen internen Text-zu-Sprache-Dienst auf der Spark. Der Browser kennt weder die interne TTS-Adresse noch den Authentifizierungstoken; beides bleibt auf dem Webserver.

Datenfluss Vorlesen über Spark-TTS Browser markierter Text Webserver CSRF, Rate Limit, Prüfung Spark-TTS /v1/audio/speech Audio im Browser WAV, lokale Waveform POST HTTPS audio/wav Der TTS-Dienst erhält nur den Text, den die angemeldete Person bewusst vorlesen lässt. Text und Audio werden nicht dauerhaft gespeichert; Waveform entsteht lokal.
Spark-TTS ist ein interner Dienst. Der Webserver nimmt die Nutzeranfrage entgegen, prüft sie und leitet nur den normalisierten Text an die Spark weiter.
Schritt Schutzmaßnahme
Browser sendet Vorlesewunsch Nur angemeldete Sitzungen; mutierende Anfrage mit CSRF-Token.
Webserver prüft Text Roh-Request-, Text- und Audio-Größenlimits; Sitzungs-, Nutzer- und IP-Rate-Limits; Parallelitätsgrenzen, unterstützte Sprachen, begrenzte Geschwindigkeit, kein Markup.
Webserver ruft Spark-TTS auf Interne URL aus der Serverkonfiguration, Bearer-Token serverseitig, kurzer Verbindungs- und Gesamttimeout.
Spark erzeugt Audio Antwortformat WAV; keine Text-/Audio-, Access- oder Syntheselogs im Normalbetrieb; Fehler wie Warteschlange, falsche Konfiguration oder unerreichbarer Dienst werden abgefangen.
Browser spielt Audio ab Antwort mit Cache-Control: no-store; Waveform-Peaks werden lokal berechnet und nicht gespeichert.

Wenn der interne TTS-Dienst nicht konfiguriert ist, bleibt die Vorlesefunktion deaktiviert. Die Oberfläche nutzt keine lokale Web-Speech-Funktion des Browsers als Ersatz. Die Architektur von Ephraim sieht für den schulisch kontrollierten Betrieb ausschließlich den Spark-TTS-Pfad vor.

6. Datenfluss: typischer KI-Chat

Datenfluss Chat Browser Webserver Vault, Kontext MySQL Spark GPT-OSS-120B Antwort-Stream HTTPS 1. Frage 2. Entsperren 3. Speichern 4. Modell 5. Stream Anfrage und Kontext werden verschlüsselt per HTTPS an die Spark übertragen. Dort liegen sie kurz im Klartext im Arbeitsspeicher — nur für die Dauer der Antwortgenerierung.
Der Chat wird schrittweise zurückgestreamt. Gespeichert wird der Verlauf verschlüsselt; die Spark sieht Prompt und freigegebenen Kontext nur für den jeweiligen Request.
  1. Die angemeldete Person sendet eine Nachricht über den Browser.
  2. Der Webserver prüft Sitzung, Berechtigung und ob der persönliche Vault entsperrt ist.
  3. Personalisierte Einstellungen, Projekt-Kontext und optional Basiswissen werden zusammengestellt.
  4. Die Anfrage geht verschlüsselt per HTTPS an die Spark; GPT-OSS-120B erzeugt die Antwort.
  5. Die Antwort wird zurückgestreamt und der Verlauf verschlüsselt in MySQL abgelegt.

7. MySQL und Redis/Valkey

MySQL und Redis/Valkey erfüllen in Ephraim unterschiedliche Aufgaben. MySQL ist die dauerhafte Datenbank. Dort liegen Konten, Projekte, Einstellungen, Jobzustände, verschlüsselte Chatdaten, verschlüsselte Stream-Fallbacks, verschlüsselte Chunks und verschlüsselte Embedding-Vektoren. Redis/Valkey ist dagegen ein schneller Kurzzeitpuffer für laufende Arbeit.

Komponente Rolle Datenschutzgrenze
MySQL Dauerhafte Wahrheit des Systems Private Inhalte liegen verschlüsselt; Rechte und Schlüssel entscheiden, wer etwas nutzen kann.
Redis/Valkey Maschineninterner Speed-Layer für laufende Streams und Worker-Wakeups Keine Klartext-Chats, Dateien, Vault-Schlüssel, Passwörter, Nutzerprofile, Sessions oder RAG-Klartexte.
Datenbank-Fallback MySQL kann Stream-Puffer auch ohne Redis/Valkey tragen Redis/Valkey beschleunigt, ersetzt aber nicht die dauerhafte Speicherung.

Für Nutzer ist das am besten mit einem Schreibtisch vergleichbar: MySQL ist der verschlossene Aktenschrank. Redis/Valkey ist der kleine Zettel auf dem Tisch, der nur während einer laufenden Antwort hilft, den nächsten Schritt schnell zu finden. Auf diesem Zettel steht nicht der Chat im Klartext, sondern nur kurzlebige verschlüsselte Arbeitsdaten und technische Signale.

Produktionsgrenze: Redis/Valkey läuft auf demselben Host wie die Webanwendung und ist nur über ein maschineninternes Server-/Containernetz erreichbar. Es ist kein externer Dienst, kein Managed-Redis und kein neuer dauerhafter Speicherort.

8. Basiswissen und Internetzugriff

Ephraim kann schulisches Basiswissen in Chats einbeziehen — zum Beispiel freigegebene Dokumente, Kalender, Wetter oder Wikipedia. Diese Quellen werden vom Webserver abgerufen, geprüft und aufbereitet.

Private Kalender sind dabei kein zentrales Schulwissen. Sie gehören fachlich zum privaten Konto, sind an den persönlichen Vault gebunden und werden nur im normalen Chat dieses Kontos sowie in „Mein Ephraim“ berücksichtigt. Projektbuilder, Projektchats und andere Nutzer erhalten diesen privaten Kalenderkontext nicht.

Das unterscheidet Ephraim von einem öffentlichen Chatbot mit freiem Webzugang: Externe Inhalte fließen nur über festgelegte, schulisch kontrollierte Wege ein.

9. Hintergrundjobs, Datenlebenszyklus und Chat-Limit

Ephraim arbeitet nicht nur während eines Seitenaufrufs. Neben Browser, Webserver und Spark gibt es eine Wartungsschicht für Aufgaben, die geplant, begrenzt und kontrollierbar laufen müssen. Diese Schicht ist für den Datenschutz wichtig, weil sie Aufbewahrung, Aufräumen und technische Pflege erzwingt, ohne private Vaults im Hintergrund zu öffnen.

Bereich Was passiert Grenze
Cron Bereinigt Rate-Limits, abgelaufene KI-Jobs, temporäre Exporte, verwaiste Dateien, alte Sicherheitsereignisse und archivierte Projekte. Cron besitzt keinen User-DEK und öffnet keine persönlichen Vaults.
Knowledge-Refresh Aktualisiert freigegebene globale Quellen und Wetterdaten serverseitig. Private Kalender werden nicht massenhaft im Cron entschlüsselt; sie brauchen den entsperrten Vault des Besitzers.
KI-Jobs und Streams Verwalten Antwortgenerierung, Wiederaufnahme, Artefakte, MySQL-Fallback und optional Redis/Valkey als schnellen Stream-Puffer. Technische Puffer sind kein langfristiges Inhaltsarchiv; Redis/Valkey enthält keine Klartextinhalte.
Drittanbieter-Komponenten Werden lokal inventarisiert, geprüft und über Adminfreigaben kontrolliert. Die Manuals und die App-Oberfläche brauchen keine externen CDN-Ressourcen für den normalen Betrieb.

Für gespeicherte Chats kann die Schule ein Chat-Aufbewahrungslimit pro Konto setzen. Ist dieses Limit erreicht, legt Ephraim keinen weiteren gespeicherten Chat an. Bestehende Chats bleiben lesbar, fortsetzbar, exportierbar, umbenennbar und löschbar. Die Nutzerin oder der Nutzer entscheidet im Aufräumdialog, welcher nicht mehr benötigte Chat gelöscht wird; Ephraim löscht alte Chats nicht heimlich im Hintergrund.

Datenschutzgedanke: Ein Limit ist kein Komforthindernis, sondern eine Aufbewahrungsgrenze. Es verhindert, dass private Chaträume, Datenbank und Backups ohne pädagogischen Nutzen dauerhaft wachsen.

10. Verschlüsselung: der persönliche Vault

Vault-Modell Passwort Schlüsselableitung Persönlicher Schlüssel nur in der Sitzung Verschlüsselte Daten Chats Dateien Erinnerungen
Jede Nutzerin und jeder Nutzer hat einen eigenen verschlüsselten Tresor. Ohne Passwort sind gespeicherte Inhalte nicht lesbar.
Situation Was ist lesbar?
Nur Datenbank- oder Speicher-Backup Verschlüsselte Inhalte, keine privaten Klartexte ohne Passwort
Angemeldete Person, Vault entsperrt Eigene Chats, Dateien und Einstellungen
Lehrkraft im Projekt Projektmaterial und Metadaten — keine privaten Schüler-Chats
Administrator Konten, Rollen, Systemeinstellungen — kein Klartext fremder Vault-Inhalte
KI-Request auf der Spark Prompt und freigegebener Kontext nur für diesen Request im Arbeitsspeicher

Persönliche Dateien liegen verschlüsselt auf dem Webserver. Beim Download werden sie im Arbeitsspeicher entschlüsselt und direkt an den Browser gesendet — es entsteht keine dauerhafte Klartext-Kopie auf der Platte. Wird eine private Datei in ein Lehrerprojekt übernommen, entsteht eine getrennte Projektkopie; das private Original bleibt geschützt.

Onboarding, Passwortwechsel und Passwort-Recovery gehören deshalb zur Architektur: Wer sein Passwort kennt, kann den bestehenden Vault neu verpacken. Wer es vergessen hat, braucht eine vorbereitete datenerhaltende Recovery oder muss einen datenlöschenden Reset akzeptieren.

11. Rollen und Zugriffskontrolle

Rolle Typische Rechte Datenschutzrelevant
Schüler:in Chat, eigene Dateien, Einstellungen, Projektbeitritt Sieht nur eigene Vault-Inhalte
Lehrkraft Projekte anlegen, Materialien, Anweisungen für Projekte Kein Zugriff auf private Schüler-Chats
Administrator Nutzerverwaltung, Klassen, Quotas, Systemeinstellungen Verwaltungsdaten, keine fremden Vault-Klartexte
Super-Admin Technische Betriebsführung, Updates, Audit-Berichte Administration mit redigierten Protokollen

Anmeldung ist passwortgeschützt; optional mit Zwei-Faktor-Authentifizierung. Aktive Sitzungen können eingesehen und beendet werden.

Besonders wichtig ist die Projektgrenze: Eine Lehrkraft steuert Auftrag, Material, Teilnehmende und Abschlussregeln, aber sie öffnet keine privaten Schülerchats und keine Projektchat-Rohtexte. Sichtbar sind reduzierte Projektinformationen wie Teilnahme, Aktivität, Abschluss, Nachrichtenimpulse, Fazitstatus und die ausdrücklich aktivierten Fazit- oder Monitoring-Ergebnisse. Die Details stehen im Artikel Projekte: Datenschutz.

12. Wie Datenschutz technisch abgesichert wird

Organisatorisch und architektonisch

Technische Schutzmaßnahmen

Logging

Wichtig: KI muss eine Frage kurz im Klartext verarbeiten, um antworten zu können. Der Schutz liegt darin, wo (Spark im isolierten LAN, getrennt vom Schulnetz), wie übertragen (HTTPS), wie lange (nur der Request) und was gespeichert wird (verschlüsselt).