feat: Configuración completa de Docker con PostgreSQL, HTTPS y servidor de producción
- Agregada configuración de servidor HTTPS con Express (server.js) - Integración de PostgreSQL en docker-compose.yml con servicio dedicado - Actualizado Dockerfile para optimizar build en Alpine Linux - Configurado vite.config.ts con soporte HTTPS para desarrollo - Agregados certificados SSL para HTTPS - Actualizado svelte.config.js con configuración CSRF - Ajustadas métricas de restauración en +page.server.ts para usar last_restore_date - Agregado script npm start en package.json - Instalado express como dependencia de producción
This commit is contained in:
@@ -377,28 +377,20 @@ export const load: PageServerLoad = async ({ cookies }) => {
|
||||
console.error("Error processing backups/alerts hydration:", e);
|
||||
}
|
||||
|
||||
// CALCULAR MÉTRICAS DE RESTAURACIÓN basadas en backups reales (ANTES del filtro)
|
||||
// CALCULAR MÉTRICAS DE RESTAURACIÓN basadas en last_restore_date (ANTES del filtro)
|
||||
restoredCount = 0;
|
||||
notRestoredCount = 0;
|
||||
const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
|
||||
|
||||
for (const db of databaseRows) {
|
||||
// Buscar backups de esta base de datos en las últimas 24 horas
|
||||
// Comparar usando NodoSubNodo (de la BD) con nodo_name (del archivo de backup)
|
||||
const recentBackups = backupFiles.filter(backup => {
|
||||
const backupNodo = (backup.nodo_name || '').toLowerCase();
|
||||
const dbNodo = (db.NodoSubNodo || '').toLowerCase();
|
||||
const backupDate = new Date(backup.date);
|
||||
|
||||
// Si no tiene NodoSubNodo, intentar con el nombre de la BD
|
||||
const hasMatch = dbNodo ? (backupNodo === dbNodo) :
|
||||
(backupNodo === (db.visible_name || '').toLowerCase());
|
||||
|
||||
return hasMatch && backupDate > oneDayAgo;
|
||||
});
|
||||
|
||||
if (recentBackups.length > 0) {
|
||||
restoredCount++;
|
||||
// Verificar si tiene una restauración en las últimas 24 horas
|
||||
if (db.last_restore_date) {
|
||||
const restoreDate = new Date(db.last_restore_date);
|
||||
if (restoreDate > oneDayAgo) {
|
||||
restoredCount++;
|
||||
} else {
|
||||
notRestoredCount++;
|
||||
}
|
||||
} else {
|
||||
notRestoredCount++;
|
||||
}
|
||||
@@ -423,20 +415,14 @@ export const load: PageServerLoad = async ({ cookies }) => {
|
||||
restoredCount = 0;
|
||||
notRestoredCount = 0;
|
||||
for (const db of databaseRows) {
|
||||
const recentBackups = backupFiles.filter(backup => {
|
||||
const backupNodo = (backup.nodo_name || '').toLowerCase();
|
||||
const dbNodo = (db.NodoSubNodo || '').toLowerCase();
|
||||
const backupDate = new Date(backup.date);
|
||||
|
||||
// Si no tiene NodoSubNodo, intentar con el nombre de la BD
|
||||
const hasMatch = dbNodo ? (backupNodo === dbNodo) :
|
||||
(backupNodo === (db.visible_name || '').toLowerCase());
|
||||
|
||||
return hasMatch && backupDate > oneDayAgo;
|
||||
});
|
||||
|
||||
if (recentBackups.length > 0) {
|
||||
restoredCount++;
|
||||
// Verificar si tiene una restauración en las últimas 24 horas
|
||||
if (db.last_restore_date) {
|
||||
const restoreDate = new Date(db.last_restore_date);
|
||||
if (restoreDate > oneDayAgo) {
|
||||
restoredCount++;
|
||||
} else {
|
||||
notRestoredCount++;
|
||||
}
|
||||
} else {
|
||||
notRestoredCount++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user