Fortgeschritten

Ohne Docker betreiben, den Code anpassen, neue Sprachen — für alle, die tiefer wollen.

Docker ist der empfohlene Weg — ein Befehl, wenig Überraschungen. Dieses Kapitel fasst die beiden mitgelieferten Anleitungen für alle anderen Fälle zusammen; die vollständigen Fassungen liegen als docs/manual-install.md und docs/self-build.md im Archiv.

Ohne Docker betreiben

Du brauchst Node.js 20.9+ (getestet wird mit 22), pnpm 10.33.0, PostgreSQL 14+ und einen Reverse-Proxy. Der Kern:

Installieren, migrieren, bauen
pnpm install --frozen-lockfile
pnpm exec prisma migrate deploy
pnpm build
  • Reverse-Proxy: Antwort-Pufferung aus (Downloads streamen durch die App), große Request-Bodies erlauben (Produkt-Uploads) und die Besucheradresse weitergeben (X-Forwarded-For — sonst teilen sich alle Besucher ein Rate-Limit).
  • Als Dienst betreiben: die systemd-Unit aus docs/manual-install.md übernehmen.

Den Code anpassen

  • Ändern → cd docker && docker compose --env-file ../.env up -d --build. Ohne --build läuft das alte Image weiter — das ist die klassische „warum passiert nichts"-Falle.
  • Für mehr als Einzeiler: lokal pnpm dev — Sekunden statt Minuten pro Runde.
  • Drei Dinge werden generiert und gehören nie von Hand angefasst: der Prisma-Client, die Theme-/Modul-Registries, next-env.d.ts.
  • Der Build erzwingt Sicherheitsregeln (fünf Prüfungen): u. a. braucht jede Admin-Aktion und jede Admin-API-Route eine Rollen-Prüfung. Ein Verstoß bricht den Build — absichtlich.
  • src/core/theme/types.ts und src/core/modules/types.ts sind eingefroren — gekaufte Themes hängen daran.

Eine Sprache ergänzen

  1. 1

    messages/en.json nach messages/<code>.json kopieren und übersetzen

  2. 2

    Den Code in LOCALES in src/core/i18n/routing.ts eintragen

  3. 3

    Neu bauen

    Die Sprachliste wird beim Kompilieren aufgelöst — die Datei allein genügt nicht. Ein Test fängt unvollständige Übersetzungen ab, bevor ein roher Schlüssel beim Kunden landet.