- Source-Copy von /root/entwicklung/pfandsystem - docker-compose.yml umgeschrieben: pfandsystem-demo-* Container, Ports 3308/8083/3003 (alle localhost) - Traefik-Label fuer pfandsystem.dockly.de - Erweitertes Multi-Tenant-Schema (tenants, tenant_id auf allen Tabellen) - Neue Tabellen: kunden_bilder, geraete - Neue Spalten: kunden.anlieferungshinweis, kunden.lieferzeit_bis - Rollen: superadmin, admin, user, fahrer - .env.example + README Code-Refactor (Tailwind, Multi-Tenant-Middleware, Erweiterungen) folgt.
47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# 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
|
|
```
|