coconews/scripts/migrate_to_secure.sh
SITO b3bf3d7a7f refactor: reorganizar estructura de archivos en raiz
Antes la raiz tenia 20+ archivos sueltos. Ahora organizado en:

  docs/       10 archivos .md de documentacion tecnica
  scripts/    3 scripts utilitarios (credentials, migrate, verify)
  config/     entity_config.json (aliases y blacklist NER)
  data/       feeds.csv (feeds precargados)

Eliminados restos de Docker que ya no aplican:
  .dockerignore, .env.example, .env.secure.example, nginx.conf (raiz)

Makefile: eliminados targets docker-build, añadidos install/rebuild/check/poc

Referencias actualizadas en:
  deploy/debian/install.sh  entity_config.json -> config/entity_config.json
  deploy/debian/build.sh    entity_config.json -> config/entity_config.json
  README.md                 links a docs/ y data/ actualizados,
                            arbol de estructura del repo reescrito

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 22:29:50 +02:00

119 lines
5.8 KiB
Bash
Executable file

#!/bin/bash
# ==================================================================================
# Script de Migración a Configuración Segura - TODO EN UNO
# ==================================================================================
set -e
# Colores
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${BLUE}🔒 Migración a Configuración Segura - TODO EN UNO${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
echo -e "${YELLOW}⚠️ Este script hará lo siguiente:${NC}"
echo " 1. Detener los servicios actuales"
echo " 2. Iniciar con la configuración segura"
echo " 3. Verificar que todo funciona"
echo ""
echo -e "${YELLOW}📊 Tiempo estimado: 3-5 minutos${NC}\n"
read -p "¿Deseas continuar? (s/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[SsYy]$ ]]; then
echo -e "${RED}❌ Operación cancelada${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 1: Deteniendo servicios actuales...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
docker-compose down
echo ""
echo -e "${GREEN}✅ Servicios detenidos${NC}\n"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 2: Iniciando con configuración segura...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
docker-compose up -d
echo ""
echo -e "${GREEN}✅ Servicios iniciados${NC}\n"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 3: Esperando que los servicios se inicialicen...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
echo -n "Esperando 30 segundos"
for i in {1..30}; do
echo -n "."
sleep 1
done
echo ""
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 4: Verificando servicios...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
docker-compose ps
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 5: Ejecutando verificación de seguridad...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
./verify_security.sh
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}PASO 6: Verificando web app...${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
if curl -s http://localhost:8001 > /dev/null 2>&1; then
echo -e "${GREEN}✅ Web app responde correctamente${NC}"
else
echo -e "${RED}❌ Web app no responde - revisar logs:${NC}"
echo " docker-compose logs nginx"
echo " docker-compose logs rss2_web"
fi
echo ""
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${BLUE}🎉 ¡Migración completada!${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
echo -e "${GREEN}✅ Tu sistema ahora está configurado de forma segura:${NC}\n"
echo " 🔒 Credenciales fuertes configuradas"
echo " 🌐 Redes segmentadas (frontend, backend, monitoring)"
echo " 🚪 Solo puerto 8001 expuesto públicamente"
echo " 🔐 Redis con autenticación"
echo " 📊 Límites de recursos configurados"
echo ""
echo -e "${YELLOW}📋 PRÓXIMOS PASOS:${NC}\n"
echo " 1. Verifica que puedes acceder a: http://localhost:8001"
echo " 2. Prueba búsqueda y funcionalidades principales"
echo " 3. Para Grafana (monitoring):"
echo " - Acceso local: http://localhost:3001"
echo " - Usuario: admin"
echo " - Password: Ver EJECUTAR_AHORA.md"
echo ""
echo -e "${YELLOW}📖 Documentación:${NC}"
echo " - EJECUTAR_AHORA.md → Instrucciones detalladas"
echo " - SECURITY_GUIDE.md → Guía completa de seguridad"
echo " - SECURITY_AUDIT.md → Resumen de auditoría"
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"