Architektur

Welche Dienste es gibt, wie sie zusammenhängen und wo was im Monorepo liegt.

Jeder Shop ist ein eigener Docker-Stack auf Dokploy. Die Plattform verwaltet alle Shops: Tarife, Erweiterungen, Releases, Themes, Backups, Monitoring und das Kundenportal.

Überblick
                 ┌──────────────────────── Plattform (platform.…) ───────────────────────┐
                 │ Agenturbereich · Kundenportal · Theme-Registry · Hilfe/Docs · API v1   │
                 └───────────▲──────────────────────────▲───────────────────────▲─────────┘
     signierte Berechtigungen │        Callback-Token    │ Fehler, Themes, Bereit │ Backups (HTTPS)
                 ┌────────────┴──────────────────────────┴───────────┐   ┌───────┴────────┐
 Shop-Stack      │ storefront (Next.js)   shop-admin (Next.js+Payload)│   │ Infra-Stack    │
 (je Shop)       │ medusa (Commerce-API, Jobs, Module)                │◀─▶│ Postgres, Redis│
                 └────────────────────────────────────────────────────┘   │ Backup, Gotenb.│
                                                                          └────────────────┘

#Dienste

DienstAufgabe
storefrontDer Shop (Next.js 16, Server-Rendering). Rendert Templates aus Sections und Blöcken.
shop-adminDashboard für Händler (Next.js + Payload CMS): Inhalte, Design, Theme-Editor, BFF zu Medusa.
medusaCommerce-Backend (Medusa 2): Produkte, Warenkörbe, Bestellungen, Zahlungen, eigene Module (Gutscheine, Rechnungen, B2B, Treuepunkte …) und Jobs.
platformAgentur und Kundenportal, Theme-Registry, Rollouts, Backups, Monitoring, Hilfe-Center.
InfraPostgres (je Shop drei Datenbanken: <id>_medusa, <id>_payload, <id>_auth), Redis, Backup-Container, Gotenberg (HTML → PDF).

#Monorepo

apps/
  storefront/      Shop
  shop-admin/      Dashboard
  medusa/          Commerce-Backend
  platform/        Plattform (inkl. content/ für Hilfe und Docs)
packages/
  theme-engine/    Regeln, Rendern, Design-Tokens, Validierung, i18n
  block-registry/  Core-Sections und -Blöcke (Produkt, Warenkorb, Header …)
  auth/            Signierte Plattform-Tokens (Berechtigungen, Befehle, Support)
  ui/              Dashboard-Komponenten
themes/
  default/         Theme-Sections (Hero, Banner, FAQ …)
  packages/        Theme-Pakete (.zip-Quellen) und Generator
tools/platform-cli Plattform-CLI (pnpm platform …)
infrastructure/    Docker-Compose-Dateien, Backup-Image

#Vertrauen zwischen den Diensten

  • Berechtigungen (Tarif, Erweiterungen) signiert die Plattform mit Ed25519; Shop-Admin und Medusa prüfen die Signatur mit dem öffentlichen Schlüssel. Daten ändern schaltet nichts frei.
  • Plattform-Befehle (z. B. diagnostics:read) sind kurzlebige signierte JWTs mit Scope.
  • Shops melden sich bei der Plattform mit ihrem Callback-Token (Fehler, Theme-Katalog, „bereit“).
  • Geheimnisse liegen nur in .env-Dateien (gitignored) und in den Dokploy-Umgebungen – nie im Repository.

Zuletzt aktualisiert am 21. Oktober 2026