Projekt-Frontends & Dokumentation
Verwaltung, AI Tools, Klausuren
Lehrer- und Schueler-Interface
Oeffentliche BreakPilot Website
Klausur, Voice, Agent-Core, Studio
BreakPilot besteht aus zwei Plattformen:
Technisch aufgeteilt in 3 Projekte mit insgesamt ~35 Docker-Containern auf einem Mac Mini M4 Pro.
breakpilot-core
Infrastruktur & gemeinsame Dienste: PostgreSQL, Valkey, MinIO, Qdrant, Vault, Nginx, Gitea, Woodpecker CI, Jitsi, Embedding-Service, RAG-Service, Night-Scheduler, Health-Aggregator.
breakpilot-lehrer
Lehrer- & Schueler-Funktionen: Studio v2, Admin Lehrer, Website, Klausur-Service (OCR, Korrektur, Vocab), School-Service, Backend Lehrer.
breakpilot-compliance
Datenschutz & GRC: Admin Compliance (SDK), Backend Compliance, AI Compliance SDK, DSFA, VVT, TOM, Loeschfristen, Vendor-Compliance.
| URL | Projekt | Beschreibung |
|---|---|---|
| macmini | Lehrer | Studio v2 (Lehrer-/Schueler-Interface) |
| macmini:3000 | Lehrer | Website (oeffentlich) |
| macmini:3002 | Lehrer | Admin Lehrer (Dashboard, AI-Tools, Architektur) |
| macmini:3008 | Core | Admin Core (Infrastruktur, Services, Monitoring) |
| macmini:3007 | Compliance | Admin Compliance (SDK, DSFA, VVT, TOM) |
| macmini:8443 | Core | Jitsi Meet (Videokonferenzen) |
| URL | Projekt | Beschreibung |
|---|---|---|
| macmini:8000 | Core | Backend Core (Auth, RBAC, Notifications) |
| macmini:8001 | Lehrer | Backend Lehrer (Classroom, Units, Meetings) |
| macmini:8002 | Compliance | Backend Compliance (DSGVO, DSR, Consent) |
| macmini:8086 | Lehrer | Klausur-Service (OCR, Korrektur, Vocab) |
| macmini:8093 | Compliance | AI Compliance SDK API |
| macmini:8097 | Core | RAG-Service (Vektorsuche) |
| URL | Beschreibung |
|---|---|
| macmini:3003 | Gitea (Git-Server) |
| macmini:8090 | Woodpecker CI |
| macmini:8200 | Vault (Secrets) |
| macmini:8025 | Mailpit (E-Mail Dev) |
| macmini:9001 | MinIO Console (S3) |
| macmini:8096 | Night Scheduler API |
| macmini:8099 | Health Aggregator |
| Repository | Lokal (Gitea) | Extern (Gitea) |
|---|---|---|
| breakpilot-core | macmini:3003/.../breakpilot-core | gitea.meghsakha.com/.../breakpilot-core |
| breakpilot-lehrer | macmini:3003/.../breakpilot-lehrer | gitea.meghsakha.com/.../breakpilot-lehrer |
| breakpilot-compliance | macmini:3003/.../breakpilot-compliance | gitea.meghsakha.com/.../breakpilot-compliance |
Alle HTTPS-Ports laufen ueber bp-core-nginx (aus breakpilot-core).
Nginx terminiert TLS mit Vault-Zertifikaten und leitet an die jeweiligen Container weiter.
Die internen Dienste (Gitea, Mailpit, MinIO etc.) sind nur ueber HTTP erreichbar.
| Chip | Apple M4 Pro |
| CPU-Kerne | 14 (10 Performance + 4 Efficiency) |
| GPU-Kerne | 20 (Metal 3) |
| RAM | 64 GB Unified Memory |
| SSD | 1,8 TB (davon ~1,5 TB frei) |
| macOS | Darwin 24.6.0 |
Die 64 GB Unified Memory werden geteilt zwischen Docker (~35 Container), Ollama (LLM-Inference) und dem System. Bei grossen Modellen (32B+ Parameter) belegt Ollama ~20 GB RAM waehrend der Inference.
Der M4 Pro nutzt Unified Memory — CPU und GPU teilen sich den RAM. Das ermoeglicht grosse LLM-Modelle ohne dedizierte GPU.
Lokal auf dem Mac Mini via http://macmini:11434. Modelle werden ueber die Ollama API geladen.
| Modell | Parameter | Groesse | Quantisierung | Einsatz |
|---|---|---|---|---|
| qwen3:30b-a3b | 30,5 Mrd. (3,3 Mrd. aktiv) | 17,3 GB | Q4_K_M | Compliance Haupt-LLM fuer Advisor, SDK, DSFA, VVT (MoE) |
| qwen2.5vl:32b | 33,5 Mrd. | 19,7 GB | Q4_K_M | Lehrer Vision-Language-Modell fuer Bildanalyse |
| llama3.2-vision:11b | 10,7 Mrd. | 7,3 GB | Q4_K_M | Lehrer Vision-Modell fuer OCR, Bildanalyse |
| llama3.2:latest | 3,2 Mrd. | 1,9 GB | Q4_K_M | Leichtgewichtig, Schnelltests, Fallback |
Gesamt-Speicherbedarf aller Modelle: ~54,6 GB auf Disk. Waehrend der Inference wird jeweils nur das aktive Modell in den RAM geladen. Bei gleichzeitiger Nutzung mehrerer Modelle steigt der RAM-Bedarf entsprechend.
Alles was du brauchst, um in 15 Minuten produktiv zu sein.
Du brauchst nur ein MacBook im lokalen Netzwerk. Alle Services laufen auf dem Mac Mini.
Terminal oeffnen und ssh macmini ausfuehren. Kein Passwort noetig (Key-Auth).
Auf dem Mac Mini unter /Users/benjaminadmin/Projekte/ liegen alle 3 Projekte.
HTTPS-Zertifikate sind selbstsigniert — beim ersten Besuch im Browser akzeptieren.
Jedes Projekt hat ein CLAUDE.md und .claude/rules/ mit allen Details.
Der typische Zyklus: Code aendern → Container bauen → deployen → testen.
| Projekt | Pfad |
|---|---|
| Core | /Users/benjaminadmin/Projekte/breakpilot-core/docker-compose.yml |
| Lehrer | /Users/benjaminadmin/Projekte/breakpilot-lehrer/docker-compose.yml |
| Compliance | /Users/benjaminadmin/Projekte/breakpilot-compliance/docker-compose.yml |
docker: command not found via SSH
Docker ist nicht im SSH-PATH. Immer den vollen Pfad nutzen.
/usr/local/bin/docker statt dockercd funktioniert nicht direkt via SSH
Jeder SSH-Befehl startet in einer neuen Shell.
ssh macmini "cd /pfad && befehl" oder git -C /pfadContainer koennen localhost des Hosts nicht direkt ansprechen.
http://host.docker.internal:11434 statt http://localhost:11434git pull zerstoert lokale Commits
Rebase auf main mit vielen lokalen Commits fuehrt zu Datenverlust.
git pull --no-rebase origin mainlocalhost
IPv6-Aufloesung von localhost kann in Docker fehlschlagen.
127.0.0.1 statt localhost in HealthchecksDas Repo wurde von 1.7 GB auf Normalgroesse bereinigt. Bitte sauber halten.
.gitignore blockiert *.pdf, *.docx, *.xlsx, kompilierte BinariesAlle Secrets liegen im HashiCorp Vault (macmini:8200). Niemals Passwoerter, Tokens oder API-Keys in Code oder Git committen.
| Dienst | Zugang |
|---|---|
| Gitea (Git) | macmini:3003 — Credentials: siehe Vault unter secret/gitea |
| PostgreSQL | Via Container: docker exec -it bp-core-postgres psql -U breakpilot |
| MinIO (S3) | macmini:9001 — Credentials: siehe Vault unter secret/minio |
| Mailpit | macmini:8025 — Kein Login erforderlich (Dev-Tool) |
| Ollama (LLM) | http://macmini:11434 — Kein Login, lokale Instanz |
Nur Lizenzen mit kommerzieller Nutzung erlaubt: MIT, Apache-2.0, BSD, ISC, MPL-2.0, LGPL. Verboten: GPL, AGPL, SSPL, proprietaer. Bei neuen Dependencies SBOM aktualisieren.
Jede Code-Aenderung braucht Tests. Go: go test ./...,
Python: pytest -v. Details in .claude/rules/testing.md.
Bei neuen Features mit Nutzerdaten immer die Compliance-Checkliste durchgehen:
Rechtsgrundlage, Datenminimierung, Betroffenenrechte. Siehe .claude/rules/compliance-checklist.md.
Projekt-Owner: Benjamin Boenisch
Issues: Gitea Issues in den jeweiligen Repos
CI/CD: Woodpecker CI — Pipelines werden bei Push automatisch ausgefuehrt
Monitoring: Health Aggregator — Zeigt den Status aller Services