Skip to content

Despliegue

BoostAPI se despliega en Render como un web service.

Configuracion Valor
Build Command yarn build:render
Start Command yarn start:render

build:render fuerza la instalacion de devDependencies durante el build (evita errores exit code 127 cuando NODE_ENV=production).

start:render arranca con el entrypoint compilado correcto (dist/src/main).

Render inyecta automaticamente RENDER_EXTERNAL_URL con la URL del servicio. BoostAPI la usa para derivar la URL publica del webhook cuando BOOST_PUBLIC_BASE_URL no esta definida.

Modo APP_RUNTIME_MODE Zauru Uso
dev dev zauru.herokuapp.com Desarrollo local
preview preview zauru.herokuapp.com (forzado) Ambientes de preview/staging
prod prod app.zauru.com Produccion

Si NODE_ENV=preview, BoostAPI fuerza el entorno Zauru de preview (Heroku), incluso si ZAURU_ENV=prod. Esto protege contra cambios accidentales en datos de produccion de Zauru.

  • https://app.boost.com.gt
  • https://boost-v2-eight.vercel.app

En modo dev, se permiten automaticamente:

  • localhost en cualquier puerto (http/https)
  • 127.0.0.1 en cualquier puerto
  • ::1 en cualquier puerto

Usa CORS_ALLOWED_ORIGINS para agregar origenes adicionales:

CORS_ALLOWED_ORIGINS=https://preview.boost.com.gt,https://staging.boost.com.gt

Si incluyes *, se permite cualquier origen (no recomendado para produccion).

Nota: Si un origen tiene path (ej: https://boost-v2-eight.vercel.app/login), el backend lo normaliza automaticamente a su origin base.

La documentacion interactiva Swagger esta disponible en:

{BOOST_API_URL}/api

En desarrollo local: http://localhost:3003/api

Terminal window
yarn install
cp .env.template .env
# Editar .env
yarn start:dev
  1. Push a una branch de feature
  2. Render despliega automaticamente (si esta configurado)
  3. Configurar variables de entorno con APP_RUNTIME_MODE=preview
  4. Zauru apunta a staging automaticamente
  1. Merge a main
  2. Render despliega automaticamente
  3. Variables de entorno con APP_RUNTIME_MODE=prod
  4. Zauru apunta a produccion

BoostAPI puede correr workers separados:

Worker Script Funcion
Media Worker yarn media:worker Procesa uploads de media (imagenes, audio, video)
Interactions Worker yarn interactions:worker Procesa eventos de mensajeria

En modo inline (MEDIA_INLINE_WORKER_ENABLED=true), el procesamiento de media ocurre dentro del proceso principal.

Para despliegues iniciales o migraciones de datos:

Terminal window
# Primero compilar
yarn build
# Seed de usuarios (dry-run primero)
yarn seed:prod:discogua-initial-users -- --emails user@empresa.com
yarn seed:prod:discogua-initial-users -- --apply --emails user@empresa.com
# Seed de clientes y contactos (dry-run primero)
yarn seed:prod:discogua-clients-contacts -- --dry-run
yarn seed:prod:discogua-clients-contacts -- --apply
  • Logs: Render proporciona logs en tiempo real
  • Swagger: Disponible en /api para testing manual
  • Health checks: Los webhooks tienen endpoints /health dedicados

Referencia privada: Ver BoostAPI/docs/preview-runtime-rollout.md para el runbook completo de preview y BoostAPI/docs/demo-preview-playbook-2026-06-02.md para el playbook de demos.