mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-06-01 13:04:42 +00:00
complete i18n migration to /[locale]/ with EN+ES content
Full rewrite of the docs site under app/[locale]/ with next-intl in localePrefix:"always" mode. Every page now exists at both /en/<path> and /es/<path>; the root / shows a meta-refresh + JS redirect to /<defaultLocale>/ so GitHub Pages serves something on the apex URL. Highlights: - 107 doc pages migrated to file-per-page JSON namespaces under messages/en/ and messages/es/. Spanish content is fully translated (no copy-of-English placeholders). - New documentation for the Active Suppressions section in the Settings tab and the per-event Dismiss dropdown in the Health Monitor modal. - New screenshots: dismiss-duration-dropdown.png and an updated health-suppression-settings.png. - Pagefind integrated for client-side search; index is built on every CI deploy (not committed). - RSS feeds: per-locale at /<locale>/rss.xml plus root /rss.xml for backward compat. - Removed the dead app/[locale]/guides/[slug]/ route — every guide now has its own static page and no markdown source remains. - Fixed orphan link /guides/nvidia -> /guides/nvidia-manual in docs/hardware/nvidia-host. - Removed obsolete components (footer2, calendar, drawer). Verified locally with `npm ci && npm run build`: 2804 files in out/, 231 pages indexed by pagefind, root redirect intact, both locale roots and the new Active Suppressions docs render OK.
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Cambiar canal de release | ProxMenux Documentation",
|
||||
"description": "Cambia ProxMenux entre los canales estable (main) y beta (develop) en un diálogo. Bidireccional, idempotente, ejecuta el instalador oficial para el canal elegido y normaliza el servicio del Monitor.",
|
||||
"ogTitle": "Cambiar canal de release | ProxMenux Documentation",
|
||||
"ogDescription": "Una opción de Settings para cambiar entre los canales estable y beta — sin volver a ejecutar instaladores a mano."
|
||||
},
|
||||
"header": {
|
||||
"title": "Cambiar canal de release",
|
||||
"description": "Una opción unificada de Settings para cambiar ProxMenux entre los canales estable (rama main) y beta (rama develop). La antigua \"Desactivar programa beta\" unidireccional se ha sustituido por un diálogo bidireccional que siempre ofrece ambas direcciones y ejecuta el instalador oficial del canal que elijas.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Qué ha cambiado",
|
||||
"body": "Versiones anteriores de ProxMenux exponían dos flujos separados — \"Desactivar programa beta\" (solo visible cuando beta estaba activo) y una nueva ejecución manual del instalador beta para volver a unirte. Se han fusionado en una única entrada <strong>Cambiar canal de release</strong> siempre presente, que muestra el canal actual y te deja saltar entre estable y beta en cualquier dirección."
|
||||
},
|
||||
"why": {
|
||||
"heading": "Por qué existe esta opción",
|
||||
"intro": "ProxMenux se entrega desde dos ramas git:",
|
||||
"items": [
|
||||
"<strong>Estable</strong> — la rama <code>main</code>. A donde apunta el README, lo que la mayoría de operadores quieren, con una cadencia de releases más lenta y solo cambios que ya han pasado por validación beta.",
|
||||
"<strong>Beta</strong> — la rama <code>develop</code>. Funciones nuevas y builds del Monitor; lleva el tag que la próxima release estable heredará. Algunas cosas pueden no funcionar perfectamente — ese es el trato al que te apuntas y la forma en que las funciones nuevas se prueban antes de salir."
|
||||
],
|
||||
"outro": "Saltar entre canales requería antes recordar la URL del instalador correcta, copiarla del README y editar <code>config.json</code> a mano si algo se desincronizaba. La opción unificada hace todo el flujo como una única acción guiada."
|
||||
},
|
||||
"dialog": {
|
||||
"heading": "El diálogo",
|
||||
"intro": "Desde el menú principal, <strong>Settings → Cambiar canal de release</strong>. Aparece un menú de dos líneas:",
|
||||
"options": [
|
||||
"<code>stable</code> — Estable (rama main)",
|
||||
"<code>beta</code> — Beta (rama develop)"
|
||||
],
|
||||
"behaviour": "El canal actual aparece preseleccionado y mostrado en la parte superior del menú. Elegir el mismo canal devuelve un mensaje amable de \"Este canal de release ya está activo\" — el diálogo es totalmente idempotente. Elegir un canal distinto saca una confirmación con texto específico del canal:",
|
||||
"directions": [
|
||||
"<strong>Estable → Beta:</strong> avisa de que los builds beta pueden contener bugs o funciones incompletas.",
|
||||
"<strong>Beta → Estable:</strong> avisa de que las comprobaciones de actualizaciones beta cesarán y el instalador estable reinstalará los componentes del canal estable."
|
||||
]
|
||||
},
|
||||
"confirm": {
|
||||
"heading": "Qué pasa al confirmar",
|
||||
"items": [
|
||||
"<strong>Descarga el instalador oficial</strong> del canal de destino:<ul><li>Estable: <code>install_proxmenux.sh</code> desde <code>main</code></li><li>Beta: <code>install_proxmenux_beta.sh</code> desde <code>develop</code></li></ul>Se verifica que la descarga existe y se hace ejecutable antes del siguiente paso.",
|
||||
"<strong>Ejecuta el instalador</strong> de principio a fin. El instalador es el mismo que publica el README — sin ruta propia, sin atajos. Eso significa que la detección de componentes existentes, backups de archivos, instalación de dependencias, preservación de idioma, etc. se comportan idénticamente a una instalación recién hecha del canal de destino.",
|
||||
"Al cambiar a <strong>estable</strong>, el menú poda después cualquier metadato beta sobrante de <code>config.json</code>: <code>beta_program</code>, <code>beta_version</code>, <code>install_branch</code>, <code>update_available.beta*</code> se borran, y <code>proxmenux_monitor.status = beta_updated</code> se normaliza a <code>updated</code>. El archivo sobrante <code>beta_version.txt</code> y cualquier instalador beta descargado se eliminan.",
|
||||
"Al cambiar a estable, el archivo de la unidad systemd del Monitor también se reescribe desde la plantilla estable (elimina el sufijo \"Beta\" de la descripción de la unidad, apunta <code>ExecStart</code> de vuelta al directorio de runtime) para que un <code>systemctl status</code> fresco refleje el canal en el que estás.",
|
||||
"Recarga el menú de configuración. La siguiente visita a <em>Mostrar información de versión</em> mostrará el nuevo canal."
|
||||
]
|
||||
},
|
||||
"switching": {
|
||||
"heading": "Saltar adelante y atrás",
|
||||
"intro": "Ambas direcciones pasan por el mismo instalador — <strong>no</strong> son flujos especiales de desinstalación + reinstalación. Cada dirección simplemente ejecuta el instalador propio del canal, que está diseñado para ser idempotente y seguro de reejecutar sobre una instalación existente. Consecuencias prácticas:",
|
||||
"items": [
|
||||
"Tu configuración existente, login de ProxMenux Monitor (<code>auth.json</code>), canales de notificación, registro post-instalación, umbrales personalizados — nada de eso se toca. El cambio de canal solo intercambia el árbol de scripts y el AppImage binario.",
|
||||
"Un Monitor que estaba activo antes del cambio sigue activo después; uno que estaba desactivado sigue desactivado.",
|
||||
"El <code>auth.json</code>, los tokens de API y el secreto JWT de ProxMenux Monitor se preservan entre cambios de canal. Las sesiones no se cierran.",
|
||||
"Puedes saltar de canal tantas veces como quieras — el diálogo lo aceptará cada vez y volverá a ejecutar el instalador. No hace falta reiniciar Proxmox."
|
||||
]
|
||||
},
|
||||
"feedback": {
|
||||
"heading": "Reportar incidencias desde la beta",
|
||||
"intro": "Si algo se comporta de forma inesperada mientras estás en el canal beta, abrir una incidencia con suficiente contexto es lo que cierra la brecha hacia una release estable. El reporte más útil incluye:",
|
||||
"items": [
|
||||
"Qué hiciste y qué esperabas que pasara.",
|
||||
"Cualquier mensaje de error mostrado en pantalla.",
|
||||
"Los logs relevantes del Monitor:"
|
||||
],
|
||||
"logsCommand": "journalctl -u proxmenux-monitor -n 50 --no-pager",
|
||||
"versionLine": "La versión actual de ProxMenux (Settings → <link>Mostrar información de versión</link>).",
|
||||
"issueLine": "Abre una <ghlink>incidencia en GitHub</ghlink> con esa información y llegamos al arreglo más rápido."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"intro": "Si prefieres el shell o estás scriptando el cambio de canal, el diálogo no es más que un wrapper fino sobre estos comandos:"
|
||||
},
|
||||
"unifiedCallout": {
|
||||
"title": "Por qué ahora ambas direcciones son una sola opción",
|
||||
"body": "La antigua \"Desactivar programa beta\" solo existía si el host se había unido alguna vez a la beta. Los operadores que querían <em>unirse</em> tenían que encontrar la URL del instalador beta en otro sitio; los que querían <em>salir</em> a veces tenían que limpiar manualmente los metadatos <code>beta_*</code> para asegurarse. La opción unificada <strong>Cambiar canal de release</strong> siempre aparece, hace explícito el canal actual y trata ambas direcciones como el mismo tipo de operación — ejecutable, repetible, idempotente."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"downloadTitle": "\"No se pudo descargar el instalador\"",
|
||||
"downloadBody": "HTTPS saliente a <code>raw.githubusercontent.com</code> falló. Comprueba la conectividad y el DNS desde el host:",
|
||||
"downloadCmd": "curl -fsSL -o /tmp/test https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh && head -1 /tmp/test",
|
||||
"downloadOutro": "Si esto falla fuera de ProxMenux, es un problema de red / proxy en el host.",
|
||||
"errorsTitle": "\"El instalador terminó con errores\"",
|
||||
"errorsBody": "El instalador devolvió un código de salida distinto de cero. El canal anterior y los componentes ya instalados se quedan como estaban antes del cambio. Vuelve a ejecutar la acción; si sigue fallando, ejecuta el instalador manualmente desde un shell (mira el equivalente manual de arriba) — eso te da la salida completa en lugar del resumen del diálogo.",
|
||||
"configTitle": "\"No se pudo actualizar el archivo de configuración\" tras cambiar a estable",
|
||||
"configBody": "La limpieza post-instalación de metadatos beta falló — normalmente porque <code>config.json</code> tiene un error de sintaxis por una edición manual. Valídalo:",
|
||||
"configCmd": "jq . /usr/local/share/proxmenux/config.json",
|
||||
"configOutro": "Arregla o restaura el archivo y vuelve a ejecutar la opción."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"label": "Mostrar información de versión",
|
||||
"tail": " — confirma qué canal está activo ahora."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings/proxmenux-monitor",
|
||||
"label": "ProxMenux Monitor",
|
||||
"tail": " — el servicio del Monitor que se reconstruye como parte del cambio."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings",
|
||||
"label": "Resumen de Settings",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Cambiar idioma | ProxMenux Documentation",
|
||||
"description": "Cambia la UI de ProxMenux entre inglés, español, francés, alemán, italiano o portugués. Solo instalación con traducción — usa googletrans + una tabla de traducción precacheada. El menú se recarga automáticamente con el nuevo idioma.",
|
||||
"ogTitle": "Cambiar idioma | ProxMenux Documentation",
|
||||
"ogDescription": "Elige el idioma de la interfaz de ProxMenux desde el menú Settings. Seis idiomas soportados."
|
||||
},
|
||||
"header": {
|
||||
"title": "Cambiar idioma",
|
||||
"description": "Cambia la UI de ProxMenux entre seis idiomas soportados. Guarda la elección en config.json y vuelve a ejecutar el menú con el nuevo idioma. Solo disponible en el tipo de instalación con traducción — la instalación normal (ligera) es solo en inglés por diseño.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Qué es esto",
|
||||
"body": "Un menú de diálogo que lista los seis idiomas soportados. Elige uno, ProxMenux lo guarda en <code>config.json</code> como <code>.language</code>, después vuelve a ejecutar <code>config_menu.sh</code> para que el nuevo idioma surta efecto inmediatamente."
|
||||
},
|
||||
"warn": {
|
||||
"title": "Solo instalación con traducción",
|
||||
"body": "Esta opción solo aparece en Settings si pasan ambas comprobaciones: existe <code>/opt/googletrans-env/bin/activate</code> (venv de Python con googletrans) <em>y</em> <code>config.json</code> tiene un <code>.language</code> no vacío. En la instalación normal (solo inglés) ninguno está presente y el selector de idioma no se muestra."
|
||||
},
|
||||
"supported": {
|
||||
"heading": "Idiomas soportados",
|
||||
"headerCode": "Código",
|
||||
"headerLang": "Idioma",
|
||||
"headerNotes": "Notas",
|
||||
"rows": [
|
||||
{
|
||||
"code": "en",
|
||||
"lang": "Inglés",
|
||||
"notes": "Idioma fuente — el más preciso"
|
||||
},
|
||||
{
|
||||
"code": "es",
|
||||
"lang": "Español",
|
||||
"notes": "Cacheado + autotraducido"
|
||||
},
|
||||
{
|
||||
"code": "fr",
|
||||
"lang": "Francés",
|
||||
"notes": "Cacheado + autotraducido"
|
||||
},
|
||||
{
|
||||
"code": "de",
|
||||
"lang": "Alemán",
|
||||
"notes": "Cacheado + autotraducido"
|
||||
},
|
||||
{
|
||||
"code": "it",
|
||||
"lang": "Italiano",
|
||||
"notes": "Cacheado + autotraducido"
|
||||
},
|
||||
{
|
||||
"code": "pt",
|
||||
"lang": "Portugués",
|
||||
"notes": "Cacheado + autotraducido"
|
||||
}
|
||||
]
|
||||
},
|
||||
"englishTip": {
|
||||
"title": "El inglés es el más preciso",
|
||||
"body": "Las cadenas en otros idiomas se producen mediante una tabla precacheada sembrada desde googletrans. Cadenas de casos límite (opciones que se disparan raramente, añadidos recientes) pueden caer en una llamada en vivo a googletrans o en el original inglés. Si una traducción no encaja, el inglés es siempre la fuente de verdad."
|
||||
},
|
||||
"underHood": {
|
||||
"heading": "Cómo funciona por dentro",
|
||||
"items": [
|
||||
"El menú de diálogo lista los 6 códigos; eliges uno.",
|
||||
"Si <code>config.json</code> existe: <code>jq --arg lang \"$new_language\" '.language = $lang'</code> actualiza el campo en sitio.",
|
||||
"Si <code>config.json</code> no existe: se crea uno nuevo con el código de idioma en un objeto de un solo campo.",
|
||||
"Diálogo de confirmación: <em>\"Idioma cambiado a <code>\"</em>.",
|
||||
"<code>exec bash config_menu.sh</code> recarga el menú Settings con el nuevo idioma activo."
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"noOptionTitle": "La opción no aparece en Settings",
|
||||
"noOptionBody": "Estás en la instalación normal (solo inglés). Para obtener soporte de idiomas, reinstala ProxMenux eligiendo la opción de instalación con traducción (trae venv de Python + googletrans).",
|
||||
"stillEnglishTitle": "Cambié de idioma pero la UI sigue mostrando inglés",
|
||||
"stillEnglishBody": "El menú se vuelve a ejecutar tras el cambio. Si abriste un shell nuevo y arrancaste un entrypoint distinto de ProxMenux, ejecuta <code>menu</code> de nuevo para tomar el nuevo idioma. Confirma: <code>jq -r '.language' /usr/local/share/proxmenux/config.json</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"label": "Mostrar información de versión",
|
||||
"tail": " — confirma el tipo de instalación y el idioma actual."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings",
|
||||
"label": "Resumen de Settings",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Settings de ProxMenux — Activación del Monitor, canal de release, idiomas | ProxMenux",
|
||||
"description": "Menú de configuración de ProxMenux: activación de ProxMenux Monitor y conmutador del servicio, restablecer contraseña del Monitor, cambiar canal de release entre estable y beta, selección de idioma (instalación con traducción), información de versión y desinstalación. Las opciones aparecen condicionalmente según lo que esté instalado y activo.",
|
||||
"ogTitle": "Settings de ProxMenux — Activación del Monitor, canal de release, idiomas",
|
||||
"ogDescription": "Configura ProxMenux — servicio del Monitor, canal de release, idioma, info de versión y desinstalación.",
|
||||
"twitterTitle": "Settings de ProxMenux",
|
||||
"twitterDescription": "Activación del Monitor, cambio de canal de release, idiomas, info de versión y desinstalación."
|
||||
},
|
||||
"header": {
|
||||
"title": "Settings",
|
||||
"description": "Menú de configuración de ProxMenux. Lista lo que está instalado, te deja conmutar el servicio del Monitor, restablecer la contraseña de login del Monitor, cambiar entre canales de release estable y beta en cualquier dirección, cambiar el idioma de la UI (solo instalación con traducción) y proporciona un desinstalador limpio. Las opciones aparecen condicionalmente — lo que ves depende de tu tipo de instalación y del estado actual.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Para qué sirve este menú",
|
||||
"body": "Auto-administración del propio ProxMenux: servicio del Monitor, salida del canal beta, idioma, diagnósticos de versión y el desinstalador. Nada en este menú toca tus VMs, contenedores ni almacenamiento."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir el menú",
|
||||
"body": "Desde el menú principal de ProxMenux, pulsa <kbd>s</kbd>. Las opciones mostradas dependen de tu tipo de instalación y de lo que esté actualmente activo:",
|
||||
"imageAlt": "Menú Settings de ProxMenux con opciones condicionales según el tipo de instalación y el estado de los componentes"
|
||||
},
|
||||
"installTypes": {
|
||||
"heading": "Dos tipos de instalación, menús distintos",
|
||||
"intro": "ProxMenux se entrega en dos sabores. El menú Settings se adapta al que tengas:",
|
||||
"headerType": "Tipo de instalación",
|
||||
"headerBundles": "Qué incluye",
|
||||
"headerMenu": "El menú muestra",
|
||||
"rows": [
|
||||
{
|
||||
"type": "Con traducción",
|
||||
"bundles": "venv de Python + googletrans + configuración multi-idioma",
|
||||
"menuRich": "<strong>Cambiar idioma</strong> + Mostrar versión + Desinstalar"
|
||||
},
|
||||
{
|
||||
"type": "Normal (ligera)",
|
||||
"bundles": "Solo inglés, sin venv, huella menor",
|
||||
"menu": "Mostrar versión + Desinstalar (sin selector de idioma)"
|
||||
}
|
||||
],
|
||||
"detectionTitle": "La detección es automática",
|
||||
"detectionBody": "El script comprueba <code>/opt/googletrans-env/bin/activate</code> y una clave <code>language</code> no vacía en <code>config.json</code>. Ambas presentes → instalación con traducción. Falta alguna → instalación normal. No eliges; el menú se adapta."
|
||||
},
|
||||
"options": {
|
||||
"heading": "Opciones del menú",
|
||||
"intro": "Cinco herramientas. Los badges de <em>Condicional</em> significan que la opción solo aparece cuando se cumple el prerrequisito (Monitor instalado; programa beta activo; instalación con traducción).",
|
||||
"list": [
|
||||
{
|
||||
"icon": "Activity",
|
||||
"href": "/docs/settings/proxmenux-monitor",
|
||||
"title": "ProxMenux Monitor",
|
||||
"description": "Activa / desactiva la unidad systemd proxmenux-monitor.service, comprueba su estado actual y restablece la contraseña de login del panel si se ha perdido. UI web disponible en TCP 8008.",
|
||||
"badge": "Condicional"
|
||||
},
|
||||
{
|
||||
"icon": "TestTube",
|
||||
"href": "/docs/settings/beta-program",
|
||||
"title": "Cambiar canal de release",
|
||||
"description": "Cambia entre estable (main) y beta (develop) en cualquier dirección desde un único diálogo. Ejecuta el instalador oficial para el canal elegido; idempotente y siempre visible.",
|
||||
"badge": "Siempre disponible"
|
||||
},
|
||||
{
|
||||
"icon": "Info",
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"title": "Mostrar información de versión",
|
||||
"description": "Versión de ProxMenux, tipo de instalación, componentes instalados, rutas de archivos, estado del entorno virtual e idioma actual."
|
||||
},
|
||||
{
|
||||
"icon": "Trash2",
|
||||
"href": "/docs/settings/uninstall-proxmenux",
|
||||
"title": "Desinstalar ProxMenux",
|
||||
"description": "Elimina ProxMenux y (opcionalmente) sus dependencias. También restaura los backups de /root/.bashrc y /etc/motd creados en el momento de la instalación."
|
||||
}
|
||||
]
|
||||
},
|
||||
"configTip": {
|
||||
"title": "Dónde vive la configuración",
|
||||
"bodyRich": "La mayor parte del estado gestionado por este menú vive en <code>/usr/local/share/proxmenux/config.json</code> — <code>language</code>, <code>beta_program.status</code> y flags de instalación por componente. El estado del servicio del Monitor vive en systemd (<code>proxmenux-monitor.service</code>), no aquí. La versión se lee de <code>/usr/local/share/proxmenux/version.txt</code>."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor | ProxMenux Documentation",
|
||||
"description": "Activa o desactiva la unidad systemd proxmenux-monitor.service e inspecciona su estado actual. El Monitor expone una UI web en TCP 8008 para monitorización visual del host.",
|
||||
"ogTitle": "ProxMenux Monitor | ProxMenux Documentation",
|
||||
"ogDescription": "Conmuta el servicio systemd proxmenux-monitor y comprueba su estado desde el menú Settings."
|
||||
},
|
||||
"header": {
|
||||
"title": "ProxMenux Monitor",
|
||||
"description": "Dos acciones relacionadas dentro del menú Settings: conmutar la unidad systemd proxmenux-monitor.service (start / stop y enable / disable en un clic) y ver su estado detallado actual. El Monitor expone una UI web en TCP 8008 para monitorización visual del host.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"intro": {
|
||||
"title": "¿Qué es ProxMenux Monitor?",
|
||||
"body": "ProxMenux Monitor es un panel web integrado que proporciona visibilidad en tiempo real de tu infraestructura Proxmox — accesible desde cualquier navegador en tu red, sin necesidad de terminal."
|
||||
},
|
||||
"offers": {
|
||||
"heading": "Qué ofrece",
|
||||
"items": [
|
||||
"Monitorización en tiempo real de CPU, RAM, uso de disco y tráfico de red.",
|
||||
"Resumen de VMs y contenedores LXC en ejecución con indicadores de estado.",
|
||||
"Autenticación de login para proteger el acceso.",
|
||||
"Autenticación de dos factores (2FA) con soporte TOTP.",
|
||||
"Soporte para proxy inverso (Nginx / Traefik).",
|
||||
"Diseñado para funcionar tanto en escritorio como en dispositivos móviles."
|
||||
]
|
||||
},
|
||||
"access": {
|
||||
"heading": "Acceso",
|
||||
"intro": "Una vez instalado, el panel está disponible en:",
|
||||
"url": "http://<your-proxmox-ip>:8008",
|
||||
"outro": "El Monitor se instala automáticamente como parte de la instalación estándar de ProxMenux y corre como un servicio systemd (<code>proxmenux-monitor.service</code>) que arranca automáticamente al iniciar."
|
||||
},
|
||||
"warnConditional": {
|
||||
"title": "Las opciones de Settings solo son visibles cuando el Monitor está instalado",
|
||||
"body": "Las dos entradas de menú descritas debajo solo aparecen en Settings si <code>proxmenux-monitor.service</code> está registrado en systemd. Si no las ves, el Monitor no se instaló (es opcional durante la instalación de ProxMenux). Para añadirlo más tarde, reinstala ProxMenux con la última versión y elige la opción de Monitor."
|
||||
},
|
||||
"toggle": {
|
||||
"heading": "Activar / Desactivar",
|
||||
"intro": "La primera entrada de menú es un único conmutador que alterna entre dos estados según si el servicio está actualmente corriendo:",
|
||||
"headerState": "Estado actual",
|
||||
"headerLabel": "Etiqueta del menú mostrada",
|
||||
"headerAction": "Acción al confirmar",
|
||||
"rows": [
|
||||
{
|
||||
"state": "active",
|
||||
"label": "Desactivar ProxMenux Monitor",
|
||||
"action": "systemctl stop + disable"
|
||||
},
|
||||
{
|
||||
"state": "inactive",
|
||||
"label": "Activar ProxMenux Monitor",
|
||||
"action": "systemctl enable + start"
|
||||
}
|
||||
],
|
||||
"outro": "Cada conmutación requiere un diálogo explícito sí/no antes de ejecutarse. Activar / Desactivar es simétrico: desactivar para el servicio <em>y</em> deshabilita el auto-arranque al iniciar; activar habilita el auto-arranque <em>y</em> arranca el servicio inmediatamente."
|
||||
},
|
||||
"status": {
|
||||
"heading": "Mostrar estado del servicio del Monitor",
|
||||
"intro": "La segunda entrada de menú es de solo lectura. Limpia la pantalla, muestra el logo de ProxMenux y el título <em>\"ProxMenux Monitor Service Verification\"</em>, después reporta:",
|
||||
"items": [
|
||||
"<strong>Estado del servicio:</strong> active, inactive o not_installed.",
|
||||
"<strong>URL de la UI web</strong> (solo cuando está activo): <code>http://<host_ip>:8008</code> — derivado de <code>hostname -I | awk '''{print $1}'''</code>.",
|
||||
"<strong>Salida detallada de systemd:</strong> <code>systemctl status proxmenux-monitor.service --no-pager -l</code> — muestra líneas de log recientes, ExecStart, MainPID, etc."
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"title": "Equivalentes manuales",
|
||||
"intro": "Desde cualquier shell:",
|
||||
"code": "systemctl status proxmenux-monitor.service # detailed status\nsystemctl is-active proxmenux-monitor.service # one-word status\nsystemctl enable --now proxmenux-monitor.service # enable + start\nsystemctl disable --now proxmenux-monitor.service # stop + disable\njournalctl -u proxmenux-monitor.service -f # follow live logs"
|
||||
},
|
||||
"reset": {
|
||||
"heading": "Restablecer contraseña del Monitor",
|
||||
"intro": "Ruta de recuperación para el operador que perdió la contraseña del panel (o el dispositivo 2FA). La opción solo aparece cuando el Monitor está instalado en el host. Al seleccionarla:",
|
||||
"items": [
|
||||
"Pide confirmación con un diálogo sí/no — la acción es destructiva para las credenciales de login.",
|
||||
"Hace backup del <code>/root/.config/proxmenux-monitor/auth.json</code> existente a <code>auth.json.bak-<UTC timestamp></code> (modo <code>0600</code>) para que el estado previo se pueda restaurar manualmente si el reset fue un error.",
|
||||
"Para el servicio <code>proxmenux-monitor</code> para que la edición en disco no compita con un login en vuelo.",
|
||||
"Limpia los campos de identidad en <code>auth.json</code>: <code>enabled=false</code>, <code>configured=false</code>, vacía <code>username</code>, <code>password_hash</code>, <code>totp_secret</code> y el array de códigos de backup.",
|
||||
"<strong>Preserva</strong> el <code>jwt_secret</code> y los <code>api_tokens</code> / <code>revoked_tokens</code> registrados — para que los tokens de API de larga vida usados por Home Assistant u otros scripts <em>sigan autenticando</em> tras el reset.",
|
||||
"Reinicia el servicio. La siguiente visita a <code>http://<host>:8008</code> muestra el asistente de configuración de primer lanzamiento para que se pueda crear una nueva cuenta de administrador."
|
||||
],
|
||||
"preservedTitle": "Qué sobrevive al reset, qué no",
|
||||
"preservedBody": "<strong>Borrado:</strong> nombre de usuario, hash de contraseña, secreto TOTP de 2FA, códigos de backup. <strong>Preservado:</strong> <code>jwt_secret</code>, metadatos de <code>api_tokens</code>, lista de <code>revoked_tokens</code>. Si quieres activamente invalidar también todo token de API existente (pizarra limpia total), borra <code>auth.json</code> manualmente en lugar de usar esta opción de menú — el siguiente arranque del servicio regenera el secreto JWT y todo lo demás desde cero.",
|
||||
"trustTitle": "El acceso al host físico es el ancla de confianza",
|
||||
"trustBody": "Esta ruta de reset requiere shell root en el host. Cualquiera que pueda ejecutar el comando <code>menu</code> como root ya controla la máquina, así que darle la recuperación de contraseña no es una escalada de privilegios — es coherente con cómo funciona cualquier otra herramienta de administración en Proxmox. El corolario: el login del Monitor no protegerá nada de alguien a quien ya hayas dejado entrar al shell de Proxmox.",
|
||||
"seeAlso": "Mira también <link>Monitor → Access y Auth → Recuperar una contraseña perdida</link> para el mismo flujo descrito desde el lado del panel, además del contexto más amplio sobre cómo se hashean las contraseñas y cómo se genera el secreto JWT."
|
||||
},
|
||||
"files": {
|
||||
"heading": "Archivos implicados",
|
||||
"code": "/etc/systemd/system/proxmenux-monitor.service # systemd unit\n/root/.config/proxmenux-monitor/ # runtime config dir\n/var/log/proxmenux-auth.log # Flask app auth log\n # (read by Fail2Ban [proxmenux] jail)"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"missingTitle": "Ambas opciones del menú faltan",
|
||||
"missingBody": "El Monitor no está registrado en systemd. Confirma con <code>systemctl list-unit-files | grep proxmenux-monitor</code> — si no hay salida, reinstala ProxMenux desde el instalador oficial con la última versión y elige la opción de Monitor durante la instalación.",
|
||||
"unreachableTitle": "Servicio activado pero la URL es inalcanzable",
|
||||
"unreachableBody": "La salida del estado en Settings te da la IP. Confirma:",
|
||||
"unreachableCmd": "ss -tlnp | grep 8008 # is anything listening?\njournalctl -u proxmenux-monitor -n 100 --no-pager # recent errors\ncurl -sI http://localhost:8008 # local reachability",
|
||||
"unreachableOutro": "Si localhost funciona pero el externo no, comprueba el firewall del host (<code>pve-firewall</code> o nftables) para TCP 8008 entrante.",
|
||||
"stopsTitle": "Activé el servicio pero se para solo unos segundos después",
|
||||
"stopsBody": "Lo más habitual es un conflicto de puerto (algo más en 8008) o una comprobación de dependencias fallando. El journal lo dirá: <code>journalctl -u proxmenux-monitor.service -b</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/security/fail2ban",
|
||||
"label": "Fail2Ban",
|
||||
"tailRich": " — el jail <code>[proxmenux]</code> protege el Monitor en TCP 8008."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings",
|
||||
"label": "Resumen de Settings",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Mostrar información de versión | ProxMenux Documentation",
|
||||
"description": "Autodiagnóstico de ProxMenux de solo lectura: número de versión, tipo de instalación (con traducción / normal), componentes instalados desde config.json, rutas de archivos, estado del entorno virtual e idioma actual.",
|
||||
"ogTitle": "Mostrar información de versión | ProxMenux Documentation",
|
||||
"ogDescription": "Volcado de diagnóstico de versión de ProxMenux, tipo de instalación, componentes, archivos e idioma."
|
||||
},
|
||||
"header": {
|
||||
"title": "Mostrar información de versión",
|
||||
"description": "Diagnóstico de solo lectura. Lee version.txt, config.json y unas pocas rutas de archivos conocidas, después renderiza un cuadro de texto desplazable con la versión, tipo de instalación, componentes instalados, presencia de archivos, estado del entorno virtual e idioma actual.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Qué es esto",
|
||||
"body": "Un autodiagnóstico. Útil al reportar una incidencia (pega el contenido del diálogo en el reporte del bug) o para confirmar que una instalación se completó limpiamente. No modifica nada."
|
||||
},
|
||||
"reports": {
|
||||
"heading": "Qué reporta",
|
||||
"headerSection": "Sección",
|
||||
"headerSource": "Origen",
|
||||
"headerContent": "Contenido",
|
||||
"rows": [
|
||||
{
|
||||
"section": "Versión actual",
|
||||
"source": "version.txt",
|
||||
"contentRich": "Número de versión de una sola línea; <code>Unknown</code> si el archivo falta"
|
||||
},
|
||||
{
|
||||
"section": "Tipo de instalación",
|
||||
"source": "comprobaciones de venv + config.json",
|
||||
"content": "Con traducción (multi-idioma) o Normal (solo inglés)"
|
||||
},
|
||||
{
|
||||
"section": "Componentes instalados",
|
||||
"source": "config.json",
|
||||
"content": "Estado por componente (✓ instalado / creado / actualizado, ✗ faltante)"
|
||||
},
|
||||
{
|
||||
"section": "Archivos de ProxMenux",
|
||||
"source": "comprobaciones del sistema de archivos",
|
||||
"contentRich": "Presencia y rutas de <code>menu</code>, <code>utils.sh</code>, <code>config.json</code>, <code>version.txt</code>"
|
||||
},
|
||||
{
|
||||
"section": "Entorno virtual",
|
||||
"source": "/opt/googletrans-env",
|
||||
"content": "Solo instalación con traducción — presencia de venv + pip"
|
||||
},
|
||||
{
|
||||
"section": "Idioma actual",
|
||||
"source": "config.json",
|
||||
"contentRich": "Con traducción: código de idioma desde <code>.language</code>; Normal: <code>English (Fixed)</code>"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sampleHeading": "Salida de ejemplo",
|
||||
"manualHeading": "Equivalentes manuales",
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"unknownTitle": "La versión muestra \"Unknown\"",
|
||||
"unknownBody": "<code>/usr/local/share/proxmenux/version.txt</code> falta o no es legible. Lo más habitual es por una instalación parcial. Reinstala desde la fuente oficial de ProxMenux.",
|
||||
"noConfigTitle": "No hay información de instalación disponible",
|
||||
"noConfigBody": "<code>config.json</code> falta. El script no puede enumerar los componentes sin él. Reinstala para regenerarlo.",
|
||||
"wrongStatusTitle": "Un componente muestra ✗ y estoy seguro de haberlo instalado",
|
||||
"wrongStatusBody": "Significa que <code>config.json</code> no registra ese componente como instalado — podría ser un script que aún no se registra a sí mismo, o una instalación manual que se saltó ProxMenux. El diálogo refleja lo que dice <code>config.json</code>, no lo que hay realmente en disco."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/settings/uninstall-proxmenux",
|
||||
"label": "Desinstalar ProxMenux",
|
||||
"tail": " — elimina todos estos archivos."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings",
|
||||
"label": "Resumen de Settings",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Desinstalar ProxMenux | ProxMenux Documentation",
|
||||
"description": "Desinstalador limpio de ProxMenux con eliminación opcional de dependencias (jq, dialog, python3-*) y restauración automática de los backups de /root/.bashrc y /etc/motd creados en el momento de la instalación. También elimina el servicio proxmenux-monitor si está presente.",
|
||||
"ogTitle": "Desinstalar ProxMenux | ProxMenux Documentation",
|
||||
"ogDescription": "Elimina limpiamente ProxMenux de un host Proxmox con limpieza opcional de dependencias."
|
||||
},
|
||||
"header": {
|
||||
"title": "Desinstalar ProxMenux",
|
||||
"description": "Elimina ProxMenux del host Proxmox con un flujo interactivo: confirmación, eliminación opcional de dependencias, limpieza del servicio ProxMenux Monitor, restauración de los backups de /root/.bashrc y /etc/motd. Muestra una barra de progreso todo el tiempo.",
|
||||
"section": "Settings"
|
||||
},
|
||||
"scopeWarn": {
|
||||
"title": "Afecta solo a la instalación de ProxMenux — no a tus VMs / CTs / almacenamiento",
|
||||
"body": "Desinstalar ProxMenux elimina los scripts de ProxMenux, el lanzador del menú, el servicio opcional Monitor y cualquier backup que ProxMenux hizo de archivos del sistema cuando lo instalaste. <strong>No toca tus VMs, contenedores, almacenamiento, configuración de red, Fail2Ban, driver NVIDIA ni nada más que hayas instalado vía ProxMenux.</strong> Esas cosas se quedan como están."
|
||||
},
|
||||
"flow": {
|
||||
"heading": "El flujo de desinstalación",
|
||||
"items": [
|
||||
"<strong>Diálogo de confirmación.</strong> Sí/no — \"¿Seguro que quieres desinstalar ProxMenux?\"",
|
||||
"<strong>Checklist de eliminación de dependencias.</strong> La lista preseleccionada depende del tipo de instalación (mira la tabla de abajo). Todas las casillas por defecto en OFF — te apuntas a eliminar cada dependencia.",
|
||||
"<strong>La eliminación corre con una barra de progreso.</strong> Elimina el venv (solo instalación con traducción), el lanzador <code>menu</code>, el árbol <code>/usr/local/share/proxmenux/</code>, el servicio ProxMenux Monitor si está presente, las dependencias que marcaste y, por último, restaura los backups de archivos del sistema (mira abajo).",
|
||||
"<strong>Diálogo de finalización.</strong> Lista las dependencias eliminadas y sale."
|
||||
]
|
||||
},
|
||||
"deps": {
|
||||
"heading": "Eliminación de dependencias: qué se ofrece",
|
||||
"intro": "La checklist depende del tipo de instalación. <strong>Ninguna casilla está marcada por defecto</strong> — son paquetes de todo el sistema que otras aplicaciones podrían usar, así que el valor por defecto más seguro es dejarlos.",
|
||||
"headerType": "Tipo de instalación",
|
||||
"headerOffered": "Se ofrece para eliminar",
|
||||
"rows": [
|
||||
{
|
||||
"type": "Con traducción",
|
||||
"offeredRich": "<code>python3-venv</code>, <code>python3-pip</code>, <code>python3</code>, <code>jq</code>"
|
||||
},
|
||||
{
|
||||
"type": "Normal",
|
||||
"offeredRich": "<code>dialog</code>, <code>jq</code>"
|
||||
}
|
||||
],
|
||||
"warnTitle": "Paquetes de todo el sistema — piénsalo dos veces",
|
||||
"warnBody": "<code>python3</code>, <code>jq</code> y <code>dialog</code> los usan habitualmente otras herramientas (incluyendo el propio Proxmox en algunos flujos). Eliminar <code>python3</code> en particular puede romper helpers de Proxmox, utilidades de Ceph y muchos scripts de terceros. Déjalos a menos que estés seguro de que nada más los necesita."
|
||||
},
|
||||
"removed": {
|
||||
"heading": "Qué se elimina",
|
||||
"code": "/usr/local/bin/menu # the launcher\n/usr/local/share/proxmenux/ # everything: scripts, config, cache, version\n/opt/googletrans-env/ # virtual env (Translation install only)\n/etc/systemd/system/proxmenux-monitor.service # Monitor service unit\n/root/.config/proxmenux-monitor/ # Monitor config dir\n # + dependencies you ticked in the checklist"
|
||||
},
|
||||
"restored": {
|
||||
"heading": "Qué se restaura",
|
||||
"items": [
|
||||
"Si <code>/root/.bashrc.bak</code> existe → se renombra de vuelta a <code>/root/.bashrc</code> (tu bashrc original vuelve).",
|
||||
"Si <code>/etc/motd.bak</code> existe → se renombra de vuelta a <code>/etc/motd</code>. Si no, la línea de ProxMenux (<em>\"This system is optimised by: ProxMenux\"</em>) se elimina del motd existente con sed."
|
||||
]
|
||||
},
|
||||
"othersCallout": {
|
||||
"title": "Otros componentes instalados por ProxMenux se quedan",
|
||||
"body": "Cualquier cosa que ProxMenux instaló vía otros menús — Fail2Ban, Lynis, drivers NVIDIA, ajustes post-instalación — <strong>no</strong> la toca este desinstalador. Cada uno tiene su propio flujo de desinstalación dentro de su menú correspondiente (o puedes eliminarlo con apt directamente). Mira <em>Mostrar información de versión</em> primero para ver qué hay registrado."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Desinstalación manual",
|
||||
"intro": "Si por alguna razón el desinstalador del menú no se puede ejecutar (p. ej. <code>dialog</code> ya falta), la secuencia manual equivalente:",
|
||||
"code": "# 1. Stop and remove the Monitor service (if installed)\nsystemctl stop proxmenux-monitor.service 2>/dev/null\nsystemctl disable proxmenux-monitor.service 2>/dev/null\nrm -f /etc/systemd/system/proxmenux-monitor.service\nrm -rf /root/.config/proxmenux-monitor\nsystemctl daemon-reload\nsystemctl reset-failed 2>/dev/null\n\n# 2. Remove the venv (Translation install only)\nrm -rf /opt/googletrans-env\n\n# 3. Remove ProxMenux files\nrm -f /usr/local/bin/menu\nrm -rf /usr/local/share/proxmenux\n\n# 4. Restore backups\n[ -f /root/.bashrc.bak ] && mv /root/.bashrc.bak /root/.bashrc\n[ -f /etc/motd.bak ] && mv /etc/motd.bak /etc/motd \\\n || sed -i '/This system is optimised by: ProxMenux/d' /etc/motd"
|
||||
},
|
||||
"reinstall": {
|
||||
"heading": "Reinstalar más tarde",
|
||||
"body": "Ejecuta el instalador oficial de ProxMenux otra vez. Elige con traducción o normal como prefieras — la elección es independiente de lo que tuvieses antes."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"hangTitle": "La desinstalación se queda colgada en \"Removing googletrans and virtual environment\"",
|
||||
"hangBody": "<code>pip uninstall</code> puede atascarse si pip no responde. Desde otro shell: <code>rm -rf /opt/googletrans-env</code> directamente (el script hace lo mismo como fallback tras pip).",
|
||||
"aptTitle": "apt avisa de paquetes aún en uso durante la eliminación de dependencias",
|
||||
"aptBody": "Esperado si marcaste <code>python3</code> o <code>jq</code> mientras otras cosas en el host dependen de ellos. El <code>autoremove</code> de apt se negará a eliminarlos en ese caso (que es el comportamiento seguro). Desmarca esa dependencia y vuelve a ejecutar.",
|
||||
"motdTitle": "El MOTD sigue mostrando la línea de ProxMenux tras desinstalar",
|
||||
"motdBody": "O no existía <code>/etc/motd.bak</code> y la limpieza con sed no coincidió (p. ej. la línea fue modificada). Edita <code>/etc/motd</code> a mano y elimina cualquier línea sobrante de ProxMenux."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"label": "Mostrar información de versión",
|
||||
"tail": " — mira lo que se eliminaría antes de desinstalar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/settings",
|
||||
"label": "Resumen de Settings",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user