CCutSeatpowered by NextTech

CutSeat Dokumentation

Technisches Handbuch

Architektur, Einrichtung, Sicherheit, Integrationen, Deployment, Backups und laufender Betrieb.

1. Architektur

CutSeat ist eine servergerenderte Next.js-Anwendung. UI und API liegen im App Router. Prisma greift auf PostgreSQL zu. NextAuth verwaltet Sitzungen und Rollen.

Frontend

Next.js 16, React, TypeScript, Tailwind CSS

Backend

Next.js Route Handler und Server Components

Daten

PostgreSQL und Prisma Client 6.19

Authentifizierung

NextAuth Credentials und rollenbasierte Guards

Zahlungen

Stripe Connect, Checkout, Webhooks und Refunds

Kommunikation

Brevo E-Mail und Meta WhatsApp Cloud API

2. Lokale Installation

git clone https://github.com/Xhavit2019/friseur-ai.git
cd friseur-ai
git switch feature/friseur-foundation
npm install
Copy-Item .env.example .env
npx prisma migrate dev --schema prisma/friseur/schema.prisma
npm run dev

Voraussetzungen: Node.js, npm, PostgreSQL und für lokale Datenbank-Backups die PostgreSQL-Clientprogramme.

3. Konfiguration

Geheimnisse gehören ausschließlich in die lokale oder serverseitige .env. Sie dürfen niemals in Git committed, in Screenshots gezeigt oder in Dokumentationen eingetragen werden.

  • Datenbank: DATABASE_URL
  • Auth: NEXTAUTH_SECRET, NEXTAUTH_URL, APP_URL
  • E-Mail: Brevo-Schlüssel und verifizierter Absender
  • WhatsApp: Zugriffstoken, Phone Number ID und Vorlagennamen
  • Stripe: Secret Key, Publishable Key und Webhook Secret
  • Betrieb: CRON_SECRET und Backup-Konfiguration

4. Datenbank und Migrationen

npm run prisma:generate
npm run prisma:migrate
npm run prisma:studio
npm run backup:database

In Produktion werden vorhandene Migrationen mit prisma migrate deploy angewendet. Vor jeder riskanten Migration ist ein geprüftes Backup erforderlich.

5. Externe Integrationen

Stripe: Connect-Onboarding für Salons, Checkout für Stuhlbuchungen, signierte Webhooks und serverseitige Erstattungen.

Brevo: transaktionale Termin- und Sicherheits-E-Mails über die REST-API.

WhatsApp: genehmigte Utility-Vorlagen; Versand nur mit Einwilligung und normalisierter Telefonnummer.

Kalender: serverseitig erzeugte ICS-Dateien für Kunden und Friseure.

6. Sicherheit und Datenschutz

  • Rollen und Besitzverhältnisse werden serverseitig geprüft.
  • Kundenzugriffe verwenden zufällige Tokens; gespeichert wird nur deren Hash.
  • Statusänderungen sind transaktional und gegen Mehrfachverarbeitung geschützt.
  • Login und Passwort-Reset sind gedrosselt.
  • Sicherheitsheader und Content Security Policy werden zentral gesetzt.
  • Personenbezogene Daten erscheinen nicht in öffentlichen Logs.
  • Produktionszugänge verwenden starke Passwörter, SSH-Schlüssel und 2FA.

7. Betrieb, Monitoring und Backups

curl https://DEINE-DOMAIN/api/friseur/health
npm run backup:database
pg_restore --list backups/database/DATEI.dump

Der Health-Endpunkt prüft Anwendung und Datenbank. Backups müssen automatisiert, verschlüsselt und zusätzlich außerhalb des Produktivservers gespeichert werden. Regelmäßige Wiederherstellungstests sind verpflichtend.

8. Produktions-Deployment

  1. Ubuntu-Server aktualisieren und nicht privilegierten Deploy-Benutzer anlegen.
  2. Firewall nur für SSH, HTTP und HTTPS öffnen; SSH nach Möglichkeit auf feste IP begrenzen.
  3. Node.js, PostgreSQL-Client, Reverse Proxy und Prozessmanager installieren.
  4. Repository auschecken und Produktionsvariablen sicher hinterlegen.
  5. npm ci, Prisma-Generierung, Migration und Build ausführen.
  6. Anwendung als Systemdienst starten und HTTPS-Zertifikat aktivieren.
  7. Stripe-Webhook, Brevo, WhatsApp, Health Check, Cronjob und Backup testen.
  8. Erst nach erfolgreichem Abnahmetest DNS auf die Produktion umstellen.