Admin · Anleitung
Schulungen verwalten
Alles was du brauchst, um neue Schulungen anzulegen, bestehende zu pflegen und User-Berechtigungen zu setzen.
Lifecycle einer Schulung
- Anlegen — Du sagst Claude Code, dass eine neue Schulung gebraucht wird. Claude erstellt den Ordner,
_meta.ymlundmanifest.jsonim Repo. - Inhalte einbringen — HTML-Präsentation, PDF-Handouts, Vertiefungs-PDFs. Du lieferst sie oder Claude erzeugt sie aus deiner Vorgabe.
- Deploy — Commit + Push, GitHub Actions deployt nach All-Inkl (~7 Min).
- Sync — Sync-Endpoint einmal aufrufen, damit die DB die neue Schulung kennt.
- Prüfen — Du loggst dich als Admin ein, öffnest die Schulung, klickst alle Files durch.
- Veröffentlichen — Status von Beta auf Veröffentlicht setzen, dann sehen sie auch User. (Beta-Feature kommt im nächsten Sprint)
Neue Schulung anlegen
Schulungen leben im Repo unter ~/Projekte/erfolg-durch-ki/content/<slug>/. Der Slug muss mit ki-schulung- beginnen, sonst findet ihn der Sync nicht.
Schritt 1: Sag Claude Code z.B.: „Lege eine neue Schulung 'KI-Recht für Unternehmer' als Stufe 4 Expertenwissen an, neutral-Variante, 25 Minuten."
Claude legt automatisch an:
content/ki-schulung-ki-recht/_meta.yml— Marketing-Metadatencontent/ki-schulung-ki-recht/manifest.json— Liste der ausgelieferten Files- Skeleton-Markdown fuer die Schulungs-Inhalte
Schritt 2: Inhalte einbringen. HTML-Präsentation, Handout-PDF, Vertiefungs-PDFs nach Bedarf.
Schritt 3: Commit + Push. Auto-Deploy läuft. Danach Sync triggern (siehe unten).
_meta.yml — wichtigste Felder
Marketing-Metadaten der Schulung. Wird vom Sync-Endpoint gelesen und in DB geschrieben.
slug: ki_recht
stufe: 4 # 1=Grundausbildung, 2=Erweiterungen,
# 3=Use-Cases, 4=Expertenwissen
reihenfolge: 8 # Sortierreihenfolge in der Stufe
titel: "KI-Recht fuer Unternehmer"
untertitel: "DSGVO, Haftung, Urheberrecht"
tagline: "30 Minuten Rechtssicherheit"
dauer_minuten: 30
zielgruppe: "Geschaeftsfuehrer, Compliance"
voraussetzungen: ["claude_code"]
highlights:
- "Was DSGVO bei KI-Tools heisst"
- "Haftung bei automatisierten Entscheidungen"
beschreibung_kurz: |
Kurze Marketing-Beschreibung (2-3 Saetze).
varianten:
- neutral # oder: pst, oder beide
portal_empfehlung:
zeigt_in_marketing: true # Wird auf /schulungen-Teaser angezeigt
Sync-Endpoint aufrufen
Bringt die _meta.yml-Daten in die DB. Macht UPSERT — bestehende Schulungen werden aktualisiert, neue angelegt. Schulungen, deren Ordner verschwunden ist, werden auf active=0 gesetzt (Soft-Delete).
curl "https://erfolg-durch-ki.eu/api/admin/sync-courses.php?token=<APP_SECRET>" APP_SECRET liegt in der lokalen .env oder im pass-Store unter pst/allinkl/erfolg-durch-ki/app-secret.
Wann aufrufen? Nach jedem Deploy, bei dem sich Schulungs-Inhalte oder _meta.yml geändert haben.
Files zu bestehender Schulung hinzufügen
Direkt im Webinterface unter Schulungen → Schulung wählen → Dateien. Du kannst neue PDFs oder HTML-Files hochladen (max. 50 MB, Mime-Whitelist). Manifest wird automatisch aktualisiert.
Achtung: das Webinterface ändert nur den Server. Wenn die Files auch im Repo (Git) liegen sollen, mache es über Claude Code.
Pakete und Permissions
Permission-Hierarchie: User → Pakete → Schulungen. Plus Direkt-Permissions als Override.
- Pakete → Paket erstellen oder bearbeiten, Schulungen zuordnen.
- User → Bearbeiten → User-Detail-Page mit Schulungs-Matrix nach Stufe.
- Auf der User-Detail-Page Pills klicken: Sehen oder Download direkt setzen.
Pakete-Permissions werden in der User-Detail-Page als „via Paket X" angezeigt und sind dort nicht direkt änderbar — änderbar nur über das Paket selbst.
Stufen-System
| Stufe | Label | Charakter |
|---|---|---|
| 1 | Grundausbildung | Pflichtkurse für Einsteiger (Installation, Hauptkurs) |
| 2 | Erweiterungen | Tiefere Workflows zu einzelnen Themen (z.B. Konsolen-Befehle) |
| 3 | Use-Cases | Anwendungsbeispiele aus dem Alltag |
| 4 | Expertenwissen | Fortgeschrittene Tools (Obsidian, Ollama, Hermes-Agent) |
Troubleshooting
Schulung erscheint nicht im Dashboard
Prüfe: ist active=1 in der DB? Wurde Sync nach dem Deploy aufgerufen? Hat der User View-Permission (via Paket oder Direkt)?
Sync-Endpoint liefert 404
Bei allerersten Deploys ist der Endpoint noch nicht da. GitHub Actions zeigt das als Warning — bei zweitem Deploy läuft es.
PDF wird nicht angezeigt
PDFs muessen in der manifest.json stehen mit "type": "pdf". User braucht can_handout=1 fuer PDFs bzw. can_pdf=1 fuer ZIP-Vorlagen (seit Migration 004).
Schulung löschen
Soft-Delete: Schulungen → „Löschen"-Button setzt active=0. Hart-Löschen: Ordner aus content/ ins content/archiv/ verschieben + Sync triggern + Purge-Endpoint aufrufen.