- Next.js 14 frontend with dark cyan/navy theme - tRPC API with Prisma ORM - MeshCentral, LibreNMS, Headwind MDM integrations - Multi-tenant architecture - Alert system with email/SMS/webhook notifications - Docker Compose deployment - Complete documentation
166 lines
4.9 KiB
Markdown
166 lines
4.9 KiB
Markdown
# MSP Monitor Dashboard
|
|
|
|
Dashboard de monitoreo unificado para Proveedores de Servicios Administrados (MSP). Integra MeshCentral, LibreNMS y Headwind MDM en una sola interfaz moderna con tema oscuro cyan/navy.
|
|
|
|

|
|
|
|
## Caracteristicas
|
|
|
|
- **Monitoreo Unificado**: Visualiza todos tus dispositivos en una sola interfaz
|
|
- **Multi-Tenant**: Gestion de multiples clientes con aislamiento de datos
|
|
- **Control Remoto**: Acceso a escritorio, terminal y archivos via MeshCentral
|
|
- **MDM Empresarial**: Gestion completa de dispositivos Android con Headwind MDM
|
|
- **Monitoreo de Red**: SNMP, NetFlow y alertas via LibreNMS
|
|
- **Sistema de Alertas**: Reglas personalizables con notificaciones por email, SMS y webhook
|
|
- **Reportes**: Inventario, uptime, alertas y actividad de usuarios
|
|
- **API Type-Safe**: Backend con tRPC para comunicacion tipada
|
|
|
|
## Stack Tecnologico
|
|
|
|
| Componente | Tecnologia |
|
|
|------------|------------|
|
|
| Frontend | Next.js 14, React, Tailwind CSS |
|
|
| Backend | Next.js API Routes, tRPC |
|
|
| Base de Datos | PostgreSQL 16 + Prisma ORM |
|
|
| Cache/Queue | Redis 7 + BullMQ |
|
|
| Monitoreo PC | MeshCentral |
|
|
| Monitoreo Red | LibreNMS |
|
|
| MDM Movil | Headwind MDM |
|
|
| Proxy/SSL | Nginx + Let's Encrypt |
|
|
| Contenedores | Docker + Docker Compose |
|
|
|
|
## Inicio Rapido
|
|
|
|
### Requisitos
|
|
|
|
- Node.js 20+
|
|
- Docker y Docker Compose
|
|
- Acceso a MeshCentral, LibreNMS y/o Headwind MDM
|
|
|
|
### Instalacion
|
|
|
|
```bash
|
|
# Clonar repositorio
|
|
git clone https://git.consultoria-as.com/msp/msp-monitor-dashboard.git
|
|
cd msp-monitor-dashboard
|
|
|
|
# Ejecutar script de setup
|
|
chmod +x scripts/setup.sh
|
|
./scripts/setup.sh
|
|
```
|
|
|
|
### Configuracion Rapida
|
|
|
|
1. Copia el archivo de configuracion:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
2. Edita `.env` con tus credenciales:
|
|
```env
|
|
# Base de datos
|
|
DATABASE_URL="postgresql://user:pass@localhost:5432/msp_monitor"
|
|
|
|
# Integraciones
|
|
MESHCENTRAL_URL="https://mesh.tudominio.com"
|
|
MESHCENTRAL_USER="admin"
|
|
MESHCENTRAL_PASS="password"
|
|
|
|
LIBRENMS_URL="https://librenms.tudominio.com"
|
|
LIBRENMS_TOKEN="tu-token"
|
|
|
|
HEADWIND_URL="https://mdm.tudominio.com"
|
|
HEADWIND_TOKEN="tu-token"
|
|
```
|
|
|
|
3. Inicia los servicios:
|
|
```bash
|
|
# Desarrollo
|
|
npm run dev
|
|
|
|
# Produccion
|
|
docker-compose -f docker/docker-compose.yml up -d
|
|
```
|
|
|
|
4. Accede al dashboard en `http://localhost:3000`
|
|
|
|
## Estructura del Proyecto
|
|
|
|
```
|
|
msp-monitor-dashboard/
|
|
├── src/
|
|
│ ├── app/ # Next.js App Router
|
|
│ │ ├── (dashboard)/ # Paginas del dashboard
|
|
│ │ └── api/ # API endpoints
|
|
│ ├── components/ # Componentes React
|
|
│ │ ├── layout/ # Layout components
|
|
│ │ └── dashboard/ # Dashboard components
|
|
│ ├── server/ # Backend
|
|
│ │ ├── trpc/ # tRPC routers
|
|
│ │ ├── services/ # Clientes de integracion
|
|
│ │ └── jobs/ # Workers de procesamiento
|
|
│ ├── lib/ # Utilidades
|
|
│ └── types/ # Tipos TypeScript
|
|
├── prisma/ # Schema de base de datos
|
|
├── docker/ # Configuracion Docker
|
|
│ ├── nginx/ # Configuracion Nginx
|
|
│ └── docker-compose.yml
|
|
├── scripts/ # Scripts de utilidad
|
|
└── docs/ # Documentacion
|
|
```
|
|
|
|
## Documentacion
|
|
|
|
- [Arquitectura](docs/arquitectura/README.md)
|
|
- [API Reference](docs/api/README.md)
|
|
- [Guia de Instalacion](docs/guias/instalacion.md)
|
|
- [Guia de Configuracion](docs/guias/configuracion.md)
|
|
|
|
## Comandos Utiles
|
|
|
|
```bash
|
|
# Desarrollo
|
|
npm run dev # Iniciar servidor de desarrollo
|
|
npm run build # Compilar para produccion
|
|
npm run lint # Verificar codigo
|
|
|
|
# Base de datos
|
|
npm run db:generate # Generar cliente Prisma
|
|
npm run db:push # Aplicar schema a BD
|
|
npm run db:studio # Abrir Prisma Studio
|
|
|
|
# Workers
|
|
npm run jobs:start # Iniciar workers de procesamiento
|
|
|
|
# Docker
|
|
docker-compose -f docker/docker-compose.yml up -d # Iniciar servicios
|
|
docker-compose -f docker/docker-compose.yml down # Detener servicios
|
|
docker-compose -f docker/docker-compose.yml logs -f # Ver logs
|
|
|
|
# Backups
|
|
./scripts/backup-db.sh # Crear backup
|
|
./scripts/restore-db.sh /ruta/backup.sql.gz # Restaurar backup
|
|
```
|
|
|
|
## Contribuir
|
|
|
|
1. Fork el repositorio
|
|
2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)
|
|
3. Commit tus cambios (`git commit -am 'Agregar nueva funcionalidad'`)
|
|
4. Push a la rama (`git push origin feature/nueva-funcionalidad`)
|
|
5. Crea un Pull Request
|
|
|
|
## Licencia
|
|
|
|
Este proyecto es privado y propietario de Consultoria AS.
|
|
|
|
## Soporte
|
|
|
|
Para soporte tecnico, contacta a:
|
|
- Email: soporte@consultoria-as.com
|
|
- Web: https://consultoria-as.com
|
|
|
|
---
|
|
|
|
Desarrollado con ❤️ por [Consultoria AS](https://consultoria-as.com)
|