christian 261357a44e fix(seed+data): Demo-Daten konsequent mit Umlauten
- seed.js: "Cafe Sonnenschein" -> "Café Sonnenschein"
- Bestehende DB-Daten aller 3 Tenants per REPLACE() korrigiert:
  - kunden.name:   Baeckerei -> Bäckerei, Cafe -> Café
  - kunden.adresse: Seestrasse/Bahnhofstrasse/Hauptstrasse/Industriestrasse -> ß-Variante
  - anlieferungshinweis: Hintertuer/Schluesselkasten/ueber/fuer -> Unicode
  - geraete.typ: Kuehlschrank -> Kühlschrank
  - artikel.bezeichnung: Brotkorb gross -> Brotkorb groß
2026-05-26 14:42:29 +00:00

Pfandsystem Demo (Whitelabel)

Whitelabel-Demo des Pfandsystems mit Multi-Tenant-Verwaltung für 30-Tage Demo-Accounts. Basis: borbaecker-pfand.dockly.de — neu aufgesetzt mit Tailwind-UI, ohne Branding.

  • Domain: pfandsystem.dockly.de
  • Server: 51.15.249.253 (Scaleway, borbaecker-pfand.dockly.de Instanz)
  • Pfad auf Server: /root/pfandsystem-demo
  • Gitea: ssh://git@49.13.154.75:2244/christian/pfandsystem-demo.git

Architektur

  • Frontend: React 18 + Vite + Tailwind, PWA-fähig
  • Backend: Node.js (Express) + MySQL 8 + JWT
  • Reverse-Proxy: Traefik v3 (geteilt mit borbaecker + pfandsystem-dev)
  • Container: pfandsystem-demo-{mysql,phpmyadmin,backend,frontend}
  • Ports (alle 127.0.0.1): MySQL 3308, phpMyAdmin 8083, Backend 3003

Multi-Tenant-Modell

Eine MySQL-DB, jede Datentabelle hat eine tenant_id. Mitarbeiter sind einem Tenant zugeordnet — Ausnahme: rolle='superadmin' mit tenant_id=NULL, darf neue Demo-Tenants anlegen.

Demo-Tenants haben typ='demo' + demo_expires_at (default +30 Tage). Nach Ablauf wird status='abgelaufen' gesetzt (Cron).

Erweiterungen (Iteration 1)

  1. Kundenbilder & Anlieferungshinweisekunden_bilder-Tabelle + kunden.anlieferungshinweis
  2. Seriennummern-Verwaltunggeraete-Tabelle (Typ, SN, Status, Kunde-Zuordnung)
  3. Tourenplanung Stufe 1 — Navi-Button (Maps-Link), kunden.lieferzeit_bis

BBN-Schnittstelle vorerst nicht enthalten (klärungsbedürftig).

Deployment

ssh -i ~/.ssh/id_rsa root@51.15.249.253
cd /root/pfandsystem-demo
cp .env.example .env  # Werte setzen!
docker-compose up -d --build
# Traefik in das Netzwerk joinen (einmalig):
docker network connect pfandsystem-demo_pfandsystem-demo-net pfandsystem-traefik
Description
Pfandsystem Whitelabel Demo (Multi-Tenant, Tailwind UI)
Readme 440 KiB
Languages
JavaScript 95.7%
Shell 2.2%
CSS 1.2%
Dockerfile 0.5%
HTML 0.4%