d72d30dd2a13d43db0f6779ce10c9088ba6cb351
Die Statusleiste ist wieder durchsichtig (black-translucent), damit der lila Hintergrund hinter Uhrzeit und Notch weitergeht. Dass die Tab-Leiste damit auf kurzen Seiten 59 px zu hoch hing, liegt an einem bekannten iOS-Verhalten: In der installierten App bekommen fixierte Elemente die volle Bildschirmhoehe nur, solange die Seite scrollbar ist. - Installierte App auf iOS (display-mode standalone, nur iOS): Die Seite ist immer mindestens 1 px hoeher als der Bildschirm (100lvh + 1px). 100lvh ist dort die volle Hoehe, 100%, 100svh und 100dvh sind zu kurz. - Die Chat-Hoehe kommt aus 100lvh. - Das Konto-Sheet sperrt die Seite dort nicht mehr (overflow bleibt sichtbar); es ist von oben mit voller Hoehe verankert, das Panel sitzt unten. - Bild-Grossansicht und Kamera des Chats sind von oben mit voller Hoehe verankert statt mit inset: 0. - Kuendigen/Widerrufen: dunkler Streifen hinter der weissen Statusleiste. Browser, Android und Desktop unveraendert (pixelgleich). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
- Template: https://git.webklar.com/knso/webklar-preview-template.git
- Webhook-URL:
https://project.webklar.com/webhook/gitea - Secret:
GITEA_WEBHOOK_TOKENin.env - Vorschau:
https://<subdomain>.project.webklar.com
customerId wird im Ticketsystem am websiteProjects-Eintrag gesetzt, nicht im Webhook.
Deployment
npm start
# Reverse Proxy (nginx) → Port 3000
# PREVIEW_DEPLOY_ROOT für statische Vorschau-Dateien
Repositories
Languages
JavaScript
86.2%
HTML
11%
CSS
2.7%