Documenta el despliegue de Luisa + image-worker en el VPS
Tres servicios unidos en Dokploy (reformix-b2c/bot/worker), dominios, webhooks configurados en b2c, y los 2 pasos manuales pendientes (OPENROUTER_API_KEY + QR). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
53
docs/despliegue-luisa-worker.md
Normal file
53
docs/despliegue-luisa-worker.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Despliegue — Luisa (bot WhatsApp) + image-worker
|
||||
|
||||
Los tres servicios de Reformix corren **unidos en el mismo VPS** (Dokploy personal,
|
||||
`panel.carlosnarro.com`, proyecto **Reformix** / entorno **production**). Build por **Dockerfile**
|
||||
desde Gitea (`carlos/reformix-hackaton`, rama `main`, autodeploy en push).
|
||||
|
||||
## Servicios
|
||||
|
||||
| Servicio | App en Dokploy | Repo (buildPath) | Dominio | Puerto |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| App principal | `reformix-b2c` (`lzHDAuPuubbJu94OrkNS_`) | `/mvp/b2c` | `reformix.dv3.com.es` | 3000 |
|
||||
| Bot WhatsApp (Luisa) | `reformix-bot` (`wY4F14fyEslU-4za_JIbi`) | `/mvp/Whatsapp-bot` | `reformix-bot.dv3.com.es` | **3001** (webhooks) |
|
||||
| Worker de renders | `reformix-worker` (`sMQd9zwoyV14q1vm8Vs8U`) | `/mvp/image-worker` | `reformix-worker.dv3.com.es` | 3001 |
|
||||
|
||||
> El bot escucha la app NestJS en 3000 y los **webhooks entrantes en 3001** (`/whatsapp-start`,
|
||||
> `/whatsapp-pdf`). El dominio público enruta al 3001. Sesión de WhatsApp persistida en un volumen
|
||||
> montado en `/app/auth_info_baileys`.
|
||||
|
||||
## Webhooks configurados en reformix-b2c
|
||||
|
||||
```
|
||||
WHATSAPP_START_WEBHOOK_URL = https://reformix-bot.dv3.com.es/whatsapp-start
|
||||
WHATSAPP_WEBHOOK_URL = https://reformix-bot.dv3.com.es/whatsapp-pdf
|
||||
PERFIL_WEBHOOK_URL = https://reformix-worker.dv3.com.es/perfil-completo
|
||||
```
|
||||
|
||||
El bot y el worker llaman de vuelta a la API de b2c con `API_BASE_URL`/`REFORMIX_API_URL =
|
||||
https://reformix.dv3.com.es` y `Authorization: Bearer <FUNNEL_API_KEY>` (la misma de b2c, ya puesta).
|
||||
|
||||
## Pasos manuales pendientes (no automatizables)
|
||||
|
||||
1. **`OPENROUTER_API_KEY`** — está **vacía** en `reformix-bot` y `reformix-worker`. Pégala en el env
|
||||
de **ambas** apps (panel de Dokploy → app → Environment) y **redeploy** de ambas. Sin ella el bot
|
||||
no genera respuestas y el worker no genera renders.
|
||||
2. **Vincular WhatsApp (QR)** — abre los **logs** de `reformix-bot` en Dokploy: Baileys imprime un QR
|
||||
en ASCII. Escanéalo con el WhatsApp del número del negocio. La sesión queda persistida en el
|
||||
volumen (sobrevive redeploys). Hoy `ALLOWED_NUMBER=651194617`: el bot **solo conversa con ese
|
||||
número** (seguridad en pruebas); quítalo para producción.
|
||||
|
||||
## Verificación (estado a 08-jun-2026)
|
||||
|
||||
- Builds Docker de bot y worker: **OK** a la primera. Certs Let's Encrypt emitidos (TLS válido).
|
||||
- `GET https://reformix.dv3.com.es/` → 200 · `POST …/perfil-completo` (worker) → 400 (vivo) ·
|
||||
`POST …/whatsapp-start` (bot) → 200 (vivo).
|
||||
- Tras poner la `OPENROUTER_API_KEY` + escanear el QR, el flujo queda end-to-end: lead elige WhatsApp
|
||||
→ `iniciarWhatsapp` → bot conversa y puebla la BD por los EPs → `perfilCompleto` → worker genera
|
||||
renders → `ingesta finalizar` → PDF + email + entrega por WhatsApp.
|
||||
|
||||
## Operación
|
||||
|
||||
- **Redeploy:** push a `main` (autodeploy Gitea) o `POST /api/application.deploy {applicationId}`.
|
||||
- Los GET que el bot consume (`GET /api/leads/:id`, `GET /api/leads/:id/conversacion`) viven en
|
||||
`mvp/b2c`. Smoke test de los EPs del bot: [`mvp/b2c/api-docs/smoke-bot-eps.mjs`](../mvp/b2c/api-docs/smoke-bot-eps.mjs).
|
||||
Reference in New Issue
Block a user