Merge gitea/main: resolve ci.yaml conflict, keep Coolify deploy
All checks were successful
CI/CD / go-lint (push) Has been skipped
CI/CD / python-lint (push) Has been skipped
CI/CD / nodejs-lint (push) Has been skipped
CI/CD / test-go-ai-compliance (push) Successful in 40s
CI/CD / test-python-backend-compliance (push) Successful in 39s
CI/CD / test-python-document-crawler (push) Successful in 30s
CI/CD / test-python-dsms-gateway (push) Successful in 24s
CI/CD / validate-canonical-controls (push) Successful in 15s
CI/CD / Deploy (push) Successful in 3s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-13 13:26:17 +01:00
parent 38c7cf0a00
commit b4d2be83eb
5 changed files with 15 additions and 15 deletions

View File

@@ -44,7 +44,7 @@ Push auf gitea main → go-lint/python-lint/nodejs-lint (nur PRs)
**Dateien:** **Dateien:**
- `.gitea/workflows/ci.yaml` — Pipeline-Definition (Tests + Validierung) - `.gitea/workflows/ci.yaml` — Pipeline-Definition (Tests + Validierung)
- `docker-compose.yml` — Haupt-Compose - `docker-compose.yml` — Haupt-Compose
- `docker-compose.hetzner.yml` — Override: arm64→amd64 fuer Production (x86_64) - `docker-compose.hetzner.yml` — Override: arm64→amd64 fuer Coolify Production (x86_64)
### Lokale Entwicklung (Mac Mini — optional) ### Lokale Entwicklung (Mac Mini — optional)
@@ -184,7 +184,7 @@ breakpilot-compliance/
├── dsms-gateway/ # IPFS Gateway ├── dsms-gateway/ # IPFS Gateway
├── scripts/ # Helper Scripts ├── scripts/ # Helper Scripts
├── docker-compose.yml # Compliance Compose (~10 Services, platform: arm64) ├── docker-compose.yml # Compliance Compose (~10 Services, platform: arm64)
├── docker-compose.hetzner.yml # Override: arm64→amd64 fuer Production ├── docker-compose.hetzner.yml # Override: arm64→amd64 fuer Coolify Production
└── .gitea/workflows/ci.yaml # CI/CD Pipeline (Lint → Tests → Validierung) └── .gitea/workflows/ci.yaml # CI/CD Pipeline (Lint → Tests → Validierung)
``` ```

View File

@@ -5,8 +5,8 @@
# #
# Phasen: gesetze, eu, templates, datenschutz, verbraucherschutz, verify, version, all # Phasen: gesetze, eu, templates, datenschutz, verbraucherschutz, verify, version, all
# #
# Voraussetzung: RAG-Service und Qdrant muessen auf Hetzner laufen. # Voraussetzung: RAG-Service und Qdrant muessen auf Coolify laufen.
# Die BreakPilot-Services muessen deployed sein (ci.yaml deploy-hetzner). # Die BreakPilot-Services muessen deployed sein (ci.yaml deploy-coolify).
name: RAG Ingestion name: RAG Ingestion

View File

@@ -39,7 +39,7 @@ go build -o server ./cmd/server
# Production: CI/CD (automatisch bei Push auf main) # Production: CI/CD (automatisch bei Push auf main)
git push origin main && git push gitea main git push origin main && git push gitea main
# → Gitea Actions: Tests → Build → Deploy auf Hetzner # → Gitea Actions: Tests → Build → Deploy auf Coolify
# → Status: https://gitea.meghsakha.com/Benjamin_Boenisch/breakpilot-compliance/actions # → Status: https://gitea.meghsakha.com/Benjamin_Boenisch/breakpilot-compliance/actions
# Alternativ: mit Docker (lokal) # Alternativ: mit Docker (lokal)
@@ -466,7 +466,7 @@ Tests laufen automatisch bei jedem Push via Gitea Actions (`.gitea/workflows/ci.
| `test-python-document-crawler` | `python:3.12-slim` | `pytest tests/` | | `test-python-document-crawler` | `python:3.12-slim` | `pytest tests/` |
| `test-python-dsms-gateway` | `python:3.12-slim` | `pytest test_main.py` | | `test-python-dsms-gateway` | `python:3.12-slim` | `pytest test_main.py` |
Nach erfolgreichen Tests: automatisches Deploy auf Hetzner (`deploy-hetzner` Job). Nach erfolgreichen Tests: automatisches Deploy auf Coolify (`deploy-coolify` Job).
### Spezifische Tests ### Spezifische Tests

View File

@@ -1,16 +1,16 @@
# ========================================================= # =========================================================
# BreakPilot Compliance — Hetzner Override # BreakPilot Compliance — Coolify Production Override
# ========================================================= # =========================================================
# Verwendung: docker compose -f docker-compose.yml -f docker-compose.hetzner.yml up -d # Verwendung: docker compose -f docker-compose.yml -f docker-compose.hetzner.yml up -d
# #
# Aenderungen gegenueber docker-compose.yml: # Aenderungen gegenueber docker-compose.yml:
# - Platform: arm64 → amd64 (Hetzner = x86_64) # - Platform: arm64 → amd64 (Coolify = x86_64)
# - Network: external → auto-create (kein breakpilot-core auf Hetzner) # - Network: external → auto-create (kein breakpilot-core auf Coolify)
# - depends_on: core-health-check entfernt (kein Core auf Hetzner) # - depends_on: core-health-check entfernt (kein Core auf Coolify)
# - API URLs: auf Hetzner-interne Adressen angepasst # - API URLs: auf Coolify-interne Adressen angepasst
# ========================================================= # =========================================================
# Auf Hetzner laeuft kein breakpilot-core, daher Network selbst erstellen # Auf Coolify laeuft kein breakpilot-core, daher Network selbst erstellen
networks: networks:
breakpilot-network: breakpilot-network:
external: false external: false
@@ -18,9 +18,9 @@ networks:
services: services:
# Core-Health-Check deaktivieren (Core laeuft nicht auf Hetzner) # Core-Health-Check deaktivieren (Core laeuft nicht auf Coolify)
core-health-check: core-health-check:
entrypoint: ["sh", "-c", "echo 'Core health check skipped on Hetzner' && exit 0"] entrypoint: ["sh", "-c", "echo 'Core health check skipped on Coolify' && exit 0"]
restart: "no" restart: "no"
admin-compliance: admin-compliance:

View File

@@ -128,7 +128,7 @@ KI-generierte Inhalte werden via `compliance-tts-service` (Port 8095) in Audio u
- **Audio:** Piper TTS → MP3 (Modell: `de_DE-thorsten-high.onnx`) - **Audio:** Piper TTS → MP3 (Modell: `de_DE-thorsten-high.onnx`)
- **Video:** FFmpeg → MP4 (Skript + Stimme + Untertitel) - **Video:** FFmpeg → MP4 (Skript + Stimme + Untertitel)
- **Storage:** Hetzner Object Storage (`nbg1.your-objectstorage.com`, S3-kompatibel) - **Storage:** S3-kompatibles Object Storage (TLS)
``` ```
AudioPlayer → /sdk/v1/training/modules/:id/media (audio) AudioPlayer → /sdk/v1/training/modules/:id/media (audio)