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

97 lines
2.4 KiB
Markdown

# 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`:
```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`:
```env
VITE_API_URL=/api
```
## Setup local
### Backend
```bash
cd backend
npm install
npm run dev
```
### Frontend
```bash
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.
```js
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).