Configuración del proyecto y salida de build
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# TypeScript build output
|
||||
dist/
|
||||
|
||||
# ---> Node
|
||||
# Logs
|
||||
logs
|
||||
@@ -142,3 +145,4 @@ dist
|
||||
# JetBrains IDE local state
|
||||
.idea/
|
||||
|
||||
|
||||
|
||||
23
README.md
23
README.md
@@ -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.
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "tsx src/index.ts",
|
||||
"build": "tsc",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user