Files
MSP-CAS/docs/guias/instalacion.md
MSP Monitor f4491757d9 Initial commit: MSP Monitor Dashboard
- 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
2026-01-21 19:29:20 +00:00

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

  1. Acceder a https://monitor.tudominio.com
  2. Iniciar sesion con las credenciales creadas
  3. Verificar conexion a MeshCentral, LibreNMS, Headwind
  4. 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:*"

Proximos Pasos