# JobsWorld — despliegue Lab IA (.16) y arranque

## ¿Hace falta Vite + Uvicorn?

En desarrollo (hot reload): sí, dos procesos.
En uso normal / servidor: **no**. Tras `npm run build`, **solo Uvicorn** sirve API + UI en el puerto **8010**.

```
http://127.0.0.1:8010          → app completa
http://192.168.1.16:8010       → si está desplegado en el lab
```

## Estado de conexión EQUIPITELLO → lab `.16` (comprobado)

| Servicio | Destino | Estado |
|----------|---------|--------|
| Ollama | `192.168.1.16:11434` | **OK** — JobsWorld usa este endpoint (`ollama_ok: true`) |
| Supervisor multiagente | `192.168.1.16:8787` | **OK** |
| JobsWorld runtime | `192.168.1.16:8010` | **No desplegado** — corre en este PC `:8010` |
| Cursor bridge | `127.0.0.1:8095` | **OK** (se queda en EQUIPITELLO) |

### ¿Migrar JobsWorld al `.16`?

**No es obligatorio.** Conviene dejarlo en EQUIPITELLO si:
- quieres scrapers + Playwright con sesión local
- Tailscale ya expone `100.x:8010`
- la IA ya está en `.16` (lo importante ya está migrado)

Migrar el **runtime** a `.16:8010` solo si quieres 24/7 en el lab; la IA (Ollama) **ya está** allí.

| Servicio | Dónde |
|----------|--------|
| Ollama | `192.168.1.16:11434` (Docker en lab) |
| Supervisor | `192.168.1.16:8787` |
| Bridge Cursor | EQUIPITELLO `:8095` (se queda en el PC) |
| JobsWorld runtime | **candidato a `.16:8010`** |

JobsWorld usa por defecto:

- `LLM_PROVIDER=ollama` (lab primero; **no** uses `auto` + Cursor delante — eso colgaba improve CV ~180s)
- `OLLAMA_BASE_URL=http://192.168.1.16:11434/v1`
- `OLLAMA_MODEL=qwen2.5:3b` (estable en lab; `qwen2.5:7b` ha dado texto corrupto — conviene `ollama pull` de nuevo si se quiere 7b)
- Opcional: `LLM_PROVIDER=cursor` + token del bridge para CV premium

Detalle de usos IA: `docs/IA-ARQUITECTURA-JOBSWORLD.md`

## Arranque local (un solo proceso)

**No necesitas 2 terminals** (Vite + Uvicorn) en uso normal.
Tras `npm run build`, **solo Uvicorn** sirve API + UI en `:8010`.

### Recomendado: icono en bandeja (como CaptaJaus)

```powershell
powershell -ExecutionPolicy Bypass -File c:\xampp\htdocs\JobsWorld\scripts\tray\install-autostart.ps1 -Apply -RestoreRoyalBroker
```

- Aparece en la bandeja del sistema al iniciar Windows
- Menú: Abrir / Health / Arrancar / Reiniciar / Detener
- Auto-arranca uvicorn en `0.0.0.0:8010` (también Tailscale)
- Restaura `RoyalBrokerTray` en `HKCU\Run` si usas `-RestoreRoyalBroker`

Manual sin bandeja:

```powershell
cd c:\xampp\htdocs\JobsWorld\frontend
npm run build

cd ..\backend
.\.venv\Scripts\activate
uvicorn app.main:app --host 0.0.0.0 --port 8010
```

O: `scripts\start-jobsworld.bat` (hace build + uvicorn en ventana).

## Tarea al iniciar Windows (legacy)

La tarea programada `JobsWorld` abre una ventana cmd; el **tray la sustituye**.
`install-autostart.ps1 -Apply` la deshabilita automáticamente.

## Despliegue en 192.168.1.16 / Docker Desktop

**Importante antes de `docker compose up -d --build`:**

1. Construye el front en el host: `cd frontend && npm run build`
2. El build **ya no copia** la carpeta `data/` (fallaba si no existía en el context).
3. Usa `.dockerignore` para no meter `.venv` / `node_modules` (antes el context pesaba ~232MB).

```bash
cd /ruta/JobsWorld   # p.ej. C:\stack\workspace\htdocs\JobsWorld
cd frontend && npm run build && cd ..
docker compose up -d --build
```

App: `http://HOST:8010`  
Ollama lab: `OLLAMA_BASE_URL=http://172.17.0.1:11434/v1` (o la gateway de tu Docker).
