ProxMenux 1.2.8: release notes, changelog, image and version

This commit is contained in:
MacRimi
2026-11-01 10:55:07 +01:00
parent 2327f96479
commit ac2bd28d25
18 changed files with 306 additions and 69 deletions
+49 -45
View File
@@ -18,6 +18,35 @@ interface ReleaseNote {
} }
export const CHANGELOG: Record<string, ReleaseNote> = { export const CHANGELOG: Record<string, ReleaseNote> = {
"1.2.8": {
date: "November 1, 2026",
changes: {
added: [
"Custom image installs Compose files with several services, one LXC per service on a private network (contributed by @jcastro).",
"OCI: a VLAN tag for the access interface (requested by @xistoso), and Ollama and llama.cpp on Intel and AMD integrated GPUs.",
"Seventeen new OCI applications, among them Authentik, TeslaMate, Zigbee2MQTT, Umami, Scrypted and NetAlertX (contributed by @jcastro) and Scanopy (suggested by @gabglus).",
"Proxmox updates run as a job on the server and carry on after signing out, and a pending reboot is shown after a new kernel (contributed by @Vaso73).",
"ZFS pool layout, scrub and device health, and the storage controller of each disk (contributed by @DrOwl).",
"VM disk thresholds in Settings (suggested by @byte21516), and an optional API key for local Ollama.",
],
changed: [
"Variables added or changed in Proxmox stay in an OCI container: they are saved in its oci-compose and the update carries on with them, manual or scheduled, on single applications and on every member of a stack.",
"OCI updates keep the rest of what is changed in Proxmox: start command, network options, DNS, hostname, features, protection, disk sizes and lxc.* lines.",
"Log2RAM 2.0: the journal and the task logs of Proxmox stay on disk with their history (reported by @shtefko).",
"Every disk is monitored unless it is excluded in Settings (reported by @ovikiss and @peterurbanec).",
"A service reloading or restarting counts as running, and nothing is concluded during a package update (reported by @Joshua1264).",
],
fixed: [
"Host backup jobs run on their schedule, and updating ProxMenux repairs saved jobs.",
"The Intel GPU view ends intel_gpu_top with each reading (reported by @FromTheCToTheG).",
"VM disk usage counts every filesystem of the guest (fix proposed by @TheFoxCraft).",
"The LVM check keeps the Proxmox filter (reported by @osipovdm-dot), and Secure Gateway installs on BTRFS hosts (reported by @78v5).",
"The Monitor installs as an app (PWA) from the browser, with its own web app manifest and service worker.",
"A disk I/O error is recorded on its disk.",
"The Y-axis titles stay inside the overview charts (contributed by @f3rs3n).",
],
},
},
"1.2.7": { "1.2.7": {
date: "October 26, 2026", date: "October 26, 2026",
changes: { changes: {
@@ -333,65 +362,40 @@ export const CHANGELOG: Record<string, ReleaseNote> = {
// build-i18n-messages workflow feeds to Google Translate for locales // build-i18n-messages workflow feeds to Google Translate for locales
// that haven't been curated by hand. // that haven't been curated by hand.
const CURRENT_VERSION_FEATURES = [ const CURRENT_VERSION_FEATURES = [
{
icon: <Shield className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.auditAssessment",
text: "Audit & Report — a new page that documents and assesses the node. The Assessment runs a catalogue of checks across security, backups, capacity, storage, network, hardware, guests and system, classifying each finding as critical, warning, observation or conformant and stating what it read rather than judging it.",
},
{
icon: <ScrollText className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.changeJournal",
text: "Change journal — a Changes view that lists exactly what ProxMenux modified on this host: every configuration file, package and service it touched, with the prior state of each, deduplicated to a current-state view that shows the host as it stands now rather than a log of every run.",
},
{
icon: <Activity className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.auditReports",
text: "Reports — a full audit plus focused Security review, Backup assurance and Capacity & wear reports, each opening on its own posture header, and a printable Inventory; all export to PDF. A security assessment asks before running Lynis so a run stays fast.",
},
{
icon: <Sliders className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.auditPolicyBaseline",
text: "Policy and baseline — declare what the host is expected to be (backup requirements, firewall, root SSH login) so findings grade against it, mark a run as the reference, and see what changed since, with new, resolved and accepted findings kept apart.",
},
{ {
icon: <Package className="h-5 w-5" />, icon: <Package className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.ociCatalog", key: "releaseNotes.currentFeatures.composeStacks",
text: "OCI manager Apps (Technology Preview) — a new entry in the ProxMenux menu installs applications from their official container images as native Proxmox LXC, with no Docker engine. The catalog carries 514 applications.", text: "Compose files with several services — Custom image installs one LXC per service on a private network, started in dependency order. Updates, backups and removal work on the whole application.",
}, },
{ {
icon: <ScrollText className="h-5 w-5" />, icon: <RefreshCw className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.ociInMonitor", key: "releaseNotes.currentFeatures.keepProxmoxChanges",
text: "OCI applications in the Monitor — the App tab recognises them, the Updates tab updates and modifies them as the menu does, and a Logs tab follows the console output of the application live.", text: "OCI updates keep what you change in Proxmox — variables, start command, network options, DNS, features, disk sizes and lxc.* lines stay on the rebuilt container, also in scheduled updates and on every member of a stack.",
}, },
{ {
icon: <Cpu className="h-5 w-5" />, icon: <Globe className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.ociAcceleration", key: "releaseNotes.currentFeatures.ociVlan",
text: "Hardware acceleration for OCI applications — the installer offers only the profiles the host can run: NVIDIA, Intel and AMD GPUs and, for Frigate, an Intel NPU or a Coral. The NVIDIA Container Toolkit installs with the driver.", text: "VLAN tag for OCI applications — the advanced installation asks for it next to the address, and Modify changes it on a single application. The host needs no access to that VLAN.",
}, },
{ {
icon: <DatabaseBackup className="h-5 w-5" />, icon: <Sparkles className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.ociRecovery", key: "releaseNotes.currentFeatures.ociNewApps",
text: "An OCI application travels with its backup — restored on this host or on another one, it is registered and managed again, and in a cluster it starts on whichever node it moves to.", text: "New in the OCI catalog — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX and ten more applications, and Ollama and llama.cpp run on Intel and AMD integrated GPUs.",
}, },
{ {
icon: <Server className="h-5 w-5" />, icon: <ArrowUpCircle className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.pbsSupport", key: "releaseNotes.currentFeatures.hostUpdateJob",
text: "ProxMenux on Proxmox Backup Server — it installs with the same command and opens a menu of its own, with post-install and a Monitor showing the health, datastores and tasks of the server (contributed by @jcastro).", text: "Proxmox updates that carry on after signing out — the update runs as a job on the server and signing back in reopens it. A pending reboot is shown after a new kernel, with a restart button that checks the host first.",
}, },
{ {
icon: <Search className="h-5 w-5" />, icon: <HardDrive className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.menuSearch", key: "releaseNotes.currentFeatures.storageDetails",
text: "Search in the main menu — a name or part of it finds a ProxMenux option, an OCI application or a Helper-Script, and opens it at its first screen.", text: "Storage details — ZFS pools show their layout, scrub and device health, and each disk shows the storage controller it hangs off, also in the Hardware page. VM disk thresholds join Settings.",
}, },
{ {
icon: <Calendar className="h-5 w-5" />, icon: <Zap className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.guestBackupJobs", key: "releaseNotes.currentFeatures.log2ramV2",
text: "Backup jobs of VMs and LXCs — the Backup tab lists the scheduled jobs of Proxmox and creates, edits, enables and runs them; they are the same ones as Datacenter → Backup (contributed by @MattiaC46).", text: "Log2RAM 2.0 — the journal and the task logs of Proxmox stay on disk with their history, and only the logs that change all the time go to RAM. Installed hosts update to it with ProxMenux.",
},
{
icon: <Languages className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.notificationLanguage",
text: "Notifications in your language — titles, bodies and daily digests are written in the language chosen for notifications (contributed by @Vaso73).",
}, },
] ]
+1 -1
View File
@@ -8,4 +8,4 @@
// 3. beta_version.txt ← bash pipeline (build_appimage.sh) // 3. beta_version.txt ← bash pipeline (build_appimage.sh)
// //
// Keep the three in sync on every bump. // Keep the three in sync on every bump.
export const APP_VERSION = "1.2.7" export const APP_VERSION = "1.2.8"
+8 -1
View File
@@ -3797,7 +3797,14 @@
"auditReviewDate": "Audit & Report – ein akzeptierter Befund kann ein Überprüfungsdatum tragen, das ihn wieder vorlegt, ohne die Entscheidung zurückzuziehen, und der Vergleich gibt an, ob sich ein Befund verschlechtert, verbessert oder gehalten hat (mit @Vaso73).", "auditReviewDate": "Audit & Report – ein akzeptierter Befund kann ein Überprüfungsdatum tragen, das ihn wieder vorlegt, ohne die Entscheidung zurückzuziehen, und der Vergleich gibt an, ob sich ein Befund verschlechtert, verbessert oder gehalten hat (mit @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) – ein neuer Eintrag im ProxMenux-Menü installiert Anwendungen aus ihren offiziellen Container-Images als native Proxmox-LXC, ohne Docker-Engine. Der Katalog umfasst 514 Anwendungen.", "ociCatalog": "OCI manager Apps (Technology Preview) – ein neuer Eintrag im ProxMenux-Menü installiert Anwendungen aus ihren offiziellen Container-Images als native Proxmox-LXC, ohne Docker-Engine. Der Katalog umfasst 514 Anwendungen.",
"pbsSupport": "ProxMenux auf Proxmox Backup Server – es wird mit demselben Befehl installiert und öffnet ein eigenes Menü, mit Post-Install und einem Monitor, der Zustand, Datastores und Aufgaben des Servers zeigt (beigetragen von @jcastro).", "pbsSupport": "ProxMenux auf Proxmox Backup Server – es wird mit demselben Befehl installiert und öffnet ein eigenes Menü, mit Post-Install und einem Monitor, der Zustand, Datastores und Aufgaben des Servers zeigt (beigetragen von @jcastro).",
"menuSearch": "Suche im Hauptmenü – ein Name oder ein Teil davon findet eine ProxMenux-Option, eine OCI-Anwendung oder ein Helper-Script und öffnet es auf seinem ersten Bildschirm." "menuSearch": "Suche im Hauptmenü – ein Name oder ein Teil davon findet eine ProxMenux-Option, eine OCI-Anwendung oder ein Helper-Script und öffnet es auf seinem ersten Bildschirm.",
"composeStacks": "Compose-Dateien mit mehreren Diensten — Custom image installiert je Dienst einen LXC in einem privaten Netzwerk, gestartet in der Reihenfolge der Abhängigkeiten. Updates, Backups und Entfernen gelten für die gesamte Anwendung.",
"keepProxmoxChanges": "OCI-Updates behalten, was du in Proxmox änderst — Variablen, Startbefehl, Netzwerkoptionen, DNS, Features, Festplattengrößen und lxc.*-Zeilen bleiben im neu erstellten Container erhalten, auch bei geplanten Updates und für jedes Mitglied eines Stacks.",
"ociVlan": "VLAN-Tag für OCI-Anwendungen — die erweiterte Installation fragt ihn neben der Adresse ab, und Ändern passt ihn bei einer Einzelanwendung an. Der Host braucht keinen Zugriff auf dieses VLAN.",
"ociNewApps": "Neu im OCI-Katalog — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX und zehn weitere Anwendungen, und Ollama und llama.cpp laufen auf integrierten GPUs von Intel und AMD.",
"hostUpdateJob": "Proxmox-Updates, die nach dem Abmelden weiterlaufen — das Update läuft als Auftrag auf dem Server und öffnet sich bei der erneuten Anmeldung wieder. Nach einem neuen Kernel wird ein ausstehender Neustart angezeigt, mit einer Schaltfläche, die zuerst den Host prüft.",
"storageDetails": "Speicherdetails — ZFS-Pools zeigen Aufbau, Scrub und Gerätezustand, und jede Festplatte zeigt ihren Speichercontroller, auch auf der Hardware-Seite. Die Schwellenwerte für VM-Festplatten kommen in die Einstellungen.",
"log2ramV2": "Log2RAM 2.0 — das Journal und die Aufgabenprotokolle von Proxmox bleiben mit ihrem Verlauf auf der Festplatte, und nur ständig wechselnde Protokolle kommen in den RAM. Bestehende Installationen werden mit ProxMenux aktualisiert."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3924,7 +3924,14 @@
"auditReviewDate": "Audit & Report — an accepted finding can carry a review date that brings it back without withdrawing the decision, and the comparison says whether a finding got worse, got better or held (with @Vaso73).", "auditReviewDate": "Audit & Report — an accepted finding can carry a review date that brings it back without withdrawing the decision, and the comparison says whether a finding got worse, got better or held (with @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — a new entry in the ProxMenux menu installs applications from their official container images as native Proxmox LXC, with no Docker engine. The catalog carries 514 applications.", "ociCatalog": "OCI manager Apps (Technology Preview) — a new entry in the ProxMenux menu installs applications from their official container images as native Proxmox LXC, with no Docker engine. The catalog carries 514 applications.",
"pbsSupport": "ProxMenux on Proxmox Backup Server — it installs with the same command and opens a menu of its own, with post-install and a Monitor showing the health, datastores and tasks of the server (contributed by @jcastro).", "pbsSupport": "ProxMenux on Proxmox Backup Server — it installs with the same command and opens a menu of its own, with post-install and a Monitor showing the health, datastores and tasks of the server (contributed by @jcastro).",
"menuSearch": "Search in the main menu — a name or part of it finds a ProxMenux option, an OCI application or a Helper-Script, and opens it at its first screen." "menuSearch": "Search in the main menu — a name or part of it finds a ProxMenux option, an OCI application or a Helper-Script, and opens it at its first screen.",
"composeStacks": "Compose files with several services — Custom image installs one LXC per service on a private network, started in dependency order. Updates, backups and removal work on the whole application.",
"keepProxmoxChanges": "OCI updates keep what you change in Proxmox — variables, start command, network options, DNS, features, disk sizes and lxc.* lines stay on the rebuilt container, also in scheduled updates and on every member of a stack.",
"ociVlan": "VLAN tag for OCI applications — the advanced installation asks for it next to the address, and Modify changes it on a single application. The host needs no access to that VLAN.",
"ociNewApps": "New in the OCI catalog — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX and ten more applications, and Ollama and llama.cpp run on Intel and AMD integrated GPUs.",
"hostUpdateJob": "Proxmox updates that carry on after signing out — the update runs as a job on the server and signing back in reopens it. A pending reboot is shown after a new kernel, with a restart button that checks the host first.",
"storageDetails": "Storage details — ZFS pools show their layout, scrub and device health, and each disk shows the storage controller it hangs off, also in the Hardware page. VM disk thresholds join Settings.",
"log2ramV2": "Log2RAM 2.0 — the journal and the task logs of Proxmox stay on disk with their history, and only the logs that change all the time go to RAM. Installed hosts update to it with ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3950,7 +3950,14 @@
"auditReviewDate": "Auditoría e Informes — un hallazgo aceptado puede llevar una fecha de revisión que lo trae de vuelta sin retirar la decisión, y la comparación indica si un hallazgo empeoró, mejoró o se mantuvo (con @Vaso73).", "auditReviewDate": "Auditoría e Informes — un hallazgo aceptado puede llevar una fecha de revisión que lo trae de vuelta sin retirar la decisión, y la comparación indica si un hallazgo empeoró, mejoró o se mantuvo (con @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — una nueva entrada del menú de ProxMenux instala aplicaciones desde sus imágenes de contenedor oficiales como LXC nativos de Proxmox, sin motor Docker. El catálogo reúne 514 aplicaciones.", "ociCatalog": "OCI manager Apps (Technology Preview) — una nueva entrada del menú de ProxMenux instala aplicaciones desde sus imágenes de contenedor oficiales como LXC nativos de Proxmox, sin motor Docker. El catálogo reúne 514 aplicaciones.",
"pbsSupport": "ProxMenux en Proxmox Backup Server — se instala con el mismo comando y abre un menú propio, con post-install y un Monitor que muestra la salud, los datastores y las tareas del servidor (aportado por @jcastro).", "pbsSupport": "ProxMenux en Proxmox Backup Server — se instala con el mismo comando y abre un menú propio, con post-install y un Monitor que muestra la salud, los datastores y las tareas del servidor (aportado por @jcastro).",
"menuSearch": "Búsqueda en el menú principal — un nombre o parte de él encuentra una opción de ProxMenux, una aplicación OCI o un Helper-Script, y lo abre en su primera pantalla." "menuSearch": "Búsqueda en el menú principal — un nombre o parte de él encuentra una opción de ProxMenux, una aplicación OCI o un Helper-Script, y lo abre en su primera pantalla.",
"composeStacks": "Archivos Compose con varios servicios — Custom image instala un LXC por servicio en una red privada, arrancados por orden de dependencias. Las actualizaciones, los backups y la eliminación funcionan sobre toda la aplicación.",
"keepProxmoxChanges": "Las actualizaciones OCI conservan lo que cambias en Proxmox — variables, comando de arranque, opciones de red, DNS, features, tamaños de disco y líneas lxc.* siguen en el contenedor reconstruido, también en las actualizaciones programadas y en cada miembro de una pila.",
"ociVlan": "Etiqueta VLAN para aplicaciones OCI — la instalación avanzada la pregunta junto a la dirección, y Modificar la cambia en una aplicación de un contenedor. El host no necesita acceso a esa VLAN.",
"ociNewApps": "Novedades en el catálogo OCI — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX y diez aplicaciones más, y Ollama y llama.cpp funcionan en GPU integradas Intel y AMD.",
"hostUpdateJob": "Actualizaciones de Proxmox que continúan al cerrar la sesión — la actualización se ejecuta como una tarea en el servidor y se vuelve a abrir al entrar. Tras un kernel nuevo se muestra el reinicio pendiente, con un botón que comprueba antes el host.",
"storageDetails": "Detalles de almacenamiento — los pools ZFS muestran su estructura, scrub y el estado de sus dispositivos, y cada disco muestra su controladora, también en la página de Hardware. Los umbrales de disco de VM llegan a Ajustes.",
"log2ramV2": "Log2RAM 2.0 — el journal y los registros de tareas de Proxmox se quedan en disco con su historial, y solo los registros que cambian constantemente van a la RAM. Los hosts que ya lo usan se actualizan con ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3797,7 +3797,14 @@
"auditReviewDate": "Audit & Report — une constatation acceptée peut porter une date de révision qui la fait réapparaître sans retirer la décision, et la comparaison indique si une constatation s'est aggravée, améliorée ou maintenue (avec @Vaso73).", "auditReviewDate": "Audit & Report — une constatation acceptée peut porter une date de révision qui la fait réapparaître sans retirer la décision, et la comparaison indique si une constatation s'est aggravée, améliorée ou maintenue (avec @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — une nouvelle entrée du menu ProxMenux installe les applications à partir de leurs images de conteneur officielles en tant que LXC Proxmox natifs, sans moteur Docker. Le catalogue réunit 514 applications.", "ociCatalog": "OCI manager Apps (Technology Preview) — une nouvelle entrée du menu ProxMenux installe les applications à partir de leurs images de conteneur officielles en tant que LXC Proxmox natifs, sans moteur Docker. Le catalogue réunit 514 applications.",
"pbsSupport": "ProxMenux sur Proxmox Backup Server — il s'installe avec la même commande et ouvre son propre menu, avec post-installation et un Monitor qui affiche la santé, les datastores et les tâches du serveur (contribution de @jcastro).", "pbsSupport": "ProxMenux sur Proxmox Backup Server — il s'installe avec la même commande et ouvre son propre menu, avec post-installation et un Monitor qui affiche la santé, les datastores et les tâches du serveur (contribution de @jcastro).",
"menuSearch": "Recherche dans le menu principal — un nom ou une partie du nom trouve une option de ProxMenux, une application OCI ou un Helper-Script, et l'ouvre sur son premier écran." "menuSearch": "Recherche dans le menu principal — un nom ou une partie du nom trouve une option de ProxMenux, une application OCI ou un Helper-Script, et l'ouvre sur son premier écran.",
"composeStacks": "Fichiers Compose à plusieurs services — Custom image installe un LXC par service sur un réseau privé, démarrés selon leurs dépendances. Les mises à jour, les sauvegardes et la suppression s’appliquent à toute l’application.",
"keepProxmoxChanges": "Les mises à jour OCI conservent ce que vous modifiez dans Proxmox — variables, commande de démarrage, options réseau, DNS, features, tailles de disque et lignes lxc.* restent sur le conteneur reconstruit, y compris lors des mises à jour planifiées et sur chaque membre d’une pile.",
"ociVlan": "Étiquette VLAN pour les applications OCI — l’installation avancée la demande à côté de l’adresse, et Modifier la change sur une application à conteneur unique. L’hôte n’a pas besoin d’accéder à ce VLAN.",
"ociNewApps": "Nouveautés du catalogue OCI — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX et dix autres applications, et Ollama et llama.cpp fonctionnent sur les GPU intégrés Intel et AMD.",
"hostUpdateJob": "Des mises à jour Proxmox qui continuent après la déconnexion — la mise à jour s’exécute comme une tâche sur le serveur et se rouvre à la reconnexion. Un redémarrage en attente s’affiche après un nouveau noyau, avec un bouton qui vérifie d’abord l’hôte.",
"storageDetails": "Détails du stockage — les pools ZFS affichent leur structure, leur scrub et l’état de leurs périphériques, et chaque disque indique son contrôleur, y compris sur la page Matériel. Les seuils de disque des VM arrivent dans les Paramètres.",
"log2ramV2": "Log2RAM 2.0 — le journal et les journaux de tâches de Proxmox restent sur disque avec leur historique, et seuls les journaux qui changent sans cesse vont en RAM. Les hôtes qui l’utilisent déjà se mettent à jour avec ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3797,7 +3797,14 @@
"auditReviewDate": "Audit & Report: un risultato accettato può avere una data di revisione che lo ripresenta senza ritirare la decisione, e il confronto indica se un risultato è peggiorato, migliorato o rimasto invariato (con @Vaso73).", "auditReviewDate": "Audit & Report: un risultato accettato può avere una data di revisione che lo ripresenta senza ritirare la decisione, e il confronto indica se un risultato è peggiorato, migliorato o rimasto invariato (con @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview): una nuova voce nel menu di ProxMenux installa le applicazioni dalle loro immagini container ufficiali come LXC nativi di Proxmox, senza motore Docker. Il catalogo contiene 514 applicazioni.", "ociCatalog": "OCI manager Apps (Technology Preview): una nuova voce nel menu di ProxMenux installa le applicazioni dalle loro immagini container ufficiali come LXC nativi di Proxmox, senza motore Docker. Il catalogo contiene 514 applicazioni.",
"pbsSupport": "ProxMenux su Proxmox Backup Server: si installa con lo stesso comando e apre un menu proprio, con post-installazione e un Monitor che mostra lo stato, i datastore e le attività del server (contributo di @jcastro).", "pbsSupport": "ProxMenux su Proxmox Backup Server: si installa con lo stesso comando e apre un menu proprio, con post-installazione e un Monitor che mostra lo stato, i datastore e le attività del server (contributo di @jcastro).",
"menuSearch": "Ricerca nel menu principale: basta un nome o parte di esso per trovare un'opzione di ProxMenux, un'applicazione OCI o un Helper-Script e aprirne la prima schermata." "menuSearch": "Ricerca nel menu principale: basta un nome o parte di esso per trovare un'opzione di ProxMenux, un'applicazione OCI o un Helper-Script e aprirne la prima schermata.",
"composeStacks": "File Compose con più servizi — Custom image installa un LXC per servizio su una rete privata, avviati in ordine di dipendenza. Aggiornamenti, backup e rimozione valgono per l’intera applicazione.",
"keepProxmoxChanges": "Gli aggiornamenti OCI mantengono ciò che modifichi in Proxmox — variabili, comando di avvio, opzioni di rete, DNS, features, dimensioni dei dischi e righe lxc.* restano nel container ricostruito, anche negli aggiornamenti pianificati e in ogni membro di uno stack.",
"ociVlan": "Tag VLAN per le applicazioni OCI — l’installazione avanzata lo chiede accanto all’indirizzo, e Modifica lo cambia in un’applicazione a contenitore singolo. L’host non ha bisogno di accedere a quella VLAN.",
"ociNewApps": "Novità nel catalogo OCI — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX e altre dieci applicazioni, e Ollama e llama.cpp funzionano sulle GPU integrate Intel e AMD.",
"hostUpdateJob": "Aggiornamenti di Proxmox che proseguono dopo la disconnessione — l’aggiornamento viene eseguito come job sul server e si riapre al nuovo accesso. Dopo un nuovo kernel viene mostrato il riavvio in sospeso, con un pulsante che controlla prima l’host.",
"storageDetails": "Dettagli dello storage — i pool ZFS mostrano struttura, scrub e stato dei dispositivi, e ogni disco mostra il suo controller, anche nella pagina Hardware. Le soglie dei dischi delle VM arrivano nelle Impostazioni.",
"log2ramV2": "Log2RAM 2.0 — il journal e i log delle attività di Proxmox restano su disco con la loro cronologia, e solo i log che cambiano di continuo vanno in RAM. Gli host che lo usano già si aggiornano con ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3797,7 +3797,14 @@
"auditReviewDate": "Auditoria & Relatório — uma constatação aceite pode ter uma data de revisão que a traz de volta sem retirar a decisão, e a comparação indica se uma constatação piorou, melhorou ou se manteve (com @Vaso73).", "auditReviewDate": "Auditoria & Relatório — uma constatação aceite pode ter uma data de revisão que a traz de volta sem retirar a decisão, e a comparação indica se uma constatação piorou, melhorou ou se manteve (com @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — uma nova entrada no menu do ProxMenux instala aplicações a partir das suas imagens de contentor oficiais como LXC nativos do Proxmox, sem motor Docker. O catálogo reúne 514 aplicações.", "ociCatalog": "OCI manager Apps (Technology Preview) — uma nova entrada no menu do ProxMenux instala aplicações a partir das suas imagens de contentor oficiais como LXC nativos do Proxmox, sem motor Docker. O catálogo reúne 514 aplicações.",
"pbsSupport": "ProxMenux no Proxmox Backup Server — instala-se com o mesmo comando e abre um menu próprio, com pós-instalação e um Monitor que mostra o estado, os datastores e as tarefas do servidor (contribuição de @jcastro).", "pbsSupport": "ProxMenux no Proxmox Backup Server — instala-se com o mesmo comando e abre um menu próprio, com pós-instalação e um Monitor que mostra o estado, os datastores e as tarefas do servidor (contribuição de @jcastro).",
"menuSearch": "Pesquisa no menu principal — um nome ou parte dele encontra uma opção do ProxMenux, uma aplicação OCI ou um Helper-Script e abre-o no seu primeiro ecrã." "menuSearch": "Pesquisa no menu principal — um nome ou parte dele encontra uma opção do ProxMenux, uma aplicação OCI ou um Helper-Script e abre-o no seu primeiro ecrã.",
"composeStacks": "Ficheiros Compose com vários serviços — Custom image instala um LXC por serviço numa rede privada, iniciados pela ordem das dependências. As atualizações, os backups e a remoção funcionam em toda a aplicação.",
"keepProxmoxChanges": "As atualizações OCI conservam o que altera no Proxmox — variáveis, comando de arranque, opções de rede, DNS, features, tamanhos de disco e linhas lxc.* mantêm-se no contentor reconstruído, também nas atualizações agendadas e em cada membro de uma pilha.",
"ociVlan": "Etiqueta VLAN para aplicações OCI — a instalação avançada pede-a junto ao endereço, e Modificar altera-a numa aplicação de um só contentor. O anfitrião não precisa de acesso a essa VLAN.",
"ociNewApps": "Novidades no catálogo OCI — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX e mais dez aplicações, e o Ollama e o llama.cpp funcionam em GPU integradas Intel e AMD.",
"hostUpdateJob": "Atualizações do Proxmox que continuam após terminar a sessão — a atualização corre como uma tarefa no servidor e reabre ao voltar a entrar. Após um novo kernel é mostrado o reinício pendente, com um botão que verifica primeiro o anfitrião.",
"storageDetails": "Detalhes do armazenamento — os pools ZFS mostram a sua estrutura, scrub e estado dos dispositivos, e cada disco mostra a sua controladora, também na página de Hardware. Os limites de disco das VM chegam às Definições.",
"log2ramV2": "Log2RAM 2.0 — o journal e os registos de tarefas do Proxmox ficam em disco com o seu histórico, e só os registos que mudam constantemente vão para a RAM. Os anfitriões que já o usam atualizam-se com o ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3796,7 +3796,14 @@
"auditReviewDate": "Audit a správy — akceptované zistenie môže mať dátum kontroly, ktorý ho znova pripomenie bez zrušenia rozhodnutia, a porovnanie ukáže, či sa zistenie zhoršilo, zlepšilo alebo zostalo rovnaké (s @Vaso73).", "auditReviewDate": "Audit a správy — akceptované zistenie môže mať dátum kontroly, ktorý ho znova pripomenie bez zrušenia rozhodnutia, a porovnanie ukáže, či sa zistenie zhoršilo, zlepšilo alebo zostalo rovnaké (s @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — nová položka v ponuke ProxMenux inštaluje aplikácie z ich oficiálnych kontajnerových obrazov ako natívne kontajnery Proxmox LXC, bez Dockeru. Katalóg obsahuje 514 aplikácií.", "ociCatalog": "OCI manager Apps (Technology Preview) — nová položka v ponuke ProxMenux inštaluje aplikácie z ich oficiálnych kontajnerových obrazov ako natívne kontajnery Proxmox LXC, bez Dockeru. Katalóg obsahuje 514 aplikácií.",
"pbsSupport": "ProxMenux na Proxmox Backup Server — inštaluje sa rovnakým príkazom a otvára vlastnú ponuku s poinštaláciou a Monitorom, ktorý zobrazuje stav, úložiská dát a úlohy servera (prispel @jcastro).", "pbsSupport": "ProxMenux na Proxmox Backup Server — inštaluje sa rovnakým príkazom a otvára vlastnú ponuku s poinštaláciou a Monitorom, ktorý zobrazuje stav, úložiská dát a úlohy servera (prispel @jcastro).",
"menuSearch": "Vyhľadávanie v hlavnej ponuke — názov alebo jeho časť nájde možnosť ProxMenux, aplikáciu OCI alebo Helper-Script a otvorí ju na jej prvej obrazovke." "menuSearch": "Vyhľadávanie v hlavnej ponuke — názov alebo jeho časť nájde možnosť ProxMenux, aplikáciu OCI alebo Helper-Script a otvorí ju na jej prvej obrazovke.",
"composeStacks": "Súbory Compose s viacerými službami — Custom image nainštaluje jeden LXC na službu v privátnej sieti a spúšťa ich v poradí závislostí. Aktualizácie, zálohy a odstránenie fungujú pre celú aplikáciu.",
"keepProxmoxChanges": "Aktualizácie OCI zachovávajú, čo zmeníte v Proxmoxe — premenné, príkaz spustenia, sieťové možnosti, DNS, features, veľkosti diskov a riadky lxc.* zostávajú v obnovenom kontajneri, aj pri plánovaných aktualizáciách a v každom člene stacku.",
"ociVlan": "Značka VLAN pre aplikácie OCI — pokročilá inštalácia sa na ňu opýta pri adrese a Upraviť ju zmení pri samostatnej aplikácii. Hostiteľ nepotrebuje prístup do tejto VLAN.",
"ociNewApps": "Novinky v katalógu OCI — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX a ďalších desať aplikácií a Ollama a llama.cpp bežia na integrovaných GPU Intel a AMD.",
"hostUpdateJob": "Aktualizácie Proxmoxu, ktoré pokračujú aj po odhlásení — aktualizácia beží ako úloha na serveri a po opätovnom prihlásení sa znova otvorí. Po novom jadre sa zobrazí čakajúci reštart s tlačidlom, ktoré najprv skontroluje hostiteľa.",
"storageDetails": "Podrobnosti úložiska — pooly ZFS zobrazujú svoju štruktúru, scrub a stav zariadení a každý disk ukazuje svoj radič, aj na stránke Hardvér. Prahové hodnoty diskov VM pribudli v Nastaveniach.",
"log2ramV2": "Log2RAM 2.0 — žurnál a záznamy úloh Proxmoxu zostávajú na disku so svojou históriou a do RAM idú len záznamy, ktoré sa neustále menia. Hostitelia, ktorí ho už používajú, sa aktualizujú s ProxMenux."
} }
}, },
"network": { "network": {
+8 -1
View File
@@ -3797,7 +3797,14 @@
"auditReviewDate": "Audit & Report — ett accepterat fynd kan ha ett granskningsdatum som tar upp det igen utan att beslutet dras tillbaka, och jämförelsen visar om ett fynd blev värre, blev bättre eller låg kvar (med @Vaso73).", "auditReviewDate": "Audit & Report — ett accepterat fynd kan ha ett granskningsdatum som tar upp det igen utan att beslutet dras tillbaka, och jämförelsen visar om ett fynd blev värre, blev bättre eller låg kvar (med @Vaso73).",
"ociCatalog": "OCI manager Apps (Technology Preview) — en ny post i ProxMenux-menyn installerar applikationer från deras officiella containeravbilder som inbyggda Proxmox LXC, utan Docker-motor. Katalogen innehåller 514 applikationer.", "ociCatalog": "OCI manager Apps (Technology Preview) — en ny post i ProxMenux-menyn installerar applikationer från deras officiella containeravbilder som inbyggda Proxmox LXC, utan Docker-motor. Katalogen innehåller 514 applikationer.",
"pbsSupport": "ProxMenux på Proxmox Backup Server — installeras med samma kommando och öppnar en egen meny, med efterinstallation och en Monitor som visar serverns hälsa, datalager och uppgifter (bidrag från @jcastro).", "pbsSupport": "ProxMenux på Proxmox Backup Server — installeras med samma kommando och öppnar en egen meny, med efterinstallation och en Monitor som visar serverns hälsa, datalager och uppgifter (bidrag från @jcastro).",
"menuSearch": "Sökning i huvudmenyn — ett namn eller en del av det hittar ett ProxMenux-alternativ, en OCI-applikation eller ett Helper-Script och öppnar det på dess första skärm." "menuSearch": "Sökning i huvudmenyn — ett namn eller en del av det hittar ett ProxMenux-alternativ, en OCI-applikation eller ett Helper-Script och öppnar det på dess första skärm.",
"composeStacks": "Compose-filer med flera tjänster — Custom image installerar en LXC per tjänst på ett privat nätverk, startade i beroendeordning. Uppdateringar, säkerhetskopior och borttagning gäller hela programmet.",
"keepProxmoxChanges": "OCI-uppdateringar behåller det du ändrar i Proxmox — variabler, startkommando, nätverksalternativ, DNS, features, diskstorlekar och lxc.*-rader finns kvar i den återskapade containern, även vid schemalagda uppdateringar och för varje medlem i en stack.",
"ociVlan": "VLAN-tagg för OCI-program — den avancerade installationen frågar efter den bredvid adressen, och Ändra byter den för ett enskilt program. Värden behöver ingen åtkomst till det VLAN:et.",
"ociNewApps": "Nytt i OCI-katalogen — Authentik, TeslaMate, Zigbee2MQTT, Scanopy, Umami, Scrypted, NetAlertX och tio program till, och Ollama och llama.cpp körs på integrerade GPU:er från Intel och AMD.",
"hostUpdateJob": "Proxmox-uppdateringar som fortsätter efter utloggning — uppdateringen körs som ett jobb på servern och öppnas igen när du loggar in. Efter en ny kärna visas en väntande omstart, med en knapp som först kontrollerar värden.",
"storageDetails": "Lagringsdetaljer — ZFS-pooler visar sin struktur, scrub och enheternas hälsa, och varje disk visar sin lagringskontroller, även på sidan Hårdvara. Tröskelvärden för VM-diskar finns nu i Inställningar.",
"log2ramV2": "Log2RAM 2.0 — journalen och Proxmox uppgiftsloggar stannar på disken med sin historik, och bara loggar som ändras hela tiden går till RAM. Värdar som redan använder det uppdateras med ProxMenux."
} }
}, },
"network": { "network": {
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ProxMenux-Monitor", "name": "ProxMenux-Monitor",
"version": "1.2.7", "version": "1.2.8",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ProxMenux-Monitor", "name": "ProxMenux-Monitor",
"version": "1.2.7", "version": "1.2.8",
"dependencies": { "dependencies": {
"@hookform/resolvers": "^3.10.0", "@hookform/resolvers": "^3.10.0",
"@radix-ui/react-accordion": "1.2.2", "@radix-ui/react-accordion": "1.2.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ProxMenux-Monitor", "name": "ProxMenux-Monitor",
"version": "1.2.7", "version": "1.2.8",
"description": "Proxmox System Monitoring Dashboard", "description": "Proxmox System Monitoring Dashboard",
"private": true, "private": true,
"scripts": { "scripts": {
+71
View File
@@ -1,4 +1,75 @@
## 2026-11-01
### New version ProxMenux v1.2.8
![ProxMenux 1.2.8](https://raw.githubusercontent.com/MacRimi/ProxMenux/main/images/ProxMenux_128.png)
ProxMenux 1.2.8 is a short corrective release built on what users reported after 1.2.7. **OCI manager Apps** gains the most: Compose files with several services, updates that keep what you change in Proxmox, a VLAN tag for the access interface and seventeen new applications. **Log2RAM 2.0** keeps the journal and the Proxmox logs on disk, and ProxMenux Monitor adds ZFS pool details, storage controllers and Proxmox updates that carry on after signing out.
A special thank you goes to [@Vaso73](https://github.com/Vaso73), [@f3rs3n](https://github.com/f3rs3n), [@jcastro](https://github.com/jcastro) and [@DrOwl](https://github.com/DrOwl) for their contributions and reviews, and to everyone who reported a problem or suggested an application.
---
## 📦 OCI manager Apps
- **Custom image installs Compose files with several services** ([PR #550](https://github.com/MacRimi/ProxMenux/pull/550), contributed by [@jcastro](https://github.com/jcastro)): one LXC per service on a private network, started in dependency order, like the multi-container applications of the catalog. Image references, environment files, dependencies, shared data and one-shot jobs are kept, and updates, backups, recovery after a restore and removal work on the whole stack.
- **Your own variables stay in an OCI container.** Add or change a variable in the Proxmox options of the container and it is kept: it is saved in the oci-compose of the application and the update carries on with it, manual or scheduled, as with Docker. This works on single applications and on every member of a stack. A variable the image defines and that you removed comes back with its image value.
- **Updates keep the rest of what you change in Proxmox**: the start command, network options, DNS, hostname, features, protection, disk sizes, added host directories and `lxc.*` lines stay on the rebuilt container, also in scheduled updates.
- **The access interface takes a VLAN tag** ([#565](https://github.com/MacRimi/ProxMenux/issues/565), requested by [@xistoso](https://github.com/xistoso)): the advanced installation asks for it next to the address, and Modify changes or removes it on a single application. With a tag, the application is checked from inside its container, so the host needs no access to that VLAN.
- **Ollama and llama.cpp run on Intel and AMD integrated GPUs**: a new Vulkan profile uses the GPU through its render node, and on Radeon iGPUs such as the 680M and 780M the ROCm profile is offered as experimental.
- **Seventeen new applications.** As stacks: Authentik ([PR #563](https://github.com/MacRimi/ProxMenux/pull/563)), TeslaMate ([PR #555](https://github.com/MacRimi/ProxMenux/pull/555)), Umami ([PR #541](https://github.com/MacRimi/ProxMenux/pull/541)) and Scanopy ([suggested](https://github.com/MacRimi/ProxMenux/discussions/440) by [@gabglus](https://github.com/gabglus)), whose daemon scans the network from an unprivileged LXC. As single containers: Zigbee2MQTT ([PR #545](https://github.com/MacRimi/ProxMenux/pull/545)), with the adapter as an optional USB device, Scrypted ([PR #546](https://github.com/MacRimi/ProxMenux/pull/546)), NetAlertX ([PR #547](https://github.com/MacRimi/ProxMenux/pull/547)), and Activepieces, Bytebase, Campfire, Chhoto URL, Ech0, Kopia, Metabase, OpenHabitTracker, Restic REST Server and Watcharr ([PR #538](https://github.com/MacRimi/ProxMenux/pull/538)). All but Scanopy were contributed by [@jcastro](https://github.com/jcastro).
- **New stacks get readable container names** ([PR #555](https://github.com/MacRimi/ProxMenux/pull/555), contributed by [@jcastro](https://github.com/jcastro)), as in `teslamate`, `teslamate-db` and `teslamate-grafana`.
- **The Ollama entry describes what the image provides** ([PR #566](https://github.com/MacRimi/ProxMenux/pull/566), contributed by [@jcastro](https://github.com/jcastro)): its HTTP API on port 11434, with its link and startup check on `/api/version`.
- **An update clears the snapshot an interrupted backup leaves** ([#565](https://github.com/MacRimi/ProxMenux/issues/565), reported by [@kiosvantra](https://github.com/kiosvantra)). A snapshot made by the user stops the update, because a rebuilt container cannot keep it.
- **A container that ignores the shutdown signal is stopped after 60 seconds**, as `docker stop` does, during an update and when an interrupted operation is recovered.
## 🖥️ Monitor — Proxmox updates and pending reboots
- **The Proxmox update runs as a job on the server** ([PR #551](https://github.com/MacRimi/ProxMenux/pull/551), contributed by [@Vaso73](https://github.com/Vaso73)): closing the terminal or signing out leaves it running, and signing back in reopens the same update. A finished update opens as a read-only result.
- **A pending reboot is shown when the running kernel is older than the installed one**, also after updates made outside the Monitor. The restart button checks the host, active updates and package locks before rebooting.
- **The ProxMenux version row** stays compact when the installed version is the latest and shows both versions when a newer one is available.
## 💽 Monitor — storage
- **ZFS pools show their layout and health** ([PR #561](https://github.com/MacRimi/ProxMenux/pull/561), contributed by [@DrOwl](https://github.com/DrOwl)): vdevs and their members, the last scrub or resilver, error counts per device, fragmentation and dedup ratio, with OpenZFS 2.3 or later.
- **Each disk shows the storage controller it hangs off** ([PR #562](https://github.com/MacRimi/ProxMenux/pull/562), contributed by [@DrOwl](https://github.com/DrOwl)), in its details and in the Hardware page. Storage can group the physical disks by controller, an option in Settings.
- **VM disk thresholds in Settings** ([#543](https://github.com/MacRimi/ProxMenux/issues/543), suggested by [@byte21516](https://github.com/byte21516)).
- **Every disk is monitored unless it is excluded in Settings**: a mechanical disk with no activity keeps showing its type, model, serial number, temperature and SMART data ([#542](https://github.com/MacRimi/ProxMenux/issues/542), reported by [@ovikiss](https://github.com/ovikiss); [#553](https://github.com/MacRimi/ProxMenux/issues/553), reported by [@peterurbanec](https://github.com/peterurbanec)). A disk in Disk exclusions receives nothing, so it can spin down on its own timer, and a disk that is already parked stays asleep.
## 📝 Log2RAM 2.0
- **The journal and the task logs of Proxmox VE and Proxmox Backup Server stay on disk** ([#540](https://github.com/MacRimi/ProxMenux/issues/540), reported by [@shtefko](https://github.com/shtefko)), so they keep their history. Log2RAM holds the logs that change all the time, such as the pveproxy access log.
- **A guard watches the ramdisk every 10 minutes**: past 85% it rotates the logs, compresses the ones just rotated and writes everything to disk. No log is emptied.
- **Every sync is flushed to disk**, so a finished sync survives a power cut. An installed Log2RAM updates to this design with ProxMenux, and the change takes effect at the next boot.
## 🔔 Notifications
- **Ollama (Local) accepts an optional API key** for servers behind an authenticated proxy or gateway. The key is stored encrypted and shown masked, and the connection test tells an authentication failure apart from a server it cannot reach.
## 🛠️ Fixes
- **Host backup jobs run on their schedule**: the menu checks the schedule when a job is created, and updating ProxMenux repairs saved jobs whose timer systemd did not accept, such as `daily 02:00`.
- **A service reloading or restarting counts as running** ([#567](https://github.com/MacRimi/ProxMenux/issues/567), reported by [@Joshua1264](https://github.com/Joshua1264)): a restart gets a few seconds to finish, and nothing is concluded while a package update runs. A service that has failed or never finishes starting is still reported.
- **The Intel GPU view ends `intel_gpu_top` with each reading** ([#568](https://github.com/MacRimi/ProxMenux/issues/568), reported by [@FromTheCToTheG](https://github.com/FromTheCToTheG)), which also makes the reading half a second faster.
- **VM disk usage counts every filesystem of the guest** ([#559](https://github.com/MacRimi/ProxMenux/issues/559), with the fix proposed by [@TheFoxCraft](https://github.com/TheFoxCraft)), also on guests whose agent reports no device name, such as Alpine.
- **The LVM check keeps the Proxmox filter for zvols and RBD images** on hosts whose only volume groups belong to their VMs ([#552](https://github.com/MacRimi/ProxMenux/issues/552), reported by [@osipovdm-dot](https://github.com/osipovdm-dot)).
- **Secure Gateway installs on Proxmox hosts on BTRFS** ([#564](https://github.com/MacRimi/ProxMenux/issues/564), reported by [@78v5](https://github.com/78v5)): the Alpine template goes to an active storage that holds container templates.
- **A disk I/O error from the kernel is recorded on its disk**, with its serial number, also when the error names a partition.
- **The Monitor installs as an app (PWA) from the browser**: it serves its own web app manifest and service worker, with the 192 and 512 px icons Chrome requires.
- **The Y-axis titles stay inside the overview charts** ([PR #539](https://github.com/MacRimi/ProxMenux/pull/539), contributed by [@f3rs3n](https://github.com/f3rs3n)).
- **The application version-tracking catalog builds from the current Helper-Scripts repositories**.
- **The system update confirmation opens with Yes selected**, in post-install and in the Proxmox VE 8 and VE 9 update scripts, and the package list stays aligned.
## 🙏 Acknowledgments
- **[@jcastro](https://github.com/jcastro)** — the import of multi-service Compose files, tested on real stacks, sixteen of the new applications and the guide for proposing applications to the OCI catalog.
- **[@Vaso73](https://github.com/Vaso73)** — the server-side Proxmox update job and the pending reboot detection, tested through a real upgrade and reboot, and the Slovak translation.
- **[@DrOwl](https://github.com/DrOwl)** — the storage controller mapping and the ZFS pool details.
- **[@f3rs3n](https://github.com/f3rs3n)** — the overview charts and the Italian translation.
- **Carlos Cáceres** — the report and configuration example that prompted the API key for local Ollama.
- **Everyone who reported a problem or suggested an application**, named next to each change.
## 2026-10-26 ## 2026-10-26
### New version ProxMenux v1.2.7 ### New version ProxMenux v1.2.7
Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

+16 -4
View File
@@ -27,6 +27,17 @@ function resolveChangelogPath(locale: string): string {
return path.join(repoRoot, "CHANGELOG.md") return path.join(repoRoot, "CHANGELOG.md")
} }
// The image of the latest release, which is what a link to this page shows
// in RSS readers and social networks.
function latestReleaseImage(locale: string): string | null {
try {
const content = fs.readFileSync(resolveChangelogPath(locale), "utf8")
return content.match(/!\[[^\]]*\]\((https:[^)]+)\)/)?.[1] ?? null
} catch {
return null
}
}
// Surface the latest changelog entry in the metadata so social previews and // Surface the latest changelog entry in the metadata so social previews and
// SERP snippets reflect what was actually shipped. The CHANGELOG.md mixes two // SERP snippets reflect what was actually shipped. The CHANGELOG.md mixes two
// formats — `## [x.y.z] - YYYY-MM-DD` (older releases) and `## YYYY-MM-DD` // formats — `## [x.y.z] - YYYY-MM-DD` (older releases) and `## YYYY-MM-DD`
@@ -76,6 +87,7 @@ export async function generateMetadata({
}): Promise<Metadata> { }): Promise<Metadata> {
const { locale } = await params const { locale } = await params
const t = await getTranslations({ locale, namespace: "changelog.meta" }) const t = await getTranslations({ locale, namespace: "changelog.meta" })
const releaseImage = latestReleaseImage(locale)
const latest = readLatestChangelogVersion(locale) const latest = readLatestChangelogVersion(locale)
const versionTag = latest?.version ?? "" const versionTag = latest?.version ?? ""
const dateTag = latest?.date ?? "" const dateTag = latest?.date ?? ""
@@ -114,9 +126,9 @@ export async function generateMetadata({
siteName: "ProxMenux", siteName: "ProxMenux",
images: [ images: [
{ {
url: "https://raw.githubusercontent.com/MacRimi/ProxMenux/main/web/public/main.png", url: releaseImage ?? "https://raw.githubusercontent.com/MacRimi/ProxMenux/main/web/public/main.png",
width: 1363, width: releaseImage ? 1280 : 1363,
height: 735, height: releaseImage ? 640 : 735,
alt: "ProxMenux — Interactive Menu and Web Dashboard for Proxmox VE", alt: "ProxMenux — Interactive Menu and Web Dashboard for Proxmox VE",
}, },
], ],
@@ -126,7 +138,7 @@ export async function generateMetadata({
title: `${t("title")}${titleSuffix}`, title: `${t("title")}${titleSuffix}`,
description: `${t("ogDescription")} ${descriptionSuffix}`.trim(), description: `${t("ogDescription")} ${descriptionSuffix}`.trim(),
images: [ images: [
"https://raw.githubusercontent.com/MacRimi/ProxMenux/main/web/public/main.png", releaseImage ?? "https://raw.githubusercontent.com/MacRimi/ProxMenux/main/web/public/main.png",
], ],
}, },
} }
+16 -5
View File
@@ -21,7 +21,7 @@ interface ChangelogEntry {
// Per-locale RSS feed. Mirrors /app/rss.xml/route.ts (which stays the // Per-locale RSS feed. Mirrors /app/rss.xml/route.ts (which stays the
// canonical English feed at the root for backwards compatibility with // canonical English feed at the root for backwards compatibility with
// existing subscribers) but reads the localized CHANGELOG at // existing subscribers) but reads the localized CHANGELOG at
// <repo>/lang/<locale>/CHANGELOG.md. Falls back to the English source // web/data/changelog/<locale>.md. Falls back to the English source
// when the localized file doesn't exist yet so partial translations // when the localized file doesn't exist yet so partial translations
// still produce a valid feed. // still produce a valid feed.
@@ -61,7 +61,7 @@ const STRINGS: Record<string, LocaleStrings> = {
function resolveChangelogPath(locale: string): string { function resolveChangelogPath(locale: string): string {
const repoRoot = path.join(process.cwd(), "..") const repoRoot = path.join(process.cwd(), "..")
if (locale && locale !== "en") { if (locale && locale !== "en") {
const localized = path.join(repoRoot, "lang", locale, "CHANGELOG.md") const localized = path.join(process.cwd(), "data", "changelog", `${locale}.md`)
if (fs.existsSync(localized)) return localized if (fs.existsSync(localized)) return localized
} }
return path.join(repoRoot, "CHANGELOG.md") return path.join(repoRoot, "CHANGELOG.md")
@@ -81,6 +81,17 @@ function extractFirstImage(rawContent: string): string | null {
return `https://proxmenux.com/${url}` return `https://proxmenux.com/${url}`
} }
// Size of a release image of this repository, which an enclosure has to state.
function imageBytes(url: string): number | null {
const name = url.match(/\/images\/([^/]+)$/)?.[1]
if (!name) return null
try {
return fs.statSync(path.join(process.cwd(), "..", "images", name)).size
} catch {
return null
}
}
function escapeXml(text: string): string { function escapeXml(text: string): string {
return text return text
.replace(/&/g, "&amp;") .replace(/&/g, "&amp;")
@@ -225,15 +236,15 @@ export async function GET(
(entry) => ` (entry) => `
<item> <item>
<title>${escapeXml(entry.title)}</title> <title>${escapeXml(entry.title)}</title>
<description>${escapeXml(entry.content.replace(/<[^>]*>/g, "").substring(0, 200))}...</description> <description><![CDATA[${entry.image ? `<img src="${entry.image}" alt="${escapeXml(entry.title)}"/><br/>` : ""}${entry.content.replace(/<[^>]*>/g, "").substring(0, 200)}...]]></description>
<content:encoded><![CDATA[${entry.content}]]></content:encoded> <content:encoded><![CDATA[${entry.content}]]></content:encoded>
<link>${entry.url}</link> <link>${entry.url}</link>
<guid isPermaLink="true">${entry.url}</guid> <guid isPermaLink="true">${entry.url}</guid>
<pubDate>${new Date(entry.date).toUTCString()}</pubDate> <pubDate>${new Date(entry.date).toUTCString()}</pubDate>
<category>${escapeXml(strings.category)}</category>${entry.image ? ` <category>${escapeXml(strings.category)}</category>${entry.image ? `
<media:thumbnail url="${escapeXml(entry.image)}"/> <media:thumbnail url="${escapeXml(entry.image)}"/>
<media:content url="${escapeXml(entry.image)}" medium="image"/> <media:content url="${escapeXml(entry.image)}" medium="image" type="image/png"/>${imageBytes(entry.image) ? `
<enclosure url="${escapeXml(entry.image)}" type="image/png" length="0"/>` : ""} <enclosure url="${escapeXml(entry.image)}" type="image/png" length="${imageBytes(entry.image)}"/>` : ""}` : ""}
</item>`, </item>`,
) )
.join("")} .join("")}
+14 -3
View File
@@ -33,6 +33,17 @@ function extractFirstImage(rawContent: string): string | null {
return `https://proxmenux.com/${url}` return `https://proxmenux.com/${url}`
} }
// Size of a release image of this repository, which an enclosure has to state.
function imageBytes(url: string): number | null {
const name = url.match(/\/images\/([^/]+)$/)?.[1]
if (!name) return null
try {
return fs.statSync(path.join(process.cwd(), "..", "images", name)).size
} catch {
return null
}
}
function escapeXml(text: string): string { function escapeXml(text: string): string {
return text return text
.replace(/&/g, '&amp;') .replace(/&/g, '&amp;')
@@ -180,15 +191,15 @@ export async function GET() {
(entry) => ` (entry) => `
<item> <item>
<title>${escapeXml(entry.title)}</title> <title>${escapeXml(entry.title)}</title>
<description>${escapeXml(entry.content.replace(/<[^>]*>/g, '').substring(0, 200))}...</description> <description><![CDATA[${entry.image ? `<img src="${entry.image}" alt="${escapeXml(entry.title)}"/><br/>` : ""}${entry.content.replace(/<[^>]*>/g, '').substring(0, 200)}...]]></description>
<content:encoded><![CDATA[${entry.content}]]></content:encoded> <content:encoded><![CDATA[${entry.content}]]></content:encoded>
<link>${entry.url}</link> <link>${entry.url}</link>
<guid isPermaLink="true">${entry.url}</guid> <guid isPermaLink="true">${entry.url}</guid>
<pubDate>${new Date(entry.date).toUTCString()}</pubDate> <pubDate>${new Date(entry.date).toUTCString()}</pubDate>
<category>Changelog</category>${entry.image ? ` <category>Changelog</category>${entry.image ? `
<media:thumbnail url="${escapeXml(entry.image)}"/> <media:thumbnail url="${escapeXml(entry.image)}"/>
<media:content url="${escapeXml(entry.image)}" medium="image"/> <media:content url="${escapeXml(entry.image)}" medium="image" type="image/png"/>${imageBytes(entry.image) ? `
<enclosure url="${escapeXml(entry.image)}" type="image/png" length="0"/>` : ""} <enclosure url="${escapeXml(entry.image)}" type="image/png" length="${imageBytes(entry.image)}"/>` : ""}` : ""}
</item>`, </item>`,
) )
.join("")} .join("")}
+72
View File
@@ -1,3 +1,75 @@
## 2026-11-01
### Nueva versión ProxMenux v1.2.8
![ProxMenux 1.2.8](https://raw.githubusercontent.com/MacRimi/ProxMenux/main/images/ProxMenux_128.png)
ProxMenux 1.2.8 es una versión correctiva y breve, construida a partir de lo que los usuarios han reportado tras la 1.2.7. **OCI manager Apps** es lo que más avanza: archivos Compose con varios servicios, actualizaciones que conservan lo que cambias en Proxmox, una etiqueta VLAN para la interfaz de acceso y diecisiete aplicaciones nuevas. **Log2RAM 2.0** mantiene el journal y los registros de Proxmox en disco, y ProxMenux Monitor añade los detalles de los pools ZFS, las controladoras de almacenamiento y las actualizaciones de Proxmox que continúan al cerrar la sesión.
Un agradecimiento especial a [@Vaso73](https://github.com/Vaso73), [@f3rs3n](https://github.com/f3rs3n), [@jcastro](https://github.com/jcastro) y [@DrOwl](https://github.com/DrOwl) por sus contribuciones y revisiones, y a todos los que han reportado un problema o sugerido una aplicación.
---
## 📦 OCI manager Apps
- **Custom image instala archivos Compose con varios servicios** ([PR #550](https://github.com/MacRimi/ProxMenux/pull/550), aportado por [@jcastro](https://github.com/jcastro)): un LXC por servicio en una red privada, arrancados por orden de dependencias, como las aplicaciones multicontenedor del catálogo. Se conservan las referencias de imagen, los archivos de entorno, las dependencias, los datos compartidos y las tareas de un solo uso, y las actualizaciones, los backups, la recuperación tras una restauración y la eliminación funcionan sobre toda la pila.
- **Tus propias variables se quedan en el contenedor OCI.** Si añades o cambias una variable en las opciones del contenedor en Proxmox, se conserva: se guarda en el oci-compose de la aplicación y la actualización sigue adelante con ella, manual o programada, igual que en Docker. Funciona en aplicaciones sueltas y en cada miembro de una pila. Una variable que define la imagen y que hayas eliminado vuelve con el valor de la imagen.
- **Las actualizaciones conservan el resto de lo que cambias en Proxmox**: el comando de arranque, las opciones de red, el DNS, el nombre del host, las features, la protección, los tamaños de disco, los directorios del host añadidos y las líneas `lxc.*` siguen en el contenedor reconstruido, también en las actualizaciones programadas.
- **La interfaz de acceso admite una etiqueta VLAN** ([#565](https://github.com/MacRimi/ProxMenux/issues/565), pedida por [@xistoso](https://github.com/xistoso)): la instalación avanzada la pregunta junto a la dirección, y Modificar la cambia o la elimina en una aplicación de un contenedor. Con etiqueta, la aplicación se comprueba desde dentro de su contenedor, así que el host no necesita acceso a esa VLAN.
- **Ollama y llama.cpp funcionan en GPU integradas Intel y AMD**: un nuevo perfil Vulkan usa la GPU a través de su nodo de renderizado, y en las iGPU Radeon como la 680M y la 780M se ofrece el perfil ROCm como experimental.
- **Diecisiete aplicaciones nuevas.** Como pilas: Authentik ([PR #563](https://github.com/MacRimi/ProxMenux/pull/563)), TeslaMate ([PR #555](https://github.com/MacRimi/ProxMenux/pull/555)), Umami ([PR #541](https://github.com/MacRimi/ProxMenux/pull/541)) y Scanopy ([sugerida](https://github.com/MacRimi/ProxMenux/discussions/440) por [@gabglus](https://github.com/gabglus)), cuyo daemon escanea la red desde un LXC sin privilegios. Como contenedores únicos: Zigbee2MQTT ([PR #545](https://github.com/MacRimi/ProxMenux/pull/545)), con el adaptador como dispositivo USB opcional, Scrypted ([PR #546](https://github.com/MacRimi/ProxMenux/pull/546)), NetAlertX ([PR #547](https://github.com/MacRimi/ProxMenux/pull/547)), y Activepieces, Bytebase, Campfire, Chhoto URL, Ech0, Kopia, Metabase, OpenHabitTracker, Restic REST Server y Watcharr ([PR #538](https://github.com/MacRimi/ProxMenux/pull/538)). Todas menos Scanopy son aportaciones de [@jcastro](https://github.com/jcastro).
- **Las pilas nuevas reciben nombres de contenedor legibles** ([PR #555](https://github.com/MacRimi/ProxMenux/pull/555), aportado por [@jcastro](https://github.com/jcastro)), como `teslamate`, `teslamate-db` y `teslamate-grafana`.
- **La entrada de Ollama describe lo que ofrece la imagen** ([PR #566](https://github.com/MacRimi/ProxMenux/pull/566), aportado por [@jcastro](https://github.com/jcastro)): su API HTTP en el puerto 11434, con el enlace y la comprobación de arranque en `/api/version`.
- **Una actualización elimina el snapshot que deja un backup interrumpido** ([#565](https://github.com/MacRimi/ProxMenux/issues/565), reportado por [@kiosvantra](https://github.com/kiosvantra)). Un snapshot hecho por el usuario detiene la actualización, porque un contenedor reconstruido no puede conservarlo.
- **Un contenedor que ignora la señal de apagado se detiene a los 60 segundos**, como hace `docker stop`, durante una actualización y al recuperar una operación interrumpida.
## 🖥️ Monitor — actualizaciones de Proxmox y reinicios pendientes
- **La actualización de Proxmox se ejecuta como una tarea en el servidor** ([PR #551](https://github.com/MacRimi/ProxMenux/pull/551), aportado por [@Vaso73](https://github.com/Vaso73)): al cerrar el terminal o la sesión sigue en marcha, y al volver a entrar se abre la misma actualización. Una actualización terminada se abre como resultado de solo lectura.
- **Se muestra un reinicio pendiente cuando el kernel en uso es más antiguo que el instalado**, también tras actualizaciones hechas fuera del Monitor. El botón de reinicio comprueba el host, las actualizaciones activas y los bloqueos de paquetes antes de reiniciar.
- **La fila de la versión de ProxMenux** se mantiene compacta cuando la versión instalada es la última y muestra las dos cuando hay una más nueva.
## 💽 Monitor — almacenamiento
- **Los pools ZFS muestran su estructura y su estado** ([PR #561](https://github.com/MacRimi/ProxMenux/pull/561), aportado por [@DrOwl](https://github.com/DrOwl)): vdevs y sus miembros, el último scrub o resilver, errores por dispositivo, fragmentación y ratio de deduplicación, con OpenZFS 2.3 o posterior.
- **Cada disco muestra la controladora de almacenamiento a la que está conectado** ([PR #562](https://github.com/MacRimi/ProxMenux/pull/562), aportado por [@DrOwl](https://github.com/DrOwl)), en sus detalles y en la página de Hardware. Almacenamiento puede agrupar los discos físicos por controladora, una opción de Ajustes.
- **Umbrales de disco de VM en Ajustes** ([#543](https://github.com/MacRimi/ProxMenux/issues/543), sugerido por [@byte21516](https://github.com/byte21516)).
- **Todos los discos se supervisan salvo los excluidos en Ajustes**: un disco mecánico sin actividad sigue mostrando su tipo, modelo, número de serie, temperatura y datos SMART ([#542](https://github.com/MacRimi/ProxMenux/issues/542), reportado por [@ovikiss](https://github.com/ovikiss); [#553](https://github.com/MacRimi/ProxMenux/issues/553), reportado por [@peterurbanec](https://github.com/peterurbanec)). Un disco en Exclusiones de discos no recibe nada, así que puede apagarse con su propio temporizador, y un disco que ya está en reposo sigue dormido.
## 📝 Log2RAM 2.0
- **El journal y los registros de tareas de Proxmox VE y Proxmox Backup Server se quedan en disco** ([#540](https://github.com/MacRimi/ProxMenux/issues/540), reportado por [@shtefko](https://github.com/shtefko)), así que conservan su historial. Log2RAM guarda los registros que cambian constantemente, como el registro de accesos de pveproxy.
- **Una vigilancia revisa el disco en RAM cada 10 minutos**: al pasar del 85 % rota los registros, comprime los recién rotados y lo escribe todo en disco. No se vacía ningún registro.
- **Cada sincronización se fuerza a disco**, de modo que una sincronización terminada sobrevive a un corte de luz. Un Log2RAM instalado pasa a este diseño al actualizar ProxMenux, y el cambio se aplica en el siguiente arranque.
## 🔔 Notificaciones
- **Ollama (Local) admite una clave de API opcional** para servidores tras un proxy o una puerta de enlace con autenticación. La clave se guarda cifrada y se muestra enmascarada, y la prueba de conexión distingue un fallo de autenticación de un servidor al que no se llega.
## 🛠️ Correcciones
- **Los trabajos de backup del host se ejecutan según su programación**: el menú comprueba la programación al crear un trabajo, y al actualizar ProxMenux se reparan los trabajos guardados cuyo temporizador systemd no aceptaba, como `daily 02:00`.
- **Un servicio que se recarga o se reinicia cuenta como en marcha** ([#567](https://github.com/MacRimi/ProxMenux/issues/567), reportado por [@Joshua1264](https://github.com/Joshua1264)): un reinicio dispone de unos segundos para terminar, y no se saca ninguna conclusión mientras se actualizan paquetes. Un servicio que ha fallado o que nunca termina de arrancar se sigue notificando.
- **La vista de GPU Intel termina `intel_gpu_top` con cada lectura** ([#568](https://github.com/MacRimi/ProxMenux/issues/568), reportado por [@FromTheCToTheG](https://github.com/FromTheCToTheG)), lo que además hace la lectura medio segundo más rápida.
- **El uso de disco de una VM cuenta todos los sistemas de archivos del invitado** ([#559](https://github.com/MacRimi/ProxMenux/issues/559), con el arreglo propuesto por [@TheFoxCraft](https://github.com/TheFoxCraft)), también en invitados cuyo agente no indica el nombre del dispositivo, como Alpine.
- **La comprobación de LVM mantiene el filtro de Proxmox para zvols e imágenes RBD** en hosts cuyos únicos grupos de volúmenes pertenecen a sus VM ([#552](https://github.com/MacRimi/ProxMenux/issues/552), reportado por [@osipovdm-dot](https://github.com/osipovdm-dot)).
- **Secure Gateway se instala en hosts Proxmox sobre BTRFS** ([#564](https://github.com/MacRimi/ProxMenux/issues/564), reportado por [@78v5](https://github.com/78v5)): la plantilla de Alpine va a un almacenamiento activo que admite plantillas de contenedor.
- **Un error de E/S de disco del kernel se registra en su disco**, con su número de serie, también cuando el error nombra una partición.
- **El Monitor se instala como aplicación (PWA) desde el navegador**: sirve su propio manifiesto de aplicación web y su service worker, con los iconos de 192 y 512 px que exige Chrome.
- **Los títulos del eje Y se mantienen dentro de los gráficos de la vista general** ([PR #539](https://github.com/MacRimi/ProxMenux/pull/539), aportado por [@f3rs3n](https://github.com/f3rs3n)).
- **El catálogo de seguimiento de versiones de aplicaciones se genera desde los repositorios actuales de Helper-Scripts**.
- **La confirmación de actualización del sistema se abre con Sí seleccionado**, en el post-install y en los scripts de actualización de Proxmox VE 8 y VE 9, y la lista de paquetes se mantiene alineada.
## 🙏 Agradecimientos
- **[@jcastro](https://github.com/jcastro)** — la importación de archivos Compose con varios servicios, probada en pilas reales, dieciséis de las aplicaciones nuevas y la guía para proponer aplicaciones al catálogo OCI.
- **[@Vaso73](https://github.com/Vaso73)** — la tarea de actualización de Proxmox en el servidor y la detección de reinicios pendientes, probadas con una actualización y un reinicio reales, y la traducción al eslovaco.
- **[@DrOwl](https://github.com/DrOwl)** — el mapa de controladoras de almacenamiento y los detalles de los pools ZFS.
- **[@f3rs3n](https://github.com/f3rs3n)** — los gráficos de la vista general y la traducción al italiano.
- **Carlos Cáceres** — el informe y el ejemplo de configuración que dieron pie a la clave de API para Ollama local.
- **Todos los que han reportado un problema o sugerido una aplicación**, citados junto a cada cambio.
## 2026-10-26 ## 2026-10-26
### Nueva versión ProxMenux v1.2.7 ### Nueva versión ProxMenux v1.2.7