diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index b66a21c..3003fdc 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -2,17 +2,17 @@ ## Entwicklungsumgebung (WICHTIG - IMMER ZUERST LESEN) -### Zwei-Rechner-Setup + Coolify +### Zwei-Rechner-Setup + Orca | Geraet | Rolle | Aufgaben | |--------|-------|----------| | **MacBook** | Entwicklung | Claude Terminal, Code-Entwicklung, Browser (Frontend-Tests) | | **Mac Mini** | Lokaler Server | Docker fuer lokale Dev/Tests (NICHT fuer Production!) | -| **Coolify** | Production | Automatisches Build + Deploy bei Push auf gitea | +| **Orca** | Production | Automatisches Build + Deploy bei Push auf gitea | -**WICHTIG:** Code wird direkt auf dem MacBook in diesem Repo bearbeitet. Production-Deployment laeuft automatisch ueber Coolify. +**WICHTIG:** Code wird direkt auf dem MacBook in diesem Repo bearbeitet. Production-Deployment laeuft automatisch ueber Orca. -### Entwicklungsworkflow (CI/CD — Coolify) +### Entwicklungsworkflow (CI/CD — Orca) ```bash # 1. Code auf MacBook bearbeiten (dieses Verzeichnis) @@ -21,10 +21,10 @@ git push origin main && git push gitea main # 3. FERTIG! Push auf gitea triggert automatisch: # - Gitea Actions: Tests -# - Coolify: Build → Deploy +# - Orca: Build → Deploy ``` -**NIEMALS** manuell in Coolify auf "Redeploy" klicken — Gitea Actions triggert Coolify automatisch. +**NIEMALS** manuell in Orca auf "Redeploy" klicken — Gitea Actions triggert Orca automatisch. **IMMER auf `main` pushen** — sowohl origin als auch gitea. ### Post-Push Deploy-Monitoring (PFLICHT nach jedem Push auf gitea) @@ -39,7 +39,7 @@ git push origin main && git push gitea main ``` 3. Sobald ALLE Endpoints healthy sind, dem User im Chat melden: **"Deploy abgeschlossen! Du kannst jetzt testen."** -4. Falls nach 5 Minuten noch nicht healthy → Fehlermeldung mit Hinweis auf Coolify-Logs. +4. Falls nach 5 Minuten noch nicht healthy → Fehlermeldung mit Hinweis auf Orca-Logs. ### Lokale Entwicklung (Mac Mini — optional, nur Dev/Tests) @@ -80,8 +80,8 @@ networks: | Repo | Deployment | Trigger | |------|-----------|---------| -| **breakpilot-core** | Coolify (automatisch) | Push auf gitea main | -| **breakpilot-compliance** | Coolify (automatisch) | Push auf gitea main | +| **breakpilot-core** | Orca (automatisch) | Push auf gitea main | +| **breakpilot-compliance** | Orca (automatisch) | Push auf gitea main | | **breakpilot-lehrer** | Mac Mini (lokal) | Manuell docker compose | --- @@ -252,7 +252,7 @@ ssh macmini "/usr/local/bin/docker logs -f bp-core-control-pipeline" ### Deployment (CI/CD — Standardweg) ```bash -# Committen und pushen → Coolify deployt automatisch: +# Committen und pushen → Orca deployt automatisch: git push origin main && git push gitea main ``` diff --git a/.claude/rules/pre-push-checks.md b/.claude/rules/pre-push-checks.md index 7c39592..708a3d0 100644 --- a/.claude/rules/pre-push-checks.md +++ b/.claude/rules/pre-push-checks.md @@ -58,7 +58,7 @@ Blocks on: type errors, lint violations, **build failures**. |-------|-------|------| | Pre-push (local) | Claude runs | Lint + type check + unit tests + build | | CI (Gitea Actions) | Automatic on push | Same + integration tests + contract tests | -| Deploy (Coolify) | Automatic after CI | Docker build + health check | +| Deploy (Orca) | Automatic after CI | Docker build + health check | Local checks catch 90% of CI failures in seconds. CI is the safety net, not the first line of defense. diff --git a/docs-src/architecture/environments.md b/docs-src/architecture/environments.md index b5bb4d8..aa4f5fa 100644 --- a/docs-src/architecture/environments.md +++ b/docs-src/architecture/environments.md @@ -7,10 +7,10 @@ BreakPilot verwendet zwei Umgebungen: ``` ┌─────────────────┐ ┌─────────────────┐ │ Development │───── git push ────▶│ Production │ -│ (Mac Mini) │ │ (Coolify) │ +│ (Mac Mini) │ │ (Orca) │ └─────────────────┘ └─────────────────┘ Lokale Automatisch - Entwicklung via Coolify + Entwicklung via Orca ``` ## Umgebungen @@ -32,21 +32,21 @@ BreakPilot verwendet zwei Umgebungen: ssh macmini "cd ~/Projekte/breakpilot-core && /usr/local/bin/docker compose up -d" ``` -### Production (Coolify) +### Production (Orca) **Zweck:** Live-System | Eigenschaft | Wert | |-------------|------| | Git Branch | `main` | -| Deployment | Coolify (automatisch bei Push auf gitea) | +| Deployment | Orca (automatisch bei Push auf gitea) | | Database | Externe PostgreSQL (TLS) | | Debug | Deaktiviert | **Deploy:** ```bash git push origin main && git push gitea main -# Coolify baut und deployt automatisch +# Orca baut und deployt automatisch ``` ## Docker Compose Architektur @@ -54,10 +54,10 @@ git push origin main && git push gitea main ``` docker-compose.yml ← Basis-Konfiguration (lokal, arm64) │ - └── docker-compose.coolify.yml ← Production Override (amd64) + └── docker-compose.orca.yml ← Production Override (amd64) ``` -Coolify verwendet automatisch beide Compose-Files fuer den Production-Build. +Orca verwendet automatisch beide Compose-Files fuer den Production-Build. ## Secrets Management diff --git a/docs-src/development/ci-cd-pipeline.md b/docs-src/development/ci-cd-pipeline.md index 68f7073..83b1668 100644 --- a/docs-src/development/ci-cd-pipeline.md +++ b/docs-src/development/ci-cd-pipeline.md @@ -6,8 +6,8 @@ Uebersicht ueber den Deployment-Prozess fuer BreakPilot. | Repo | Deployment | Trigger | Compose File | |------|-----------|---------|--------------| -| **breakpilot-core** | Coolify (automatisch) | Push auf `coolify` Branch | `docker-compose.coolify.yml` | -| **breakpilot-compliance** | Coolify (automatisch) | Push auf `main` Branch | `docker-compose.yml` + `docker-compose.coolify.yml` | +| **breakpilot-core** | Orca (automatisch) | Push auf `orca` Branch | `docker-compose.orca.yml` | +| **breakpilot-compliance** | Orca (automatisch) | Push auf `main` Branch | `docker-compose.yml` + `docker-compose.orca.yml` | | **breakpilot-lehrer** | Mac Mini (lokal) | Manuell `docker compose` | `docker-compose.yml` | ## Deployment-Architektur @@ -16,7 +16,7 @@ Uebersicht ueber den Deployment-Prozess fuer BreakPilot. ┌─────────────────────────────────────────────────────────────────┐ │ Entwickler-MacBook │ │ │ -│ breakpilot-core/ → git push gitea coolify │ +│ breakpilot-core/ → git push gitea orca │ │ breakpilot-compliance/ → git push gitea main │ │ breakpilot-lehrer/ → git push + ssh macmini docker ... │ │ │ @@ -26,11 +26,11 @@ Uebersicht ueber den Deployment-Prozess fuer BreakPilot. │ │ ▼ ▼ ┌───────────────────────────┐ ┌───────────────────────────┐ -│ Coolify (Production) │ │ Mac Mini (Lokal/Dev) │ +│ Orca (Production) │ │ Mac Mini (Lokal/Dev) │ │ │ │ │ │ Gitea Actions │ │ breakpilot-lehrer │ │ ├── Tests │ │ ├── studio-v2 │ -│ └── Coolify API Deploy │ │ ├── klausur-service │ +│ └── Orca API Deploy │ │ ├── klausur-service │ │ │ │ ├── backend-lehrer │ │ Core Services: │ │ └── voice-service │ │ ├── consent-service │ │ │ @@ -47,23 +47,23 @@ Uebersicht ueber den Deployment-Prozess fuer BreakPilot. └───────────────────────────┘ └───────────────────────────┘ ``` -## breakpilot-core → Coolify +## breakpilot-core → Orca ### Pipeline ```yaml -# .gitea/workflows/deploy-coolify.yml +# .gitea/workflows/deploy-orca.yml on: push: - branches: [coolify] + branches: [orca] jobs: deploy: runs-on: ubuntu-latest steps: - - name: Deploy via Coolify API - # Triggert Coolify Build + Deploy ueber API - # Secrets: COOLIFY_API_TOKEN, COOLIFY_RESOURCE_UUID, COOLIFY_BASE_URL + - name: Deploy via Orca API + # Triggert Orca Build + Deploy ueber API + # Secrets: ORCA_API_TOKEN, ORCA_RESOURCE_UUID, ORCA_BASE_URL ``` ### Workflow @@ -74,13 +74,13 @@ jobs: git push origin main && git push gitea main # 3. Fuer Production-Deploy: -git push gitea coolify +git push gitea orca # 4. Status pruefen: # https://gitea.meghsakha.com/Benjamin_Boenisch/breakpilot-core/actions ``` -### Coolify-deployed Services +### Orca-deployed Services | Service | Container | Beschreibung | |---------|-----------|--------------| @@ -91,7 +91,7 @@ git push gitea coolify | paddleocr-service | bp-core-paddleocr | OCR Engine (x86_64) | | health-aggregator | bp-core-health | Health-Check Aggregator | -## breakpilot-compliance → Coolify +## breakpilot-compliance → Orca ### Pipeline @@ -111,7 +111,7 @@ jobs: ### Workflow ```bash -# Committen und pushen → Coolify deployt automatisch: +# Committen und pushen → Orca deployt automatisch: git push origin main && git push gitea main # CI-Status pruefen: @@ -154,8 +154,8 @@ Workflows liegen in jedem Repo unter `.gitea/workflows/`: | Repo | Workflow | Branch | Aktion | |------|----------|--------|--------| -| breakpilot-core | `deploy-coolify.yml` | `coolify` | Coolify API Deploy | -| breakpilot-compliance | `ci.yaml` | `main` | Tests + Coolify Deploy | +| breakpilot-core | `deploy-orca.yml` | `orca` | Orca API Deploy | +| breakpilot-compliance | `ci.yaml` | `main` | Tests + Orca Deploy | ### Runner-Token erneuern @@ -181,7 +181,7 @@ ssh macmini "/usr/local/bin/docker logs -f bp-core-gitea-runner" ## Health Checks -### Production (Coolify) +### Production (Orca) ```bash # Core PaddleOCR @@ -229,14 +229,14 @@ ssh macmini "docker compose build --no-cache " ## Rollback -### Coolify +### Orca Ein Redeploy mit einem aelteren Commit kann durch Zuruecksetzen des Branches ausgeloest werden: ```bash # Branch auf vorherigen Commit zuruecksetzen und pushen git reset --hard -git push gitea coolify --force +git push gitea orca --force ``` ### Lokal (Mac Mini) diff --git a/docs-src/index.md b/docs-src/index.md index 4d627c2..8dd3e0e 100644 --- a/docs-src/index.md +++ b/docs-src/index.md @@ -16,8 +16,8 @@ BreakPilot besteht aus drei unabhaengigen Projekten: | Repo | Deployment | Trigger | |------|-----------|---------| -| **breakpilot-core** | Coolify (automatisch) | Push auf gitea main | -| **breakpilot-compliance** | Coolify (automatisch) | Push auf gitea main | +| **breakpilot-core** | Orca (automatisch) | Push auf gitea main | +| **breakpilot-compliance** | Orca (automatisch) | Push auf gitea main | | **breakpilot-lehrer** | Mac Mini (lokal) | Manuell docker compose | ## Core Services diff --git a/pitch-deck/components/slides/AIPipelineSlide.tsx b/pitch-deck/components/slides/AIPipelineSlide.tsx index 4332065..f8a9eb4 100644 --- a/pitch-deck/components/slides/AIPipelineSlide.tsx +++ b/pitch-deck/components/slides/AIPipelineSlide.tsx @@ -178,8 +178,8 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) { color: 'text-purple-400', title: de ? 'CI/CD & Testing' : 'CI/CD & Testing', items: de - ? ['Gitea Actions: Lint → Tests → Validierung bei jedem Push', 'Go-Tests (AI SDK) + Python-Tests (Backend + Pipeline)', 'Coolify Auto-Deploy mit Health-Check-Monitoring', 'arm64 → amd64 Cross-Build für Hetzner Production'] - : ['Gitea Actions: Lint → Tests → Validation on every push', 'Go tests (AI SDK) + Python tests (Backend + Pipeline)', 'Coolify auto-deploy with health check monitoring', 'arm64 → amd64 cross-build for Hetzner production'], + ? ['Gitea Actions: Lint → Tests → Validierung bei jedem Push', 'Go-Tests (AI SDK) + Python-Tests (Backend + Pipeline)', 'Orca Auto-Deploy mit Health-Check-Monitoring', 'arm64 → amd64 Cross-Build für Hetzner Production'] + : ['Gitea Actions: Lint → Tests → Validation on every push', 'Go tests (AI SDK) + Python tests (Backend + Pipeline)', 'Orca auto-deploy with health check monitoring', 'arm64 → amd64 cross-build for Hetzner production'], }, { icon: Zap, diff --git a/pitch-deck/lib/presenter/presenter-faq.ts b/pitch-deck/lib/presenter/presenter-faq.ts index d436d52..b2efc4c 100644 --- a/pitch-deck/lib/presenter/presenter-faq.ts +++ b/pitch-deck/lib/presenter/presenter-faq.ts @@ -692,8 +692,8 @@ export const PRESENTER_FAQ: FAQEntry[] = [ keywords: ['syseleven', 'hetzner', 'cloud', 'hosting', 'infrastruktur', 'infrastructure', 'server', 'rechenzentrum', 'data center', 'wo laufen', 'where hosted'], question_de: 'Auf welcher Infrastruktur laeuft die Plattform?', question_en: 'What infrastructure does the platform run on?', - answer_de: 'Unsere Plattform laeuft zu 100 Prozent auf europaeischer Cloud-Infrastruktur — ohne einen einzigen US-Anbieter. Fuer LLM-Inferenz und KI-Workloads nutzen wir SysEleven, einen BSI-C5-zertifizierten deutschen Cloud-Provider mit GPU-Kapazitaet. Fuer Datenbanken, Vektorspeicher und Anwendungslogik setzen wir auf Hetzner — ebenfalls deutsch, ISO 27001-zertifiziert und deutlich kostenguenstiger als AWS oder Azure. Das CI/CD laeuft ueber Gitea Actions mit automatischem Deploy via Coolify auf Hetzner. Diese Kombination gibt uns einen strukturellen Kostenvorteil bei voller EU-Datensouveraenitaet.', - answer_en: 'Our platform runs 100 percent on European cloud infrastructure — without a single US provider. For LLM inference and AI workloads we use SysEleven, a BSI C5-certified German cloud provider with GPU capacity. For databases, vector storage and application logic we rely on Hetzner — also German, ISO 27001-certified and significantly more cost-effective than AWS or Azure. CI/CD runs via Gitea Actions with automatic deploy via Coolify on Hetzner. This combination gives us a structural cost advantage with full EU data sovereignty.', + answer_de: 'Unsere Plattform laeuft zu 100 Prozent auf europaeischer Cloud-Infrastruktur — ohne einen einzigen US-Anbieter. Fuer LLM-Inferenz und KI-Workloads nutzen wir SysEleven, einen BSI-C5-zertifizierten deutschen Cloud-Provider mit GPU-Kapazitaet. Fuer Datenbanken, Vektorspeicher und Anwendungslogik setzen wir auf Hetzner — ebenfalls deutsch, ISO 27001-zertifiziert und deutlich kostenguenstiger als AWS oder Azure. Das CI/CD laeuft ueber Gitea Actions mit automatischem Deploy via Orca auf Hetzner. Diese Kombination gibt uns einen strukturellen Kostenvorteil bei voller EU-Datensouveraenitaet.', + answer_en: 'Our platform runs 100 percent on European cloud infrastructure — without a single US provider. For LLM inference and AI workloads we use SysEleven, a BSI C5-certified German cloud provider with GPU capacity. For databases, vector storage and application logic we rely on Hetzner — also German, ISO 27001-certified and significantly more cost-effective than AWS or Azure. CI/CD runs via Gitea Actions with automatic deploy via Orca on Hetzner. This combination gives us a structural cost advantage with full EU data sovereignty.', goto_slide: 'annex-architecture', priority: 8, }, diff --git a/pitch-deck/lib/presenter/presenter-script.ts b/pitch-deck/lib/presenter/presenter-script.ts index f4892c6..886153d 100644 --- a/pitch-deck/lib/presenter/presenter-script.ts +++ b/pitch-deck/lib/presenter/presenter-script.ts @@ -534,8 +534,8 @@ export const PRESENTER_SCRIPT: SlideScript[] = [ duration: 40, paragraphs: [ { - text_de: 'Engineering Deep Dive: Über 500.000 Zeilen Code, 45 Container, 65 Compliance-Module. Tech-Stack: Go, Python, TypeScript mit Next.js. CI/CD über Gitea Actions mit automatischem Deploy via Coolify auf Hetzner.', - text_en: 'Engineering deep dive: Over 500,000 lines of code, 45 containers, 65 compliance modules. Tech stack: Go, Python, TypeScript with Next.js. CI/CD via Gitea Actions with automatic deploy via Coolify on Hetzner.', + text_de: 'Engineering Deep Dive: Über 500.000 Zeilen Code, 45 Container, 65 Compliance-Module. Tech-Stack: Go, Python, TypeScript mit Next.js. CI/CD über Gitea Actions mit automatischem Deploy via Orca auf Hetzner.', + text_en: 'Engineering deep dive: Over 500,000 lines of code, 45 containers, 65 compliance modules. Tech stack: Go, Python, TypeScript with Next.js. CI/CD via Gitea Actions with automatic deploy via Orca on Hetzner.', pause_after: 2000, }, {