feat: Add DevSecOps tools, Woodpecker proxy, Vault persistent storage, pitch-deck annex slides
All checks were successful
CI / test-bqas (push) Successful in 32s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 46s
CI / test-python-voice (push) Successful in 38s
All checks were successful
CI / test-bqas (push) Successful in 32s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 46s
CI / test-python-voice (push) Successful in 38s
- Install Gitleaks, Trivy, Grype, Syft, Semgrep, Bandit in backend-core Dockerfile - Add Woodpecker SQLite proxy API (fallback without API token) - Mount woodpecker_data volume read-only to backend-core - Add backend proxy fallback in admin-core Woodpecker route - Add Vault file-based persistent storage (config.hcl, init-vault.sh) - Auto-init, unseal and root-token persistence for Vault - Add 6 pitch-deck annex slides (Assumptions, Architecture, GTM, Regulatory, Engineering, AI Pipeline) - Dynamic margin/amortization KPIs in BusinessModelSlide - Market sources modal with citations in MarketSlide - Redesign nginx landing page to 3-column layout (Lehrer/Compliance/Core) - Extend MkDocs nav with Services and SDK documentation sections - Add SDK Protection architecture doc Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,13 @@
|
||||
--docs-core: #14b8a6;
|
||||
--docs-lehrer: #0ea5e9;
|
||||
--docs-compliance: #8b5cf6;
|
||||
|
||||
--pitch-500: #f59e0b;
|
||||
--pitch-400: #fbbf24;
|
||||
--pitch-600: #d97706;
|
||||
--pitch-bg: rgba(245, 158, 11, 0.08);
|
||||
--pitch-bg-hover: rgba(245, 158, 11, 0.14);
|
||||
--pitch-border: rgba(245, 158, 11, 0.25);
|
||||
}
|
||||
|
||||
/* ── Light Theme ── */
|
||||
@@ -95,6 +102,9 @@
|
||||
--core-bg: rgba(100, 116, 139, 0.1);
|
||||
--core-bg-hover: rgba(100, 116, 139, 0.18);
|
||||
--core-border: rgba(148, 163, 184, 0.15);
|
||||
--pitch-bg: rgba(245, 158, 11, 0.1);
|
||||
--pitch-bg-hover: rgba(245, 158, 11, 0.18);
|
||||
--pitch-border: rgba(251, 191, 36, 0.2);
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -176,6 +186,57 @@
|
||||
margin: 0 auto 2.5rem;
|
||||
}
|
||||
|
||||
.columns-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
gap: 1.5rem;
|
||||
max-width: 1100px;
|
||||
margin: 0 auto 2.5rem;
|
||||
}
|
||||
|
||||
.column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.column-header {
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
padding: 0.4rem 0.75rem;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.column-header-lehrer {
|
||||
color: var(--lehrer-500);
|
||||
background: var(--lehrer-bg);
|
||||
}
|
||||
|
||||
.column-header-compliance {
|
||||
color: var(--compliance-500);
|
||||
background: var(--compliance-bg);
|
||||
}
|
||||
|
||||
.column-header-core {
|
||||
color: var(--core-400);
|
||||
background: var(--core-bg);
|
||||
}
|
||||
|
||||
.column .card {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.columns-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
/* ── Cards ── */
|
||||
.card {
|
||||
border-radius: 14px;
|
||||
@@ -214,6 +275,12 @@
|
||||
}
|
||||
.card-core:hover { background: var(--core-bg-hover); }
|
||||
|
||||
.card-pitch {
|
||||
border-color: var(--pitch-border);
|
||||
background: var(--pitch-bg);
|
||||
}
|
||||
.card-pitch:hover { background: var(--pitch-bg-hover); }
|
||||
|
||||
.card-icon {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
@@ -258,6 +325,7 @@
|
||||
.stripe-docs-core { background: var(--docs-core); }
|
||||
.stripe-docs-lehrer { background: var(--docs-lehrer); }
|
||||
.stripe-docs-compliance { background: var(--docs-compliance); }
|
||||
.stripe-pitch { background: var(--pitch-500); }
|
||||
|
||||
.divider {
|
||||
max-width: 1100px;
|
||||
@@ -555,116 +623,130 @@
|
||||
<div style="max-width: 1100px; margin: 0 auto;">
|
||||
<div class="section-title">Projekte</div>
|
||||
</div>
|
||||
<div class="grid">
|
||||
<div class="columns-layout">
|
||||
|
||||
<a class="card card-core" href="https://macmini:3008/dashboard">
|
||||
<div class="stripe stripe-core"></div>
|
||||
<div class="card-body">
|
||||
<h3>Admin Core</h3>
|
||||
<p>Infrastruktur, Services, Monitoring</p>
|
||||
<div class="url">macmini:3008/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- ── Lehrer (links) ── -->
|
||||
<div class="column">
|
||||
<div class="column-header column-header-lehrer">Lehrer</div>
|
||||
|
||||
<a class="card card-lehrer" href="https://macmini:3002/dashboard">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Admin Lehrer</h3>
|
||||
<p>Verwaltung, AI Tools, Klausuren</p>
|
||||
<div class="url">macmini:3002</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-lehrer" href="https://macmini:3002/dashboard">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Admin Lehrer</h3>
|
||||
<p>Verwaltung, AI Tools, Klausuren</p>
|
||||
<div class="url">macmini:3002</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-compliance" href="https://macmini:3007/sdk">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Compliance SDK</h3>
|
||||
<p>DSGVO, Audit, GRC — Alle SDK-Module</p>
|
||||
<div class="url">macmini:3007/sdk</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-lehrer" href="https://macmini">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Studio v2</h3>
|
||||
<p>Lehrer- und Schueler-Interface</p>
|
||||
<div class="url">macmini</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-lehrer" href="https://macmini">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Studio v2</h3>
|
||||
<p>Lehrer- und Schueler-Interface</p>
|
||||
<div class="url">macmini</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-lehrer" href="https://macmini:3000">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Website</h3>
|
||||
<p>Oeffentliche BreakPilot Website</p>
|
||||
<div class="url">macmini:3000</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-compliance" href="https://macmini:3007/dashboard">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Compliance Dashboard</h3>
|
||||
<p>Kataloge, Statistiken, Verwaltung</p>
|
||||
<div class="url">macmini:3007/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-lehrer" href="http://macmini:8010/">
|
||||
<div class="stripe stripe-docs-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Dokumentation</h3>
|
||||
<p>Klausur, Voice, Agent-Core, Studio</p>
|
||||
<div class="url">macmini:8010</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<a class="card card-lehrer" href="https://macmini:3000">
|
||||
<div class="stripe stripe-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Website</h3>
|
||||
<p>Oeffentliche BreakPilot Website</p>
|
||||
<div class="url">macmini:3000</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- ── Compliance (mitte) ── -->
|
||||
<div class="column">
|
||||
<div class="column-header column-header-compliance">Compliance</div>
|
||||
|
||||
<a class="card card-compliance" href="https://macmini:3007/dashboard">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Katalogverwaltung</h3>
|
||||
<p>SDK-Kataloge & Auswahltabellen</p>
|
||||
<div class="url">macmini:3007/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-compliance" href="https://macmini:3007/sdk">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Compliance SDK</h3>
|
||||
<p>DSGVO, Audit, GRC — Alle SDK-Module</p>
|
||||
<div class="url">macmini:3007/sdk</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-compliance" href="https://macmini:3010/compliance-hub/">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Comply Website</h3>
|
||||
<p>Marketing-Website fuer den KI Compliance Hub</p>
|
||||
<div class="url">macmini:3010/compliance-hub</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-compliance" href="https://macmini:3007/dashboard">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Compliance Dashboard</h3>
|
||||
<p>Kataloge, Statistiken, Verwaltung</p>
|
||||
<div class="url">macmini:3007/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<a class="card card-compliance" href="https://macmini:3007/dashboard">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Katalogverwaltung</h3>
|
||||
<p>SDK-Kataloge & Auswahltabellen</p>
|
||||
<div class="url">macmini:3007/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<hr class="divider">
|
||||
<a class="card card-compliance" href="https://macmini:3010/compliance-hub/">
|
||||
<div class="stripe stripe-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Comply Website</h3>
|
||||
<p>Marketing-Website fuer den KI Compliance Hub</p>
|
||||
<div class="url">macmini:3010/compliance-hub</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!-- ── Dokumentation ── -->
|
||||
<div style="max-width: 1100px; margin: 0 auto;">
|
||||
<div class="section-title">Dokumentation</div>
|
||||
</div>
|
||||
<div class="grid">
|
||||
<a class="card card-pitch" href="http://macmini:3012">
|
||||
<div class="stripe stripe-pitch"></div>
|
||||
<div class="card-body">
|
||||
<h3>Pitch Deck</h3>
|
||||
<p>Interaktives Investor Pitch Deck — ComplAI</p>
|
||||
<div class="url">macmini:3012</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-core" href="http://macmini:8009/">
|
||||
<div class="stripe stripe-docs-core"></div>
|
||||
<div class="card-body">
|
||||
<h3>Core Dokumentation</h3>
|
||||
<p>Architektur, Auth, DevSecOps, RAG</p>
|
||||
<div class="url">macmini:8009</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-compliance" href="http://macmini:8011/">
|
||||
<div class="stripe stripe-docs-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Dokumentation</h3>
|
||||
<p>AI-SDK, Auditor-Doku, SBOM</p>
|
||||
<div class="url">macmini:8011</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<a class="card card-lehrer" href="http://macmini:8010/">
|
||||
<div class="stripe stripe-docs-lehrer"></div>
|
||||
<div class="card-body">
|
||||
<h3>Lehrer Dokumentation</h3>
|
||||
<p>Klausur, Voice, Agent-Core, Studio</p>
|
||||
<div class="url">macmini:8010</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- ── Core (rechts) ── -->
|
||||
<div class="column">
|
||||
<div class="column-header column-header-core">Core</div>
|
||||
|
||||
<a class="card card-compliance" href="http://macmini:8011/">
|
||||
<div class="stripe stripe-docs-compliance"></div>
|
||||
<div class="card-body">
|
||||
<h3>Compliance Dokumentation</h3>
|
||||
<p>AI-SDK, Auditor-Doku, SBOM</p>
|
||||
<div class="url">macmini:8011</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="card card-core" href="https://macmini:3008/dashboard">
|
||||
<div class="stripe stripe-core"></div>
|
||||
<div class="card-body">
|
||||
<h3>Admin Core</h3>
|
||||
<p>Infrastruktur, Services, Monitoring</p>
|
||||
<div class="url">macmini:3008/dashboard</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="card card-core" href="http://macmini:8009/">
|
||||
<div class="stripe stripe-docs-core"></div>
|
||||
<div class="card-body">
|
||||
<h3>Dokumentation</h3>
|
||||
<p>Architektur, Auth, DevSecOps, RAG</p>
|
||||
<div class="url">macmini:8009</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user