FLUJOS/INFO/DOCS/CONTEXT
CAPITANSITO 778db90d78 fix: módulos faltantes wikipedia scraper + docs actualizados
- WIKIPEDIA/main.py: import buscar_articulos y obtener_contenido_wikipedia
- myenv: instalados wikipedia, wikipedia-api, deep-translator
- PIPELINE_MAESTRO.md: tabla de errores conocidos, Nice/CPUQuota, timer 2d
- SEGURIDAD.md: tabla de fixes aplicados en producción

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 00:33:50 +02:00
..
MONGODB.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00
PIPELINE_MAESTRO.md fix: módulos faltantes wikipedia scraper + docs actualizados 2026-04-22 00:33:50 +02:00
README.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00
SCRAPER_IMAGENES_QWEN.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00
SCRAPER_NOTICIAS.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00
SCRAPER_WIKIPEDIA.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00
SEGURIDAD.md fix: módulos faltantes wikipedia scraper + docs actualizados 2026-04-22 00:33:50 +02:00
VISUALIZACION_JS.md refactor: reorganizar docs y pocs bajo INFO/ 2026-04-21 23:49:33 +02:00

FLUJOS — Documentación técnica

Última actualización: 2026-04-21
Proyecto: Plataforma libre de análisis y visualización de flujos de información
Stack: Node.js + Express + MongoDB + Python (BERT, Qwen3-VL) + Three.js/3d-force-graph


Índice de documentos

Documento Contenido
SEGURIDAD.md Informe de vulnerabilidades (NoSQL injection, XSS, rate limiting...) + fixes
MONGODB.md Esquema de colecciones, índices, volúmenes, consultas frecuentes
VISUALIZACION_JS.md Frontend Three.js, API endpoint, nodos imagen Sprite, scripts por vista
SCRAPER_IMAGENES_QWEN.md Scraper Wikipedia imágenes + analizador Qwen3-VL-8B (carga, batch, resume)
SCRAPER_WIKIPEDIA.md Scraper artículos Wikipedia, tokenización BERT, temas y keywords
SCRAPER_NOTICIAS.md Scraper de ~90 medios internacionales, traducción, limpieza, ficheros adjuntos
PIPELINE_MAESTRO.md Orquestador 3 fases, systemd timer, lockfile, estado MongoDB, cooldowns

Arquitectura en una página

Internet
    │
    ▼
nginx (theflows.net:443, TLS Let's Encrypt)
    ├── /           → FLUJOS/VISUALIZACION/public/ (estáticos)
    ├── /api/       → proxy → Node.js :3000
    └── /wiki-images/ → (Node.js sirve estáticos de IMAGENES/output/wiki_images/)

Node.js — FLUJOS/BACK_BACK/FLUJOS_APP.js
    └── GET /api/data → MongoDB FLUJOS_DATOS

MongoDB localhost:27017 — FLUJOS_DATOS
    ├── wikipedia       (~5k docs)
    ├── noticias        (~20k docs)
    ├── imagenes        (~150 docs, analizadas con Qwen)
    ├── imagenes_wiki   (~500 docs, solo metadatos scrapeados)
    ├── comparaciones   (~52M pares de similitud)
    └── pipeline_log    (estado de ejecuciones)

Python Pipeline (systemd timer — domingos 3:00 AM)
    FLUJOS_DATOS/pipeline_maestro.py
    ├── Fase 1: scraping (Wikipedia + noticias + imágenes)
    ├── Fase 2: análisis (Qwen3-VL + tokenización BERT)
    └── Fase 3: comparación (similitud coseno entre documentos)

Variables de entorno (.env en FLUJOS/BACK_BACK/)

MONGO_URL=mongodb://localhost:27017
DB_NAME=FLUJOS_DATOS
PORT=3000

Rutas críticas del servidor

/var/www/theflows.net/flujos/
├── docs/                                   # esta documentación
├── FLUJOS/
│   ├── BACK_BACK/FLUJOS_APP.js             # servidor Node.js
│   └── VISUALIZACION/public/              # frontend estático
├── FLUJOS_DATOS/
│   ├── pipeline_maestro.py                # orquestador
│   ├── myenv/                             # Python venv (~2 GB, en .gitignore)
│   ├── WIKIPEDIA/main.py                  # scraper Wikipedia
│   ├── NOTICIAS/main_noticias.py          # scraper noticias
│   ├── IMAGENES/
│   │   ├── wikipedia_image_scraper.py     # scraper imágenes
│   │   ├── image_analyzer.py              # Qwen3-VL
│   │   ├── pipeline_imagenes.py           # orquestador imágenes
│   │   ├── model_cache/                   # Qwen descargado (~16 GB, .gitignore)
│   │   └── output/wiki_images/            # imágenes en disco (.gitignore)
│   └── COMPARACIONES/
│       ├── pipeline_completo.py           # cálculo de similitud
│       └── pipeline_mongolo.py            # tokenización + inserción MongoDB
└── .gitignore                             # excluye datos pesados del repo

Seguridad — prioridades pendientes

  1. 🔴 Aplicar sanitizeParam() en FLUJOS_APP.js para prevenir NoSQL injection
  2. 🔴 Cambiar '0.0.0.0' por '127.0.0.1' en app.listen() para cerrar puerto 3000
  3. 🟠 Reemplazar innerHTML por textContent en output_int_sec.js y 3dscript_eco-corp.html
  4. 🟠 Añadir express-rate-limit al endpoint /api/
  5. 🟡 Activar helmet() completo (no solo CSP) para quitar X-Powered-By

Ver SEGURIDAD.md para código de fix completo.