You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

Operación y configuración

Variables de entorno (principales)

  • EVOLUTION_API_URL: base URL de Evolution API.
  • EVOLUTION_API_INSTANCE: nombre/ID de instancia en Evolution.
  • EVOLUTION_API_KEY: API key para peticiones salientes (contacts, etc.).
  • WEBHOOK_URL: URL pública del webhook (puede usarse para auto-registro/config).
  • WHATSAPP_COMMUNITY_ID: comunidad cuyos grupos se sincronizan.
  • PORT: puerto HTTP (por defecto 3007).
  • NODE_ENV: 'development' | 'test' | 'production'.
  • METRICS_ENABLED: 'true'|'false'|'1'|'0' (por defecto habilitado salvo en test).
  • RATE_LIMIT_PER_MIN: tokens por minuto por usuario (default 15).
  • RATE_LIMIT_BURST: capacidad del bucket (default = RATE_LIMIT_PER_MIN).
  • GROUP_SYNC_INTERVAL_MS: intervalo de sync de grupos (default 24h; min 10s en dev).
  • GROUP_MEMBERS_SYNC_INTERVAL_MS: intervalo de sync de miembros (default 6h; min 10s en dev).
  • GROUP_MEMBERS_INACTIVE_RETENTION_DAYS: días para borrar miembros inactivos (default 180).
  • TZ: zona horaria para recordatorios (default Europe/Madrid).

Endpoints operativos

  • GET /metrics
    • 200 si Metrics.enabled() y formato Prometheus por defecto.
    • 404 si métricas deshabilitadas; 405 si método no permitido.

Arranque y servicios

  • src/server.ts::start()
    • Valida entorno (logs de variables presentes/faltantes).
    • Aplica migraciones up-only.
    • Inicia HTTP y (según entorno) schedulers.

Schedulers

  • GroupSyncService.startGroupsScheduler() y .startMembersScheduler()
    • Saltan en test; intervalos controlados por env.
  • RemindersService.start()
    • Tick cada minuto, filtra por zona horaria y preferencias.
  • MaintenanceService.start()
    • Tarea diaria; borra miembros inactivos según retención.

Datos y backups

  • Data path: data/tasks.db (por defecto).
  • Migraciones con backup opcional (withBackup=false por defecto en initializeDatabase).
  • Recomendación: planificar copia de seguridad periódica del directorio data/ y retención externa.

Métricas de referencia

  • sync_runs_total, identity_alias_resolved_total, contadores/gauges específicos de colas y limpieza.
  • Añadir nuevas métricas usando Metrics.inc/set y documentarlas aquí.

Buenas prácticas

  • No arrancar schedulers en test salvo que FORCE_SCHEDULERS='true'.
  • Validar nuevas env en src/server.ts::validateEnv() y documentarlas aquí.