sgi-emch/
├── .github/
│ └── workflows/
│ └── ci-cd.yml # Pipeline CI (tests) + CD (deploy SSH) en GitHub Actions
├── backend/ # Aplicación Spring Boot
│ ├── src/main/java/pe/edu/emch/sgi/
│ │ ├── config/ # DataSeeder, SecurityConfig, WebConfig
│ │ ├── controller/ # Controladores REST (Auth, Equipo, Ticket, etc.)
│ │ ├── dto/ # Request/Response DTOs
│ │ ├── entity/ # Entidades JPA (Usuario, Equipo, Ticket, etc.)
│ │ ├── repository/ # Repositorios Spring Data
│ │ ├── scheduler/ # NotificacionScheduler (SLA y stock crítico)
│ │ ├── security/ # JwtFilter, AuditSessionInterceptor
│ │ └── service/ # Lógica de negocio
│ ├── src/main/resources/
│ │ └── application.properties # Configuración del servidor, BD, JWT, Swagger
│ ├── backup/ # Scripts del contenedor de backup
│ │ ├── backup.sh # Script mysqldump + rotación
│ │ └── crontab # Programación: todos los días a las 02:00
│ ├── backups/ # Destino de los .sql.gz generados (en el host)
│ ├── .env # Variables secretas (no en git)
│ ├── .env.example # Plantilla de variables
│ └── Dockerfile # Build multi-stage del backend
├── frontend/ # Aplicación React + Vite
│ ├── src/
│ │ ├── app/
│ │ │ ├── components/ # Páginas y componentes UI
│ │ │ └── App.tsx # Router principal y estado de autenticación
│ │ ├── lib/
│ │ │ └── api.ts # fetchWithAuth — wrapper JWT para todas las llamadas
│ │ └── services/ # Servicios por módulo (equipo, ticket, usuario, etc.)
│ └── Dockerfile # Build multi-stage del frontend
├── docusaurus/ # Documentación (este sitio)
│ ├── docs/ # Archivos Markdown
│ ├── src/css/custom.css # Estilos institucionales
│ ├── docusaurus.config.js
│ ├── sidebars.js
│ └── Dockerfile
├── monitoring/ # Configuraciones del stack de monitoreo (opcional)
│ ├── prometheus/
│ │ └── prometheus.yml # Job sgi-backend: raspa /actuator/prometheus cada 15 s
│ ├── loki/
│ │ └── loki-config.yaml # Almacenamiento de logs (boltdb-shipper, schema v11)
│ ├── promtail/
│ │ └── promtail-config.yaml # Recolecta logs de contenedores sgi-full-*
│ └── grafana/
│ └── provisioning/
│ ├── datasources/
│ │ └── datasources.yaml # Prometheus (UID: prometheus-sgi) y Loki (UID: loki-sgi)
│ └── dashboards/
│ ├── dashboards.yaml # Proveedor de tipo "file"
│ └── sgi-backend.json # Dashboard precargado con 17 paneles
├── db_sgi_emch.sql # Script de inicialización de la BD
├── docker-compose.yml # Orquestación del stack principal
└── docker-compose.monitoring.yml # Orquestación del stack de monitoreo (opcional)