Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website, Klausur-Service, School-Service, Voice-Service, Geo-Service, BreakPilot Drive, Agent-Core Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
'use client'
|
||
|
||
import { getCategoryById } from '@/lib/navigation'
|
||
import { ModuleCard } from '@/components/common/ModuleCard'
|
||
import { PagePurpose } from '@/components/common/PagePurpose'
|
||
|
||
export default function InfrastructurePage() {
|
||
const category = getCategoryById('infrastructure')
|
||
|
||
if (!category) {
|
||
return <div>Kategorie nicht gefunden</div>
|
||
}
|
||
|
||
return (
|
||
<div>
|
||
{/* Page Purpose */}
|
||
<PagePurpose
|
||
title={category.name}
|
||
purpose="Diese Kategorie umfasst alle DevOps- und Infrastruktur-Tools. Hier verwalten Sie GPU-Ressourcen, ueberwachen Security-Scans, pruefen SBOM-Compliance und monitoren den Mac Mini Server."
|
||
audience={['DevOps', 'System-Administratoren', 'Security']}
|
||
architecture={{
|
||
services: ['nginx (Reverse Proxy)', 'docker-compose', 'vault (Secrets)'],
|
||
databases: ['PostgreSQL', 'Valkey (Cache)'],
|
||
}}
|
||
collapsible={true}
|
||
defaultCollapsed={false}
|
||
/>
|
||
|
||
{/* Modules Grid */}
|
||
<h2 className="text-lg font-semibold text-slate-900 mb-4">Module</h2>
|
||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||
{category.modules.map((module) => (
|
||
<ModuleCard key={module.id} module={module} category={category} />
|
||
))}
|
||
</div>
|
||
|
||
{/* Info Section */}
|
||
<div className="mt-8 bg-orange-50 border border-orange-200 rounded-xl p-6">
|
||
<h3 className="font-semibold text-orange-800 flex items-center gap-2">
|
||
<span>🖥️</span>
|
||
Mac Mini Server
|
||
</h3>
|
||
<p className="text-sm text-orange-700 mt-2">
|
||
Der Mac Mini mit Apple Silicon dient als lokaler Server fuer alle Breakpilot-Services.
|
||
GPU-intensive Workloads koennen bei Bedarf auf vast.ai ausgelagert werden.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
)
|
||
}
|