ClaudeandClaude Opus 5.5 64f1a3b26b Rechtsrunde Fassung 6 freigegeben (28.10.2026): Datum, Entwurfsmarken, R8b
Der Inhaber hat am 28.10.2026 alle Vorschläge R1 bis R18 angenommen (R10 = Option A)
und zusätzlich R8b entschieden: Webshop und Buchungskalender kehren nach einem neuen
Wartungs-Abo in der Frist automatisch zurück, wie der Server es schon tut.

- Fassungen: Abo 2026-10-28-v6, Funktionsunterlagen 2026-10-28 (Seiten neu gebaut)
- Entwurfsmarken und meta robots noindex entfernt, ENTWURF_V6 = false
- WORTLAUT_STATUS = 'freigegeben'
- Nr. 10 Abs. 5 Webshop/Buchungskalender ohne "auf Wunsch in Textform" (R8b)
- Entscheidungsliste: Abschnitt "Freigabe"; Prüfpunkte D1 bis D8 auf die aktuelle
  Datenschutzerklärung (Fassung 22.10.2026, eine Zeile tiefer) umgestellt
- Tests auf das neue Datum und den Status freigegeben gezogen

Live ändert sich für Kunden nichts: die Seiten liegen unter /neu/ und gelten nur in der
neuen Ansicht (Pilot). Umschalten (P10) folgt erst auf ausdrückliches "umschalten".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:46:53 +00:00
2026-05-22 23:51:20 +02:00

Webklar Kundenbereich

Kundenportal für Website-Projekte. Liest ausschließlich aus woms-database auf ticket.webklar.com (Ticketsystem). Es gibt keine eigene Portal-Datenbank mehr.

  • Keine Kundenanlage im Portal
  • Keine Admin-Funktionen
  • Login über Appwrite Auth (ein User pro Kunde, verknüpft über customers.appwriteUserId)

Verwaltung (Kunden, Passwörter, Projekte, Freischaltung): Ticketsystem.

Struktur

server/     Express-API, Appwrite, Gitea-Webhook
public/     Login & Dashboard (statisch)

Schnellstart

cp .env.example .env
# SESSION_SECRET (min. 32 Zeichen) und APPWRITE_API_KEY setzen
npm install
npm run dev

Öffnen: http://localhost:3000

API

Methode Pfad Beschreibung
POST /api/auth/login Appwrite Login + Portal-Prüfungen
POST /api/auth/logout Session beenden
GET /api/auth/me Aktueller Kunde
GET /api/projects Eigene websiteProjects
GET /api/features Eigene portalFeatures (enabled)
POST /webhook/gitea?token=… Gitea Push → Deploy + DB-Update

Appwrite

Schema und Collection-Anlage: siehe APPWRITE_SCHEMA.md.

Endpoint:  https://ticket.webklar.com/v1
Project:   6a1058610003c5a13a05
Database:  woms-database

Gitea / Preview

customerId wird im Ticketsystem am websiteProjects-Eintrag gesetzt, nicht im Webhook.

E-Mails

Alle automatischen Mails sind HTML-Vorlagen mit Textfassung in server/mail-templates/ (K01–K11 an Kunden, T01–T11 ans Team; Design aus Claude Design). Jede Vorlage nennt im Kopfkommentar Betreff, Platzhalter ({{name}}) und optionale Blöcke (<!-- WENN x --> … <!-- ENDE x -->). Eine neue Fassung aus dem Design kann die Datei direkt ersetzen, solange Platzhalter und Blöcke gleich heißen; npm test prüft das. Das Logo in den Mails liegt unter public/webklar-logo.png.

Deployment

npm start
# Reverse Proxy (nginx) → Port 3000
# PREVIEW_DEPLOY_ROOT für statische Vorschau-Dateien

Repositories

S
Description
Webklar-Kundenbereich
Readme
15 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 86.2%
HTML 11%
CSS 2.7%