learning_ai_common_plat/docs/devops/vercel/ROADMAP_USER_DASHBOARD.md

2.5 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 (~5 min)

The .npmrc currently points to local Gitea (http://localhost:3300). Once Gitea is deployed to the Azure VM with a public HTTPS URL, this is a simple .npmrc update.

  • Update .npmrc to use Azure VM Gitea URL (e.g., @bytelyst:registry=https://gitea.bytelyst.com/api/packages/YOUR_ORG/npm/)
  • Set GITEA_NPM_TOKEN as a Vercel environment variable

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 (~5 min)

  • Update .npmrc to Azure VM Gitea URL
  • Set GITEA_NPM_TOKEN on Vercel

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 GITEA_NPM_TOKEN for registry auth

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: ~35 minutes