# LLM Lab Dashboard — Vercel Deployment Roadmap

> **App:** LLM Lab Dashboard (Mission Control)
> **Repo:** `learning_ai_local_llms` → `dashboard/`
> **Status:** 🔴 Not viable on Vercel — requires local Ollama

---

## Current State

- **Framework:** Next.js 16.1.6, React 19.2.3, TailwindCSS v4
- **Output:** ❌ Hardcoded `output: 'standalone'`
- **Dependencies:** 3 `@bytelyst/*` — **2 via `file:` refs** (`design-tokens`, `ui`), 1 via Gitea
- **Build:** `next build`
- **Architecture:** Dashboard with API routes that **proxy to local Ollama** (`/api/ollama/*`)
- **System info routes:** Read hardware stats via `vm_stat`, `top`, `system_profiler` — macOS only

## Why Vercel Won't Work

1. **Ollama dependency:** API routes proxy to Ollama (`OLLAMA_HOST`). Ollama must run on the same machine or reachable network. Vercel serverless functions can't access a local Ollama instance.
2. **System commands:** Routes call macOS system commands (`vm_stat`, `system_profiler`) which don't exist on Vercel's Linux runtime.
3. **Whisper integration:** TTS/STT routes depend on local `whisper-cpp` binary.
4. **Purpose:** This is a **local machine management tool**, not a cloud app.

## If Deployment Is Still Desired (Static Shell Only)

### Gap 1: Convert `file:` refs (~5 min)

**File:** `dashboard/package.json`

```diff
- "@bytelyst/design-tokens": "file:../../learning_ai_common_plat/packages/design-tokens",
+ "@bytelyst/design-tokens": "^0.1.0",
- "@bytelyst/ui": "file:../../learning_ai_common_plat/packages/ui",
+ "@bytelyst/ui": "^0.1.0",
```

### Gap 2: Make output Vercel-aware (~5 min)

**File:** `dashboard/next.config.ts`

```diff
- output: 'standalone',
+ ...(process.env.VERCEL ? {} : { output: 'standalone' }),
```

### Gap 3: Registry Access (~5 min)

- [ ] Update `.npmrc`:
  ```
  @bytelyst:registry=https://gitea.bytelyst.com/api/packages/ByteLyst/npm/
  //gitea.bytelyst.com/api/packages/ByteLyst/npm/:_authToken=${GITEA_NPM_TOKEN}
  ```
- [ ] Set `GITEA_NPM_TOKEN` as a Vercel environment variable

### Gap 4: Disable/stub server-side routes (~30 min)

- [ ] Stub out system info routes (return mock data or error)
- [ ] Make Ollama proxy routes return "configure OLLAMA_HOST" message
- [ ] Gate system commands behind runtime check

## Recommendation

**Do NOT deploy to Vercel.** This app is purpose-built for local/Docker use. The API routes are the core value and none work in a serverless environment.

**Alternative:** Keep using Docker Compose or the `scripts/start-dashboard.sh` launcher.

## Estimated Total Effort: Not recommended. If forced: ~60 minutes for static shell only.
