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.
		
		
		
		
		
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
| # .env.example
 | |
| 
 | |
| # Evolution API (requerido)
 | |
| EVOLUTION_API_URL="https://example-url.com"
 | |
| EVOLUTION_API_KEY="example-api-key"
 | |
| EVOLUTION_API_INSTANCE="example-instance"
 | |
| 
 | |
| # WhatsApp (requerido)
 | |
| WHATSAPP_COMMUNITY_ID="example-community-id@g.us" # Comunidad principal para sincronizar grupos
 | |
| CHATBOT_PHONE_NUMBER="1234567890"                 # Número normalizado del bot; evita auto-respuestas
 | |
| 
 | |
| # Webhook de este servicio (requerido)
 | |
| WEBHOOK_URL="http://your-service-internal-url:3007" # URL (idealmente interna) a la que Evolution API enviará webhooks
 | |
| PORT=3007
 | |
| 
 | |
| # Entorno
 | |
| NODE_ENV="production"     # production | development | test
 | |
| TZ="Europe/Madrid"        # Zona horaria usada para "hoy/mañana" y render de fechas
 | |
| WEB_BASE_URL="https://taskbot.server.brobert.net"  # Host público de la web (p.ej. https://wtask.org en producción)
 | |
| # DB_PATH="./data/tasks.db"      # Si se define, ignora DATA_DIR y usa esta ruta exacta
 | |
| ONBOARDING_FALLBACK_MIN_DIGITS=8     # A2: longitud mínima para conservar números en menciones/tokens; por defecto 8
 | |
| 
 | |
| # Onboarding A3 (prompts únicos por grupo)
 | |
| # Habilita/deshabilita la publicación (por defecto true fuera de test)
 | |
| # ONBOARDING_PROMPTS_ENABLED=true
 | |
| # Permite publicación durante tests específicos
 | |
| # ONBOARDING_ENABLE_IN_TEST=false
 | |
| #
 | |
| # Onboarding A4 (DM JIT y palabra clave)
 | |
| # Palabra clave de alta por DM: activar
 | |
| # En tests, los prompts JIT (A4) y los mensajes al grupo (A3) solo se envían si ONBOARDING_ENABLE_IN_TEST=true
 | |
| # Umbral de cobertura (publica si coverage < threshold). Por defecto 1.0
 | |
| # ONBOARDING_COVERAGE_THRESHOLD=1
 | |
| # Periodo de gracia tras la última verificación de miembros (segundos). Por defecto 90
 | |
| # ONBOARDING_GRACE_SECONDS=90
 | |
| # Cooldown entre publicaciones (días). Por defecto 7
 | |
| # ONBOARDING_COOLDOWN_DAYS=7
 | |
| 
 | |
| # Sincronización de grupos (opcional)
 | |
| # Intervalo en milisegundos; por defecto 86400000 (24h). En desarrollo puede bajarse (mínimo recomendable 10000ms).
 | |
| # GROUP_SYNC_INTERVAL_MS=86400000
 | |
| 
 | |
| # Membresías (opcional)
 | |
| # Edad máxima (ms) para considerar "fresca" la snapshot de miembros de un grupo. Por defecto 86400000 (24h).
 | |
| # MAX_MEMBERS_SNAPSHOT_AGE_MS=86400000
 | |
| # Si "true", se aplica validación estricta de membresía (solo con snapshot fresca). Por defecto false.
 | |
| # GROUP_MEMBERS_ENFORCE=false
 | |
| # Si "true", los recordatorios incluirán una sección de "sin responsable" filtrada por tus grupos con membresía activa (snapshot fresca). Por defecto false.
 | |
| # REMINDERS_INCLUDE_UNASSIGNED_FROM_MEMBERSHIP=false
 | |
| 
 | |
| # Notificaciones (opcional)
 | |
| # Si se pone a "true", el bot enviará un breve resumen al grupo al crear una tarea (por defecto false).
 | |
| # NOTIFY_GROUP_ON_CREATE=false
 | |
| 
 | |
| # Rate limiting por usuario (opcional; desactivado en tests)
 | |
| # Número de comandos por minuto por usuario (refill rate). Por defecto 15.
 | |
| # RATE_LIMIT_PER_MIN=15
 | |
| # Capacidad del bucket (por defecto igual a RATE_LIMIT_PER_MIN).
 | |
| # RATE_LIMIT_BURST=15
 | |
| 
 | |
| # Cola de respuestas (opcional — avanzado)
 | |
| # Intentos máximos antes de marcar como failed (por defecto 6).
 | |
| # RQ_MAX_ATTEMPTS=6
 | |
| # Backoff base en milisegundos para reintentos (por defecto 5000).
 | |
| # RQ_BASE_BACKOFF_MS=5000
 | |
| # Backoff máximo en milisegundos (por defecto 3600000 = 1h).
 | |
| # RQ_MAX_BACKOFF_MS=3600000
 | |
| 
 | |
| # Limpieza y mantenimiento de la cola (opcional — avanzado)
 | |
| # Habilitar/deshabilitar limpieza automática (por defecto true).
 | |
| # RQ_CLEANUP_ENABLED=true
 | |
| # Días de retención para enviados (por defecto 14).
 | |
| # RQ_RETENTION_DAYS_SENT=14
 | |
| # Días de retención para fallidos (por defecto 30).
 | |
| # RQ_RETENTION_DAYS_FAILED=30
 | |
| # Intervalo del scheduler de limpieza en ms (por defecto 86400000 = 24h).
 | |
| # RQ_CLEANUP_INTERVAL_MS=86400000
 | |
| # Tamaño de lote para borrar elementos en limpieza (por defecto 1000).
 | |
| # RQ_CLEANUP_BATCH=1000
 | |
| # Ejecutar PRAGMA optimize tras limpieza (por defecto true).
 | |
| # RQ_OPTIMIZE_ENABLED=true
 | |
| # Ejecutar VACUUM cada N ejecuciones de limpieza (por defecto desactivado).
 | |
| # RQ_VACUUM_ENABLED=false
 | |
| # Frecuencia de VACUUM (solo si está habilitado).
 | |
| # RQ_VACUUM_EVERY_N_RUNS=28
 | |
| 
 | |
| # Métricas (opcional)
 | |
| # METRICS_ENABLED=true
 | |
| # METRICS_FORMAT=prom # prom|json
 | |
| 
 | |
| # Migrador (opcional)
 | |
| # MIGRATIONS_LOG_LEVEL="silent"   # Silencia logs del migrador (en test ya se silencian automáticamente)
 | |
| 
 | |
| # Control de acceso por grupos (multicomunidad)
 | |
| # Modo: off|discover|enforce (por defecto off)
 | |
| # GROUP_GATING_MODE=discover
 | |
| # Lista de administradores (IDs/JIDs; se normalizan a dígitos)
 | |
| # ADMIN_USERS="34600123456, 5554443333"
 | |
| # Lista de grupos permitidos inicial (JIDs @g.us)
 | |
| # ALLOWED_GROUPS="12345-67890@g.us, 11111-22222@g.us"
 | |
| # Notificar a ADMIN_USERS cuando se descubra un grupo en modo discover
 | |
| # NOTIFY_ADMINS_ON_DISCOVERY=true
 |