Commit Graph
9 Commits
Author SHA1 Message Date
ClaudeandClaude Fable 5 55991c9008 previewDeploy: node_build-Autodetect fuer App-Repos + Build-Output-Erkennung
- runDeploy: Repos mit package.json-build-Script ohne index.html werden
  automatisch als node_build gebaut (Expo/Vite/React zeigen sonst nur den
  Platzhalter); Build-Fehler fallen auf static+Platzhalter zurueck
- deployNodeBuild: npm-ci-Fallback auf npm install, Output-Erkennung
  dist/build/out/web-build, maxBuffer+Timeout
- updateWebsiteProject: bestehenden type/index aus .webklar-preview.json
  erhalten statt bei jedem Edit auf static zurueckzusetzen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 13:37:34 +00:00
ClaudeandClaude Fable 5 f3bde44b3d previewDeploy: vorhandene HTML-Datei statt Platzhalter als Startseite befoerdern
Fehlt im Repo eine index.html, zeigte die Preview nur die
'wird vorbereitet'-Platzhalterseite, obwohl das eigentliche Projekt
(z.B. prototyp-app.html in knso/videogen) laengst deployt war.
ensureIndexHtml befoerdert jetzt die beste vorhandene HTML-Datei
(bevorzugte Namen, sonst einzige/groesste) per Kopie zur index.html;
der Platzhalter kommt nur noch, wenn gar keine HTML-Datei existiert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 09:26:04 +00:00
ClaudeandClaude Opus 4.8 b6f5ea11ec Portal-Admin: archivierte Projekte/Kunden ausblenden, Kundentabelle ohne Horizontal-Scroll
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 19:30:16 +00:00
ClaudeandClaude Opus 4.8 1b4262b09f fix: 403-Schutz + Selbstheilung fuer geloeschte Preview-Config
- runDeploy schreibt Platzhalter-index.html, wenn das Deploy-Verzeichnis
  keine index.html enthaelt (leergeraeumtes Repo/Fehlbuild) -> nie mehr
  nginx 403 Forbidden, Subdomain bleibt erreichbar.
- deployStatic: Fallback auf Repo-Wurzel bei fehlendem index-Unterordner,
  .git wird nicht mehr mit ausgeliefert.
- Webhook: fehlt .webklar-preview.json im Repo, wird die Hosting-Config aus
  dem Appwrite-Projektstand rekonstruiert, ins Repo zurueckgeschrieben und
  normal deployt (ensureRepoPreviewConfig).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 18:05:00 +00:00
ClaudeandClaude Opus 4.8 07ebcc7e62 feat(portal): Live-Vorschaufenster pro Projektkarte im Kundenbereich
Statt nur Name + Link zeigt jede Projektkarte jetzt ein kleines,
skaliertes Live-Fenster der echten Webseite (iframe der previewUrl,
responsiv per ResizeObserver auf 1280px-Basisbreite herunterskaliert).
Klick aufs Fenster oeffnet die Seite im neuen Tab. Nicht-fertige
Projekte zeigen einen Platzhalter statt iframe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 12:42:35 +00:00
ClaudeandClaude Opus 4.8 bed738d8bd fix: verwaiste Projekte archivierbar (Gitea-Repo 404 nicht mehr hart abbrechen)
- archiveRepo: fehlt das Gitea-Repo (404), wird nur das Appwrite-Dokument
  (ent)archiviert statt hart zu scheitern -> orphaned Projekte lassen sich
  aus der Liste entfernen
- Reaktivierungs-Redeploy wird bei fehlendem Repo uebersprungen

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 09:19:25 +00:00
ClaudeandClaude Opus 4.8 376a8ae34d feat: Projekt-Typ Vorlage (template) - login-geschuetzt, isTemplate-Flag
- neuer Typ template: hasWebsite wie preview, isPublic=false, isTemplate=true
- deriveProjectType erkennt isTemplate; Appwrite-Update schreibt isTemplate
- .webklar-preview.json bekommt template-Flag

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 09:09:57 +00:00
ClaudeandClaude Opus 4.8 617d463a5a fix: updateWebsiteProject - kein hasPreview-Attribut, TLS-Sync nach Appwrite-Update
- hasPreview existiert im Live-Schema nicht -> Appwrite lehnte Update ab
- syncPreviewTls muss NACH updateDocument laufen, sonst liest es isPublic
  noch im alten Zustand (oeffentlicher Router bekam faelschlich preview-auth)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 00:30:24 +00:00
ClaudeandClaude Opus 4.8 b474c4aa48 feat: Website-Projekte bearbeiten (Name/Subdomain/Typ) + Archivierung
- updateWebsiteProject: synct Name/Subdomain/Typ nach Gitea (.webklar-preview.json,
  Repo-Beschreibung), Preview-Deploy (Redeploy+Teardown+TLS) und Appwrite
- Projekt-Typen: preview (Login), website (oeffentlich ohne Login), project (kein Hosting)
- syncPreviewTls erzeugt fuer isPublic-Projekte Router ohne preview-auth
- archiveRepo: Gitea archived + Appwrite-Flag + Preview-Teardown; Reaktivieren redeployt
- syncReposToAppwrite uebernimmt repo.archived
- Routen: PATCH /:id, POST /:id/archive, POST /:id/unarchive

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 00:21:50 +00:00