Node.js 22+
Yarn 1.x (o npm)
MySQL 8+
Variables de entorno configuradas (ver abajo)
# 1. Clonar el repositorio
git clone <repo-url> BoostAPI
# 2. Instalar dependencias
# 3. Copiar archivo de entorno
# 4. Editar .env con tu configuracion local
# (ver tabla de variables abajo)
# 5. Levantar en modo desarrollo (hot reload)
open http://localhost:3003/api
# Suite base completa (usuarios, empleados, RBAC, campos personalizados)
yarn seed:dev:custom-fields
yarn seed:dev:web-contact-assignment
# Seed personal para desarrollo local
Variable
Requerida
Descripcion
Ejemplo
NODE_ENV
Si
Entorno de Node
development
BOOST_RUNTIME_MODE
No
Modo de runtime Boost
dev
APP_RUNTIME_MODE
No
Modo de la app
dev / preview / prod
HOST
No
Host de binding
0.0.0.0
PORT
No
Puerto del servidor
3000 (default)
Variable
Requerida
Descripcion
Ejemplo
DB_HOST
Si
Host de MySQL
localhost
DB_PORT
Si
Puerto de MySQL
3306
DB_USERNAME
Si
Usuario de MySQL
root
DB_PASSWORD
Si
Password de MySQL
password
DB_NAME
Si
Nombre de la base de datos
boost_crm
Variable
Requerida
Descripcion
Ejemplo
JWT_SECRET
Si
Secreto para firmar JWTs
Cadena aleatoria segura
AUTH_ALLOW_FIRST_LOGIN_PASSWORD_BOOTSTRAP
No
Permitir bootstrap de password
true (solo durante rollout)
Variable
Requerida
Descripcion
Ejemplo
CORS_ALLOWED_ORIGINS
No
Origenes permitidos (CSV)
http://localhost:3000,http://localhost:3001
Siempre permitidos: https://app.boost.com.gt, https://boost-v2-eight.vercel.app. En dev tambien se permite localhost en cualquier puerto.
Variable
Requerida
Descripcion
AWS_S3_BUCKET
Si
Nombre del bucket S3
AWS_ACCES_KEY_ID_AOC
Si
Access key ID de AWS
AWS_SECRET_ACCESS_KEY_AOC
Si
Secret access key de AWS
AWS_REGION
No
Region AWS (default: us-east-1)
MEDIA_PUBLIC_BASE_URL
Si
URL base para media publica
MEDIA_WORKER_POLL_MS
No
Intervalo de polling del worker (ms)
MEDIA_INLINE_WORKER_ENABLED
No
Procesar media inline
MEDIA_INLINE_WORKER_RECOVER_ON_BOOT
No
Recuperar uploads pendientes al arrancar
Variable
Requerida
Descripcion
ZAURU_ENV
Si
Entorno Zauru: dev / preview / prod
ZAURU_APP_BASE_URL_DEV
Si
URL Zauru dev: https://zauru.herokuapp.com
ZAURU_APP_BASE_URL_PROD
Si
URL Zauru prod: https://app.zauru.com
ZAURU_SESSION_ENCRYPTION_KEY
Si
Clave AES-256 para cifrar sesiones
ZAURU_SESSION_REFRESH_SKEW_SECONDS
No
Segundos de margen para refresh (default: 300)
ZAURU_CATALOG_CACHE_TTL_DAYS
No
TTL de cache de catalogo en dias (default: 7)
ZAURU_PAYEE_GENERAL_INFO_CACHE_TTL_MINUTES
No
TTL cache de info general de payee
ZAURU_MEDIA_BASE_URL_APP
Si
Base URL de Cloudinary para imagenes
Variable
Requerida
Descripcion
Default
PULPITO_CATALOG_ENABLED
No
Habilitar cache de catalogo
true
PULPITO_L1_MAX_MEMORY_MB
No
Max memoria del cache L1
100
PULPITO_L1_MAX_ENTRIES
No
Max entradas en cache
5000
PULPITO_MAX_BG_REFRESHES
No
Max refreshes en background
10
PULPITO_MAX_CONCURRENT_FETCHES
No
Max fetches concurrentes
20
PULPITO_QUERY_TIMEOUT_MS
No
Timeout de query (ms)
8000
Variable
Requerida
Descripcion
Default
CATALOGO_DEFAULT_PAGE_SIZE
No
Items por pagina
20
CATALOGO_INTERNAL_CACHE_TTL_SECONDS
No
TTL cache interno
60
Variable
Requerida
Descripcion
COMMUNICATIONS_BASE_URL
Si*
URL del servicio de Communications
COMMUNICATIONS_API_KEY
Si*
API key de Communications
COMMUNICATIONS_PRIVILEGED_OPERATOR_EMAILS
No
Emails de operadores privilegiados
COMMUNICATIONS_ENTITY_ID_HARD
No
Override de entity ID
COMMUNICATIONS_AUTO_LOGIN_ON_AUTH
No
Auto-login en Communications al autenticar
COMMUNICATIONS_DEV_TUNNEL_ENABLED
No
Tunnel de dev para webhooks
COMMUNICATIONS_DEV_WEBHOOK_RESYNC_ENABLED
No
Re-sync webhook en dev
COMMUNICATIONS_BOOT_WEBHOOK_RESYNC_ENABLED
No
Re-sync webhook al arrancar
COMMUNICATIONS_USER_WEBHOOK_RESYNC_ENABLED
No
Re-sync en login/cambio de entidad
*Solo requerido si se usan interacciones de mensajeria.
Variable
Requerida
Descripcion
BOOST_PUBLIC_BASE_URL
No
URL publica del backend (auto-detecta desde RENDER_EXTERNAL_URL)
RENDER_EXTERNAL_URL
No
URL externa de Render (auto-inyectada por Render)
DISCOGUA_QUOTE_PAYMENT_URL
No
URL base para links de pago de cotizaciones
Modo
Descripcion
Zauru
dev
Desarrollo local. CORS permisivo en localhost
zauru.herokuapp.com
preview
Prod-like pero con datos de staging
zauru.herokuapp.com (forzado)
prod
Produccion real
app.zauru.com
Regla clave: Si NODE_ENV=preview, BoostAPI fuerza entorno Zauru de preview (Heroku) aunque ZAURU_ENV=prod.
Script
Descripcion
yarn start:dev
Desarrollo con hot-reload
yarn start:prod
Produccion (desde dist/)
yarn build
Compilar TypeScript
yarn build:render
Build para Render (fuerza devDependencies)
yarn lint
Correr ESLint
yarn test
Correr tests
yarn test:cov
Tests con cobertura
yarn seed:dev:all
Seed completa de desarrollo
yarn media:worker
Worker de procesamiento de media
yarn interactions:worker
Worker de procesamiento de interacciones
Referencia privada: Ver BoostAPI/docs/local-development-and-seeds.md para guia detallada de seeds y BoostAPI/.env.template para la plantilla completa con comentarios.