# 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 & Anlieferungshinweise** — `kunden_bilder`-Tabelle + `kunden.anlieferungshinweis` 2. **Seriennummern-Verwaltung** — `geraete`-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 ```bash 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 ```