v0 / Vercel: Parallel Frontends (Website, Signage, Companion)
Target Audience: Editorial Team, IT, and v0 Developers.
Principle: Cockpit Remains — v0 is Added
cockpitOS will continue to operate its own frontends on *.cockpit-os.de. v0/Vercel is an additional channel for layout/UI — not a replacement.
| Interface | Cockpit Channel (remains) | Additional v0/Vercel |
|---|---|---|
| Center Website | Preview preview.cockpit-os.de/{slug}, Custom Domain (Website Tab) | Optional Vercel Project, same API |
| Signage / Kiosk | {center}.signage.cockpit-os.de | e.g. signage-xyz.vercel.app |
| Companion / NOW! | Signage-Origin + /companion… | same or own Vercel URL |
Data & API for all channels: https://dashboard.cockpit-os.de (NEXT_PUBLIC_DASHBOARD_URL).
┌─────────────────────────┐
│ dashboard.cockpit-os.de │
│ (Content, APIs, CMS) │
└───────────┬─────────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
Cockpit Website Cockpit Signage v0/Vercel
preview + Domain *.signage… (optional,
(existing) (existing) per area)
Editorial Team: As Little Manual Work as Possible (v0-first)
Principle: The editorial team starts in v0 (Instructions A–I + D). Content is sent to Cockpit via MCP. After Vercel deployment, the project self-reports to Cockpit (Part J).
| Step | Who | What Happens |
|---|---|---|
| 1 | Editorial | Build in v0 + Content (Shops, News, …) — Part D → Cockpit |
| 2 | IT (once) | Vercel: Register Token + /api/cockpit-register + Deploy Hook |
| 3 | System | After deploy: Cockpit automatically knows Live URL |
| 4 | Live | Changes in v0-Chat or Cockpit — same DB, Auto-Revalidate |
Dashboard Frontend Channels = Status/Fallback under Website Management → Frontend Channels (v0), not the main path.
API: POST /api/public/frontend-deployments/register · MCP: cockpit_register_frontend_deployment
Dashboard: Frontend Channels (One Place)
Website Management → Frontend Channels (v0) — /dashboard/website/frontend-channels
- Website (v0), Signage (v0), Companion (v0) — all in one place
- Cockpit Channels (Preview, Custom Domain,
*.signage.cockpit-os.de) for information only - Not dispersed under Companion, Signage, or Center Website tabs anymore
Custom Domains for the Website continue in the Center → Website tab (Cockpit Hosting).
API: GET/PATCH /api/centers/{centerId}/signage-public-urls (Website + Signage + Companion).
Connection Test: POST …/signage-public-urls/test-connection.
What Works in Parallel
- Same Content on Cockpit Website and v0 Website (Shops, News, Plans, …)
- Cockpit Signage and v0 Kiosk at the same Center
- Analytics: Umami/Tracking per Center — also from Vercel Origins, if integrated
- Handoff QR-Sessions:
POST /api/public/handoff-sessions— visible in the Dashboard regardless of the frontend host
v0 Checklist
Always:
NEXT_PUBLIC_DASHBOARD_URL=https://dashboard.cockpit-os.de
Website (v0):
Center Resolution: by-domain OR ?center=slug (Preview)
Optionally in the Dashboard: enter websitePublicUrl
Signage (v0):
/kiosk + /companion in the same project (Handoff)
POST /api/public/handoff-sessions → sessionKey
Optionally: signagePublicUrl / companionPublicUrl in the Dashboard
Do Not:
Use Cockpit URLs as API base
Assume that v0 will shut down Cockpit hostings
Statistics
| Channel | Visible in Cockpit | Visible in v0 when … |
|---|---|---|
| Website Umami | Website Tab / Tracking Config | public-visitor-surface → tracking integrated |
| Companion/Kiosk Global | Digital Signage → Analytics | Umami app=companion + center_id in Events |
| Handoff Sessions | Companion → QR Sessions | POST /api/public/handoff-sessions |
| Usage Events | Reporting | POST /api/analytics/usage-events |
See Also
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/digital-signage/v0-vercel-hosting-dashboard-statistik