Files
Milton Gonzalez e25c2c3b35 feat: version 2.15.0 -- menu Equipos (inventario de TI con agente GLPI)
Ingesta POST /api/inventory (JSON/XML, token de instalacion), upsert por deviceid,
historial de cambios, pestañas Resumen/Equipos/Software/Agentes, detalle con buscador
por pestaña y casilla para ocultar actualizaciones/drivers/componentes del software.
Migraciones 023 y 024. Diseño en docs/ARQUITECTURA-INVENTARIO.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 19:05:00 -05:00

2.4 KiB

Configuracion - project.linkedcorp.net

Requisitos

  • Node.js: 20.x LTS
  • npm: 10.x
  • MariaDB: servidor dev 192.168.222.20 (ya existe la BD project_linkedcorp)

Variables principales

Usar backend/.env.example y frontend/.env.example como base.

  • copiar .env.example -> .env en cada servicio
  • completar .env real antes de pruebas de conexión
  • leer la configuración desde .env
  • versionar .env.example; nunca versionar .env

backend/.env:

PORT=4019
NODE_ENV=development

DB_HOST=192.168.222.20
DB_PORT=3306
DB_NAME=project_linkedcorp
DB_USER=project_linkedcorp
DB_PASSWORD=

JWT_SECRET=
JWT_EXPIRES=8h

# openssl rand -hex 32 — cifra secretos guardados en BD (hoy: la clave SMTP en system_settings)
ENCRYPTION_KEY=

CORS_ORIGIN=http://localhost:5196

STORAGE_ROOT=./storage

El SMTP real (para los correos de verificación/recuperación de clave) NO va en .env: lo carga el Superadministrador desde Configuración → Correo (SMTP) dentro de la app. Sin configurar, el backend degrada a modo dev: loguea el enlace en vez de enviarlo (no rompe el registro ni la recuperación).

frontend/.env:

VITE_API_URL=/api

Setup local

Backend

cd backend
npm install
npm run dev

Frontend

cd frontend
npm install
npm run dev

React + Vite — proxy de desarrollo y acceso desde el teléfono (frontend/vite.config.js): en dev, el frontend reenvía /api al backend (evita CORS) y escucha en 0.0.0.0 para probar desde el celular. En producción, cada servicio corre por separado (arquetipo B): el frontend sirve su propio dist y el backend expone /api; NPM enruta /api al backend en el dominio público.

export default defineConfig({
  plugins: [react()],
  server: {
    host: '0.0.0.0',
    port: 5196,
    strictPort: true,
    proxy: { '/api': 'http://localhost:4019' },
  },
})

Verificaciones

  • Frontend responde en 5196 (http://192.168.222.20x:5196 o localhost:5196).
  • Backend responde en 4019 (curl http://localhost:4019/health).
  • Conexión a base válida (node -e "require('./src/config/db')" o el log de arranque del servidor).
  • .env.example alineado con el código (nuevas variables se agregan también ahí).

Equipos (inventario)

  • INVENTORY_MAX_BYTES (opcional, default 15 MB): tope del cuerpo de POST /api/inventory.
  • Los inventarios crudos se guardan en STORAGE_ROOT/inventories/ (un archivo por equipo).