- 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> |
||
|---|---|---|
| .. | ||
| MONGODB.md | ||
| PIPELINE_MAESTRO.md | ||
| README.md | ||
| SCRAPER_IMAGENES_QWEN.md | ||
| SCRAPER_NOTICIAS.md | ||
| SCRAPER_WIKIPEDIA.md | ||
| SEGURIDAD.md | ||
| VISUALIZACION_JS.md | ||
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
- 🔴 Aplicar
sanitizeParam()en FLUJOS_APP.js para prevenir NoSQL injection - 🔴 Cambiar
'0.0.0.0'por'127.0.0.1'enapp.listen()para cerrar puerto 3000 - 🟠 Reemplazar
innerHTMLportextContenten output_int_sec.js y 3dscript_eco-corp.html - 🟠 Añadir
express-rate-limital endpoint/api/ - 🟡 Activar
helmet()completo (no solo CSP) para quitarX-Powered-By
Ver SEGURIDAD.md para código de fix completo.