poc/poc.sh: - Verificacion de versiones: Go >=1.22, Node.js >=18 con mensaje de fix exacto - Deteccion de puertos en uso antes de arrancar (API, frontend, Redis) con instruccion de quien ocupa el puerto - show_log_tail(): muestra solo las lineas relevantes del log al fallar - Compilacion Go: filtra lineas de error reales (error:/undefined:) en vez de volcar todo el log - Backend no responde: sugiere probar DB y Redis individualmente con el comando exacto para diagnosticar - Frontend: distingue error de npm install vs error de build TypeScript - Flag --clean para borrar BD POC y empezar de cero - Logs separados por componente en /tmp/coconews-poc/logs/ deploy/debian/check.sh (nuevo): - Diagnostico completo del sistema post-instalacion - Verifica 16 servicios systemd con estado y fix especifico por cada uno - Prueba conectividad real: PostgreSQL, Redis (con auth), Qdrant HTTP, API Go, nginx - Muestra metricas de BD: total noticias, traducciones hechas y pendientes - Verifica binarios Go compilados y su tamano - Verifica modelos ML: NLLB-200, spaCy es_core_news_lg, sentence-transformers, ctranslate2 - Comprueba disco (avisa si >75% o >90%), permisos de /opt/rss2 y .env - Detecta si .env tiene valores por defecto sin cambiar - Modo --quick para ver solo estado arriba/abajo rapidamente - Resumen final con conteo de errores y advertencias, exit code 1 si hay errores deploy/debian/prerequisites.sh: - Comprobacion de espacio libre en disco al inicio (avisa si <10 GB) - apt-get update con log de error y sugerencias de fix - Seccion de troubleshooting en el resumen final con fixes comunes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| deploy/debian | ||
| frontend | ||
| init-db | ||
| init-replica | ||
| migrations | ||
| poc | ||
| rss-ingestor-go | ||
| workers | ||
| .dockerignore | ||
| .env.example | ||
| .env.secure.example | ||
| .gitignore | ||
| DEPLOY.md | ||
| DEPLOY_DEBIAN.md | ||
| entity_config.json | ||
| feeds.csv | ||
| FUNCIONES_DE_ARCHIVOS.md | ||
| generate_secure_credentials.sh | ||
| IMPLEMENTACION_LLM_RESUMEN.md | ||
| Makefile | ||
| migrate_to_secure.sh | ||
| NEWSPAPER_STYLE_GUIDE.md | ||
| nginx.conf | ||
| QDRANT_SETUP.md | ||
| QUICKSTART_LLM.md | ||
| README.md | ||
| requirements.txt | ||
| SECURITY_AUDIT.md | ||
| SECURITY_GUIDE.md | ||
| TRANSLATION_FIX_SUMMARY.md | ||
| verify_security.sh | ||
COCONEWS
Plataforma de inteligencia de noticias. Agrega feeds RSS de cualquier idioma, los traduce automáticamente al español, extrae entidades, los agrupa por eventos y los hace buscables semánticamente.
Qué hace
- Ingesta feeds RSS/Atom de cualquier idioma de forma continua
- Traduce al español con NLLB-200 (200 idiomas soportados)
- Extrae entidades (personas, organizaciones, lugares) con spaCy y las enriquece con Wikipedia
- Genera embeddings para búsqueda por significado, no solo por palabras clave
- Agrupa noticias del mismo evento automáticamente
- Categoriza contenido con reglas y modelos de lenguaje
- Interfaz web React con búsqueda semántica, filtros y tooltips de Wikipedia
Arquitectura
Internet (RSS/Atom)
│
▼
rss-ingestor-go ──→ PostgreSQL ──→ langdetect
│ │ │
scraper/discovery │ translator (NLLB-200)
│ │
│ embeddings (MiniLM)
│ │
│ ner (spaCy)
│ │
│ cluster / related
│ │
│ qdrant-worker ──→ Qdrant
│
backend-go (API REST :8080)
│
nginx (:8001)
│
Frontend React
Stack:
- Go 1.25 — API REST (Gin), ingestor RSS, scraper, workers
- Python 3 — Workers ML (NLLB-200, MiniLM, spaCy, CTranslate2)
- PostgreSQL 16 — datos relacionales + full-text search
- Qdrant — búsqueda vectorial semántica
- Redis 7 — caché de consultas
- React 18 + TypeScript + Tailwind — frontend
- nginx — proxy inverso + archivos estáticos
Inicio rápido (POC local)
Prueba COCONEWS en tu máquina en ~2 minutos con datos de muestra, sin instalar los modelos ML.
Requisitos mínimos para el POC:
- Go 1.25+
- Node.js 18+
- PostgreSQL (corriendo)
- Redis (corriendo)
git clone https://gitea.laenre.net/pietre/rss2.git coconews
cd coconews
git checkout coconews
bash poc/poc.sh
Abre http://127.0.0.1:18001 en el navegador.
El primer usuario que se registre será administrador.
Instalación en servidor Debian
Para un despliegue completo con todos los workers ML en producción:
1. Instalar prerequisites
sudo bash deploy/debian/prerequisites.sh
Instala: PostgreSQL 16, Redis, nginx, Go 1.25, Node.js 20, Qdrant, Python 3 venv. Pregunta si instalar los modelos ML pesados ahora o después.
2. Configurar entorno
cp deploy/debian/env.example /opt/rss2/.env
nano /opt/rss2/.env # edita contraseñas y SECRET_KEY
3. Instalar y arrancar
sudo bash deploy/debian/install.sh
Compila los binarios Go, el frontend React, crea los servicios systemd y arranca todo.
Acceder
http://IP_DEL_SERVIDOR:8001
Guía completa: DEPLOY_DEBIAN.md
Gestión de servicios
# Estado general
systemctl status rss2-backend rss2-ingestor rss2-translator
# Logs en tiempo real
journalctl -u rss2-backend -f
journalctl -u rss2-translator -f
# Reiniciar tras actualizar código
git pull
sudo bash deploy/debian/build.sh
Actualizar el código
cd /ruta/al/repo
git pull
sudo bash deploy/debian/build.sh
build.sh recompila los binarios Go, el frontend y sincroniza los workers Python, y reinicia los servicios automáticamente.
Requisitos de hardware
| Modo | CPU | RAM | Disco |
|---|---|---|---|
| POC local | 2 cores | 4 GB | 10 GB |
| Producción CPU | 4+ cores | 8 GB | 40 GB |
| Producción recomendado | 8 cores | 16 GB | 80 GB |
Estructura del repositorio
├── backend/ Go — API REST + workers (scraper, discovery, wiki, topics, related, qdrant)
├── rss-ingestor-go/ Go — Ingestor de feeds RSS
├── frontend/ React + TypeScript + Tailwind
├── workers/ Python — ML workers (traducción, embeddings, NER, cluster, categorización)
├── init-db/ SQL — Schema y datos iniciales
├── migrations/ SQL — Migraciones incrementales
├── deploy/debian/ Scripts de despliegue para Debian sin Docker
│ ├── prerequisites.sh Instala todas las dependencias del sistema
│ ├── install.sh Instalación completa
│ ├── build.sh Recompila y reinicia tras actualizar código
│ ├── env.example Plantilla de variables de entorno
│ ├── nginx.conf Configuración nginx para despliegue nativo
│ └── systemd/ Ficheros de servicio systemd (16 servicios)
├── poc/
│ ├── poc.sh POC local con datos de prueba (sin Docker, sin ML)
│ └── seed.sql Datos de muestra para el POC
├── feeds.csv Feeds RSS precargados para importar desde el admin
├── entity_config.json Aliases y blacklist para normalización de entidades NER
└── DEPLOY_DEBIAN.md Guía detallada de despliegue en Debian