Skip to main content

v0 Team-Template einrichten (einmalig + pro Center)

Ziel: Neues Center-Website-Projekt in wenigen Minuten — ohne jedes Mal Dashboard-URL, Revalidate-Secret und Register-Route neu zu kopieren. Fail-safe: Falscher Token oder falscher Slug wird vom Cockpit abgelehnt.

Übersicht

EbeneWasWie oft
Vercel TeamShared Environment VariablesEinmal (habt ihr schon)
v0 TeamGolden Project → Team-TemplateEinmal pflegen
Vercel ProjektCOCKPIT_REGISTER_TOKEN + COCKPIT_CENTER_SLUGPro Center

Shared Env (Team, alle Projekte):

VariableBeispiel
COCKPIT_DASHBOARD_URLhttps://dashboard.cockpit-os.de
REVALIDATION_SECRETwie im Cockpit
COCKPIT_FRONTEND_CHANNELwebsite

Pro Projekt (nur diese zwei — Rest kommt vom Team):

VariableWoher
COCKPIT_REGISTER_TOKENCockpit → Website-Management → Frontend-Kanäle (v0) → Token erzeugen
COCKPIT_CENTER_SLUGCenter-Slug im Cockpit (z. B. allen-center-trier) — muss zum Token passen

Schritt 1 — Golden Project (Referenz-Projekt)

Ein v0/Vercel-Projekt, das alles enthält, was jedes Center braucht:

  1. Route app/api/cockpit-register/route.ts (aus Monorepo: apps/center-website/app/api/cockpit-register/route.ts)

  2. Route app/api/revalidate/route.ts (für Auto-Update nach Publish)

  3. Skript scripts/cockpit-register-after-deploy.mjs (aus apps/center-website/scripts/…)

  4. In package.json:

    "prebuild": "node scripts/generate-fallback-json.mjs",
    "postbuild": "node scripts/cockpit-register-after-deploy.mjs"

    generate-fallback-json.mjs: Cockpit-API → public/fallback/shops.json usw. (siehe Instruction Cockpit E).

  5. v0-Instructions (Cockpit API, MCP) wie in v0-Website A–Z

Golden Project einmal auf Production deployen und testen:

curl -X POST "https://<golden>.vercel.app/api/cockpit-register"

Erwartung: JSON mit success: true (wenn Test-Token + Test-Slug gesetzt sind).


Schritt 2 — v0 Team-Template anlegen

In v0 (Team-Workspace):

  1. Golden Project öffnen (fertiges Layout + Routes + postbuild).
  2. Menü / Project settingsPublish / Save as team template (Bezeichnung in v0 kann leicht abweichen).
  3. Name z. B. Cockpit Center Website (Standard).
  4. Speichern — ab jetzt: New project → From team template.

Wichtig: Template-Updates wirken nur auf neue Projekte aus dem Template, nicht automatisch auf alte Deployments. Golden Project pflegen und bei größeren Änderungen Template neu veröffentlichen.


Schritt 3 — Neues Center (Checkliste)

  1. Cockpit: Center anlegen, Slug notieren.

  2. v0: Neues Projekt aus Team-Template.

  3. Vercel: Projekt verknüpfen (GitHub sawmuedev o. ä.) — Shared Env verlinken (siehe unten).

  4. Vercel Projekt → Environment Variables (nur projektbezogen):

    NEXT_PUBLIC_DASHBOARD_URL=https://dashboard.cockpit-os.de
    COCKPIT_REGISTER_TOKEN=frt_…
    COCKPIT_CENTER_SLUG=<slug-aus-cockpit>

    In v0 Instructions steht das in Teil A, Teil C, Teil J.

  5. Production deploypostbuild meldet die URL ans Cockpit.

  6. Cockpit → Frontend-Kanäle (v0): Verbindung testen; Redaktion arbeitet weiter nur in v0.


Bestehende Vercel-Projekte (nachträglich)

Shared Env aus dem Team gilt nicht automatisch für alte Projekte.

  1. Vercel → ProjektSettingsEnvironment Variables
  2. Link Shared Environment VariablesCOCKPIT_DASHBOARD_URL, REVALIDATION_SECRET, COCKPIT_FRONTEND_CHANNEL anhaken
  3. Projekt-Env prüfen: COCKPIT_REGISTER_TOKEN, COCKPIT_CENTER_SLUG, NEXT_PUBLIC_DASHBOARD_URL gesetzt?
  4. Doppelte COCKPIT_DASHBOARD_URL / REVALIDATION_SECRET auf Projektebene entfernen (sonst überschreiben sie Shared)
  5. Production redeploy
  6. v0: Instructions Teil A / C / J aus der Doku neu kopieren (Env-Aufteilung)

Signage/Companion: Wenn Kanal ≠ website, COCKPIT_FRONTEND_CHANNEL projektbezogen setzen (überschreibt Shared).


Fail-safe (was schiefgehen kann)

FehlerUrsacheFix
COCKPIT_CENTER_SLUG fehltSlug nicht in VercelSlug aus Cockpit eintragen
Token gehört zu „X“, nicht zu „Y“Slug passt nicht zum Token-CenterSlug oder Token korrigieren
Ungültiger Register-TokenToken rotiert / falschNeuen Token erzeugen, in Vercel setzen, redeploy
Register OK, Revalidate fehltRoute/Secretrevalidate-Route + REVALIDATION_SECRET (Team Shared verlinkt)
API/Register trotz Shared „fehlt“Shared nicht verlinkt oder kein RedeployLink Shared + redeploy; Projekt-Token/Slug prüfen

Token und Slug werden zusammen geprüft — ein Token von Center A kann nicht versehentlich Center B überschreiben.


Redaktion (kein IT-Stress)

Nach Schritt 3: In v0 bauen, Inhalte per MCP ins Cockpit. Live schalten: im v0-Chat z. B. „Website fertig, live schalten“ (MCP publish_website_live) — siehe Go-Live.


Siehe auch

Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/content-creator-handbuch/v0-team-template-einrichtung