Developer Guide
Willkommen zum CockpitOS Developer Guide! Hier erfährst du, wie du eigene Plugins, Themes und Blocks für das CockpitOS Shopping Center Management System entwickelst.
Was du entwickeln kannst
WordPress Themes
- Theme-Upload-System: ZIP-Upload mit Dashboard-Integration
- Center-spezifische Anpassungen: Farben, Fonts, Logo pro Center
- CSS-Variablen-System: Dynamische Theme-Anpassungen
- Elementor-Integration: Custom Widgets und Dynamic Tags
- Auto-Synchronisation: WordPress Plugin lädt Theme-Daten automatisch
Elementor Widgets
- CockpitOS Widgets: Shop-Grids, Event-Listen, News-Feeds
- Dynamic Tags: Content-Areas, Shop-Daten, Event-Informationen
- Theme-Integration: Widgets nutzen Dashboard-Farben und -Fonts
- API-Integration: Live-Daten vom CockpitOS Dashboard
Blocks
- React-Komponenten: Moderne React-basierte Blocks
- Schema-basiert: Automatische UI-Generierung aus JSON-Schema
- Responsive: Mobile-first Design
- Wiederverwendbar: Einsatz in verschiedenen Themes
Development Kit
Im Monorepo liegt packages/sdk (@cockpitos/sdk) — CLI zum Scaffold von Block- und Theme-Plugins. Der globale npm install -g-Weg ist optional für externe Plugin-Autoren.
SDK (Monorepo)
# Im Monorepo nach pnpm install:
pnpm --filter @cockpitos/sdk exec cockpitos create-block my-block
pnpm --filter @cockpitos/sdk exec cockpitos create-theme my-theme
Der Befehl cockpitos dev startet derzeit nur einen Platzhalter-Log — Plugin-Entwicklung erfolgt primär über npm run dev im erzeugten Plugin-Ordner. Storybook/Playground wie in älteren Docs beschrieben sind nicht im Paket enthalten.
Quick Start (extern)
npm install -g @cockpitos/sdk
cockpitos create-block my-awesome-block
cd my-awesome-block && npm install && npm run dev
Dokumentation
- Plugin-Entwicklung - Eigene Plugins erstellen
- WordPress Themes — Entwicklung - Custom Themes
- Block-Entwicklung — Hinweis: die alte
frontend-spa-App existiert nicht mehr; Blocks/Themes siehe WordPress- und Plugin-Docs - Öffentliche Center-Website-Reads — API-Vertrag (Read) (CORS, Slug-Flow, Copy-Paste-Prompt für v0). Für Nicht-Entwickler:innen mit v0: Schritt-für-Schritt: v0 mit öffentlicher API. ZIP-Templates fürs Cockpit: unter Templates — nicht mit dem API-Vertrag verwechseln.
- API-Referenz - Vollständige API-Dokumentation aller Endpunkte (Coming Soon); verfügbar: WordPress Push-Content (REST), AgencyOS an CockpitOS anbinden (Magic Link & v1 API) inkl. optionaler OpenAPI AgencyOS sowie OpenAPI öffentlicher Wayfinding-Read. KI-Website-Bau & Daten-Sync: Integrationskonzept, maschinenlesbar:
/ai-integration/cockpit-api-capabilities.json. MCP (Claude Desktop): Monorepo-Paketpackages/mcp-cockpit-os— siehe README im Repository; Setup: Claude & Cockpit. - Examples - Praktische Beispiele und Templates (Coming Soon)
Community
- GitHub (Monorepo): sawmuedev/smg-cockpit-os
- Externe Plugin-Org (falls genutzt): cockpitos/plugins
Voraussetzungen
- Node.js: >= 22.13 (wie Root-
package.json/ Render) - TypeScript: >= 5.0.0
- React: >= 19.0.0
- Next.js: >= 15.0.0
Dashboard-App im Monorepo (Build & Typecheck)
- Aktive Next-Konfiguration:
apps/dashboard/next.config.js(nichtnext.config.ts; die.ts-Datei dient nur als Referenz/IDE). outputFileTracingRoot: zeigt auf das Workspace-Root, damit Next beim Build die richtigepnpm-lock.yamlnutzt (weniger Warnungen bei mehreren Lockfiles).- Große Uploads:
experimental.serverActions.bodySizeLimitundexperimental.middlewareClientMaxBodySize(kein veraltetesproxyClientMaxBodySizein Next 15.5). pnpm --filter dashboard type-check:tsconfig.jsondes Dashboards nimmt.next/typesnicht inincludeauf und exclude’t.next— die generierten Route-Validator-Typen erzeugen sonst viele False Positives; kein Einfluss auf Laufzeitdaten. Typed Routes fürLinksind dann ggf. eingeschränkt; Quellcode untersrc/bleibt maßgeblich. (Next kann beim ersten Lauf Vorschläge in die Datei schreiben —.next/typesbewusst nicht committen/übernehmen, wenn ihr sauberestscwollt.)- Build:
PageNotFoundError/ENOENTbeim Schritt „Collecting page data“: tritt bei inkrementellen Builds gelegentlich auf, wenn der.next‑Cache inkonsistent ist. Kein Datenverlust: das Dashboard führt vorpnpm buildautomatischprebuildaus (rm -rf .next), damit der Produktions-Build stabil bleibt. (Nur Build-Artefakte, keine DB.) Die API-Routen untersrc/app/api/.../route.tswerden dabei nicht verändert.
Nächste Schritte
- Plugin-System verstehen - Grundlagen der Plugin-Architektur
- Erstes Plugin erstellen - Step-by-Step Tutorial
- Theme entwickeln - Eigenes Theme bauen (Coming Soon)
- Plugin veröffentlichen - Plugin im Marketplace veröffentlichen (Coming Soon)
Bereit loszulegen? Starte mit unserem Getting Started Guide.
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /developer-guide/intro