- 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
7.4 KiB
7.4 KiB
Guia de Instalacion
Requisitos del Sistema
Hardware Minimo
| Componente | Minimo | Recomendado |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disco | 40 GB SSD | 100+ GB SSD |
| Red | 100 Mbps | 1 Gbps |
Software
- Sistema Operativo: Ubuntu 22.04 LTS o Debian 12
- Docker: 24.0+
- Docker Compose: 2.20+
- Node.js: 20.x (solo para desarrollo)
Requisitos de Red
- Puerto 80 (HTTP)
- Puerto 443 (HTTPS)
- Puerto 5432 (PostgreSQL, solo interno)
- Puerto 6379 (Redis, solo interno)
- Acceso a MeshCentral, LibreNMS y/o Headwind MDM
Instalacion en Produccion
1. Preparar el Servidor
# Actualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar dependencias
sudo apt install -y curl git
# Instalar Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Agregar usuario al grupo docker
sudo usermod -aG docker $USER
newgrp docker
# Instalar Docker Compose
sudo apt install -y docker-compose-plugin
2. Clonar el Repositorio
# Crear directorio
sudo mkdir -p /opt/msp-monitor
cd /opt/msp-monitor
# Clonar repositorio
git clone https://git.consultoria-as.com/msp/msp-monitor-dashboard.git .
# Configurar permisos
sudo chown -R $USER:$USER /opt/msp-monitor
3. Configurar Variables de Entorno
# Copiar archivo de ejemplo
cp .env.example .env
# Editar configuracion
nano .env
Configuracion minima requerida:
# Seguridad - CAMBIAR ESTOS VALORES
POSTGRES_PASSWORD=<password-seguro>
JWT_SECRET=<clave-jwt-minimo-32-caracteres>
# MeshCentral (opcional si no se usa)
MESHCENTRAL_URL=https://mesh.tudominio.com
MESHCENTRAL_USER=admin
MESHCENTRAL_PASS=password
MESHCENTRAL_DOMAIN=default
# LibreNMS (opcional si no se usa)
LIBRENMS_URL=https://librenms.tudominio.com
LIBRENMS_TOKEN=tu-api-token
# Headwind MDM (opcional si no se usa)
HEADWIND_URL=https://mdm.tudominio.com
HEADWIND_TOKEN=tu-api-token
# Email (para notificaciones)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=tu-email@gmail.com
SMTP_PASS=tu-app-password
SMTP_FROM=MSP Monitor <noreply@tudominio.com>
# URL de la aplicacion
APP_URL=https://monitor.tudominio.com
4. Configurar SSL
Opcion A: Certificado Let's Encrypt (recomendado)
# Crear directorios
mkdir -p docker/nginx/ssl
# Iniciar Nginx sin SSL primero
docker compose -f docker/docker-compose.yml up -d nginx
# Obtener certificado
docker compose -f docker/docker-compose.yml run --rm certbot certonly \
--webroot \
--webroot-path=/var/www/certbot \
-d monitor.tudominio.com \
--email tu-email@tudominio.com \
--agree-tos \
--no-eff-email
# Reiniciar con SSL
docker compose -f docker/docker-compose.yml restart nginx
Opcion B: Certificado Propio
# Copiar certificados
cp /ruta/certificado.crt docker/nginx/ssl/live/monitor.tudominio.com/fullchain.pem
cp /ruta/certificado.key docker/nginx/ssl/live/monitor.tudominio.com/privkey.pem
5. Configurar Nginx
Editar docker/nginx/conf.d/default.conf:
server {
listen 443 ssl http2;
server_name monitor.tudominio.com; # Cambiar por tu dominio
ssl_certificate /etc/nginx/ssl/live/monitor.tudominio.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/monitor.tudominio.com/privkey.pem;
# ... resto de configuracion
}
6. Iniciar Servicios
# Construir imagenes
docker compose -f docker/docker-compose.yml build
# Iniciar servicios
docker compose -f docker/docker-compose.yml up -d
# Verificar estado
docker compose -f docker/docker-compose.yml ps
7. Aplicar Migraciones
# Ejecutar migraciones
docker compose -f docker/docker-compose.yml exec dashboard npx prisma db push
# Verificar conexion a BD
docker compose -f docker/docker-compose.yml exec dashboard npx prisma studio
8. Crear Usuario Administrador
# Conectar a la BD
docker compose -f docker/docker-compose.yml exec postgres psql -U mspmonitor -d msp_monitor
# Crear usuario (dentro de psql)
INSERT INTO usuarios (id, email, nombre, password_hash, rol, activo, created_at, updated_at)
VALUES (
gen_random_uuid(),
'admin@tudominio.com',
'Administrador',
'$2a$12$hash-del-password', -- Generar con bcrypt
'SUPER_ADMIN',
true,
NOW(),
NOW()
);
O usando el script de setup interactivo:
./scripts/setup.sh
9. Verificar Instalacion
- Acceder a
https://monitor.tudominio.com - Iniciar sesion con las credenciales creadas
- Verificar conexion a MeshCentral, LibreNMS, Headwind
- Revisar logs:
docker compose -f docker/docker-compose.yml logs -f
Instalacion en Desarrollo
1. Requisitos
- Node.js 20+
- npm o yarn
- Docker (para PostgreSQL y Redis)
2. Configurar Entorno
# Clonar repositorio
git clone https://git.consultoria-as.com/msp/msp-monitor-dashboard.git
cd msp-monitor-dashboard
# Instalar dependencias
npm install
# Configurar variables
cp .env.example .env
# Editar .env con configuracion local
3. Iniciar Servicios de Base de Datos
# Solo PostgreSQL y Redis
docker compose -f docker/docker-compose.yml up -d postgres redis
4. Configurar Base de Datos
# Generar cliente Prisma
npm run db:generate
# Aplicar schema
npm run db:push
# (Opcional) Abrir Prisma Studio
npm run db:studio
5. Iniciar Desarrollo
# Iniciar servidor de desarrollo
npm run dev
# En otra terminal, iniciar workers (opcional)
npm run jobs:start
Acceder a http://localhost:3000
Actualizacion
Actualizacion en Produccion
cd /opt/msp-monitor
# Detener servicios
docker compose -f docker/docker-compose.yml down
# Actualizar codigo
git pull origin main
# Reconstruir imagenes
docker compose -f docker/docker-compose.yml build
# Iniciar servicios
docker compose -f docker/docker-compose.yml up -d
# Aplicar migraciones si hay cambios de BD
docker compose -f docker/docker-compose.yml exec dashboard npx prisma db push
Actualizacion en Desarrollo
# Actualizar codigo
git pull origin main
# Actualizar dependencias
npm install
# Regenerar cliente Prisma
npm run db:generate
# Aplicar migraciones
npm run db:push
Solucion de Problemas
Error de Conexion a Base de Datos
# Verificar que PostgreSQL esta corriendo
docker compose -f docker/docker-compose.yml ps postgres
# Ver logs de PostgreSQL
docker compose -f docker/docker-compose.yml logs postgres
# Verificar conectividad
docker compose -f docker/docker-compose.yml exec postgres pg_isready
Error de Conexion a Redis
# Verificar que Redis esta corriendo
docker compose -f docker/docker-compose.yml ps redis
# Probar conexion
docker compose -f docker/docker-compose.yml exec redis redis-cli ping
Dashboard no Carga
# Ver logs del dashboard
docker compose -f docker/docker-compose.yml logs dashboard
# Verificar variables de entorno
docker compose -f docker/docker-compose.yml exec dashboard env
# Reiniciar servicio
docker compose -f docker/docker-compose.yml restart dashboard
Workers no Procesan Jobs
# Ver logs del worker
docker compose -f docker/docker-compose.yml logs worker
# Verificar colas en Redis
docker compose -f docker/docker-compose.yml exec redis redis-cli KEYS "bull:*"