learning_ai_common_plat/docs/devops/vercel/ROADMAP_USER_DASHBOARD.md
2026-03-29 15:46:44 -07:00

3.0 KiB

User Dashboard (LysnrAI) — Vercel Deployment Roadmap

App: user-dashboard-web Repo: learning_voice_ai_agentuser-dashboard-web/ Status: ⚠️ Partial — needs Gitea registry access + env vars


Current State

  • Framework: Next.js 16.1.6, React 19.2.3, TailwindCSS v4, shadcn/ui
  • Output: Vercel-aware (process.env.VERCEL ? {} : { output: 'standalone' })
  • Dependencies: 14 @bytelyst/* packages via Gitea registry (^0.1.0)
  • Build: next build --webpack
  • Server-side: Azure Cosmos DB, Stripe, JWT, bcryptjs
  • No file: references

Gaps to Fix

Gap 1: Gitea Registry Access on Vercel (~15 min)

The .npmrc points to local Gitea (http://localhost:3300). Vercel can't reach this.

Options:

  • A) Publish to npm (public) — best for production
  • B) Publish to GitHub Packages (private) — requires NODE_AUTH_TOKEN on Vercel
  • C) Use Vercel's private npm support — configure in project settings
  • D) Vendor tarballs — use scripts/docker-prep.sh pattern to pack tarballs and reference locally

Recommended: Option B or C for initial deployment.

Fix:

  • Publish @bytelyst/* packages to GitHub Packages or npm
  • Update .npmrc to use the chosen registry (with Vercel env var for auth token)
  • OR use docker-prep.sh to vendor tarballs and adjust package.json

Gap 2: Environment Variables (~10 min)

  • COSMOS_ENDPOINT — Azure Cosmos DB endpoint
  • COSMOS_KEY — Azure Cosmos DB key
  • JWT_SECRET — JWT signing secret
  • STRIPE_SECRET_KEY — Stripe server-side key
  • STRIPE_PUBLISHABLE_KEY — Stripe public key
  • NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY — Client-side Stripe key
  • PLATFORM_SERVICE_URL — platform-service endpoint
  • ACTIONTRAIL_SERVICE_URL — ActionTrail backend
  • AZURE_KEYVAULT_URL — AKV (optional)

Deployment Steps

Step 1: Fix Registry Access (~15 min)

  • Choose registry strategy (npm / GitHub Packages / Vercel private)
  • Publish packages or configure vendoring
  • Update .npmrc with Vercel-compatible registry URL

Step 2: Create Vercel Project (~5 min)

  • Connect learning_voice_ai_agent repo
  • Set Root Directory to user-dashboard-web
  • Framework preset: Next.js

Step 3: Configure Environment Variables (~10 min)

  • Add all env vars listed above
  • Set NODE_AUTH_TOKEN if using private registry

Step 4: Verify (~10 min)

  • Trigger deploy
  • Test login, dashboard, billing flow
  • Verify Stripe integration
  • Verify Cosmos connectivity

Step 5: Domain (~5 min)

  • Add custom domain (e.g., portal.lysnrai.com)

Risks

  • Cosmos latency: Same region concern as admin-web.
  • Stripe webhooks: Stripe webhook URL must be updated to Vercel domain.
  • Platform-service connectivity: PLATFORM_SERVICE_URL must point to a publicly accessible endpoint (not localhost).

Estimated Total Effort: ~45 minutes