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>
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 BDproject_linkedcorp)
Variables principales
Usar backend/.env.example y frontend/.env.example como base.
- copiar
.env.example->.enven cada servicio - completar
.envreal 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:5196olocalhost: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.examplealineado con el código (nuevas variables se agregan también ahí).
Equipos (inventario)
INVENTORY_MAX_BYTES(opcional, default 15 MB): tope del cuerpo dePOST /api/inventory.- Los inventarios crudos se guardan en
STORAGE_ROOT/inventories/(un archivo por equipo).