docs: review Monitor documentation in all seven translations

This commit is contained in:
Jonatan
2026-10-17 15:08:53 +02:00
parent ce1a3de719
commit dace78214a
209 changed files with 43788 additions and 1942 deletions
@@ -1,173 +1,173 @@
{
"meta": {
"title": "ProxMenux Monitor — Panel: pestaña Ajustes | Documentación de ProxMenux",
"description": "La pestaña Ajustes controla el idioma del Monitor, el orden de navegación, las preferencias del panel, los umbrales y exclusiones de salud, las notificaciones, la IA y el inventario de optimizaciones."
"description": "La pestaña Ajustes controla idioma, orden de navegación, preferencias del panel, umbrales y exclusiones de supervisión, notificaciones, IA e inventario de optimizaciones posteriores a la instalación."
},
"header": {
"title": "Panel: pestaña Ajustes",
"description": "Idioma del Monitor, orden de navegación, preferencias del panel, exclusiones de monitorización, notificaciones, configuración de IA e inventario de optimizaciones de ProxMenux.",
"description": "Idioma de Monitor, orden de navegación, preferencias del panel, exclusiones, notificaciones, IA e inventario actualizado de optimizaciones de ProxMenux.",
"section": "ProxMenux Monitor · Panel"
},
"intro": {
"title": "Dónde vive realmente cada setting",
"body": "La pestaña Ajustes reúne varias funciones distintas: cómo se muestra el panel, qué vigila el Monitor de salud, cómo se envían las alertas y qué cambios ha aplicado ProxMenux en el host. Las tarjetas que tienen su propia página de documentación enlazan a ella en lugar de duplicar el contenido: Ajustes es el punto de entrada."
"title": "Dónde se guarda cada ajuste",
"body": "Ajustes reúne la presentación del panel, la supervisión de Health Monitor, el envío de alertas y los cambios ya aplicados al host por ProxMenux. Las tarjetas con documentación detallada enlazan a ella; aquí encontrarás su punto de acceso."
},
"interfaceLanguage": {
"heading": "Idioma de la interfaz",
"intro": "Selecciona el idioma de la <strong>interfaz web del Monitor</strong>. El cambio se aplica de inmediato; no reinicia el servicio ni modifica el idioma de los menús de ProxMenux ejecutados en la terminal.",
"intro": "Elige el idioma de la <strong>interfaz web del Monitor</strong>. Se aplica de inmediato, sin reiniciar el servicio ni cambiar el idioma de los menús de terminal de ProxMenux.",
"items": [
"ProxMenux Monitor ofrece actualmente inglés, alemán, español, francés, italiano, portugués, eslovaco y sueco.",
"En la primera visita, el Monitor utiliza el idioma del navegador si está disponible; en caso contrario, utiliza inglés.",
"Al cambiar la selección, se actualiza el idioma de la página y también el de otras pestañas abiertas con el mismo perfil del navegador.",
"Si falta una cadena traducida, solo ese texto se muestra en inglés en lugar de presentar una clave rota."
"En la primera visita usa el idioma del navegador si está disponible; en caso contrario, inglés.",
"Cambiar la selección actualiza el idioma de la página y lo sincroniza con las demás pestañas del mismo perfil del navegador.",
"Si falta una traducción, solo ese texto aparece en inglés en lugar de una clave o marcador roto."
],
"scopeTitle": "Preferencia local del navegador",
"scopeBody": "La selección se guarda en <code>localStorage</code> con la clave <code>proxmenux-ui-language</code>. Por tanto, pertenece a este perfil de navegador y dispositivo; no es un ajuste global del nodo. Cada administrador puede utilizar un idioma distinto."
"scopeBody": "La selección se guarda en <code>localStorage</code> con la clave <code>proxmenux-ui-language</code>. Pertenece al perfil y dispositivo actuales, no a todo el nodo. Cada administrador puede elegir su idioma."
},
"navigationOrder": {
"heading": "Orden de navegación",
"intro": "Esta tarjeta permite ordenar los siete elementos principales: <strong>Resumen, Apps, VMs y LXCs, Nodo, Copias, Terminal y Administración</strong>. Pulsa <strong>Editar</strong>, arrastra las filas y guarda el resultado.",
"intro": "Ordena los siete elementos principales: <strong>Resumen, Apps, VMs y LXCs, Nodo, Copias, Terminal y Administración</strong>. Pulsa <strong>Editar</strong>, arrastra las filas y guarda.",
"items": [
"Con el ratón, el arrastre comienza al pulsar. En una pantalla táctil se utiliza una pulsación mantenida de 250 ms para no confundir el desplazamiento normal con una reordenación.",
"Los grupos <strong>Nodo</strong> y <strong>Administración</strong> se mueven como unidades completas; sus páginas internas conservan el orden establecido por ProxMenux.",
"El menú móvil respeta el mismo orden guardado.",
"<strong>Restaurar valores predeterminados</strong> restablece el borrador. Es necesario guardar para aplicar el cambio.",
"Si una versión futura añade una nueva pestaña principal, esta se incorpora al final del orden personalizado sin borrar la organización del usuario."
"Con el ratón, el arrastre empieza al pulsar. En pantallas táctiles requiere mantener la pulsación 250 ms para distinguirlo del desplazamiento.",
"Los grupos <strong>Nodo</strong> y <strong>Administración</strong> se mueven completos; sus páginas internas conservan el orden establecido.",
"El menú móvil respeta el orden guardado.",
"<strong>Restaurar valores predeterminados</strong> restablece el orden en edición. Guarda para aplicar el cambio.",
"Las nuevas pestañas principales de futuras versiones se añaden al final del orden personalizado, conservando tu organización."
],
"landingTitle": "El primer elemento se convierte en la pestaña inicial",
"landingBody": "El primer elemento guardado es la página que abre el Monitor al cargar. Si <strong>Nodo</strong> ocupa la primera posición, se abre Almacenamiento; si la ocupa <strong>Administración</strong>, se abren los Logs del sistema. El orden se guarda solo en este navegador con la clave <code>proxmenux-nav-order</code>, por lo que cada dispositivo puede utilizar una organización distinta."
"landingTitle": "El primer elemento es la pestaña inicial",
"landingBody": "Monitor abre el primer elemento guardado. Si es <strong>Nodo</strong>, abre Almacenamiento; si es <strong>Administración</strong>, abre Registros del sistema. El orden se guarda en este navegador bajo <code>proxmenux-nav-order</code>, por lo que cada dispositivo puede tener su propia organización."
},
"networkUnits": {
"heading": "Network Units",
"imageAlt": "Tarjeta Network Units con desplegable Network Unit Display puesto en Bytes",
"imageCaption": "Elige entre bits por segundo y bytes por segundo para cada rate de red mostrado en el panel.",
"body": "Elige cómo se muestra el throughput de red a lo largo del panel: <strong>bits por segundo</strong> (Mbps / Gbps) o <strong>bytes por segundo</strong> (MB/s / GB/s). Bits es el valor por defecto porque es como los fabricantes de NICs e ISPs etiquetan sus productos; bytes es lo que reportan la mayoría de herramientas de transferencia de archivos. El setting afecta cada gráfica, insignia y tooltip que muestra rate de red — aplicado inmediatamente, sin recargar."
"heading": "Unidades de red",
"imageAlt": "Tarjeta Unidades de red con el selector de visualización en Bytes",
"imageCaption": "Elige bits por segundo o bytes por segundo para todas las velocidades de red del panel.",
"body": "Muestra la velocidad de red en <strong>bits por segundo</strong> (Mbps/Gbps) o <strong>bytes por segundo</strong> (MB/s/GB/s). Por defecto se usan bits, como en las especificaciones de interfaces y proveedores; las transferencias de archivos suelen usar bytes. El cambio se aplica de inmediato a gráficos, etiquetas y ayudas, sin recargar."
},
"health": {
"heading": "Monitor de salud",
"intro": "La tarjeta expone el setting <strong>Suppression Duration</strong> por categoría — una vez se descarta una alerta, cuánto tiene que pasar antes de que se permita al escáner volver a dispararla. Cada una de las diez categorías del Monitor de salud (CPU, Memoria, Almacenamiento, Discos, Red, VMs, Servicios PVE, Logs, Updates, Seguridad) tiene su propio desplegable con estos valores:",
"intro": "La tarjeta configura la <strong>duración del silenciamiento</strong>: cuánto debe esperar el análisis antes de volver a avisar de una alerta descartada. Cada categoría —CPU, memoria, almacenamiento, discos, red, VM, servicios PVE, registros, actualizaciones y seguridad— tiene su desplegable:",
"items": [
"<strong>24 h</strong> — por defecto para la mayoría de categorías transitorias.",
"<strong>72 h</strong> — para eventos sobre los que quieres unos días de silencio.",
"<strong>72 h</strong> — para silenciar estos eventos durante unos días.",
"<strong>168 h</strong> (1 semana) y <strong>720 h</strong> (1 mes) — chequeos periódicos.",
"<strong>8760 h</strong> (1 año) — efectivamente \"silencio en el futuro previsible\".",
"<strong>8760 h</strong> (1 año) — silencio durante un periodo largo.",
"<strong>-1</strong> — silencio permanente hasta que lo reactives manualmente.",
"<strong>Custom hours</strong> — cualquier entero si necesitas un valor intermedio."
"<strong>Horas personalizadas</strong>: cualquier número entero si necesitas un valor intermedio."
],
"imageAlt": "Card Settings → Monitor de salud con los desplegables de supresión por categoría y la sección Active Suppressions",
"imageCaption": "Card Monitor de salud — los desplegables por categoría fijan los valores por defecto para nuevos dismisses; la sección Active Suppressions debajo lista cada alerta actualmente silenciada y permite revertirlas.",
"editTitle": "Modo Edit",
"editBody": "La tarjeta es de solo-lectura por defecto. Pulsa <strong>Edit</strong> en la esquina superior derecha de la card para activar los desplegables y los botones Re-enable. <strong>Save</strong> confirma todos los cambios pendientes (cambios de Suppression Duration y re-enables encolados) en un solo lote; <strong>Cancel</strong> los descarta todos. El botón Save solo se activa cuando hay al menos un cambio pendiente.",
"activeTitle": "Active Suppressions",
"activeIntro": "Debajo de los desplegables de Suppression Duration, la sección <strong>Active Suppressions</strong> lista cada alerta actualmente silenciada — tanto los dismisses time-limited (24 h, 7 días, ventanas custom) como los <em>Permanent</em>. Cada fila muestra:",
"imageAlt": "Ajustes, tarjeta Health Monitor con duración por categoría y sección de silenciamientos activos",
"imageCaption": "Los desplegables definen la duración para futuros descartes. La sección inferior muestra las alertas silenciadas y permite reactivarlas.",
"editTitle": "Modo de edición",
"editBody": "La tarjeta comienza en solo lectura. Pulsa <strong>Editar</strong> arriba a la derecha para activar desplegables y botones de reactivación. <strong>Guardar</strong> aplica en un lote las duraciones y reactivaciones pendientes; <strong>Cancelar</strong> las descarta. Guardar solo se activa cuando hay cambios.",
"activeTitle": "Silenciamientos activos",
"activeIntro": "Bajo las duraciones, <strong>Silenciamientos activos</strong> enumera las alertas silenciadas temporalmente —24 h, 7 días u otro periodo— y las <em>permanentes</em>. Cada fila muestra:",
"activeItems": [
"Un badge coloreado — <strong>Permanent</strong> (ámbar) o una cuenta atrás como <strong>24h remaining</strong> / <strong>7d remaining</strong> (azul).",
"El identificador de la alerta, normalizado para legibilidad (p. ej. <code>pve_storage_full_PBS-Cloud</code> → <em>PVE Storage Full: PBS-Cloud</em>).",
"Categoría, severidad y el timestamp en que se descartó la alerta.",
"Un botón <strong>Re-enable</strong> (activo solo en modo Edit) que encola la alerta para ser un-acknowledged al siguiente Save."
"Una insignia de color: <strong>Permanente</strong> en ámbar o una cuenta atrás, como <strong>24 h restantes</strong> / <strong>7 días restantes</strong>, en azul.",
"El identificador de la alerta, adaptado para facilitar su lectura (p. ej. <code>pve_storage_full_PBS-Cloud</code> → <em>Almacenamiento PVE lleno: PBS-Cloud</em>).",
"Categoría, gravedad y fecha y hora en que se descartó la alerta.",
"Un botón <strong>Reactivar</strong>, disponible al editar, deja pendiente retirar el silenciamiento al guardar."
],
"activeReenableTitle": "Flujo de Re-enable",
"activeReenableBody": "Pulsar <strong>Re-enable</strong> en modo Edit marca la fila en verde y tacha su identificador — está encolada pero todavía no aplicada. Volver a hacer clic en la misma fila la <strong>Undo</strong> (la saca de la cola). Cuando pulsas <strong>Save</strong>, cada re-enable encolado dispara <code>POST /api/health/un-acknowledge</code> en paralelo y las filas afectadas desaparecen de la lista. Si la condición subyacente sigue presente y la categoría soporta re-fire, la alerta reaparece en la lista Active del Monitor de salud en el siguiente ciclo de escaneo.",
"activePermanentNote": "Los dismisses permanentes (alertas descartadas con <em>Permanently</em> desde el modal del Monitor, o aquellas cuya categoría tenga el default puesto a <code>-1</code>) <strong>solo se pueden revertir desde aquí</strong>. El modal del dashboard no expone un botón un-dismiss para ellas — el panel Active Suppressions es el único log de auditoría + UI de revert.",
"activeAutoRefreshTitle": "Auto-refresh",
"activeAutoRefreshBody": "La lista se refresca automáticamente cuando descartas o un-dismiss una alerta desde el modal del Monitor de salud (vía un evento in-browser), cuando la pestaña recupera el foco y al cambio de visibilidad. No necesitas recargar la página tras descartar una alerta desde el dashboard.",
"calloutTitle": "La semántica completa vive en la página del Monitor de salud",
"calloutBody": "Las reglas de escalada (cuándo un re-fire pasa a critical), el comportamiento de auto-resolve para eventos cuyo dispositivo subyacente desaparece y la diferencia entre dismissed y resolved — todo documentado bajo <link>Monitor de salud → Descartar alertas y la Suppression Duration</link>. Esta tarjeta solo expone los desplegables por categoría y el panel Active Suppressions."
"activeReenableTitle": "Cómo reactivar una alerta",
"activeReenableBody": "<strong>Reactivar</strong> al editar marca la fila en verde y tacha su identificador; aún no se aplica. Pulsa de nuevo para <strong>Deshacer</strong>. <strong>Guardar</strong> envía en paralelo <code>POST /api/health/un-acknowledge</code> por cada reactivación y retira sus filas. Si el problema persiste y la categoría permite repetir avisos, la alerta volverá a Activas en el próximo análisis.",
"activePermanentNote": "Los descartes permanentes —mediante <em>Permanente</em> o duración predeterminada <code>-1</code>— <strong>solo se revierten aquí</strong>. El diálogo general no ofrece ese botón; esta sección reúne el registro y la reactivación.",
"activeAutoRefreshTitle": "Actualización automática",
"activeAutoRefreshBody": "La lista se actualiza al descartar o reactivar una alerta desde Health Monitor, al volver a la pestaña y al cambiar su visibilidad. No necesitas recargar la página.",
"calloutTitle": "Detalles en la página de Health Monitor",
"calloutBody": "Las reglas de escalado, la resolución automática cuando desaparece un dispositivo y la diferencia entre descartar y resolver se explican en <link>Health Monitor → Descartar alertas y duración del silenciamiento</link>. Esta tarjeta ofrece los desplegables y los silenciamientos activos."
},
"thresholds": {
"heading": "Health Monitor Thresholds",
"intro": "Donde la tarjeta anterior decide <em>cuánto tiempo quedarse callado tras un dismiss</em>, esta decide <strong>a qué valor se dispara una alerta en primer lugar</strong>. Cada chequeo que ejecuta el Monitor de salud está parametrizado por un par de números — un umbral <strong>Warning</strong> y un umbral <strong>Critical</strong> — y ambos se exponen aquí para que el operador los ajuste.",
"heading": "Umbrales de Health Monitor",
"intro": "La tarjeta anterior define <em>cuánto dura el silencio tras descartar</em>; esta define <strong>el valor que activa una alerta</strong>. La mayoría de controles tienen valores <strong>Aviso</strong> y <strong>Crítico</strong> ajustables. La tabla explica excepciones como la regla combinada de swap y el detector actual de RAM.",
"whatForTitle": "Para qué sirve",
"whatForIntro": "Los valores por defecto que vienen con ProxMenux son sensatos para el host Proxmox medio, pero cada entorno tiene su propio sobre operativo:",
"whatForIntro": "Los valores predeterminados sirven como punto de partida, pero cada entorno tiene sus propias condiciones:",
"whatForItems": [
"Un homelab pequeño con un SSD único puede querer avisar antes en capacidad (75 / 90 %) para dejar margen a snapshots.",
"Un host de datacenter con nodos Ceph redundantes puede ser más relajado en avisos de memoria (un working set al 90 % es normal bajo ARC de ZFS).",
"Un mini-PC con refrigeración pasiva necesita umbrales de temperatura más bajos que un servidor con refrigeración forzada por aire — misma clase de drive, sobre físico distinto.",
"Un host muy virtualizado que clava CPU durante builds no debería avisar en cada pico del 80 %, pero sí debe seguir alertando sobre presión sostenida."
"Un homelab con un único SSD puede avisar antes de llenarse, por ejemplo al 75/90 %, para dejar margen a las instantáneas.",
"Los umbrales de memoria deben reflejar las mediciones y la carga del host. La redundancia Ceph no justifica por sí sola relajar avisos, y el uso elevado de ARC de ZFS no equivale a memoria de trabajo irrecuperable.",
"Elige umbrales de temperatura según las especificaciones del disco y sus condiciones reales. La refrigeración pasiva o forzada no determina por sí sola un límite seguro universalmente más bajo o más alto.",
"Un host muy virtualizado puede alcanzar picos de CPU durante compilaciones sin necesitar avisos por cada pico del 80 %, pero debe seguir avisando de saturación sostenida."
],
"whatForOutro": "Editar un umbral surte efecto <strong>en el siguiente scan</strong> — el Monitor de salud relee los valores desde <code>/usr/local/share/proxmenux/health_thresholds.json</code> en cada ciclo, sin reinicio de servicio. Los mismos números también alimentan los rangos de color de los widgets del panel (la línea de temperatura en la modal de temperatura de disco, las barras de las tarjetas de almacenamiento) para que la clasificación visual coincida con lo que dispara la alerta.",
"coloursTitle": "Colores de estado: cómo renderizan Warning y Critical en el panel",
"coloursIntro": "Cada umbral de abajo produce la misma clasificación de tres estados a lo largo del panel — los mismos colores para barras de almacenamiento, anillos de CPU/memoria, chips de temperatura y el punto de la modal de disco. Leer un color en cualquier sitio del Monitor mapea a un rango definido relativo al par configurado:",
"whatForOutro": "Los cambios admitidos se aplican <strong>en el siguiente análisis</strong>. Health Monitor lee <code>/usr/local/share/proxmenux/health_thresholds.json</code> cada ciclo sin reinicio. Algunos indicadores, como temperatura de disco, usan estos valores; ciertas barras de capacidad conservan sus propios cortes. La fila de RAM explica una excepción actual.",
"coloursTitle": "Colores de estado de Aviso y Crítico",
"coloursIntro": "Los widgets que usan el par Aviso/Crítico siguen los tres estados siguientes. Algunos indicadores, como las barras de capacidad PVE, tienen límites propios; su color no basta para deducir una alerta de Health Monitor.",
"headerColour": "Color",
"headerRange": "Rango",
"headerMeaning": "Significado",
"colourRows": [
{
"colour": "Verde",
"range": "valor < Warning",
"meaning": "Rango operativo normal. No se dispara alerta."
"range": "Valor < Aviso",
"meaning": "Rango normal. No se genera alerta."
},
{
"colour": "Ámbar",
"range": "Warning ≤ valor < Critical",
"meaning": "Estado warning. El Monitor de salud dispara un evento de severidad WARNING; las notificaciones respetan los filtros del canal y las Quiet Hours."
"range": "Aviso ≤ valor < Crítico",
"meaning": "Estado de aviso. Health Monitor genera un evento WARNING; las notificaciones respetan filtros de canal y horario de silencio."
},
{
"colour": "Rojo",
"range": "valor ≥ Critical",
"meaning": "Estado critical. El Monitor de salud dispara un evento CRITICAL; CRITICAL salta las Quiet Hours y siempre alcanza al canal."
"range": "Valor ≥ Crítico",
"meaning": "Estado crítico. Health Monitor genera un evento CRITICAL que omite el horario de silencio. Siguen aplicándose los ajustes de categoría y evento del canal; la entrega también depende de su disponibilidad."
}
],
"sectionsTitle": "Secciones y valores por defecto recomendados",
"sectionsIntro": "Estos son los valores con los que viene ProxMenux — la baseline recomendada. Es lo que ves en un host recién montado hasta que sobreescribes algo. Las secciones están ordenadas de arriba abajo de <em>cómputo</em> → <em>calor</em> → <em>capacidad de almacenamiento</em>, así que leer hacia abajo va de lo concreto (carga actual) al estado acumulado (espacio libre).",
"sectionsTitle": "Secciones y valores predeterminados recomendados",
"sectionsIntro": "Son los valores iniciales de ProxMenux hasta que los cambies. Las secciones van de <em>carga de cómputo</em> a <em>temperatura</em> y <em>capacidad de almacenamiento</em>, desde la carga actual al espacio ocupado.",
"headerSection": "Sección",
"headerWarning": "Warning",
"headerCritical": "Critical",
"headerWarning": "Aviso",
"headerCritical": "Crítico",
"headerGates": "Qué controla",
"thresholdRows": [
{
"section": "Uso de CPU",
"warning": "85 %",
"critical": "95 %",
"gates": "Alerta de carga sostenida cuando la CPU promedia por encima del umbral durante la ventana de scan."
"gates": "Alerta de carga sostenida cuando la CPU media supera el umbral durante el periodo de análisis."
},
{
"section": "Memoria",
"warning": "85 %",
"critical": "95 %",
"gates": "Presión de RAM en el host."
"gates": "Presión de RAM del host. La configuración muestra Crítico al 95 %, pero el detector actual usa una regla fija del 90 % sostenido; cambiar ese ajuste no modifica actualmente esa rama de ejecución."
},
{
"section": "Swap (solo critical)",
"section": "Uso de swap (solo crítico)",
"warning": "—",
"critical": "5 %",
"gates": "Swap realmente en uso. El número es intencionadamente bajo: un host Proxmox sano apenas debería tocar swap, así que incluso un 5 % es una señal significativa de presión de RAM."
"critical": "80 %",
"gates": "El estado CRITICAL de swap exige superar el 80 % de swap y tener menos del 15 % de RAM disponible, sostenido en las muestras. El swap ocupado por sí solo no activa esta regla."
},
{
"section": "Temperatura de CPU",
"warning": "80 °C",
"critical": "90 °C",
"gates": "Lectura de temperatura de package / core de CPU desde <code>lm-sensors</code>."
"gates": "Temperatura del conjunto o de los núcleos de CPU obtenida de <code>lm-sensors</code>."
},
{
"section": "Temp de disco — HDD",
"warning": "60 °C",
"critical": "65 °C",
"gates": "Drives spinning estándar. El sobre del fabricante topa alrededor de 60–65 °C, así que Critical se fija justo en el límite duro."
"gates": "Temperatura HDD. Valores iniciales: aviso a 60 °C y crítico a 65 °C. Son valores de supervisión, no un límite universal del fabricante; consulta las especificaciones del modelo."
},
{
"section": "Temp de disco — SSD",
"warning": "70 °C",
"critical": "75 °C",
"gates": "SSDs SATA 2.5'' / M.2 — corren más frescos que NVMe pero más calientes que HDDs."
"gates": "SSD SATA de 2,5 pulgadas o M.2. Esta clase usa valores iniciales de 70/75 °C; los límites reales dependen del modelo."
},
{
"section": "Temp de disco — NVMe",
"warning": "80 °C",
"critical": "85 °C",
"gates": "Los drives NVMe corren más calientes por diseño; los controladores auto-throttlean por encima de ~85 °C, así que Warning captura la escalada antes de que entre el throttling."
"gates": "Temperatura NVMe. Esta clase usa valores iniciales de 80/85 °C. La temperatura de limitación del controlador varía por modelo y no siempre es 85 °C."
},
{
"section": "Temp de disco — SAS",
"warning": "55 °C",
"critical": "65 °C",
"gates": "Los drives SAS enterprise comparten el mismo límite de fabricante de ~65 °C que los HDDs, pero se despliegan normalmente en chasis rack con refrigeración activa. Una lectura a 55 °C ya señala un problema de refrigeración (ventilador fallando, problema de HVAC) <em>antes</em> de que el propio drive esté en riesgo — de ahí un Warning más bajo que HDD, no porque SAS sea menos tolerante al calor."
"gates": "Temperatura SAS. Esta clase usa aviso a 55 °C y crítico a 65 °C. Son <em>valores de supervisión</em>, no una prueba de fallo de refrigeración a 55 °C ni un límite universal del fabricante."
},
{
"section": "Espacio de disco — host",
"warning": "85 %",
"critical": "95 %",
"gates": "Capacidad de <code>/</code> y cada mountpoint del host (<code>/var/lib/vz</code>, <code>/mnt/*</code>…)."
"gates": "Capacidad de <code>/</code> y de cada punto de montaje del host (<code>/var/lib/vz</code>, <code>/mnt/*</code>…)."
},
{
"section": "Espacio de disco — rootfs LXC",
@@ -176,105 +176,105 @@
"gates": "Disco raíz por contenedor, evaluado contra el tamaño del rootfs según PVE."
},
{
"section": "Mount points LXC",
"section": "Puntos de montaje LXC",
"warning": "85 %",
"critical": "95 %",
"gates": "Capacidad de mountpoints dentro de CTs en ejecución (mp0, mp1, NFS, bind mounts). Excluye rootfs."
"gates": "Capacidad de montajes en CT en ejecución: mp0, mp1, NFS y bind mounts. Excluye rootfs."
},
{
"section": "Almacenamiento PVE",
"warning": "85 %",
"critical": "95 %",
"gates": "Almacenamientos PVE estilo bloque (LVM, LVM-thin, ZFS-pool, RBD/Ceph, PBS)."
"gates": "Almacenamientos gestionados por PVE: LVM, LVM-thin, ZFS-pool, RBD/Ceph y PBS. No todos son backends de bloques."
},
{
"section": "Pool ZFS",
"warning": "85 %",
"critical": "95 %",
"gates": "Pools ZFS a nivel host — independiente del registro PVE."
"gates": "Pools ZFS del host, con independencia de su registro en PVE."
}
],
"defaultsTitle": "Valores por defecto, overrides y reset",
"defaultsBody": "El backend expone una vista fundida: cada sección parte de los valores por defecto de ProxMenux (los que ves cuando el host está recién hecho) y sobreescribes solo los knobs que te importan. La tarjeta muestra el valor <em>efectivo</em> — la sobreescritura si pones una, en otro caso el valor por defecto. Un botón <strong>Reset</strong> limpia cada override y vuelve a los valores por defecto en todas las secciones de una vez.",
"defaultsTitle": "Valores predeterminados, modificaciones y restablecimiento",
"defaultsBody": "Cada sección parte de los valores predeterminados y solo guardas las modificaciones necesarias. La tarjeta muestra el valor <em>efectivo</em>: tu modificación o el valor inicial. <strong>Restablecer</strong> borra todas las modificaciones y restaura los valores de todas las secciones.",
"validationTitle": "Validación",
"validationBody": "Guardar rechaza valores que no tienen sentido (porcentajes fuera de 0–100, critical por debajo de warning, temperaturas negativas). El frontend muestra el error inline; el backend valida otra vez antes de persistir, así que no se puede engañar a la API con un PUT hecho a mano para que acepte un umbral roto."
"validationBody": "Al guardar se comprueban los rangos permitidos y se rechaza Crítico por debajo de Aviso. La interfaz muestra errores y el servidor vuelve a validar las peticiones API antes de guardar."
},
"lxcDetection": {
"heading": "LXC Update Detection",
"imageAlt": "Tarjeta LXC Update Detection con un único switch — cuando está activo, el Monitor escanea periódicamente contenedores LXC Debian/Ubuntu/Alpine en ejecución buscando paquetes con update pendiente.",
"imageCaption": "El toggle para el scan periódico <code>apt list --upgradable</code> / <code>apk list -u</code> a lo largo de cada CT en ejecución. Por defecto ON. El toggle de notificación correspondiente en Notifications → Services solo aparece mientras la detección está activa.",
"intro": "Un toggle dedicado para el scan de actualizaciones LXC, situado entre Health Monitor Thresholds y la tarjeta Notifications. Cuando está ON, ProxMenux recorre cada CT en ejecución del host y consulta al gestor de paquetes dentro del contenedor por updates pendientes; los resultados aterrizan en los contadores de insignias de la pestaña Hardware y alimentan la notificación <code>lxc_updates_available</code>. Cuando está OFF, el scan se detiene por completo (sin llamadas <code>pct exec</code>) y cualquier entrada LXC existente en <code>managed_installs.json</code> se purga inmediatamente, así el panel y el endpoint <code>/api/managed-installs</code> dejan de reportar estado de update LXC sin esperar al siguiente ciclo de 24h.",
"whatRunsTitle": "Qué ejecuta realmente el scan",
"whatRunsIntro": "Para cada CT en estado <code>running</code> con un gestor de paquetes soportado:",
"heading": "Detección de actualización de LXC",
"imageAlt": "Tarjeta de detección de actualizaciones LXC con interruptor para buscar paquetes pendientes en contenedores Debian, Ubuntu y Alpine en ejecución",
"imageCaption": "Interruptor del análisis periódico con <code>apt list --upgradable</code> / <code>apk list -u</code> en los CT en ejecución. Viene activado. El interruptor de aviso en Notificaciones → Servicios aparece mientras la detección está activa.",
"intro": "El interruptor entre Umbrales y Notificaciones controla el análisis LXC. Al activarlo, consulta los gestores de paquetes de CT en ejecución; los resultados aparecen en Hardware y alimentan <code>lxc_updates_available</code>. Al desactivarlo, cesan sus llamadas <code>pct exec</code> y se eliminan las entradas LXC de <code>managed_installs.json</code>, por lo que <code>/api/managed-installs</code> deja de mostrar ese estado sin esperar 24 h.",
"whatRunsTitle": "Qué ejecuta el análisis",
"whatRunsIntro": "Para cada CT en estado <code>running</code> con un gestor de paquetes compatible:",
"whatRunsItems": [
"<strong>Gate de frescura de caché.</strong> Si la caché de metadatos apt/apk dentro del contenedor es más vieja que <strong>24 horas</strong>, primero corre un refresh best-effort (<code>apt-get update -qq</code> en Debian/Ubuntu, <code>apk update</code> en Alpine) con un timeout de 60 s. Cualquier fallo (sin red, repo roto, timeout) se traga en silencio — el listado de abajo sigue corriendo contra la caché que exista, así que un problema transitorio de repo nunca puede empeorar la detección.",
"<strong>Listing.</strong> Después ProxMenux ejecuta <code>apt list --upgradable</code> / <code>apk list -u</code> y parsea la salida en un recuento estructurado más una muestra de los nombres de paquetes top.",
"<strong>Dedup por CT.</strong> Una fingerprint construida a partir del recuento, security-count y los nombres top ordenados se almacena para que un conjunto estable de updates pendientes no re-notifique diariamente, mientras que un conjunto significativamente distinto sí lo haga."
"<strong>Actualización de metadatos.</strong> Si la caché apt/apk supera <strong>24 horas</strong>, intenta renovarla con <code>apt-get update -qq</code> en Debian/Ubuntu o <code>apk update</code> en Alpine, con límite de 60 s. Si falla, el listado usa la caché disponible y puede estar desactualizado.",
"<strong>Listado.</strong> Ejecuta <code>apt list --upgradable</code> / <code>apk list -u</code> y obtiene el número de paquetes y una muestra de sus nombres.",
"<strong>Evitar duplicados por CT.</strong> Guarda una huella del total, las actualizaciones de seguridad y los nombres ordenados para no repetir avisos diarios del mismo conjunto. Un cambio relevante sí vuelve a avisar."
],
"selfUpdateTitle": "Los CTs que se auto-actualizan fuera de apt pueden legítimamente reportar 0",
"selfUpdateBody": "La detección solo ve lo que el gestor de paquetes dentro del contenedor conoce. Un CT cuyo software clave se actualiza fuera de apt (el cron <code>plexupdate</code> de Plex, contenedores Docker actualizados vía <code>docker pull</code>, el actualizador integrado de Frigate, etc.) seguirá reportando updates apt bajos o cero aunque el appliance se mantenga al día activamente — eso es correcto, no es un bug. El sistema base a nivel apt del mismo CT puede aún tener sus propios updates pendientes, que sí saca a la luz el scan.",
"refreshTitle": "Por qué el auto-refresh de 24 h",
"refreshBody": "Los CTs appliance de larga vida con frecuencia acaban con cachés apt meses desactualizadas porque nadie ejecuta rutinariamente <code>apt update</code> dentro de ellos. Sin el refresh, <code>apt list --upgradable</code> reporta 0 updates desde una snapshot congelada y el operador nunca ve el backlog. El umbral coincide con el resto del ciclo de chequeo — si el CT se refrescó en las últimas 24 h, ProxMenux confía en esa señal y se salta el refresh.",
"toggleTitle": "Toggle de notificación condicional",
"toggleBody": "El toggle de notificación por canal <code>lxc_updates_available</code> en <strong>Notifications → Services</strong> solo se renderiza mientras la detección está activa. Cuando pones la detección en OFF, esa fila desaparece de la lista de categorías de cada canal — pero su preferencia almacenada se preserva en la DB, así que reactivar la detección trae el toggle de vuelta al valor que tenía antes.",
"purgeTitle": "Qué se purga al desactivar la detección",
"purgeBody": "Apagar el switch elimina inmediatamente cada entrada <code>type=lxc</code> de <code>/usr/local/share/proxmenux/managed_installs.json</code>. Las insignias de la pestaña Hardware caen a cero en el siguiente refresco del panel. Volver a activarlo repuebla el registro en el siguiente ciclo de detección (o antes si disparas un refresh manual desde la API)."
"selfUpdateTitle": "Los CT con actualizaciones fuera de apt pueden mostrar 0",
"selfUpdateBody": "La detección solo cubre el gestor de paquetes del CT. Software actualizado fuera de apt, como un trabajo <code>plexupdate</code> configurado o imágenes obtenidas con <code>docker pull</code>, queda fuera del recuento. Cero actualizaciones apt no demuestra que todas las aplicaciones estén al día. El sistema base del CT puede tener paquetes pendientes que sí se detectan.",
"refreshTitle": "Por qué renovar los metadatos cada 24 h",
"refreshBody": "Un CT de larga duración puede tener metadatos apt antiguos si nadie ejecuta <code>apt update</code>. Entonces <code>apt list --upgradable</code> puede omitir actualizaciones recientes. ProxMenux intenta renovarlos si tienen más de 24 horas y omite el paso si son más recientes.",
"toggleTitle": "Interruptor de aviso condicionado a la detección",
"toggleBody": "El interruptor por canal <code>lxc_updates_available</code> en <strong>Notificaciones → Servicios</strong> solo aparece con la detección activa. Al desactivarla, la fila se oculta en todos los canales. Su preferencia se conserva en la base de datos y recupera el mismo valor al reactivarla.",
"purgeTitle": "Qué se elimina al desactivar la detección",
"purgeBody": "Desactivarlo elimina de inmediato las entradas <code>type=lxc</code> de <code>/usr/local/share/proxmenux/managed_installs.json</code>. Los contadores de actualizaciones LXC de Hardware desaparecen en el siguiente refresco. Al reactivarlo, el próximo ciclo de detección repuebla el registro, o antes con una actualización manual de la API."
},
"storageExclusions": {
"heading": "Remote Storage Exclusions",
"imageAlt": "Tarjeta Remote Storage Exclusions listando almacenamientos PBS-Cloud, PBS y PBS2 con toggles Health y Alerts por fila",
"imageCaption": "Toggles <em>Health</em> y <em>Alerts</em> por almacenamiento. Los almacenamientos con ambos toggles en off dejan de contar contra el Monitor de salud y dejan de generar notificaciones — pero siguen renderizándose en la pestaña Almacenamiento marcados como excluidos.",
"intro": "Marca los almacenamientos gestionados por Proxmox (NFS / CIFS / PBS / Ceph / iSCSI / etc.) como excluidos de monitorización. Dos toggles independientes por almacenamiento:",
"heading": "Exclusiones de almacenamiento remoto",
"imageAlt": "Tarjeta de exclusiones de almacenamiento remoto con PBS-Cloud, PBS y PBS2 y controles de Estado y Alertas por fila",
"imageCaption": "Controles <em>Estado</em> y <em>Alertas</em> por almacenamiento. Con ambos desactivados, deja de participar en Health Monitor y de enviar avisos. Sigue visible en Almacenamiento, marcado como excluido.",
"intro": "Puedes excluir almacenamientos gestionados por Proxmox (NFS / CIFS / PBS / Ceph / iSCSI / etc.) con dos controles independientes:",
"items": [
"<strong>Health</strong> — cuando está off, el almacenamiento deja de contribuir a la categoría Almacenamiento del Monitor de salud. Útil para volúmenes de archivo que están intencionadamente offline la mayor parte del tiempo o destinos de backup remotos que solo se encienden a horario.",
"<strong>Alerts</strong> — cuando está off, las alertas sobre este almacenamiento dejan de salir a través de los canales configurados, aunque los chequeos Health sigan activos. Útil cuando quieres la vista del panel pero no las notificaciones."
"<strong>Estado</strong> — al desactivar este control, el almacenamiento deja de contar en la categoría Almacenamiento de Health Monitor. Útil para volúmenes de archivo habitualmente desconectados o destinos remotos de copia que solo se encienden según un horario.",
"<strong>Alertas</strong> — desactivarlo impide enviar avisos de este almacenamiento por los canales configurados, aunque los controles de estado sigan activos. Útil si quieres ver su estado en el panel sin recibir avisos."
],
"outro": "Los almacenamientos excluidos siguen renderizándose en la <link>pestaña Almacenamiento</link> con una insignia morada <em>excluded</em> para que la entrada no desaparezca silenciosamente de tu inventario. El estado se persiste en la tabla SQLite <code>excluded_storages</code>."
"outro": "Los almacenamientos excluidos siguen en la <link>pestaña Almacenamiento</link> con la insignia morada <em>excluido</em>, para mantener visible el inventario. El estado se guarda en la tabla SQLite <code>excluded_storages</code>."
},
"interfaceExclusions": {
"heading": "Network Interface Exclusions",
"imageAlt": "Tarjeta Network Interface Exclusions listando vmbr0, vmbr1, vmbr2, bond0 y eno1 con toggles Health y Alerts por interfaz",
"imageCaption": "La misma forma que Storage Exclusions — toggles <em>Health</em> y <em>Alerts</em> por interfaz. Cada fila muestra la interfaz, insignia de tipo (bridge / bond / física), la IP y la velocidad del enlace.",
"intro": "La misma forma que Storage Exclusions pero para interfaces de red. Por interfaz: excluir de los chequeos Health y/o excluir de las notificaciones. Casos de uso típicos:",
"heading": "Exclusiones de interfaz de red",
"imageAlt": "Tarjeta de exclusiones de interfaces con vmbr0, vmbr1, vmbr2, bond0 y eno1 y controles de Estado y Alertas por interfaz",
"imageCaption": "Igual que las exclusiones de almacenamiento, ofrece <em>Estado</em> y <em>Alertas</em> por interfaz. Cada fila muestra nombre, tipo (bridge / bond / física), IP y velocidad del enlace.",
"intro": "El mismo principio se aplica a las interfaces: excluir cada una de los controles de estado, de los avisos o de ambos. Ejemplos habituales:",
"items": [
"Un bridge spare intencionadamente down.",
"Una NIC que se retiró físicamente pero sigue referenciada en <code>/etc/network/interfaces</code>.",
"Una sub-interfaz VLAN usada solo durante ventanas de mantenimiento.",
"Un bridge de gestión que está up pero no lleva tráfico — flappeando ruidosamente en cada ciclo."
"Un bridge de reserva desactivado intencionadamente.",
"Una NIC retirada físicamente que aún figura en <code>/etc/network/interfaces</code>.",
"Una subinterfaz VLAN usada solo durante tareas de mantenimiento.",
"Un bridge de gestión con cambios de estado del enlace conocidos y repetidos durante el mantenimiento."
],
"outro": "El estado se persiste en la tabla SQLite <code>excluded_interfaces</code>. La misma insignia morada <em>excluded</em> en la <link>pestaña Red</link> para que las interfaces excluidas sigan visibles."
"outro": "El estado se guarda en la tabla SQLite <code>excluded_interfaces</code>. La insignia morada <em>excluida</em> de la <link>pestaña Red</link> mantiene visibles las interfaces excluidas."
},
"notifications": {
"heading": "Notificaciones e IA",
"body1": "Esta sección de la pestaña Settings es donde se activan las notificaciones de ProxMenux Monitor y el reescritor con IA. Pulsar <em>Enable Notifications</em> arranca el hilo de envío en background, registra un target de webhook de Proxmox VE en el host para que los eventos emitidos por PVE fluyan al mismo pipeline y despliega el formulario de canales para que puedas conectar Telegram, Discord, Email, Gotify y el resto. El reescritor con IA vive dentro del mismo panel como una sección avanzada colapsable.",
"body2": "Ambas superficies tienen muchas piezas en movimiento — canales, toggles por evento, mensajes Rich, el Display Name, el pipeline de envío (dedup, cooldown, agregación, quiet hours), la integración del webhook PVE, proveedores de IA, modos de prompt — y viven en sus propias páginas dedicadas en lugar de repetirse aquí:",
"body1": "Aquí se activan las notificaciones de ProxMenux Monitor y la reformulación con IA. <em>Activar notificaciones</em> inicia el proceso de envío en segundo plano, registra un destino webhook de Proxmox VE para incorporar sus eventos y abre el formulario de canales: Telegram, Discord, correo, Gotify y otros. La reformulación con IA está en una sección avanzada desplegable del mismo panel.",
"body2": "Sus opciones se explican en páginas propias: canales, controles por evento, mensajes enriquecidos, nombre visible, envío (duplicados, espera, agrupación y horario de silencio), webhook PVE, proveedores de IA y modos de instrucciones:",
"items": [
"<notifLink>Notificaciones</notifLink> — recorridos por canal (Telegram, Discord, Gotify, Email + app passwords de Gmail / Microsoft, ntfy, Slack, Teams, webhook genérico), categorías por evento, mensajes Rich, Display Name, pipeline de envío, integración del webhook PVE, historial y API.",
"<aiLink>Asistente de IA</aiLink> — proveedores (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), selección de modelo, modos de prompt (default / custom), idioma de salida, niveles de detalle por canal y sugerencias de IA."
"<notifLink>Notificaciones</notifLink>: configuración de canales (Telegram, Discord, Gotify, correo y contraseñas de aplicación de Gmail / Microsoft, ntfy, Slack, Teams y webhook genérico), categorías por evento, mensajes enriquecidos, nombre visible, envío, webhook PVE, historial y API.",
"<aiLink>Asistente de IA</aiLink>: proveedores (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelos, instrucciones predeterminadas o personalizadas, idioma de salida, detalle por canal y sugerencias de IA."
]
},
"optimizations": {
"heading": "ProxMenux Optimizations",
"intro": "Un inventario en vivo y transparente de cada optimización post-instalación de ProxMenux actualmente activa en el host. Cada vez que aplicas una opción post-instalación desde el lado Scripts — ya sea vía el <autoLink>Automated post-install</autoLink> o vía el <customLink>Customizable post-install</customLink> a la carta — el script correspondiente se registra a sí mismo en <code>/usr/local/share/proxmenux/installed_tools.json</code>. El Monitor lee ese archivo y renderiza esta tarjeta para que veas, de un vistazo, qué se ha cambiado en tu servidor.",
"imageAlt": "Tarjeta ProxMenux Optimizations con rejilla de herramientas instaladas, cada fila mostrando un punto verde, nombre de la herramienta y versión. Ejemplos incluyen APT IPv4 Force, Bashrc Customization, Fastfetch, Log2ram SSD Protection, Memory Settings Optimization, Setting persistent network interfaces, System Limits Increase, APT Language Skip, Entropy Generation haveged con insignia Legacy, Kernel Panic Configuration, Logrotate Optimization, Network Optimizations, Subscription Banner Removal, VFIO IOMMU Passthrough — 14 activas en total",
"imageCaption": "La tarjeta lista cada optimización activa con su nombre, versión, un punto coloreado y un contador naranja <em>14 active</em> arriba a la derecha. Las herramientas cuyo source es alcanzable son pulsables.",
"heading": "Optimizaciones ProxMenux",
"intro": "Inventario de optimizaciones posteriores a la instalación registradas por ProxMenux en el host. Las opciones de <autoLink>Instalación posterior automatizada</autoLink> y <customLink>Instalación posterior personalizable</customLink> registran su aplicación en <code>/usr/local/share/proxmenux/installed_tools.json</code>. Monitor usa ese registro para la tarjeta. Una entrada no comprueba de nuevo que todos los ajustes sigan intactos.",
"imageAlt": "Tarjeta de optimizaciones ProxMenux con 14 entradas: punto de color, nombre y versión. Figuran APT IPv4 Force, Bashrc Customization, Fastfetch, Log2ram SSD Protection, Memory Settings Optimization, Setting persistent network interfaces, System Limits Increase, APT Language Skip, Entropy Generation haveged con Legacy, Kernel Panic Configuration, Logrotate Optimization, Network Optimizations, Subscription Banner Removal y VFIO IOMMU Passthrough.",
"imageCaption": "Cada optimización aparece con nombre, versión y punto de color. Arriba a la derecha hay un contador naranja <em>14 activas</em>. Las herramientas con código fuente disponible se pueden abrir.",
"dotsTitle": "Qué significan los puntos",
"dotsItems": [
"<green/> <strong>Punto verde</strong> — optimización actual, registrada por la versión activa de ProxMenux. El código fuente es alcanzable: pulsa la fila para abrirlo.",
"<amber/> <strong>Punto ámbar + insignia <em>legacy</em></strong> — aplicada por una versión más vieja de ProxMenux cuyo script ha sido renombrado o reemplazado desde entonces. Sigue activa en el host; el source abre en modo \"legacy\" (con un acento ámbar) para que puedas auditar qué se ejecutó realmente."
"<green/> <strong>Punto verde</strong>: optimización registrada sin marca Legacy ni actualización indicada. Pulsa la fila si tiene código fuente disponible.",
"<amber/> <strong>Punto ámbar e insignia <em>legacy</em></strong>: optimización registrada cuyo script cambió de nombre o fue sustituido. Abre su código conservado en modo Legacy con detalles ámbar. No comprueba de nuevo la configuración actual del host."
],
"clickTitle": "Acceso al código fuente",
"clickBody": "Pulsar una herramienta abre una modal con la función bash exacta que aplicó el cambio, más la ruta del archivo de script en el que vive (<code>auto_post_install.sh</code> para el bundle Automated, <code>customizable_post_install.sh</code> para el lado à la carte). Los comentarios y constructos de shell tienen syntax highlighting; un botón Copy pone el source en tu portapapeles. Esta es la superficie \"muestra tu trabajo\" — verifica lo que ProxMenux le hizo a tu host antes de cualquier cambio manual que añadas encima.",
"detailAlt": "Modal de código fuente de herramienta para APT IPv4 Force mostrando la función bash force_apt_ipv4 desde customizable_post_install.sh versión 1.0 con código resaltado que configura /etc/apt/apt.conf.d/99-force-ipv4 con Acquire ForceIPv4 true, registra la herramienta y emite un mensaje translate APT IPv4 configuration completed",
"detailCaption": "Modal de source para <em>APT IPv4 Force</em> — función <code>force_apt_ipv4()</code> exacta de <code>customizable_post_install.sh v1.0</code>, con syntax highlighting y un Copy de un clic.",
"clickTitle": "Abrir el código fuente",
"clickBody": "Pulsar una herramienta abre su función bash asociada y el nombre del script (<code>auto_post_install.sh</code> o <code>customizable_post_install.sh</code>). Para herramientas actuales se extrae del archivo del host; las antiguas pueden usar código conservado. Hay resaltado de sintaxis y Copiar. No garantiza una copia del código exacto ejecutado al instalar.",
"detailAlt": "Ventana de código de APT IPv4 Force con la función bash force_apt_ipv4 de customizable_post_install.sh versión 1.0. El código resaltado configura /etc/apt/apt.conf.d/99-force-ipv4 con Acquire ForceIPv4 true, registra la herramienta y muestra un mensaje traducido de configuración APT IPv4 completada.",
"detailCaption": "Código de <em>APT IPv4 Force</em>: función <code>force_apt_ipv4()</code> de <code>customizable_post_install.sh v1.0</code>, con resaltado de sintaxis y copia con un clic.",
"whyTitle": "Por qué importa esto",
"whyBody": "ProxMenux cambia cosas en tu host: parámetros de kernel, configuración de repositorios, bits de red, rotación de logs, passthrough de GPU, etc. Saber exactamente qué está activo es esencial antes de empezar a añadir customización manual encima — y aún más si un admin distinto opera el host del que lo montó. Esta tarjeta es el registro auditable de cada optimización actualmente en efecto, con el código exacto que la produjo.",
"updatesTitle": "Banner Updates available",
"updatesBody": "Cuando una optimización post-instalación tiene en disco una versión más nueva que la actualmente registrada en el host, la tarjeta muestra un banner \"Updates available\" arriba con el recuento y un botón <strong>Apply</strong>. Pulsar <strong>Apply</strong> abre un selector por optimización (el mismo disponible desde la entrada <em>Apply available updates</em> del menú Post-Install). Elige qué optimizaciones aplicar; ProxMenux relanza la función correspondiente y refresca la versión en el registro. Cuando todo está al día, el banner desaparece.",
"updatesAlt": "Tarjeta ProxMenux Optimizations con un banner Updates available arriba — recuento de updates pendientes más un botón Apply que abre el selector por optimización",
"updatesCaption": "El banner solo se renderiza cuando al menos una optimización tiene una versión más nueva en disco. Mira <link>Apply Available Updates</link> para el flujo completo de update y el equivalente Path-A en el menú de la shell.",
"revertTitle": "Revertir una optimización",
"revertBody": "La tarjeta es de solo lectura — para deshacer una optimización, ejecuta la opción correspondiente <link>Uninstall Optimizations</link> del menú ProxMenux Scripts. El paso de desinstalación elimina la entrada de <code>installed_tools.json</code>, así que desaparece de esta tarjeta en el siguiente refresco."
"whyBody": "ProxMenux puede cambiar parámetros del kernel, repositorios, red, rotación de registros y passthrough de GPU. Revisa las optimizaciones registradas antes de añadir cambios manuales, sobre todo si otro administrador preparó el host. La tarjeta muestra el registro y el código disponible; no audita todos los ajustes actuales ni conserva un historial exacto de ejecución.",
"updatesTitle": "Aviso de actualizaciones disponibles",
"updatesBody": "Si la versión de una optimización disponible en disco supera la registrada en el host, aparece un aviso con el total y <strong>Aplicar</strong>. <strong>Aplicar</strong> abre un selector de optimizaciones, como <em>Aplicar actualizaciones disponibles</em> del menú posterior a la instalación. Elige cuáles actualizar: ProxMenux vuelve a ejecutar sus funciones y actualiza el registro. El aviso desaparece cuando no quedan versiones pendientes.",
"updatesAlt": "Tarjeta de optimizaciones ProxMenux con aviso de actualizaciones disponibles, número pendiente y botón Aplicar para seleccionar optimizaciones",
"updatesCaption": "El aviso aparece si al menos una optimización tiene una versión más reciente en disco. Consulta <link>Aplicar actualizaciones disponibles</link> para el proceso completo y la opción equivalente Path-A del menú de consola.",
"revertTitle": "Deshacer una optimización",
"revertBody": "Para deshacer una optimización, usa la opción correspondiente de <link>Desinstalar optimizaciones</link> en ProxMenux Scripts. Al desinstalar se elimina su entrada de <code>installed_tools.json</code> y desaparece de la tarjeta en el siguiente refresco."
},
"dataCollected": {
"heading": "Cómo se recopilan los datos",
@@ -285,22 +285,22 @@
{
"card": "Idioma de la interfaz",
"endpoint": "localStorage",
"source": "Preferencia del navegador <code>proxmenux-ui-language</code>, obtenida inicialmente del idioma del navegador cuando todavía no existe una selección guardada."
"source": "Preferencia <code>proxmenux-ui-language</code> del navegador; inicialmente usa su idioma si no hay una elección guardada."
},
{
"card": "Orden de navegación",
"endpoint": "localStorage",
"source": "Preferencia del navegador <code>proxmenux-nav-order</code>; también determina la pestaña inicial."
"source": "Preferencia <code>proxmenux-nav-order</code> del navegador; también determina la pestaña inicial."
},
{
"card": "Network Units",
"card": "Unidades de red",
"endpoint": "/api/settings",
"source": "Persistido en la tabla SQLite de settings del panel."
"source": "Guardado en la tabla de ajustes SQLite del panel."
},
{
"card": "Duraciones del Monitor de salud",
"card": "Duraciones de Health Monitor",
"endpoint": "/api/health/settings",
"source": "Duraciones de supresión por categoría en la DB de Health."
"source": "Duración de silenciamiento por categoría en la base de datos de Health Monitor."
},
{
"card": "Exclusiones de almacenamiento / interfaz",
@@ -310,17 +310,17 @@
{
"card": "Panel Notificaciones e IA",
"endpoint": "/api/notifications/*",
"source": "Mira las páginas dedicadas <notifLink>Notificaciones</notifLink> / <aiLink>Asistente de IA</aiLink>."
"source": "Consulta <notifLink>Notificaciones</notifLink> y <aiLink>Asistente de IA</aiLink>."
},
{
"card": "Lista ProxMenux Optimizations",
"card": "Lista de optimizaciones ProxMenux",
"endpoint": "/api/proxmenux/installed-tools",
"source": "Lee <code>/usr/local/share/proxmenux/installed_tools.json</code>, escrito por llamadas <code>register_tool</code> dentro de los scripts post-instalación."
"source": "Lee <code>/usr/local/share/proxmenux/installed_tools.json</code>, escrito mediante llamadas a <code>register_tool</code> en los scripts posteriores a la instalación."
},
{
"card": "Modal de código fuente de optimización",
"card": "Ventana de código de optimización",
"endpoint": "/api/proxmenux/tool-source",
"source": "Extrae la función bash correspondiente de <code>auto_post_install.sh</code> o <code>customizable_post_install.sh</code> en el host."
"source": "Extrae la función bash asociada de <code>auto_post_install.sh</code> o <code>customizable_post_install.sh</code> del host; las antiguas pueden usar código conservado."
}
]
},
@@ -330,37 +330,37 @@
{
"label": "Pestaña Apps",
"href": "/docs/monitor/dashboard/apps",
"tail": " — el lanzador cuya posición se puede cambiar desde Orden de navegación."
"tail": " — el lanzador cuya posición se cambia con Orden de navegación."
},
{
"label": "Notificaciones",
"href": "/docs/monitor/notifications",
"tail": " — canales, toggles por evento, overrides de canal, historial, test-send."
"tail": " — canales, controles por evento, ajustes particulares por canal, historial y envíos de prueba."
},
{
"label": "Asistente de IA",
"href": "/docs/monitor/ai-assistant",
"tail": " — proveedores, modelos, modos de prompt, idiomas, niveles de detalle por canal."
"tail": " — proveedores, modelos, modos de instrucciones, idiomas y detalle por canal."
},
{
"label": "Monitor de salud → Descartar alertas y la Suppression Duration",
"label": "Health Monitor → Descartar alertas y duración del silenciamiento",
"href": "/docs/monitor/health-monitor#dismissing-alerts-and-the-suppression-duration",
"tail": " — la semántica detrás de los desplegables por categoría de arriba."
"tail": " — cómo funcionan los desplegables de duración por categoría."
},
{
"label": "ProxMenux Scripts → Automated post-install",
"label": "ProxMenux Scripts → Ajustes posteriores a la instalación automatizados",
"href": "/docs/post-install/automated",
"tailRich": " y <customLink>Customizable post-install</customLink> — los scripts reales que se registran en la lista de optimizaciones de arriba."
"tailRich": " y <customLink>Ajustes posteriores a la instalación personalizables</customLink>: los scripts que registran las optimizaciones en la lista anterior."
},
{
"label": "Uninstall Optimizations",
"label": "Desinstalar optimizaciones",
"href": "/docs/post-install/uninstall",
"tail": " — cómo revertir una optimización registrada arriba."
"tail": " — cómo deshacer una optimización de la lista anterior."
},
{
"label": "Índice del panel",
"href": "/docs/monitor/dashboard",
"tail": " — volver al resumen de la pestaña."
"tail": " — volver al resumen de pestañas."
}
]
}