SpedySpedy Docs

Preview-Umgebungen

Boote pro Ticket eine Preview — ein lauffähiger Shop aus deinem Repo plus Datenbank-Snapshot — und sieh die Änderungen des KI-Agents direkt im Ticket.

Eine Preview ist eine lauffähige, per-Ticket bootbare Umgebung: Spedy klont das Repository deines Projekts, spielt einen Datenbank-Snapshot ein und startet die Anwendung (z. B. Shopware oder Magento). Du siehst den laufenden Shop als Iframe neben dem Ticket — und genau dort nimmt der KI-Coding-Agent seine Änderungen vor.

Wie es funktioniert

Wenn du ein Ticket öffnest und die Preview startest, bootet Spedy einen Container-Stack, der:

  1. das Preview-Repo des Projekts klont,
  2. einen Datenbank-Snapshot einspielt und
  3. die Anwendung startet.

Pro Ticket gibt es genau eine Preview. Die Preview-URL ist org-eindeutig und nur mit gültiger Spedy-Session erreichbar — siehe Sicherheit & Isolation.

Eigener Stack? Wenn dein Repo ein eigenes docker-compose.yml mitbringt, statt ein Shopware-/Magento-Template zu nutzen, beschreibt Preview-Konfiguration (BYOC) die .spedy/preview.yml, die Spedy sagt, welcher Service und Port geroutet wird.

Voraussetzungen

Bevor ein Projekt Previews booten kann, braucht deine Organisation eine aktive GitHub-Integration unter Einstellungen → Integrationen. Ohne sie zeigt der Repository-Bereich einen Hinweis statt der Repo-Auswahl.

Projekt einrichten

Öffne Projekt → Einstellungen → Preview.

Preview-Tab in den Projekteinstellungen

Repository verbinden

Im Abschnitt Repository:

  1. Klick auf Repo verbinden und wähl aus dem Dropdown ein GitHub-Repo (die Liste kommt aus der GitHub-Integration deiner Organisation).
  2. Bestätige den Base-Branch (wird aus dem Repo vorausgefüllt).
  3. Klick auf Verbinden.

Das frisch verbundene Repo wird automatisch als Preview-Repo markiert (grünes Badge). Ein Board kann mehrere Repositories haben (z. B. für den Runner oder CI) — aber genau eines ist das Preview-Repo. Über Für Preview verwenden lässt sich die Markierung auf ein anderes Repo umhängen.

Der Preview-Container klont dieses Repo bei jedem Boot. Branches und Commits des KI-Agents werden dorthin gepusht.

Datenbank-Snapshot hochladen

Ohne Snapshot bootet eine frische Preview mit der leeren Demo-Datenbank. Für realistische Daten nutzt du den Abschnitt Datenbank-Snapshots:

  1. Vergib einen Namen (z. B. prod-baseline).
  2. Wähl einen .sql- oder .sql.gz-Dump (bis 4 GB).
  3. Klick auf Hochladen.
  4. Beim Eintrag auf Als Default setzen → er bekommt ein grünes Projekt-Default-Badge.

Repository und Snapshot konfiguriert

Der Projekt-Default wird in jede Preview des Projekts eingespielt. Pro Ticket lässt er sich überschreiben — siehe Datenbank pro Ticket überschreiben.

Preview im Ticket nutzen

Klick auf das Preview-Icon im Ticket-Header (oder öffne direkt …/tickets/<id>/preview). Beim ersten Mal steht da „Preview ist aus" — klick auf Preview starten. Der erste Boot dauert ~30–60 s (Container-Start + Repo-Clone + Snapshot-Restore), danach nur Sekunden.

Ist die Preview oben, zeigt die linke Hälfte den Shop als Iframe, die rechte das Ticket-Panel bzw. den Agent:

Laufende Preview im Ticket

Idle-Timeout

Solange der Preview-Tab offen ist, hält ein Heartbeat den Container am Leben. Nach ~15 Minuten ohne Aktivität wird er automatisch gestoppt — beim nächsten Mal einfach neu starten.

Datenbank pro Ticket überschreiben

Soll ein bestimmtes Ticket gegen einen anderen Dump booten (z. B. um einen kundenspezifischen Bug zu reproduzieren), öffne das Ticket → Tab Eigenschaften → Feld Preview-DB.

Per-Ticket Preview-DB-Feld

Auflösungsreihenfolge beim Boot (höchste Priorität zuerst):

  1. Per-Ticket-Override (dieses Feld)
  2. .spedy/snapshots/<branch>.sql.gz im Repo
  3. Projekt-Default (siehe oben)
  4. .spedy/snapshots/default.sql.gz im Repo
  5. Template-Seed (leere Demo-Datenbank)

Die Auswahl greift beim nächsten Container-Boot — eine laufende Preview behält ihre Datenbank bis zum Neustart.

Sicherheit & Isolation

  • Org-Isolation. Jede Preview bekommt einen org-eindeutigen Slug, sodass zwei Organisationen nie kollidieren — auch nicht bei gleichem Board-Prefix. Jeder Aufruf einer Preview wird gegen die Organisation des Aufrufers geprüft.
  • Session-Gate. Die Preview-URL ist nur mit gültiger Spedy-Session und nur für die eigene Organisation erreichbar.
  • Private Repos. Das Klonen privater Repositories nutzt die verbundenen GitHub-Credentials deiner Organisation.

Fehlerbehebung

SymptomUrsache / Lösung
Repository-Bereich zeigt „Keine aktive GitHub-Integration"Die Org hat keine GitHub-Integration — unter Einstellungen → Integrationen verbinden
Preview-URL liefert 403Keine gültige Session, oder die Preview gehört einer anderen Organisation
Preview bootet mit leerer DatenbankKein Projekt-Default-Snapshot gesetzt und kein .spedy/snapshots/ im Repo
Datenbank-Änderungen erscheinen nichtDie Snapshot-Auswahl greift erst beim nächsten Boot — Preview stoppen und neu starten