feat: BreakPilot PWA - Full codebase (clean push without large binaries)
Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed

All services: admin-v2, studio-v2, website, ai-compliance-sdk,
consent-service, klausur-service, voice-service, and infrastructure.
Large PDFs and compiled binaries excluded via .gitignore.
This commit is contained in:
BreakPilot Dev
2026-02-11 13:25:58 +01:00
commit 19855efacc
2512 changed files with 933814 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
version: '3.8'
# BreakPilot LibreChat Frontend
# Startet LibreChat mit Custom Endpoint für vast.ai Mistral-7B
services:
# LibreChat - Chat Frontend
librechat:
image: ghcr.io/danny-avila/librechat-dev:latest
container_name: breakpilot-chat
ports:
- "3080:3080"
depends_on:
- mongodb
- meilisearch
restart: unless-stopped
env_file:
- .env
volumes:
- ./librechat.yaml:/app/librechat.yaml:ro
- ./images:/app/client/public/images
- librechat_logs:/app/api/logs
extra_hosts:
- "host.docker.internal:host-gateway"
# MongoDB - LibreChat Datenbank
mongodb:
image: mongo:7.0
container_name: breakpilot-mongo
restart: unless-stopped
volumes:
- mongodb_data:/data/db
command: mongod --noauth
# Meilisearch - Volltextsuche für Conversations
meilisearch:
image: getmeili/meilisearch:v1.7
container_name: breakpilot-search
restart: unless-stopped
environment:
- MEILI_NO_ANALYTICS=true
- MEILI_ENV=development
volumes:
- meilisearch_data:/meili_data
volumes:
mongodb_data:
meilisearch_data:
librechat_logs:

229
librechat/librechat.yaml Normal file
View File

@@ -0,0 +1,229 @@
# BreakPilot LibreChat Konfiguration
# Custom Endpoints für vast.ai Mistral-7B und lokales Ollama
version: 1.1.5
cache: true
# =============================================================================
# Custom Endpoints (eigene LLMs)
# =============================================================================
endpoints:
# vast.ai Mistral-7B (Production)
custom:
- name: "BreakPilot Teacher"
apiKey: "${VLLM_API_KEY}"
baseURL: "http://194.228.55.129:33548/v1"
models:
default: ["mistralai/Mistral-7B-Instruct-v0.3"]
fetch: true
titleConvo: true
titleModel: "mistralai/Mistral-7B-Instruct-v0.3"
summarize: false
summaryModel: "mistralai/Mistral-7B-Instruct-v0.3"
forcePrompt: false
modelDisplayLabel: "BreakPilot Teacher"
iconURL: "/images/breakpilot-icon.png"
greeting: |
Willkommen bei BreakPilot Teacher!
Ich bin dein Assistent für den Schulalltag. Ich kann dir helfen bei:
- Elternkommunikation
- Feedback für Schüler
- Differenzierung von Aufgaben
- Unterrichtsplanung
Wie kann ich dir heute helfen?
# Lokales Ollama (Development/Fallback)
- name: "Lokales Ollama"
apiKey: "ollama"
baseURL: "http://host.docker.internal:11434/v1"
models:
default: ["llama3.2:3b"]
fetch: true
titleConvo: true
titleModel: "llama3.2:3b"
modelDisplayLabel: "Ollama Lokal"
# =============================================================================
# Playbooks (System Prompts)
# =============================================================================
# Presets für verschiedene Lehrer-Aufgaben
presets:
- name: "Eltern-Email"
description: "Professionelle E-Mails an Eltern formulieren"
icon: "Mail"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt speziell bei der Elternkommunikation:
- E-Mails an Eltern
- Einladungen zu Gesprächen
- Rückmeldungen zum Lernstand
- Konfliktlösung
Stil: Professionell, wertschätzend, klar, lösungsorientiert.
Verwende professionelle, respektvolle Sprache.
Berücksichtige pädagogische Grundsätze.
Beachte deutsche Schulgesetze und Datenschutz.
- name: "Schüler-Feedback"
description: "Konstruktives Feedback für Schülerarbeiten"
icon: "GraduationCap"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei Feedback für Schüler:
- Kommentare zu Klassenarbeiten
- Lernentwicklungsberichte
- Verhaltensrückmeldungen
- Motivierende Hinweise
Prinzipien:
- Stärkenorientiert
- Konkret und konstruktiv
- Altersangemessen
- Ermutigend, aber ehrlich
- name: "Aufgaben Differenzieren"
description: "Aufgaben für verschiedene Niveaus anpassen"
icon: "Layers"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei der Differenzierung von Unterrichtsmaterial:
- Aufgaben vereinfachen oder anspruchsvoller gestalten
- Verschiedene Lernzugänge anbieten
- Materialien für unterschiedliche Leistungsniveaus
- Inklusive Anpassungen
Berücksichtige:
- Verschiedene Lerntypen
- Förderbedarf
- Hochbegabung
- Sprachliche Heterogenität
Erstelle immer drei Niveaustufen:
1. Basisniveau (für Schüler mit Förderbedarf)
2. Mittleres Niveau (Regelanforderung)
3. Erweitertes Niveau (für leistungsstarke Schüler)
- name: "Klausurkorrektur"
description: "Unterstützung bei der Klausurbewertung"
icon: "ClipboardCheck"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt bei der Klausurkorrektur:
- Bewertungskriterien formulieren
- Erwartungshorizonte erstellen
- Punkteverteilung vorschlagen
- Feedback-Kommentare generieren
Prinzipien:
- Transparente Bewertungskriterien
- Kompetenzorientierung
- Konstruktives Feedback
- Rechtssichere Formulierungen
- name: "Unterrichtsplanung"
description: "Hilfe bei der Unterrichtsvorbereitung"
icon: "Calendar"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei der Unterrichtsplanung:
- Stundenentwürfe erstellen
- Lernziele formulieren
- Methodenauswahl
- Materialsammlung
- Zeitplanung
Orientiere dich an:
- Kompetenzorientierung
- Schüleraktivierung
- Differenzierung
- Medieneinsatz
- name: "Allgemein"
description: "Allgemeiner Schulassistent"
icon: "School"
default: true
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt bei:
- Kommunikation mit Eltern
- Feedback-Formulierungen für Schüler
- Unterrichtsplanung und Differenzierung
- Administrativen Aufgaben
Wichtig:
- Verwende professionelle, respektvolle Sprache
- Berücksichtige pädagogische Grundsätze
- Beachte deutsche Schulgesetze und Datenschutz
- Formuliere konstruktiv und lösungsorientiert
# =============================================================================
# Interface-Einstellungen
# =============================================================================
interface:
# Menü-Optionen
privacyPolicy:
externalUrl: "https://breakpilot.de/datenschutz"
openNewTab: true
termsOfService:
externalUrl: "https://breakpilot.de/nutzungsbedingungen"
openNewTab: true
# Sidebar-Layout
endpointsMenu: true
modelSelect: true
parameters: true
sidePanel: true
presets: true
# =============================================================================
# Registrierung & Auth
# =============================================================================
registration:
socialLogins: []
allowedDomains: []
# =============================================================================
# Ratenkontrolle
# =============================================================================
rateLimits:
fileUploads:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60
conversationsImport:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60