diff --git a/nginx/conf.d/default.conf b/nginx/conf.d/default.conf
index 81189af..a06c2db 100644
--- a/nginx/conf.d/default.conf
+++ b/nginx/conf.d/default.conf
@@ -639,6 +639,11 @@ server {
root /usr/share/nginx/html/portal;
+
+ location /compliance-hub/ {
+ alias /usr/share/nginx/html/portal/compliance-hub/;
+ try_files $uri $uri/ /compliance-hub/index.html;
+ }
location / {
try_files $uri $uri/ /index.html;
}
diff --git a/nginx/html/compliance-hub/datenschutz.html b/nginx/html/compliance-hub/datenschutz.html
new file mode 100644
index 0000000..2b36a92
--- /dev/null
+++ b/nginx/html/compliance-hub/datenschutz.html
@@ -0,0 +1,436 @@
+
+
+
+
+ Datenschutzerklaerung
+ nach Art. 13 und 14 DSGVO — Stand: Februar 2025
+
+ 1. Verantwortlicher
+
+ [FIRMENNAME] [RECHTSFORM]
+ [STRASSE HAUSNUMMER]
+ [PLZ ORT]
+ Deutschland
+ Telefon: [+49 XXX XXXXXXX]
+ E-Mail: [E-MAIL-ADRESSE]
+
+
+ 2. Datenschutzbeauftragter
+
+ [VORNAME NACHNAME]
+ E-Mail: [DSB-E-MAIL]
+ Telefon: [DSB-TELEFON]
+
+
+ Sie koennen sich jederzeit bei Fragen zum Datenschutz direkt an unseren Datenschutzbeauftragten wenden.
+
+
+ 3. Ueberblick der Verarbeitungen
+
+ Die nachfolgende Uebersicht fasst die Arten der verarbeiteten Daten und die Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen Personen.
+
+
+ Arten der verarbeiteten Daten
+
+ - Bestandsdaten (z.B. Namen, Adressen)
+ - Kontaktdaten (z.B. E-Mail, Telefonnummern)
+ - Inhaltsdaten (z.B. Eingaben in Kontaktformularen)
+ - Nutzungsdaten (z.B. besuchte Webseiten, Zugriffszeiten)
+ - Meta-/Kommunikationsdaten (z.B. IP-Adressen, Browser-Informationen)
+
+
+ Kategorien betroffener Personen
+
+ - Nutzer der Website
+ - Kommunikationspartner (E-Mail, Kontaktformular)
+ - Interessenten und Geschaeftskunden
+
+
+ 4. Rechtsgrundlagen
+ Im Folgenden erhalten Sie eine Uebersicht der Rechtsgrundlagen der DSGVO, auf deren Basis wir personenbezogene Daten verarbeiten:
+
+ - Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) — Die betroffene Person hat ihre Einwilligung in die Verarbeitung der sie betreffenden personenbezogenen Daten gegeben.
+ - Vertragserfuellung (Art. 6 Abs. 1 lit. b DSGVO) — Die Verarbeitung ist fuer die Erfuellung eines Vertrags erforderlich.
+ - Rechtliche Verpflichtung (Art. 6 Abs. 1 lit. c DSGVO) — Die Verarbeitung ist zur Erfuellung einer rechtlichen Verpflichtung erforderlich.
+ - Berechtigte Interessen (Art. 6 Abs. 1 lit. f DSGVO) — Die Verarbeitung ist zur Wahrung berechtigter Interessen erforderlich, sofern nicht die Interessen der betroffenen Person ueberwiegen.
+
+
+ 5. Hosting und Bereitstellung der Website
+
+ Unsere Website wird auf Servern in Deutschland gehostet. Bei jedem Zugriff auf unsere Website werden durch den Browser automatisch Informationen an den Server uebermittelt. Diese Informationen werden temporaer in sogenannten Server-Log-Dateien gespeichert:
+
+
+ - IP-Adresse des anfragenden Rechners
+ - Datum und Uhrzeit des Zugriffs
+ - Name und URL der abgerufenen Datei
+ - Uebertragene Datenmenge
+ - Meldung, ob der Abruf erfolgreich war (HTTP-Statuscode)
+ - Browsertyp und -version
+ - Verwendetes Betriebssystem
+ - Referrer URL (die zuvor besuchte Seite)
+
+
+ Die genannten Daten werden zu folgenden Zwecken verarbeitet:
+
+
+ - Gewaehrleistung eines reibungslosen Verbindungsaufbaus der Website
+ - Gewaehrleistung einer komfortablen Nutzung unserer Website
+ - Auswertung der Systemsicherheit und -stabilitaet
+
+
+ Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der sicheren und effizienten Bereitstellung unserer Website).
+
+
+ Speicherdauer: Die Server-Log-Dateien werden nach maximal 30 Tagen automatisch geloescht, sofern keine weitere Aufbewahrung zu Beweiszwecken erforderlich ist.
+
+
+ 6. Kontaktaufnahme
+
+ Wenn Sie uns per E-Mail oder ueber ein Kontaktformular kontaktieren, werden die von Ihnen mitgeteilten Daten (Name, E-Mail-Adresse, ggf. Telefonnummer sowie der Inhalt Ihrer Anfrage) von uns gespeichert, um Ihre Anfrage zu bearbeiten.
+
+
+ Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (vorvertragliche Massnahmen) bzw. Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der Beantwortung von Anfragen).
+
+
+ Speicherdauer: Die im Rahmen der Kontaktaufnahme uebermittelten Daten werden geloescht, sobald Ihre Anfrage vollstaendig bearbeitet wurde und keine weitere Speicherung erforderlich ist. Eine Pruefung erfolgt alle 12 Monate.
+
+
+ 7. Cookies
+
+ Unsere Website verwendet ausschliesslich technisch notwendige Cookies. Diese dienen dazu, unsere Website funktionsfaehig zu machen (z.B. Theme-Praeferenz fuer Dark/Light Mode). Es werden keine Tracking-Cookies, Analyse-Cookies oder Werbe-Cookies verwendet.
+
+
+ Technisch notwendige Cookies werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO gespeichert. Wir haben ein berechtigtes Interesse an der Speicherung technisch notwendiger Cookies zur technisch fehlerfreien und optimierten Bereitstellung unserer Dienste.
+
+
+ Konkret verwenden wir:
+
+
+ - localStorage (bp-comply-theme) — Speichert Ihre Theme-Praeferenz (Hell/Dunkel). Keine personenbezogenen Daten. Loeschbar ueber die Browsereinstellungen.
+
+
+ 8. SSL/TLS-Verschluesselung
+
+ Diese Website nutzt aus Sicherheitsgruenden und zum Schutz der Uebertragung vertraulicher Inhalte eine SSL- bzw. TLS-Verschluesselung. Sie erkennen eine verschluesselte Verbindung am Schloss-Symbol in der Adresszeile Ihres Browsers und daran, dass die Adresszeile mit "https://" beginnt.
+
+
+ Wenn die SSL- bzw. TLS-Verschluesselung aktiviert ist, koennen die Daten, die Sie an uns uebermitteln, nicht von Dritten mitgelesen werden.
+
+
+ 9. Rechte der betroffenen Personen
+ Ihnen stehen als betroffene Person folgende Rechte zu:
+
+ Auskunftsrecht (Art. 15 DSGVO)
+ Sie haben das Recht, eine Bestaetigung darueber zu verlangen, ob personenbezogene Daten verarbeitet werden, und auf Auskunft ueber diese Daten sowie auf weitere Informationen und Kopie der Daten.
+
+ Recht auf Berichtigung (Art. 16 DSGVO)
+ Sie haben das Recht, die Vervollstaendigung oder Berichtigung der Sie betreffenden unrichtigen Daten zu verlangen.
+
+ Recht auf Loeschung (Art. 17 DSGVO)
+ Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten unverzueglich geloescht werden, sofern einer der in Art. 17 DSGVO genannten Gruende zutrifft.
+
+ Recht auf Einschraenkung der Verarbeitung (Art. 18 DSGVO)
+ Sie haben das Recht, die Einschraenkung der Verarbeitung zu verlangen, wenn eine der in Art. 18 DSGVO genannten Voraussetzungen gegeben ist.
+
+ Recht auf Datenuebertragbarkeit (Art. 20 DSGVO)
+ Sie haben das Recht, die Sie betreffenden Daten in einem strukturierten, gaengigen und maschinenlesbaren Format zu erhalten und diese Daten einem anderen Verantwortlichen zu uebermitteln.
+
+ Widerspruchsrecht (Art. 21 DSGVO)
+ Sie haben das Recht, aus Gruenden, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden Daten Widerspruch einzulegen. Der Verantwortliche verarbeitet die Daten dann nicht mehr, es sei denn, er kann zwingende schutzwuerdige Gruende nachweisen.
+
+ Recht auf Widerruf einer Einwilligung (Art. 7 Abs. 3 DSGVO)
+ Sie haben das Recht, eine einmal erteilte Einwilligung jederzeit zu widerrufen. Die Rechtmaessigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung wird dadurch nicht beruehrt.
+
+ 10. Beschwerderecht bei einer Aufsichtsbehoerde
+
+ Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht Ihnen das Recht auf Beschwerde bei einer Aufsichtsbehoerde zu, insbesondere in dem Mitgliedstaat Ihres gewoehnlichen Aufenthaltsorts, Ihres Arbeitsplatzes oder des Orts des mutmasslichen Verstosses, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die DSGVO verstoesst.
+
+
+ Die zustaendige Aufsichtsbehoerde fuer Datenschutzfragen ist:
+ [NAME DER AUFSICHTSBEHOERDE, z.B. Bayerisches Landesamt fuer Datenschutzaufsicht]
+ [ADRESSE DER AUFSICHTSBEHOERDE]
+
+
+ 11. Aenderung dieser Datenschutzerklaerung
+
+ Wir behalten uns vor, diese Datenschutzerklaerung anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Aenderungen unserer Leistungen in der Datenschutzerklaerung umzusetzen. Fuer Ihren erneuten Besuch gilt dann die neue Datenschutzerklaerung.
+
+
+
+
+
+
+
+
diff --git a/nginx/html/compliance-hub/impressum.html b/nginx/html/compliance-hub/impressum.html
new file mode 100644
index 0000000..cef5a73
--- /dev/null
+++ b/nginx/html/compliance-hub/impressum.html
@@ -0,0 +1,360 @@
+
+
+
+
+ Impressum
+ Angaben gemaess §5 DDG (Digitale-Dienste-Gesetz)
+
+ Angaben zum Diensteanbieter
+
+ [FIRMENNAME] [RECHTSFORM, z.B. GmbH]
+ [STRASSE HAUSNUMMER]
+ [PLZ ORT]
+ Deutschland
+
+
+ Vertretungsberechtigte Person(en)
+
+ Geschaeftsfuehrer: [VORNAME NACHNAME]
+
+
+ Kontakt
+
+ Telefon: [+49 XXX XXXXXXX]
+ E-Mail: [E-MAIL-ADRESSE]
+ Website: www.breakpilot.de
+
+
+ Handelsregister
+
+ Registergericht: [AMTSGERICHT ORT]
+ Registernummer: [HRB XXXXXX]
+
+
+ Umsatzsteuer-Identifikationsnummer
+
+ Umsatzsteuer-Identifikationsnummer gemaess §27a Umsatzsteuergesetz:
+ [DE XXXXXXXXX]
+
+
+ Verantwortlich fuer den Inhalt
+
+ Verantwortlich nach §18 Abs. 2 MStV:
+ [VORNAME NACHNAME]
+ [STRASSE HAUSNUMMER]
+ [PLZ ORT]
+
+
+ EU-Streitschlichtung
+
+ Die Europaeische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
+ https://ec.europa.eu/consumers/odr/
+
+
+ Unsere E-Mail-Adresse finden Sie oben im Impressum.
+
+
+ Verbraucherstreitbeilegung / Universalschlichtungsstelle
+
+ Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.
+
+
+ Haftung fuer Inhalte
+
+ Als Diensteanbieter sind wir gemaess §7 Abs. 1 DDG fuer eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§8 bis 10 DDG sind wir als Diensteanbieter jedoch nicht verpflichtet, uebermittelte oder gespeicherte fremde Informationen zu ueberwachen oder nach Umstaenden zu forschen, die auf eine rechtswidrige Taetigkeit hinweisen.
+
+
+ Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberuehrt. Eine diesbezuegliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung moeglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
+
+
+ Haftung fuer Links
+
+ Unser Angebot enthaelt Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb koennen wir fuer diese fremden Inhalte auch keine Gewaehr uebernehmen. Fuer die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf moegliche Rechtsverstoesse ueberprueft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar.
+
+
+ Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
+
+
+ Urheberrecht
+
+ Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfaeltigung, Bearbeitung, Verbreitung und jede Art der Verwertung ausserhalb der Grenzen des Urheberrechtes beduerfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur fuer den privaten, nicht kommerziellen Gebrauch gestattet.
+
+
+ Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
+
+
+
+
+
+
+
+
diff --git a/nginx/html/compliance-hub/index.html b/nginx/html/compliance-hub/index.html
new file mode 100644
index 0000000..47c092e
--- /dev/null
+++ b/nginx/html/compliance-hub/index.html
@@ -0,0 +1,1878 @@
+
+
+
+
+
Entwickler-Schnelleinstieg
+
Alles was du brauchst, um in 15 Minuten produktiv zu sein.
+
+
+
1. Voraussetzungen
+
Du brauchst nur ein MacBook im lokalen Netzwerk. Alle Services laufen auf dem Mac Mini.
+
+
+
1
+
SSH-Zugang testen
+
Terminal oeffnen und ssh macmini ausfuehren. Kein Passwort noetig (Key-Auth).
+
+
+
2
+
Repos klonen
+
Auf dem Mac Mini unter /Users/benjaminadmin/Projekte/ liegen alle 3 Projekte.
+
+
+
3
+
Browser oeffnen
+
HTTPS-Zertifikate sind selbstsigniert — beim ersten Besuch im Browser akzeptieren.
+
+
+
4
+
Dokumentation lesen
+
Jedes Projekt hat ein CLAUDE.md und .claude/rules/ mit allen Details.
+
+
+
+
+cd /Users/benjaminadmin/Projekte
+git clone http://localhost:3003/pilotadmin/breakpilot-core.git
+git clone http://localhost:3003/pilotadmin/breakpilot-lehrer.git
+git clone http://localhost:3003/pilotadmin/breakpilot-compliance.git
+
+
+
2. Tech Stack
+
+
+
Core Infrastruktur
+
+ Python / FastAPI
+ Go / Gin
+ PostgreSQL 16
+ Valkey (Redis)
+ Qdrant
+ MinIO (S3)
+ Vault
+ Nginx
+
+
+
+
Lehrer EdTech
+
+ Next.js 15
+ React
+ TailwindCSS
+ Python / FastAPI
+ PaddleOCR
+ Whisper
+
+
+
+
Compliance GRC
+
+ Next.js 15
+ React
+ TailwindCSS
+ Go / Gin
+ Ollama / qwen2.5
+ RAG
+
+
+
+
+
+
3. Entwicklungs-Workflow
+
Der typische Zyklus: Code aendern → Container bauen → deployen → testen.
+
+
+
+
+
+
+
+ssh macmini "/usr/local/bin/docker compose \
+ -f /Users/benjaminadmin/Projekte/breakpilot-compliance/docker-compose.yml \
+ build --no-cache admin-compliance"
+
+
+ssh macmini "/usr/local/bin/docker compose \
+ -f /Users/benjaminadmin/Projekte/breakpilot-compliance/docker-compose.yml \
+ up -d admin-compliance"
+
+
+ssh macmini "/usr/local/bin/docker compose \
+ -f /Users/benjaminadmin/Projekte/breakpilot-compliance/docker-compose.yml \
+ logs -f admin-compliance"
+
+
+
+
+ssh macmini "git -C /Users/benjaminadmin/Projekte/breakpilot-compliance status"
+
+
+ssh macmini "cd /Users/benjaminadmin/Projekte/breakpilot-compliance && \
+ git add -A && \
+ git commit -m 'feat: Beschreibung' && \
+ git push all main"
+
+
+ssh macmini "git -C /Users/benjaminadmin/Projekte/breakpilot-compliance pull --no-rebase origin main"
+
+
+
+
+ssh macmini "/usr/local/bin/docker ps --format 'table {{.Names}}\t{{.Status}}'"
+
+
+ssh macmini "/usr/local/bin/docker ps --format '{{.Names}} {{.Status}}' | grep bp-compliance"
+
+
+ssh macmini "/usr/local/bin/docker exec -it bp-compliance-admin sh"
+
+
+ssh macmini "/usr/local/bin/docker exec -it bp-core-postgres psql -U breakpilot -d breakpilot"
+
+
+
4. Docker-Compose Pfade
+
+ | 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 |
+
+
+
+
+
+
5. Haeufige Stolpersteine
+
+ -
+ ⚠
+
+
docker: command not found via SSH
+
Docker ist nicht im SSH-PATH. Immer den vollen Pfad nutzen.
+
Fix: /usr/local/bin/docker statt docker
+
+
+ -
+ ⚠
+
+
cd funktioniert nicht direkt via SSH
+
Jeder SSH-Befehl startet in einer neuen Shell.
+
Fix: ssh macmini "cd /pfad && befehl" oder git -C /pfad
+
+
+ -
+ ⚠
+
+
Ollama aus Docker-Containern nicht erreichbar
+
Container koennen localhost des Hosts nicht direkt ansprechen.
+
Fix: http://host.docker.internal:11434 statt http://localhost:11434
+
+
+ -
+ ⚠
+
+
git pull zerstoert lokale Commits
+
Rebase auf main mit vielen lokalen Commits fuehrt zu Datenverlust.
+
Fix: Immer git pull --no-rebase origin main
+
+
+ -
+ ⚠
+
+
Healthcheck schlaegt fehl mit localhost
+
IPv6-Aufloesung von localhost kann in Docker fehlschlagen.
+
Fix: 127.0.0.1 statt localhost in Healthchecks
+
+
+ -
+ ⚠
+
+
Keine PDFs, DOCX oder Binaerdateien committen
+
Das Repo wurde von 1.7 GB auf Normalgroesse bereinigt. Bitte sauber halten.
+
Fix: .gitignore blockiert *.pdf, *.docx, *.xlsx, kompilierte Binaries
+
+
+
+
+
+
6. Zugaenge & Secrets
+
+
+ Alle 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 |
+
+
+
+
+
+
+
7. Regeln & Konventionen
+
+
+
Open Source Policy
+
+ 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.
+
+
+
+
Tests sind Pflicht
+
+ Jede Code-Aenderung braucht Tests. Go: go test ./...,
+ Python: pytest -v. Details in .claude/rules/testing.md.
+
+
+
+
DSGVO-Compliance
+
+ Bei neuen Features mit Nutzerdaten immer die Compliance-Checkliste durchgehen:
+ Rechtsgrundlage, Datenminimierung, Betroffenenrechte. Siehe .claude/rules/compliance-checklist.md.
+
+
+
+
+
+
8. Ansprechpartner & Hilfe
+
+
+ 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
+
+
+
+
+
+
+
+
+