Configuración del proyecto y salida de build

This commit is contained in:
Trabajo
2026-05-05 09:39:12 +02:00
parent ad1a981c3b
commit 615fe7f2c8
4 changed files with 19 additions and 14 deletions

4
.gitignore vendored
View File

@@ -1,3 +1,6 @@
# TypeScript build output
dist/
# ---> Node
# Logs
logs
@@ -142,3 +145,4 @@ dist
# JetBrains IDE local state
.idea/

View File

@@ -1,4 +1,4 @@
# sf-monitorizacion-health
# sf-monitorizacion-health
Aplicación Node.js/Express para monitorizar el endpoint de salud (`url_health`) de un conjunto de proyectos y mostrar un dashboard con el **último estado** registrado en PostgreSQL.
@@ -12,16 +12,17 @@ Aplicación Node.js/Express para monitorizar el endpoint de salud (`url_health`)
- `TIMEOUT` si el error es `ECONNABORTED`
4. El dashboard (`GET /`) muestra, por proyecto, el **último** registro de `estados`.
El job se ejecuta de forma periódica (cada 60s) en bucle recursivo para evitar solapamientos.
El job se ejecuta de forma periódica (configurable desde la interfaz, por defecto 5 min) en bucle recursivo para evitar solapamientos.
## Requisitos
- Node.js 18+ (recomendado)
- TypeScript
- PostgreSQL
## Configuración
La app lee estas variables de entorno (consultadas desde `src/config/postgreConfig.ts`):
La app lee estas variables de entorno (consultadas desde `src/config/postgres-config.ts`):
- `DB_HOST`
- `DB_PORT`
@@ -43,27 +44,26 @@ DB_NAME=sf_monitorizacion_health
La migración `deployment/database/migrations/001_init.sql` crea:
- `proyectos`
- tipo ENUM `tipo_estado` con `OK`, `ERROR`, `TIMEOUT`
- `proyectos` (con restricción UNIQUE en nombre y URL, y límite de 100 caracteres para el nombre)
- `estados`
- índice para consultar rápido el último estado por proyecto
> Nota: la migración hace `DROP TABLE IF EXISTS`, así que destruye los datos actuales.
> Nota: La migración utiliza `CREATE TABLE IF NOT EXISTS`.
## Cómo ejecutar
1. Instala dependencias:
- `npm install`
2. Asegúrate de tener creada la BD (ejecuta `deployment/database/migrations/001_init.sql`).
3. Ejecuta en modo desarrollo:
- `npm run dev`
3. Ejecuta los scripts disponibles:
- `npm run dev`: Inicia en modo desarrollo con `tsx`.
- `npm run build`: Compila el código TypeScript.
La app levanta el servidor en `http://localhost:3000`.
## Dashboard
Ruta:
- `GET /` : renderiza `src/views/index.ejs`
- `GET /` : renderiza la vista principal.
En la tabla se muestra:
- Nombre del proyecto (`proyectos.nombre`)
@@ -75,7 +75,7 @@ Si un proyecto todavía no tiene estados registrados, el dashboard muestra `PEND
## Añadir proyectos
Inserta en `proyectos`:
Se pueden añadir desde la interfaz en `/nuevo` o mediante SQL:
```sql
INSERT INTO proyectos (nombre, url_health)
@@ -83,4 +83,3 @@ VALUES ('Mi proyecto', 'https://ejemplo.com/health');
```
Los estados empezarán a generarse automáticamente cuando arranque el servidor y empiece el ciclo de checks.

View File

@@ -9,6 +9,7 @@
},
"scripts": {
"dev": "tsx src/index.ts",
"build": "tsc",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {

View File

@@ -2,8 +2,8 @@
// Visit https://aka.ms/tsconfig to read more about this file
"compilerOptions": {
// File Layout
// "rootDir": "./src",
// "outDir": "./dist",
"rootDir": "./src",
"outDir": "./dist",
// Environment Settings
// See also https://aka.ms/tsconfig/module
"module": "nodenext",
@@ -37,3 +37,4 @@
"skipLibCheck": true,
}
}