docs: review Monitor documentation in all seven translations

This commit is contained in:
Jonatan
2026-10-17 15:08:53 +02:00
parent ce1a3de719
commit dace78214a
209 changed files with 43788 additions and 1942 deletions
@@ -0,0 +1,174 @@
{
"meta": {
"title": "Pannello Apps: un lanciatore per tutti i collegamenti web | ProxMenux",
"description": "Utilizzare il cruscotto Apps per aprire i Link Web registrati LXC e link personalizzati, organizzarli per categoria, e saltare indietro all'ospite che possiede ogni servizio."
},
"header": {
"title": "Dashboard: scheda Apps",
"description": "Un singolo lanciatore per le interfacce web che si utilizzano attraverso il nodo, se provengono da un'applicazione LXC registrata o da un collegamento Web personalizzato.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Un lanciatore, non un installatore di applicazione",
"body": "La scheda <strong>Apps</strong> non installa software né scopre servizi. Raggruppa i collegamenti salvati in una griglia ricercabile. I link LXC si configurano nella <appTabLink>scheda App</appTabLink> del guest; i link personalizzati includono servizi VM, proxy inversi e pannelli esterni."
},
"sources": {
"heading": "Cosa appare in Apps",
"intro": "Ogni URL avviabile diventa la propria carta. La fonte determina dove la carta viene modificata, ma non come sembra durante l'uso normale.",
"colSource": "Fonte",
"colAppears": "Che cosa appare",
"colManagedFrom": "Dove è gestito",
"rows": [
{
"source": "Applicazione registrata LXC",
"appears": "Una scheda per ogni collegamento Web salvato sul record di applicazione.",
"managedFrom": "VM & LXCs → LXC modal → App"
},
{
"source": "Collegamento personalizzato legato ad un ospite",
"appears": "Un URL di servizio associato a una specifica VM o LXC.",
"managedFrom": "Apps → Modifica"
},
{
"source": "Collegamento personalizzato senza associazione",
"appears": "Qualsiasi destinazione HTTP(S), incluso un servizio esterno o pubblicato tramite proxy inverso.",
"managedFrom": "Apps → Modifica"
}
],
"relationshipTitle": "App e la scheda App LXC hanno diversi lavori",
"relationshipBody": "La <appTabLink>scheda App</appTabLink> del LXC gestisce identità, link web e tracciamento opzionale della versione. <strong>Apps</strong> usa questi link per aprirli rapidamente. Modificare una scheda LXC riporta quindi al record del guest senza duplicare la configurazione."
},
"cards": {
"heading": "Come utilizzare una carta",
"intro": "L'intera carta è l'obiettivo di lancio, mentre i suoi controlli più piccoli forniscono contesto senza aprire il servizio.",
"items": [
"Fare clic sulla scheda per aprire il suo URL in una nuova scheda del browser.",
"Il logo utilizza prima il logo Web Link e torna al logo dell'applicazione quando necessario.",
"Il chip di categoria utilizza lo stesso colore ed etichetta del corrispondente collegamento Web nella scheda App LXC.",
"L'etichetta del guest identifica la VM o il LXC associato. Un clic apre la sua finestra: i link LXC aprono <strong>App</strong>, quelli VM <strong>Stato</strong>.",
"Una freccia verso l'alto viola significa che l'applicazione specifica o l'immagine Docker ha un aggiornamento disponibile. Non è un numero di aggiornamento generale per l'intero ospite."
]
},
"toolbar": {
"heading": "Cerca, filtra e ordina",
"intro": "La barra degli strumenti restringe una grande collezione di applicazioni senza cambiare i record salvati.",
"items": [
"La ricerca corrisponde al nome dell'applicazione, al nome degli ospiti, alla VMID e alla categoria.",
"Il filtro categoria mostra una categoria alla volta o tutte le applicazioni.",
"Ordina per <strong>Nome</strong>, <strong>ID</strong> o <strong>Categoria</strong>. L'ordinazione per categoria aggiunge titoli tra i gruppi di schede.",
"L'ordine viene ricordato in questo browser. Testo di ricerca e filtro categoria vengono azzerati tornando alla pagina.",
"La scheda App rimane disponibile quando la griglia è vuota, quindi il primo link personalizzato può essere aggiunto senza prima registrare un'applicazione LXC."
]
},
"customLinks": {
"heading": "Aggiungere e modificare link web personalizzati",
"intro": "Utilizzare un link personalizzato quando il servizio non è rappresentato da un'applicazione LXC registrata.",
"steps": [
"Premi <strong>Aggiungi link</strong> nella barra degli strumenti o nella vista vuota.",
"Inserisci un nome e un URL completo <code>http://</code> o <code>https://</code>.",
"A richiesta aggiungere un logo, scegliere o creare una categoria, e legare il link a un VM o LXC.",
"Salva il collegamento. La scheda appare subito nella griglia.",
"Per modificare o rimuovere un link personalizzato scegli <strong>Modifica</strong> e usa la matita sulla scheda."
],
"colField": "Campo",
"colRequired": "Obbligatorio",
"colPurpose": "Scopo",
"fields": [
{
"field": "Nome",
"required": "Sì",
"purpose": "Il titolo della carta e il termine di ricerca."
},
{
"field": "URL",
"required": "Sì",
"purpose": "La destinazione completa HTTP(S) aperta dalla scheda."
},
{
"field": "URL logo",
"required": "No",
"purpose": "Un'immagine remota mostrata sulla scheda."
},
{
"field": "Categoria",
"required": "No",
"purpose": "Aggiunge un badge condiviso e consente di filtrare la categoria."
},
{
"field": "Associazione al guest",
"required": "No",
"purpose": "Associa il collegamento con un VM o LXC e consente la scorciatoia degli ospiti."
}
],
"editTitle": "Modificare la fonte della verità",
"editBody": "La modalità modifica mostra matite solo per i link personalizzati. Per una scheda di applicazione LXC apri la <appTabLink>scheda App</appTabLink> del guest e modifica il link salvato."
},
"categories": {
"heading": "Categorie e segnali di aggiornamento",
"intro": "Le categorie organizzano i link; gli indicatori di aggiornamento descrivono lo stato del software. Sono intenzionalmente separati.",
"items": [
"La registrazione LXC, assistita da un catalogo, può preriempire una categoria, ma rimane modificabile.",
"I nomi di categoria personalizzati possono essere creati dallo stesso selettore e poi riutilizzati dal filtro.",
"I colori della categoria sono deterministici e si adattano al tema chiaro o scuro. Gamma viola e rossa sono riservati per gli stati di aggiornamento e pericolo.",
"Per Docker, ProxMenux associa la scheda al container o all'immagine e mostra gli aggiornamenti dell'immagine. Quelli di Docker Engine rimangono nella <updatesLink>scheda Aggiornamenti</updatesLink> del LXC."
]
},
"persistence": {
"heading": "Persistenza e comportamento della cache",
"intro": "Il pannello usa i dati già disponibili di Monitor senza analizzare di nuovo ogni guest.",
"items": [
"I link personalizzati vengono salvati atomicamente in <code>/etc/proxmenux/custom_links.json</code> e caricati in memoria all'avvio di Monitor.",
"I link LXC registrati rimangono parte del record Monitor salvato della loro applicazione; il cruscotto Apps non li duplica nel file di collegamento personalizzato.",
"Creare, modificare o cancellare un link personalizzato aggiorna immediatamente la lista in memoria.",
"La preferenza di ordinamento è locale al browser e non si sincronizza tra dispositivi o utenti.",
"La posizione di Apps nella navigazione principale si configura separatamente in <settingsLink>Impostazioni → Ordine di navigazione</settingsLink>."
]
},
"troubleshooting": {
"heading": "Situazioni comuni",
"colProblem": "Situazione",
"colResolution": "Risoluzione",
"rows": [
{
"problem": "Un'applicazione LXC è registrata ma nessuna scheda appare",
"resolution": "Aprire la scheda App e aggiungere almeno un collegamento Web. Il tracciamento della versione da solo non crea una carta di lancio."
},
{
"problem": "L'URL o il logo è sbagliato",
"resolution": "Modificare il link personalizzato in Apps, o modificare il collegamento Web nella scheda app LXC."
},
{
"problem": "Manca un servizio Docker",
"resolution": "Modificare l'applicazione Docker registrata e salvare la porta web pubblicata del servizio come Web Link."
},
{
"problem": "La freccia viola si riferisce all'aggiornamento sbagliato Docker",
"resolution": "Rivedere il nome e la descrizione del Web Link in modo che possano essere abbinati al contenitore o all'immagine."
},
{
"problem": "Apps si apre prima di Panoramica del sistema",
"resolution": "Il primo elemento salvato in Impostazioni → ordine di navigazione diventa la scheda di atterraggio. Ripristinare l'ordine predefinito o spostare Panoramica prima."
}
]
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "scheda App LXC",
"href": "/docs/monitor/dashboard/vms-lxcs/app",
"tail": "— registrare le applicazioni, i Link Web e il monitoraggio delle versioni facoltative."
},
{
"label": "scheda Aggiornamenti LXC",
"href": "/docs/monitor/dashboard/vms-lxcs/updates",
"tail": " — configura ed esegui aggiornamenti di applicazioni, Docker Engine e immagini."
},
{
"label": "Scheda delle impostazioni",
"href": "/docs/monitor/dashboard/settings#navigation-order",
"tail": " — cambia l'ordine di navigazione e la scheda iniziale."
}
]
}
}
@@ -0,0 +1,248 @@
{
"meta": {
"title": "ProxMenux Monitor — Pannello: Hardware | Documentazione ProxMenux",
"description": "La scheda Hardware inventaria la macchina fisica: CPU e scheda madre, moduli di memoria, sensori termici, GPU con monitoraggio per slot e installazione driver in un clic, acceleratori Coral TPU, riepilogo storage con velocità dei collegamenti, elenchi PCI e USB, consumo, alimentatori, ventole e UPS."
},
"header": {
"title": "Pannello: Hardware",
"description": "La macchina fisica in uno schermo — CPU e l'identità della scheda madre, ogni modulo di memoria, sensori termici in tutti i sottosistemi, GPU con l'utilizzo dal vivo e un installatore driver integrato, Coral TPUs, ogni dispositivo PCI e USB con il suo driver del kernel, l'inventario del disco completo con velocità di collegamento negoziate, più potenza, raffreddamento e UPS.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Costruito con strumenti standard",
"body": "La maggior parte dei dati proviene da <code>lscpu</code>, <code>dmidecode</code>, <code>lspci</code>, <code>lsusb</code>, <code>lsblk</code>, <code>smartctl</code>, <code>nvme</code>, <code>sensors</code>, <code>nvidia-smi</code>, <code>intel_gpu_top</code>, <code>amdgpu_top</code>, <code>ipmitool</code> e <code>upsc</code>. Le sezioni appaiono solo quando lo strumento pertinente restituisce dati: senza UPS non appare la scheda UPS e senza IPMI non appaiono i dati di potenza fuori banda."
},
"thresholds": {
"title": "Colori e soglie di stato applicate qui",
"intro": "Ogni indicatore e lettura di temperatura usa la stessa scala: <green/> <strong>verde</strong> sotto Avviso, <amber/> <strong>ambra</strong> tra Avviso e Critico, <red/> <strong>rosso</strong> da Critico in poi. Valori predefiniti consigliati di ProxMenux:",
"items": [
"<strong>Temperatura CPU</strong> — avviso 80 °C, critico 90 °C.",
"<strong>Temperatura del disco</strong> — HDD 60/65 °C · SSD 70/75 °C · NVMe 80/85 °C · SAS 55/65 °C (avvertimento / critico)."
],
"outro": "Ogni valore è configurabile per host. <link>Impostazioni → Soglie del monitor di integrità</link> centralizza le impostazioni e spiega come regolarle."
},
"sections": {
"heading": "Sezioni",
"intro": "Le sezioni appaiono in questo ordine, dall’alto in basso. Alcune richiedono lo hardware o lo strumento corrispondente e sono indicate come <em>(condizionale)</em>.",
"systemInfoTitle": "Informazioni sistema",
"systemInfoIntro": "Due blocchi affiancati, sempre presenti:",
"systemInfoItems": [
"<strong>CPU</strong> — modello, microarchitettura, socket/core/thread, frequenze base e boost, funzionalità di virtualizzazione (VT-x / AMD-V) e topologia della cache.",
"<strong>Scheda madre</strong> — produttore, modello, versione e data BIOS, UUID SMBIOS. Aiuta a trovare la pagina corretta del produttore per gli aggiornamenti firmware."
],
"memoryTitle": "Moduli memoria",
"memoryBody": "Una riga per slot occupato da <code>dmidecode</code>: etichetta, capacità del modulo, tipo (DDR4 / DDR5 / varianti ECC), velocità configurata e nominale, produttore, codice prodotto e numero di serie. Gli slot vuoti sono attenuati per mostrare le possibilità di espansione.",
"thermalTitle": "Monitoraggio termico",
"thermalIntro": "Sette blocchi con dati da <code>lm-sensors</code>, <code>sysfs</code> e lettori specifici per strumento. I sensori hwmon di storage sono associati al dispositivo a blocchi fisico, con modello e percorso <code>/dev/...</code>. Un blocco si nasconde se la categoria non contiene sensori.",
"thermalItems": [
"<strong>CPU</strong> — temperatura del package e di ogni core.",
"<strong>GPU</strong> — sensori di GPU dedicata tramite <code>nvidia-smi</code> / <code>amdgpu_top</code> e iGPU Intel. Include hot spot e temperatura di giunzione della memoria quando il driver li espone.",
"<strong>NVME</strong> — temperatura composita del controller associata al namespace NVMe esatto.",
"<strong>HDD</strong> — Letture <code>drivetemp</code> per dispositivi di blocco rotazionale.",
"<strong>SSD</strong> — Letture <code>drivetemp</code> per dispositivi di blocco SATA/SAS non-rotazionali.",
"<strong>PCI</strong> — sensori di dispositivi collegati a PCI, come HBA e schede di rete con sensori interni.",
"<strong>OTHER</strong> — chipset, VRM, sensori ambientali che non si adattano altrove."
]
},
"graphics": {
"heading": "Schede grafiche",
"intro": "Ogni controller video appare in una scheda con produttore, modello, tipo (<em>Integrata</em> / <em>PCI</em> / BMC), indirizzo PCI (BDF), driver del kernel e moduli. <strong>Cambia modalità</strong> alterna condivisione LXC con driver nativo e passthrough VM (<code>vfio-pci</code>). <link>Cambia modalità GPU (VM ↔ LXC)</link> spiega gli effetti sull'host.",
"vfioImageAlt": "Schede grafiche: Matrox G200EH integrata associata a mgag200, pronta per LXC, e NVIDIA Quadro P400 associata a vfio-pci, pronta per passthrough VM",
"vfioImageCaption": "Due GPU rilevate: il chip BMC Matrox usa il driver nativo ed è pronto per LXC; NVIDIA Quadro P400 è associata a <code>vfio-pci</code>, pronta per passthrough VM.",
"lxcImageAlt": "Schede grafiche: iGPU Intel UHD Graphics con i915 e NVIDIA Quadro P1000 con nvidia, entrambe pronte per container LXC",
"lxcImageCaption": "Stesso nodo dopo aver cambiato la scheda NVIDIA al driver nativo — entrambe le GPU ora pronte per contenitori LXC.",
"realtimeTitle": "Finestra di monitoraggio in tempo reale",
"realtimeBody": "Un clic apre il monitoraggio per slot, che interroga lo strumento del produttore ogni tre secondi. Mostra produttore, tipo, slot PCI, driver, moduli del kernel, utilizzo dei motori (Render/3D, Video, Blitter, VideoEnhance), frequenze grafiche e di memoria, temperatura, consumo se disponibile, VRAM e processi attivi con carico per processo. Dati da <code>/api/gpu/&lt;slot&gt;/realtime</code>.",
"toolsIntro": "Lo strumento del fornitore utilizzato per GPU:",
"headerVendor": "Produttore",
"headerTool": "Strumento",
"headerProject": "Progetto",
"tools": [
{
"vendor": "NVIDIA",
"tool": "nvidia-smi",
"projectLabel": "developer.nvidia.com",
"projectHref": "https://developer.nvidia.com/nvidia-system-management-interface"
},
{
"vendor": "Intel iGPU",
"tool": "intel_gpu_top (igt-gpu-tools)",
"projectLabel": "gitlab.freedesktop.org",
"projectHref": "https://gitlab.freedesktop.org/drm/igt-gpu-tools"
},
{
"vendor": "AMD",
"tool": "amdgpu_top",
"projectLabel": "github.com/Umio-Yasuno/amdgpu_top",
"projectHref": "https://github.com/Umio-Yasuno/amdgpu_top"
},
{
"vendor": "Matrox / ASPEED (BMC)",
"tool": "— (solo visualizzazione)",
"projectLabel": "Rilevato e identificato come BMC; nessun monitoraggio in tempo reale."
}
],
"nvidiaImageAlt": "Monitoraggio NVIDIA Quadro P1000: produttore NVIDIA, driver nvidia caricato, frequenza grafica 1.26 GHz, memoria 2.50 GHz, temperatura 50 °C, motori allo 0 %, nessun processo attivo, memoria totale 4096 MiB",
"nvidiaImageCaption": "NVIDIA Quadro P1000 con driver proprietario: frequenze, temperatura, barre di utilizzo dei motori e processi attivi.",
"intelImageAlt": "Monitoraggio iGPU Intel UHD Graphics con i915: consumo 11.31 W, carico video 1 % e processo ffmpeg che usa 8 MB",
"intelImageCaption": "Intel iGPU con <code>i915</code> attivo. La tabella dei processi attivi raccoglie un lavoro ffmpeg utilizzando il motore video.",
"amdImageAlt": "Monitoraggio GPU integrata AMD Lucienne con amdgpu: motori allo 0 % e amdgpu_top come processo attivo",
"amdImageCaption": "iGPU AMD monitorata con <code>amdgpu_top</code>. Lo strumento appare come processo attivo perché acquisisce i dati in tempo reale.",
"installTitle": "Installare il driver NVIDIA dalla finestra",
"installBody": "Con <code>nouveau</code>/<code>nvidiafb</code> senza driver proprietario NVIDIA, non sono disponibili frequenze, consumo e carico per processo. La finestra offre <strong>Installa driver NVIDIA</strong>, che esegue lo script di <link>Installa driver NVIDIA (host)</link>.",
"noDriverAlt": "Monitoraggio NVIDIA Quadro P620 con nvidiafb e nouveau caricati, avviso Monitoraggio esteso non disponibile e pulsante blu Installa driver NVIDIA",
"noDriverCaption": "Driver proprietario non ancora installato: la finestra offre un installatore in un clic.",
"promptAlt": "Conferma di installazione del driver NVIDIA con GPU rilevate, container LXC con passthrough NVIDIA e pulsanti Sì/Annulla",
"promptCaption": "Riepilogo prima dell'installazione: GPU rilevate, container LXC con passthrough NVIDIA e azioni previste. Nessuna modifica prima della conferma.",
"successAlt": "Uscita terminale che mostra il driver NVIDIA 580.105.08 installato con successo e nvidia-smi segnalando un Quadro P620",
"successCaption": "Installazione di successo — il NVIDIA <code>.run</code> costruito tramite DKMS, il servizio di persistenza è in atto, e <code>nvidia-smi</code> segnala il GPU.",
"warningTitle": "Scegli una versione del driver supportata dalla GPU",
"warningBody": "I nuovi rami NVIDIA abbandonano il supporto per famiglie GPU precedenti, come Maxwell o Kepler. Se <code>nvidia-smi</code> mostra <em>\"No devices were found\"</em> dopo l'installazione o DKMS fallisce, il ramo può essere incompatibile. Ripeti con un ramo precedente, come legacy 470.x per Kepler. Verifica la compatibilità nella <a>pagina ufficiale di ricerca dei driver</a>.",
"whereGoIntro": "Dove andare da qui:",
"whereGoItems": [
"<link1>Installa driver NVIDIA (host)</link1> — guida completa, matrice di compatibilità del kernel, patch NVENC opzionale e propagazione ai LXC.",
"<link2>Cambia modalità GPU (VM ↔ LXC)</link2> — effetti del comando <em>Cambia modalità</em> nella scheda.",
"<link3>Aggiungi GPU a VM (passthrough)</link3> e <link4>Aggiungi GPU a LXC</link4> — prima assegnazione di una GPU non associata."
]
},
"coral": {
"heading": "Coral TPU / Acceleratori AI",
"subHeading": "(condizionale)",
"intro": "Appare con dispositivi Google Coral o altri acceleratori AI collegati. Ogni finestra mostra connessione (M.2 / mini-PCIe / USB), larghezza PCIe, ID produttore/prodotto, supporto software (<code>apex</code> nel kernel per PCIe, <code>libedgetpu</code> in spazio utente per USB), moduli (<code>gasket</code> + <code>apex</code>), nodi (<code>/dev/apex_*</code>), stato del runtime Edge TPU, temperatura in tempo reale e soglie di avviso del firmware.",
"imageAlt": "Coral Edge TPU dettaglio modale: connessione PCIe/M.2, collegamento PCIe 5.0 GT/s x1, fornitore 1ac1:089a, driver del kernel apex, Moduli gasket e apex caricati, /dev/apex_0 presente, Edge TPU Runtime non installato, temperatura 53.5 °C con soglie di avviso hardware",
"imageCaption": "M.2 Coral con i moduli del kernel host caricati, il nodo del dispositivo e gli avvisi di temperatura del firmware esposti. La linea runtime diventa verde una volta installato il runtime Edge TPU corrispondente.",
"pathsIntro": "Esistono due percorsi di installazione a seconda del fattore forma:",
"pathsItems": [
"<strong>M.2 / Mini-PCIe</strong> — l'host ha bisogno dei moduli del kernel <code>gasket</code> + <code>apex</code> costruiti tramite DKMS così il nodo del dispositivo <code>/dev/apex_0</code> appare all'avvio.",
"<strong>USB Accelerator</strong> — l'host ha solo bisogno del runtime user-space Edge TPU (<code>libedgetpu1-std</code>) del repository APT di Google."
],
"outro": "<installLink>Installa Coral TPU sull'host</installLink> rileva e gestisce entrambe le varianti. Informazioni e runtime ufficiale sono su <a>coral.ai/docs</a>. Poi assegna il dispositivo a un container con <lxcLink>Aggiungi Coral TPU a LXC</lxcLink>."
},
"storage": {
"heading": "Riepilogo storage",
"intro": "Tutti i dispositivi a blocchi noti al kernel, raggruppati per tipo. Ogni disco mostra nome (<code>sda</code>, <code>nvme0n1</code>, <code>zram0</code>…), tipo (<em>SSD</em>, <em>HDD</em>, <em>NVMe SSD</em>), modello e collegamento negoziato. Un clic apre modello, numero di serie, capacità, interfaccia e velocità attuale e massima.",
"imageAlt": "Riepilogo storage con undici dispositivi a blocchi (SSD SATA, HDD SATA, SSD NVMe e zram), modelli e velocità negoziate; due NVMe in 3.0 x4 con velocità attuale evidenziata",
"imageCaption": "Undici dispositivi su questo nodo. I collegamenti SATA appaiono come <em>SATA &lt;version&gt;, &lt;Gb/s&gt; (current: ...)</em>; gli NVMe come <em>&lt;PCIe gen&gt; x&lt;width&gt;</em>.",
"nvmeBody": "Per ogni NVMe la riga confronta il collegamento negoziato con il massimo supportato. Se differiscono, per esempio un SSD Gen3 x4 a <strong>3.0 x1</strong> in uno slot con una sola linea, il valore attuale appare in ambra. Aiuta a diagnosticare dischi lenti o cambiamenti delle linee dopo un aggiornamento BIOS.",
"nvmeModalAlt": "Dettagli NVMe di nvme0n1: NVMe SSD, 953.9 GB, collegamento attuale 3.0 x1 in ambra, massimo 3.0 x4, WDC CL SN720, numero di serie e interfaccia PCIe/NVMe",
"nvmeModalCaption": "Dettagli NVMe con collegamento ridotto: il disco supporta x4, ma lo slot è cablato x1.",
"outro": "Dati SMART, autotest, cronologia e rapporto PDF sono in <storageLink>Pannello: Storage</storageLink>. Gli stessi dati alimentano <smartLink>Integrità e test SMART dei dischi</smartLink>. Un test lungo dallo script scrive il JSON mostrato da Monitor in <em>Storage → Cronologia</em>."
},
"pci": {
"heading": "Dispositivi PCI",
"intro": "Dispositivi PCI identificati dal <strong>BDF PCI</strong> (Bus:Device.Function, ad esempio <code>03:00.0</code>) e classe (<em>Controller di storage</em>, <em>Controller USB</em>, <em>Scheda grafica</em>, <em>Controller di rete</em>, <em>Controller audio</em>…). Ogni scheda mostra produttore, nome e <strong>driver del kernel associato</strong>, utili per diagnosticare passthrough, gruppi IOMMU o driver errati.",
"imageAlt": "PCI Dispositivi elenco quindici dispositivi raggruppati per classe: controller di archiviazione su ahci/nvme, controller USB, schede grafiche (uno su vfio-pci, uno sul driver nativo), controllori di rete su igb / tg3, un controller audio accanto a un GPU",
"imageCaption": "Quindici dispositivi su questo nodo. Notare il GPU e la sua funzione audio compagno sia legato a <code>vfio-pci</code> — che è una scheda preparata per il passaggio VM.",
"bdfTitle": "Leggere il BDF",
"bdfBody": "<code>03:00.0</code> indica bus PCI <code>03</code>, dispositivo <code>00</code>, funzione <code>0</code>. Le GPU dedicate usano di solito <code>.0</code> per la GPU e <code>.1</code> per l'audio HDMI. Entrambe le funzioni si passano insieme alla VM; <link>Cambia modalità GPU</link> pulisce quindi anche le associazioni audio orfane quando si esce dalla modalità VM."
},
"usb": {
"heading": "Dispositivi USB",
"intro": "Dispositivi USB con produttore e prodotto, versione USB, indirizzo <code>bus:device</code>, ID <code>vendor:product</code> e driver del kernel. Sono classificati per ruolo: <em>Comunicazioni</em> (adattatori Z-Wave / Zigbee), <em>UPS</em>, storage o HID. Si identificano così senza confrontare gli ID.",
"imageAlt": "Dispositivi USB: Aeotec Z-Wave Z-Stick, coordinatore Zigbee ConBee II e UPS Ellipse ECO, con versione USB, indirizzo, ID vendor:product e driver associato",
"imageCaption": "Tre dispositivi USB — due radio home-automazione su <code>usbfs</code> e un UPS su <code>usbfs</code> (NUT parla con libusb)."
},
"power": {
"heading": "Consumo energetico",
"subHeading": "(condizionale)",
"intro": "Appare se l'host fornisce telemetria di potenza. Mostra due fonti indipendenti quando disponibili:",
"items": [
"<strong>Consumo totale ACPI / IPMI</strong> — potenza di tutto il sistema misurata da un sensore della scheda madre o dal BMC. Tipico delle schede server.",
"<strong>Consumo del package CPU</strong> — contatori Intel RAPL o equivalente AMD. Distingue il consumo CPU dal resto sulle schede consumer prive di sensore totale."
],
"supplyImageAlt": "Consumo: 198 W totali via ACPI e due alimentatori con stato OK e potenza di uscita di 185 W e 5 W",
"supplyImageCaption": "Scheda server con un sensore ACPI e due alimentatori via IPMI: il secondo è ridondante, a riposo con 5 W.",
"cpuImageAlt": "Consumo su scheda consumer: solo 8.7 W di CPU tramite Intel RAPL",
"cpuImageCaption": "Scheda consumer senza sensore totale: mostra solo il consumo CPU tramite RAPL."
},
"psu": {
"heading": "Alimentatori",
"subHeading": "(condizionale)",
"body": "Sulle macchine server con doppi alimentatori, IPMI mostra presenza (PSU 1 / PSU 2 / …), tensione di ingresso, potenza di uscita e stato OK/guasto. Da controllare dopo un'interruzione elettrica sui nodi con alimentatori ridondanti."
},
"fans": {
"heading": "Ventole sistema",
"subHeading": "(condizionale)",
"body": "RPM di ogni ventola con minigrafico, se supportato. Senza dati individuali mostra una sola lettura della ventola del telaio."
},
"ups": {
"heading": "Stato UPS",
"subHeading": "(condizionale)",
"body": "Appare con un server NUT (Network UPS Tools) configurato e raggiungibile. Mostra stato (rete / batteria / ricarica / batteria scarica), carica della batteria, autonomia stimata, percentuale di carico, tensione di ingresso, modello e firmware. I dati alimentano anche <em>Sicurezza e certificati</em> del monitor di integrità: il passaggio a batteria viene segnalato subito."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerSection": "Sezione della scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"section": "inventario statico (PCI, CPU, BIOS)",
"endpoint": "/api/hardware",
"source": "<code>lspci -vmm</code>, <code>/proc/cpuinfo</code>, <code>dmidecode</code>; cache per la durata del processo."
},
{
"section": "Valori del sensore dal vivo",
"endpoint": "/api/hardware/live",
"source": "<code>sensors</code> (lm-sensors), <code>/sys/class/hwmon</code> e <code>/sys/block</code> identificano i dispositivi di storage. Le temperature restano in tempo reale; solo la mappatura hwmon-dispositivo è in cache per 60 secondi."
},
{
"section": "Storia della temperatura CPU",
"endpoint": "/api/temperature/history",
"source": "Serie temporale registrata ogni 60 secondi dal collettore di temperatura e salvata in SQLite."
},
{
"section": "metriche live GPU",
"endpoint": "/api/gpu/<slot>/realtime",
"source": "NVIDIA: <code>nvidia-smi --query-gpu=...</code>. Intel: <code>intel_gpu_top</code>. AMD: sysfs <code>/sys/class/drm/cardN</code>."
}
],
"codeComment1": "# Confronta l'inventario con la vista del sistema operativo",
"codeComment2": "# Confermare la scheda GPU che il cruscotto vede"
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Installare driver NVIDIA (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — script eseguito dal pulsante di installazione della finestra GPU."
},
{
"label": "Cambia modalità GPU (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": "— che cosa fa l'interruttore in linea su ogni scheda GPU all'host."
},
{
"label": "Installare Coral TPU sull'host",
"href": "/docs/hardware/install-coral-tpu-host",
"tail": " — installazione del modulo kernel e del runtime Coral."
},
{
"label": "Integrità e test disco SMART",
"href": "/docs/disk-manager/smart-disk-test",
"tail": " — script che produce i dati SMART nei dettagli del disco nella scheda Storage."
},
{
"label": "Dashboard: scheda di stoccaggio",
"href": "/docs/monitor/dashboard/storage",
"tail": " — tabella completa degli attributi SMART, cronologia degli autotest e rapporto PDF."
},
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — categoria CPU e Temperatura, che usa gli stessi sensori."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — endpoint di hardware e GPU."
},
{
"label": "Indice del pannello",
"href": "/docs/monitor/dashboard",
"tail": "— le altre schede."
}
]
}
}
@@ -0,0 +1,101 @@
{
"meta": {
"title": "ProxMenux Monitor — Dashboard | Documentazione ProxMenux",
"description": "Il pannello è l'interfaccia principale di ProxMenux Monitor: dieci schede, incluso il lanciatore Apps, un'intestazione globale e un ordine di navigazione configurabile."
},
"header": {
"title": "Dashboard",
"description": "La vista quotidiana di ProxMenux Monitor: dieci schede, incluso il lanciatore Apps, un'intestazione globale e un ordine di navigazione configurabile.",
"section": "ProxMenux Monitor"
},
"oneHeader": {
"title": "Un'intestazione, dieci schede",
"body": "L'intestazione (logo, nome del nodo, indicatore di stato, tempo di attività, aggiornamento e tema) rimane visibile. La scheda attiva cambia l'intera area dei contenuti. Il colore indica la categoria peggiore del <link>monitoraggio dello stato</link>: lo stesso dato visualizzato nel pannello."
},
"tabs": {
"heading": "Le dieci schede",
"intro": "Ogni scheda ha una propria pagina dedicata. Le pagine sono aggiunte in modo incrementale come la documentazione è riempita in; di seguito è l'elenco completo e ciò che ciascuno è responsabile.",
"headerTab": "Scheda",
"headerOwns": "Di cosa si occupa",
"rows": [
{
"name": "Panoramica sistema",
"linksTo": "/docs/monitor/dashboard/system-overview",
"owns": "CPU / widget di memoria / temperatura, conteggio attivo VM & LXC, grafici metrici storici, sommari di archiviazione e rete. Scheda di atterraggio predefinita fino a quando l'ordine di navigazione è personalizzato."
},
{
"name": "Applicazioni",
"linksTo": "/docs/monitor/dashboard/apps",
"owns": "Lanciatore unificato di collegamenti web LXC registrati e collegamenti personalizzati, con categorie, ricerca, scorciatoie ai guest e indicatori di aggiornamento per applicazione."
},
{
"name": "Archiviazione",
"owns": "Pool Proxmox, dischi fisici, dati SMART, stato ZFS, usura e durata utile, cronologia delle osservazioni."
},
{
"name": "Rete",
"owns": "Interfacce fisiche, bond, bridge e OVS, indirizzi IP/MAC, grafici RX/TX e cronologia RRD per interfaccia."
},
{
"name": "VM e LXC",
"owns": "Inventario dei guest, dettagli di configurazione, metriche e log, azioni di avvio, arresto, riavvio e spegnimento."
},
{
"name": "Hardware",
"owns": "Modello e topologia CPU, layout di memoria, topologia PCIe, GPU con monitoraggio in tempo reale per-slot."
},
{
"name": "Log di sistema",
"owns": "Live <code>journalctl</code> con filtri, cronologia delle attività Proxmox, registro delle notifiche, pacchetti di log scaricabili."
},
{
"name": "Terminale",
"owns": "Shell dell'host o di qualsiasi VM/CT nel browser, con <code>xterm.js</code> tramite WebSocket."
},
{
"name": "Sicurezza",
"owns": "Impostazione dell'auth, password / Token 2FA / API, log di audit, pannello Fail2Ban opzionale, distribuzione Secure Gateway."
},
{
"name": "Impostazioni",
"owns": "Lingua di Monitor, ordine di navigazione, canali di notifica, provider IA, soglie di stato, esclusioni e inventario delle ottimizzazioni post-installazione."
}
]
},
"headerAnatomy": {
"heading": "Struttura dell'intestazione",
"items": [
"<strong>Logo + nome del prodotto</strong> a sinistra. Il logo si trasforma in una variante \"aggiornamento disponibile\" quando viene rilevata una nuova versione Monitor.",
" <strong>Identità del nodo</strong>: nome ottenuto da <code>pvesh get /nodes</code>, con <code>hostname</code> come alternativa.",
" <strong>Indicatore di stato</strong>: Regolare (verde), Avviso (giallo), Critico (rosso). Un clic apre il monitoraggio dello stato. Un badge blu <em>info</em> appare se gli elementi ignorati sono ancora nel periodo di soppressione.",
" <strong>Tempo di attività</strong>: durata di funzionamento dell'host in formato leggibile.",
" <strong>Pulsante Aggiorna</strong>: ripete le chiamate API dei dati in tempo reale senza ricaricare l'intera pagina.",
" <strong>Selettore del tema</strong>: chiaro, scuro o sistema. Salvato in <code>localStorage</code>."
]
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Scheda Apps",
"href": "/docs/monitor/dashboard/apps",
"tail": " — lanciatore unificato di collegamenti web e relazione con le applicazioni LXC registrate."
},
{
"label": "Scheda Panoramica del sistema",
"href": "/docs/monitor/dashboard/system-overview",
"tail": "— la scheda di atterraggio, completamente documentata."
},
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — finestra dell'indicatore di stato, con dettagli delle dieci categorie."
},
{
"label": "Architettura",
"href": "/docs/monitor/architecture",
"tail": "— come il cruscotto parla al backend Flask."
}
]
}
}
@@ -0,0 +1,251 @@
{
"meta": {
"title": "ProxMenux Monitor — Dashboard: scheda Rete | Documentazione ProxMenux",
"description": "La scheda Rete elenca le interfacce dell’host: schede fisiche, bridge, bond, VLAN e interfacce virtuali VM/LXC. Il dettaglio mostra IP, MAC, stato, membri del bond, traffico dall’avvio e storico RRD."
},
"header": {
"title": "Dashboard: scheda di rete",
"description": "Le interfacce rilevate dal kernel — schede fisiche, bridge, bond, VLAN e porte virtuali VM/LXC — sono raggruppate in tre schede. Fai clic su una riga per vedere indirizzi, contatori del traffico e dati storici RRD.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Dati attuali e storici",
"body": "Lo stato attuale proviene da <code>psutil.net_if_stats()</code> e <code>ip</code>, lo storico della banda dall’archivio RRD Proxmox tramite <code>/api/network/&lt;interface&gt;/metrics</code>. I contatori si aggiornano circa ogni 5 secondi e i dati RRD del grafico vengono caricati su richiesta."
},
"topRow": {
"heading": "Riga superiore: quattro schede statistiche",
"headerCard": "Scheda",
"headerWhat": "Cosa mostra",
"rows": [
{
"card": "Traffico rete",
"what": "Velocità RX/TX complessiva di tutte le interfacce, espressa nell’unità appropriata (bps / Kbps / Mbps / Gbps)."
},
{
"card": "Interfacce attive",
"what": "Due contatori: <em>Physical X / Y</em> e <em>Bridges X / Y</em>, attive rispetto al totale. Un primo controllo quando qualcosa smette di funzionare."
},
{
"card": "Stato rete",
"what": "Stato rapido: Regolare / Avviso / Critico in base a collegamento, raggiungibilità del gateway e integrità del bridge. Rispecchia la categoria <em>Interfacce di rete</em> di Health Monitor."
},
{
"card": "Latenza rete",
"what": "Tempo di andata e ritorno verso il gateway con un piccolo grafico. Un clic apre la <strong>finestra Latenza di rete</strong> descritta sotto: storico e test ping su richiesta verso gateway, Cloudflare o Google, con rapporto PDF scaricabile."
}
]
},
"flow": {
"heading": "Schema di flusso di rete",
"intro": "Tra la riga superiore e le tre schede, <strong>Network Flow</strong> mostra la topologia in tempo reale. I percorsi dei pacchetti collegano le schede fisiche, i bridge al centro e infine VM e container. Gli impulsi animati rappresentano il traffico rx/tx attuale di ogni collegamento.",
"imageAlt": "Schema di flusso di rete — NIC a sinistra, host e ponti nel mezzo, VM e LXC a destra, con impulsi animati su ogni connessione",
"imageCaption": "Flusso di rete — nodi colorati più comete animate la cui direzione e spessore riflettono il traffico dal vivo.",
"elementsTitle": "Cosa mostra il diagramma",
"elementsIntro": "Ogni nodo rappresenta una voce dello stesso inventario delle schede sottostanti. La disposizione come topologia rende subito visibili le relazioni:",
"elements": [
"<strong>Schede di rete</strong> (ambra) — interfacce fisiche con collegamento attivo; quelle inattive appaiono attenuate.",
"<strong>Host</strong> (ambra) — l’host Proxmox tra schede di rete e bridge. Un punto fisso non cliccabile.",
"<strong>Bridge</strong> (ciano) — bridge Linux e OVS con almeno un guest attivo. Quelli inutilizzati sono nascosti per concentrare il diagramma sul traffico effettivo.",
"<strong>LXC</strong> (ciano) — container in esecuzione collegati a un bridge.",
"<strong>VM</strong> (viola) — macchine virtuali in esecuzione collegate a un bridge.",
"Le VM e i container arrestati sono nascosti."
],
"pulsesTitle": "Cosa codifica l'animazione",
"pulsesBody": "Le comete animate che viaggiano lungo ogni bordo rappresentano il traffico dal vivo:",
"pulses": [
"<strong>Direzione</strong> — verso la scheda di rete significa <em>tx</em> del guest; verso il guest, <em>rx</em>.",
"Lo <strong>spessore della linea</strong> cresce con la velocità rx+tx del guest. Senza traffico resta una linea animata tenue; con molto traffico diventa spessa.",
"<strong>Bagliore della testa della cometa</strong> — tonalità calda intorno a 1 MB/s, intensa da 30 MB/s. Aiuta a individuare il guest che occupa maggiormente una scheda di rete.",
"<strong>Clic</strong> — tutti i nodi tranne l’host aprono la finestra di dettaglio dell’interfaccia descritta sotto. Fare clic sull’host non ha effetto: questa vista non prevede una finestra per esso."
],
"useTitle": "Quando è utile",
"useBody": "Le schede mostrano <em>cosa</em> esiste; il diagramma mostra <em>come è collegato</em> e dove passa il traffico. Puoi individuare guest sullo stesso bridge, due guest molto attivi sulla stessa scheda — un possibile collo di bottiglia — o una VM che satura un collegamento mentre le altre sono inattive."
},
"groups": {
"heading": "Tre gruppi di interfaccia",
"intro": "Tre schede raggruppano le interfacce per funzione. Ogni intestazione indica quante sono attive. Un’etichetta colorata identifica il <strong>tipo</strong> di ogni interfaccia:",
"badges": [
"Blu <strong>Physical</strong> — NIC reale.",
"Verde <strong>Bridge</strong> — bridge Linux o OVS (<code>vmbr*</code>).",
"Viola <strong>Bond</strong> — aggregazione bond / LACP / active-backup.",
"Ciano <strong>VLAN</strong> — sottointerfaccia VLAN (<code>vmbr0.10</code>, <code>eno1.42</code>, …)."
],
"clickable": "<strong>Ogni riga è cliccabile</strong>: interfacce fisiche, virtuali, bridge e bond. Il dettaglio descritto sotto mostra dati di base, IP, contatori e storico RX/TX dall’archivio RRD Proxmox.",
"physicalTitle": "Interfacce fisiche",
"physicalBody": "Interfacce fisiche riconosciute dal kernel: <code>eno1</code>, <code>enp4s0</code>, <code>eth0</code>, <code>wlp3s0</code>, ecc. Ogni dispositivo ha una riga con etichetta blu <strong>Physical</strong> e stato del collegamento. Compaiono anche i <em>membri di un bond</em>, con riferimento al bond di appartenenza.",
"bridgeTitle": "Interfacce bridge",
"bridgeBody": "Bridge Linux (<code>vmbr0</code>, <code>vmbr1</code>, …) e OVS gestiti da Proxmox. Ogni riga mostra l’etichetta verde <strong>Bridge</strong>, l’interfaccia fisica se c’è una sola porta e lo stato. I bond hanno l’etichetta viola <strong>Bond</strong>, le sottointerfacce VLAN quella ciano <strong>VLAN</strong>.",
"vmTitle": "Interfacce VM / LXC",
"vmBody": "Interfacce <code>tap*</code> e <code>veth*</code> create all’avvio dei guest, una per scheda virtuale. L’intestazione mostra <em>X / Y Active</em> e le righe rimandano alla VM/CT nella scheda VM e LXC. Dopo l’arresto, le voci inattive scompaiono al successivo aggiornamento."
},
"drillIn": {
"heading": "Dettaglio per interfaccia",
"intro": "Un clic su una riga apre una finestra con cinque sezioni:",
"headerBlock": "Blocco",
"headerContents": "Contenuto",
"rows": [
{
"block": "Informazioni di base",
"contents": "Nome, tipo (fisica / bridge / bond / VLAN / vm), indirizzo MAC, stato (attivo / inattivo), MTU e interfaccia fisica sottostante per i tipi virtuali."
},
{
"block": "Membri del bond",
"contents": "Solo per i bond: ogni scheda membro con stato attivo o guasto, modalità del bond (active-backup / 802.3ad / balance-alb / …) e interfaccia principale se configurata."
},
{
"block": "Indirizzi IP",
"contents": "Ogni indirizzo IPv4 / IPv6 con la lunghezza del prefisso. Gli indirizzi link-locali configurati automaticamente sono elencati ma grigiati."
},
{
"block": "Grafico storico",
"contents": "Banda RX/TX nell’intervallo scelto (1 ora / 24 ore / 7 giorni / 30 giorni / 1 anno), ottenuta da <code>/api/network/&lt;interface&gt;/metrics</code> (RRD Proxmox)."
},
{
"block": "Traffico dall'ultimo avvio",
"contents": "Totale di byte e pacchetti RX/TX dall’ultimo avvio dell’host, con contatori di errori e pacchetti scartati."
}
],
"inactiveTitle": "Il dettaglio delle interfacce inattive resta accessibile",
"inactiveBody": "Se l’interfaccia è <em>inattiva</em>, la finestra mostra l’avviso «Interfaccia inattiva» senza contatori attuali. Configurazione — indirizzi e membri del bond — e storico restano visibili per capire cosa è fallito e quando."
},
"latency": {
"heading": "Finestra Latenza di rete",
"intro": "Fai clic su <em>Latenza di rete</em> nella riga superiore per aprire la finestra: storico, test su richiesta, tre destinazioni e rapporto PDF scaricabile.",
"targetsTitle": "Destinazioni",
"targetsIntro": "Il menu in alto seleziona la destinazione del ping:",
"targets": [
"<strong>Gateway</strong> — il router LAN. Verifica solo il tratto locale per analizzare problemi di switch o cablaggio senza includere la WAN.",
"<strong>Cloudflare (1.1.1.1)</strong> — resolver DNS pubblico su rete anycast. Verifica il tratto WAN.",
"<strong>Google (8.8.8.8)</strong> — destinazione pubblica alternativa per confrontare i risultati o in caso di problemi regionali Cloudflare."
],
"mode1Title": "Modalità 1 — Vista storica",
"mode1Alt": "Finestra di latenza in modalità storica, destinazione Gateway, intervallo di un’ora e misurazioni precedenti tracciate",
"mode1Caption": "Storico del gateway nell’ultima ora. Il processo di raccolta di temperatura e latenza salva le misurazioni nel database ogni 60 secondi.",
"mode1Body1": "Modalità iniziale della finestra. Un secondo menu sceglie l’intervallo (<em>1 ora / 6 ore / 24 ore / 3 giorni / 7 giorni</em>). Sopra compaiono Attuale / Minimo / Media / Massimo e uno stato Eccellente / Buono / Discreto / Scarso secondo le soglie seguenti.",
"mode1Body2": "Fonte: le misurazioni usate da Health Monitor per rilevare rallentamenti persistenti. Il thread in background <code>_temperature_collector_loop</code> misura il gateway ogni 60 secondi e conserva lo storico in un database SQLite locale.",
"mode2Title": "Modalità 2 — Test in tempo reale",
"mode2Alt": "Finestra di latenza con ping in tempo reale verso Cloudflare, avanzamento al 50% e nuove misurazioni nel grafico",
"mode2Caption": "Test di due minuti verso Cloudflare con una lettura ogni cinque secondi, subito aggiunta al grafico. <em>Interrompi</em> termina prima; <em>Ripeti test</em> aggiunge misurazioni allo stesso insieme di dati.",
"mode2Intro": "Attivare l'obiettivo di Cloudflare o Google avvia un test di ping on-demand. Comportamento:",
"mode2Items": [
"<strong>Durata</strong> — due minuti per test, con barra di avanzamento e secondi rimanenti.",
"<strong>Frequenza</strong> — una lettura ogni cinque secondi, 24 per test.",
"<strong>Metodo</strong> — ICMP Echo Request (<code>ping</code>), tre ping consecutivi per misurazione con latenza media.",
"<strong>Stop</strong> — termina immediatamente il test; i dati parziali vengono conservati.",
"<strong>Ripeti test</strong> — aggiunge misurazioni ai dati esistenti per costruire uno storico più lungo con più esecuzioni.",
"<strong>Indicatore di stato attuale</strong> — aggiornato dopo ogni misurazione con le stesse soglie Eccellente / Buono / Discreto / Scarso."
],
"thresholdsTitle": "Soglie di prestazione",
"headerStatus": "Stato",
"headerRange": "Intervallo",
"headerImpact": "Impatto pratico",
"thresholdRows": [
{
"status": "Eccellente",
"range": "< 50 ms",
"impact": "Perfetto per applicazioni in tempo reale, giochi e videochiamate."
},
{
"status": "Buono",
"range": "50 – 100 ms",
"impact": "Accettabile per la maggior parte delle applicazioni con impatto minimo."
},
{
"status": "Discreto",
"range": "100 – 200 ms",
"impact": "Ritardo notevole. Può influenzare VoIP e applicazioni interattive."
},
{
"status": "Scarso",
"range": "> 200 ms",
"impact": "Latenza significativa. Si consiglia un'indagine."
}
],
"reportTitle": "Rapporto sulla latenza di rete (PDF)",
"reportIntro": "Entrambe le modalità hanno un pulsante <strong>Rapporto</strong> accanto alla destinazione. Genera un PDF delle misurazioni da allegare a una richiesta di assistenza al provider Internet.",
"reportPreviewAlt": "Prima pagina PDF del rapporto di latenza: sintesi, indicatore, statistiche, grafico e guida alle soglie",
"reportPreviewCaption": "La prima pagina contiene sintesi, indicatore, statistiche principali, andamento della latenza e guida alle soglie. Dalla pagina 2 seguono la tabella delle misurazioni e la metodologia.",
"downloadLabel": "Scarica un rapporto di latenza di esempio (PDF)",
"sectionsIntro": "La relazione ha sei sezioni:",
"sections": [
"<strong>Sintesi</strong> — indicatore da 0 a oltre 300 ms con zone verde, gialla e rossa; stato Eccellente / Buono / Discreto / Scarso; destinazione, modalità, numero di misurazioni e riepilogo della perdita di pacchetti.",
"<strong>Statistiche di latenza</strong> — quattro indicatori per valore attuale, minimo, media e massimo, oltre a numero di misurazioni, perdita media di pacchetti e periodo del test.",
"<strong>Grafico di latenza</strong> — grafico ad area delle misurazioni durante il test, con riferimenti di minimo, media e massimo sull’asse verticale.",
"<strong>Soglie di prestazione</strong> — la stessa scala a quattro livelli descritta sopra, con un punto colorato per livello.",
"<strong>Risultati dettagliati</strong> — tabella numerata con data e ora, latenza, perdita di pacchetti e stato di ogni misurazione. Rivela picchi brevi nascosti dalle medie.",
"<strong>Metodologia</strong> — ICMP Echo Request, tre ping consecutivi per misurazione, nome e IP della destinazione e valutazione finale derivata dallo stato."
],
"useCaseTitle": "Caso d’uso: assistenza del provider Internet",
"useCaseBody": "Esegui due minuti di test Cloudflare quando la connessione è lenta, prolunga con <em>Ripeti test</em> e seleziona <em>Rapporto</em>. Il PDF contiene tutte le misurazioni e la metodologia. Puoi allegarlo a una richiesta di assistenza con gli orari del problema; il provider decide quali prove richiedere."
},
"excluding": {
"heading": "Escludere interfacce dal monitoraggio",
"body1": "Puoi escludere interfacce dal monitoraggio: bridge disattivati volontariamente, interfacce di test o schede rimosse ancora configurate. L’impostazione è salvata in <code>excluded_interfaces</code>: Health Monitor non genera avvisi o notifiche e non le include nello stato generale.",
"body2": "Nel menu contestuale scegli <em>Escludi dal monitoraggio</em>. L’interfaccia resta visibile con etichetta viola <strong>esclusa</strong>. Puoi riattivare il monitoraggio dallo stesso menu."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerSection": "Sezione della scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"section": "Inventario di interfaccia",
"endpoint": "/api/network",
"source": "<code>ip -j addr</code> + <code>ip -j link</code> e analisi di bond e bridge."
},
{
"section": "Carte di sintesi",
"endpoint": "/api/network/summary",
"source": "Riepilogo dell’inventario e conteggio delle interfacce attive e inattive."
},
{
"section": "Storico RX/TX per interfaccia",
"endpoint": "/api/network/<iface>/metrics",
"source": "I contatori attuali usano <code>/proc/net/dev</code>; lo storico proviene da RRD Proxmox tramite pvesh. Le interfacce VM/LXC usano i dati del guest; quelle fisiche e i bridge, i dati del nodo."
},
{
"section": "Latenza: corrente",
"endpoint": "/api/network/latency/current",
"source": "Breve serie di <code>ping</code> verso il gateway o la destinazione configurata."
},
{
"section": "Latenza: storica",
"endpoint": "/api/network/latency/history",
"source": "Misurazioni salvate circa ogni 60 secondi dal processo in background di raccolta di temperatura e latenza."
}
],
"codeComment1": "# Verifica lo stato delle interfacce mostrato nella dashboard",
"codeComment2": "# Verifica una misurazione attuale della latenza end-to-end"
},
"whereNext": {
"heading": "Per approfondire",
"items": [
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — categoria Rete e soglie dello storico della latenza."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — endpoint di rete e latenza."
},
{
"label": "Integrazioni",
"href": "/docs/monitor/integrations",
"tail": " — la raccolta Prometheus espone le stesse metriche di rete."
},
{
"label": "Indice Dashboard",
"href": "/docs/monitor/dashboard",
"tail": "— le altre schede."
},
{
"label": "ProxMenux → Rete",
"href": "/docs/network",
"tail": "— il lato delle azioni: analisi del ponte, nomi di interfaccia persistenti, backup e riavvio, iperf3."
}
]
}
}
@@ -0,0 +1,246 @@
{
"meta": {
"title": "ProxMenux Monitor — Dashboard: scheda Sicurezza | Documentazione ProxMenux",
"description": "La scheda Sicurezza riunisce i controlli di protezione in due colonne: ProxMenux Monitor (autenticazione, SSL/HTTPS, token API, Secure Gateway) e Proxmox VE (firewall, Fail2Ban, audit Lynis). Include la procedura guidata di Secure Gateway, l’audit Lynis e l’installazione e la configurazione delle regole di Fail2Ban."
},
"header": {
"title": "Dashboard: scheda di sicurezza",
"description": "I controlli di sicurezza sono divisi in due blocchi: la configurazione di Monitor (autenticazione, SSL, token, Secure Gateway) e quella dell’host Proxmox monitorato (firewall, Fail2Ban, Lynis).",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Due ambiti, una scheda",
"body": "La scheda Sicurezza ha due sezioni: <strong>ProxMenux Monitor</strong> (impostazioni della dashboard) e <strong>Proxmox VE</strong> (impostazioni dell’host). Le schede Fail2Ban e Lynis propongono l’installazione se gli strumenti mancano e mostrano i relativi controlli dopo l’installazione."
},
"monitor": {
"heading": "ProxMenux Monitor",
"intro": "Quattro schede consentono di gestire l’accesso alla dashboard e l’autenticazione."
},
"auth": {
"heading": "Autenticazione",
"imageAlt": "Scheda di autenticazione con stato Attivata, pulsanti Esci e Cambia password, informazioni sull’autenticazione a due fattori e pulsanti per attivarla o disattivare l’autenticazione",
"imageCaption": "Scheda con autenticazione attiva: indicatore di stato, Cambia password, Attiva 2FA e l’azione distruttiva Disattiva autenticazione.",
"intro": "La scheda gestisce l’accesso alla dashboard. Il primo avvio, i criteri per le password, la configurazione TOTP e il recupero dopo la perdita dell’autenticatore sono descritti in <link>Accesso e autenticazione</link>. Qui puoi gestire queste impostazioni nell’uso quotidiano:",
"items": [
"<strong>Stato autenticazione</strong> — indicatore <em>Attivata</em> / <em>Disattivata</em> / <em>Rifiutata</em>.",
"<strong>Cambia password</strong> — password attuale + nuova password + conferma.",
"<strong>Attiva / Disattiva autenticazione a due fattori</strong> — apre la configurazione con codice QR all’attivazione e richiede la password attuale alla disattivazione.",
"<strong>Disattiva autenticazione</strong> — azione distruttiva che alla visita successiva ripropone la finestra iniziale <em>Proteggere la dashboard?</em>."
]
},
"ssl": {
"heading": "SSL/HTTPS",
"imageAlt": "Scheda SSL/HTTPS con stato HTTP senza SSL, certificato Proxmox rilevato con soggetto, emittente e scadenza, pulsante Usa certificato Proxmox e opzione Usa certificato personalizzato",
"imageCaption": "Scheda SSL/HTTPS con HTTPS disattivato. Monitor rileva il certificato installato sull’host Proxmox e permette di usarlo con un clic. Se hai altri file, puoi scegliere <em>Usa certificato personalizzato</em>.",
"intro": "Rende disponibile la dashboard via HTTPS senza proxy inverso. La scheda rileva il certificato usato da Proxmox in <code>/etc/pve/local/</code> e mostra soggetto, emittente e scadenza per verificarlo prima dell’attivazione. HTTPS può essere attivato in due modi:",
"items": [
"<strong>Usa certificato Proxmox</strong> — Monitor riutilizza il certificato dell’host con un clic. Adatto se PVE e la dashboard usano già lo stesso nome DNS.",
"<strong>Usa certificato personalizzato</strong> — incolla i percorsi assoluti del certificato <code>.pem</code> e della chiave privata <code>.key</code>. Vengono convalidati prima del riavvio del servizio. Se il caricamento fallisce, la dashboard torna automaticamente a HTTP e resta accessibile."
],
"enabledAlt": "Scheda SSL/HTTPS con HTTPS attivato, certificato attivo con i percorsi di pve-ssl.pem e pve-ssl.key e pulsante Disattiva HTTPS",
"enabledCaption": "HTTPS attivo — la scheda mostra il certificato in uso, i percorsi dei file e l’azione <em>Disattiva HTTPS</em>, che ripristina HTTP sulla stessa porta.",
"acmeTitle": "ACME / Let's Encrypt tramite Proxmox",
"acmeBody": "Se Let’s Encrypt è già configurato sul nodo Proxmox in <em>Datacenter → Certificati → ACME</em>, la dashboard riutilizza il certificato presentato ai browser quando scegli <em>Usa certificato Proxmox</em>. Non serve configurare ACME separatamente per Monitor.",
"walkthroughLink": "Consulta <link>HTTPS per ProxMenux Monitor</link> per la procedura di rilevamento del certificato ACME, i dati scritti su disco e l’uso di una coppia <code>.pem</code> / <code>.key</code> personalizzata."
},
"apiTokens": {
"heading": "Token di accesso API",
"emptyAlt": "Scheda dei token di accesso API vuota, con informazioni sui token e pulsante Genera nuovo token API",
"emptyCaption": "Scheda dei token dopo una nuova installazione. Il riquadro <em>Informazioni sui token API</em> riepiloga durata, utilizzo e inserimento nelle intestazioni <code>Authorization: Bearer</code>.",
"intro": "Token validi un anno per integrazioni automatiche: widget Homepage, sensori REST Home Assistant, raccolta dati Grafana, flussi n8n e script personalizzati. La scheda presenta tre stati: vuota → modulo → token generato.",
"generateBody": "<strong>Genera un token.</strong> Fai clic su <em>Genera nuovo token API</em>. Inserisci un <em>nome del token</em> descrittivo per riconoscerlo nell’elenco e la <em>password</em> come conferma aggiuntiva. Se la 2FA è attiva, serve anche il codice TOTP attuale.",
"generateAlt": "Modulo di generazione del token API con campi Nome del token e Password e pulsanti Genera token e Annulla",
"generateCaption": "Modulo Genera token API: inserisci un nome e conferma con la password e, se la 2FA è attiva, il codice TOTP.",
"saveBody": "<strong>Salva subito il token.</strong> Il valore completo appare <strong>una sola volta</strong> dopo la creazione. La scheda lo segnala con un avviso arancione e un pulsante di copia. Non potrai recuperarlo in seguito: l’elenco dei token attivi mostrerà solo il prefisso.",
"generatedAlt": "Token API generato con valore mascherato, pulsante di copia, istruzioni per l’intestazione Authorization: Bearer ed elenco dei token attivi con prefisso",
"generatedCaption": "Token generato: il valore appare una sola volta con pulsante di copia e frammento esatto <code>Authorization: Bearer</code>. Sotto, l’elenco dei token attivi mostra nome, prefisso e data di creazione per revocarli singolarmente.",
"outro": "Ogni token attivo ha un pulsante <em>Revoca</em>. La revoca lo invalida subito e interrompe le integrazioni che lo usano. Trovi esempi per Homepage, Home Assistant, n8n e Prometheus in <link>Integrazioni</link>."
},
"gateway": {
"heading": "Secure Gateway",
"cardAlt": "Scheda Secure Gateway prima del primo deployment, con il pulsante Distribuisci Secure Gateway",
"cardCaption": "Scheda Secure Gateway in una nuova installazione: un pulsante avvia la procedura guidata.",
"intro": "Accedi alla dashboard, all’interfaccia web Proxmox e alle macchine guest dalla rete <a>Tailscale</a>, senza esporre porte a Internet. Monitor distribuisce sull’host un container LXC Alpine con <code>tailscaled</code> come router di sottorete. Dopo l’approvazione nella console Tailscale, i dispositivi remoti possono raggiungere l’IP LAN dell’host ovunque si trovino.",
"wizardTitle": "Procedura guidata",
"wizardIntro": "Prima di fare clic su <em>Deploy Secure Gateway</em>, genera una chiave di autenticazione nella console Tailscale. La procedura la richiederà al passaggio 2.",
"step0Title": "0. Generare la chiave di autenticazione Tailscale",
"step0Body": "Accedi a <a>login.tailscale.com/admin/settings/keys</a> e fai clic su <em>Generate auth key…</em>. Scegli una chiave <em>preautenticata</em> per evitare l’accesso interattivo a Tailscale dal gateway. Copia il valore: viene mostrato una sola volta.",
"step0Alt": "Pagina Settings → Keys della console Tailscale, con il pulsante Generate auth key evidenziato",
"step0Caption": "Console di amministrazione di Tailscale — <em>Impostazioni → Chiavi → Generare chiave auth...</em>. Utilizzare un account Tailscale gratuito se non ne hai ancora uno (link all'interno della procedura guidata).",
"step1Title": "1. Apri la procedura guidata",
"step1Body": "Torna alla scheda Sicurezza e fai clic su <em>Deploy Secure Gateway</em>. Il primo passaggio presenta funzioni e requisiti.",
"step1Alt": "Introduzione della procedura Secure Gateway: accesso VPN senza inoltro di porte e con crittografia end-to-end",
"step1Caption": "Passo 1 — panoramica di ciò che fornisce Secure Gateway e un promemoria che avrete bisogno di un account Tailscale gratuito.",
"step2Title": "2. Autenticazione Tailscale",
"step2Body": "Incolla la chiave di autenticazione del passaggio 0 e scegli un nome host. Il gateway apparirà con questo nome nella console Tailscale, in genere <code>proxmox-gateway</code> o il nome del nodo.",
"step2Alt": "Passaggio della procedura Secure Gateway con campi per la chiave di autenticazione Tailscale e il nome host del dispositivo e link per generare la chiave",
"step2Caption": "Passaggio 2: incolla la chiave preautenticata e scegli il nome host. Se hai saltato il passaggio 0, il link sotto il campo apre la relativa pagina Tailscale.",
"step3Title": "3. Ambito di accesso",
"step3Intro": "Scegli le risorse raggiungibili dalla tua rete Tailscale tramite il gateway:",
"step3Items": [
"<strong>Proxmox Only</strong> — solo l'interfaccia utente Proxmox e il monitor. Superficie di attacco più piccola.",
"<strong>Intera rete locale</strong> — tutta la sottorete LAN, rilevata automaticamente dall’interfaccia principale dell’host. Permette di raggiungere NAS, stampanti, VM e qualsiasi altro dispositivo LAN.",
"<strong>Sottoreti personalizzate</strong> — indica i CIDR desiderati. Per configurazioni con più VLAN in cui vuoi rendere accessibili solo alcuni segmenti."
],
"step3Alt": "Passaggio Ambito di accesso della procedura Secure Gateway con le opzioni Solo Proxmox, Intera rete locale e Sottoreti personalizzate",
"step3Caption": "Passaggio 3: scegli l’ambito di accesso. <em>Intera rete locale</em> inserisce automaticamente la sottorete LAN rilevata.",
"step4Title": "4. Opzioni avanzate (opzionale)",
"step4Intro": "Due opzioni, entrambe <strong>disattivate per impostazione predefinita</strong>:",
"step4Items": [
"<strong>Exit Node</strong> — dopo l’attivazione e la selezione su un dispositivo remoto, tutto il suo traffico Internet esce dalla WAN dell’host Proxmox. Utile in viaggio per usare la connessione di casa dal telefono.",
"<strong>Accetta route</strong> — permette al gateway di raggiungere le reti annunciate da <em>altri</em> router di sottorete Tailscale, per configurazioni con più sedi."
],
"step4Alt": "Passaggio Opzioni avanzate di Secure Gateway con le caselle Exit Node e Accept Routes",
"step4Caption": "Passaggio 4: Exit Node e Accept Routes. Lascia entrambe disattivate se vuoi solo accedere alla dashboard dal telefono o dal portatile.",
"step5Title": "5. Verifica e distribuisci",
"step5Body": "Riepilogo finale prima del deployment. La procedura ricorda il passaggio manuale ancora necessario nella console Tailscale: <strong>approvare la route di sottorete</strong>.",
"step5Alt": "Passaggio Verifica e distribuisci di Secure Gateway con riepilogo di nome host, modalità di accesso, reti, Exit Node e Accept Routes e pulsante Distribuisci gateway",
"step5Caption": "Passo 5 — rivedere la configurazione e distribuire. L'avviso blu in fondo segnala l'approvazione del percorso in sospeso.",
"approvalTitle": "Un ultimo passo manuale in Tailscale admin",
"approvalBody": "Dopo il deployment, apri <a>login.tailscale.com/admin/machines</a> e approva la route di sottorete annunciata dal gateway. Fino ad allora, i dispositivi remoti della rete Tailscale non potranno raggiungere gli IP LAN tramite il gateway. Tailscale segnala le route in attesa con un avviso giallo nella riga del dispositivo: fai clic su <em>Edit route settings</em> e seleziona la route."
},
"pve": {
"heading": "Proxmox VE",
"intro": "Le protezioni dell’host: firewall, prevenzione delle intrusioni e audit di sicurezza. Le schede Fail2Ban e Lynis propongono l’installazione se mancano, poi mostrano i controlli di gestione."
},
"firewall": {
"heading": "Proxmox Firewall",
"imageAlt": "Scheda firewall Proxmox con stato di cluster e host, regole di accesso rapido per Monitor e interfaccia web Proxmox, contatori, elenco delle regole e pulsante Aggiungi regola",
"imageCaption": "Scheda firewall Proxmox: interruttori per cluster e host, porte comuni in <em>Regole di accesso rapido</em>, contatori in <em>Riepilogo regole</em> ed elenco completo con <em>+ Aggiungi regola</em>.",
"intro": "La scheda gestisce la configurazione del firewall Proxmox VE. Il backend classico usa <code>iptables</code>, quello alternativo usa <code>nftables</code>. Non gestisce regole arbitrarie create fuori da Proxmox. Tre sezioni:",
"items": [
"<strong>Firewall del cluster + firewall dell’host</strong> — interruttori globali. Il firewall del cluster deve essere attivo affinché le regole dell’host abbiano effetto. La scheda indica questa dipendenza accanto all’impostazione.",
"<strong>Regole di accesso rapido</strong> — righe predefinite per <code>8008/TCP</code> (Monitor) e <code>8006/TCP</code> (interfaccia web Proxmox), con stato consentito, bloccato o non protetto. L’interfaccia Proxmox è consentita tramite una macro firewall <em>integrata</em> che non può essere eliminata per errore.",
"<strong>Riepilogo regole</strong> — contatori delle regole totali, accept, drop/reject e delle porte distinte protette. I valori provengono da <code>/etc/pve/firewall/cluster.fw</code> e <code>/etc/pve/nodes/&lt;node&gt;/host.fw</code>.",
"<strong>Regole firewall</strong> — elenco con azione, protocollo, porta, origine e livello. <em>+ Aggiungi regola</em> apre l’editor nella scheda; il cestino elimina la regola. Le modifiche vengono salvate nei file Proxmox e compaiono anche nella sua interfaccia (Datacenter / Node → Firewall)."
]
},
"fail2ban": {
"heading": "Fail2Ban",
"subHeading": "(in base allo stato)",
"whatIs": "<strong>Che cos’è.</strong> Fail2Ban è un servizio open source che rileva nei registri i tentativi di accesso falliti ripetuti e blocca l’IP nel firewall. Protegge SSH e i moduli web dagli attacchi continui di forza bruta. ProxMenux configura tre jail: SSH, accesso web Proxmox (porta 8006) e accesso ProxMenux Monitor (porta 8008).",
"notBundled": "Fail2Ban <strong>non è incluso</strong>. La scheda ne rileva la presenza e si adatta: se manca, propone l’installazione con un clic. Una volta installato, mostra lo stato dei jail e gli IP bloccati e permette di regolare il numero di tentativi e la durata del blocco per ciascun jail.",
"notInstalledAlt": "Scheda Fail2Ban non installato con descrizione della protezione per SSH, interfaccia web Proxmox e Monitor tramite nftables e pulsante Installa e configura Fail2Ban",
"notInstalledCaption": "Scheda Fail2Ban prima dell'installazione — la scatola blu prevede ciò che l'installazione configura.",
"clickBody": "Fai clic su <em>Installa e configura Fail2Ban</em> per aprire una finestra di conferma con tutte le modifiche che lo script apporterà all’host:",
"confirmAlt": "Conferma Fail2Ban con modalità SSH aggressiva, protezione Proxmox sulla porta 8006 e Monitor sulla porta 8008, rilevamento nftables, impostazioni dei registri journald e protezione SSH MaxAuthTries",
"confirmCaption": "Conferma di installazione: elenco dei jail, livello di registrazione journald adattato per leggere gli eventi SSH e ulteriore protezione SSH (<code>MaxAuthTries=3</code>).",
"confirmIntro": "Dopo la conferma, un pannello mostra il registro di installazione in tempo reale: apt, configurazione dei jail e test. Usa lo stesso meccanismo dell’installer CLI ProxMenux.",
"progressAlt": "Pannello con registro di installazione Fail2Ban: pacchetto, journald MaxLevelStore per l’autenticazione, jail, rilevamento nftables, protezione MaxAuthTries, test di comunicazione fail2ban-client e messaggio finale",
"progressCaption": "Installazione in corso: il pannello registra ogni passaggio. Il messaggio Connection closed in fondo indica la fine della trasmissione.",
"afterInstall": "Dopo l’installazione, la scheda mostra lo stato in tempo reale: jail configurati, IP bloccati e blocchi recenti. Le schede separano <em>Jail e IP bloccati</em> da <em>Attività recente</em>, le ultime N voci del registro Fail2Ban.",
"activeAlt": "Scheda Fail2Ban attiva con tre jail (proxmenux, proxmox, sshd), conteggi di IP bloccati, blocchi totali e tentativi falliti e righe con tentativi, durata del blocco, intervallo e ingranaggio",
"activeCaption": "Fail2Ban attivo: i tre jail predefiniti (<code>proxmenux</code>, <code>proxmox</code>, <code>sshd</code>) con impostazioni per tentativi, durata del blocco e intervallo di rilevamento.",
"tuneBody": "<strong>Regola il jail.</strong> Fai clic sull’ingranaggio per modificare <em>Max Retries</em>, <em>Ban Time</em> e <em>Find Time</em>, l’intervallo mobile in cui si contano i tentativi. Un blocco permanente dura fino alla rimozione manuale. Il modulo spiega i valori comuni.",
"configAlt": "Modulo del jail sshd con Max Retries, Ban Time in secondi, opzione Permanent Ban, Find Time, suggerimenti sui valori comuni e pulsante Salva configurazione",
"configCaption": "Modifica del jail sshd: riduci <em>Max Retries</em> se accedi a SSH solo dalla tua sottorete, oppure aumenta <em>Ban Time</em> per la dashboard esposta a Internet.",
"outro": "La guida <em>Installazione, configurazione e disinstallazione</em> include anche l’installazione manuale, la modifica di SSH MaxAuthTries e il registro <code>proxmenux-auth.log</code>. Vedi <link>ProxMenux → Sicurezza → Fail2Ban</link>.",
"calloutTitle": "Senza Fail2Ban, questo meccanismo non blocca gli IP",
"calloutBody": "ProxMenux Monitor controlla gli IP bloccati da Fail2Ban a <em>livello applicativo</em> prima di elaborare le richieste Flask. Interroga fail2ban-client e conserva il risultato in cache per 30 secondi; non legge una tabella SQL dei blocchi. Senza Fail2Ban, gli accessi falliti sono registrati in <code>proxmenux-auth.log</code>, ma questo meccanismo non blocca gli IP."
},
"lynis": {
"heading": "Audit di sicurezza Lynis",
"subHeading": "(in base allo stato)",
"whatIs": "<strong>Che cos’è.</strong> Lynis è uno strumento open source di audit della sicurezza che esegue circa 280 test sull’host: permessi, protezione del kernel, SSH, vulnerabilità dei pacchetti, criteri crittografici, attività pianificate, identificazione dei servizi e altro. Produce un indice di sicurezza da 0 a 100, avvisi e suggerimenti. È un riferimento comune per valutare i server Debian.",
"whyUseful": "<strong>Perché è utile.</strong> Valutare la sicurezza leggendo ogni file di configurazione è difficile. Lynis rileva problemi spesso trascurati: protezioni del kernel mancanti, cifrari SSH deboli, registri non persistenti o <code>NOPASSWD</code> in sudoers per gli account predefiniti. Ripetere l’analisi dopo le modifiche ProxMenux permette di confrontare il miglioramento tramite un punteggio.",
"notInstalledAlt": "Scheda Lynis non installato con pulsante Installa Lynis e funzioni: indice di sicurezza, rilevamento delle vulnerabilità, conformità e codice GitHub",
"notInstalledCaption": "carta Lynis prima dell'installazione — la scatola blu riassume ciò che lo strumento fa.",
"notBundled": "Anche Lynis <strong>non è incluso</strong>. ProxMenux lo installa direttamente dal codice ufficiale GitHub anziché dal pacchetto Debian.",
"confirmAlt": "Finestra di conferma Lynis con le funzioni: indice di sicurezza, rilevamento delle vulnerabilità, analisi della configurazione, verifica di conformità e codice dal repository ufficiale GitHub",
"confirmCaption": "Conferma dell’installazione che indica esplicitamente l’origine GitHub.",
"progressAlt": "Pannello di installazione Lynis in tempo reale, con installazione della versione più recente, conferma della versione 3.1.6 e messaggio finale",
"progressCaption": "Installazione in corso: il pannello mostra il registro in tempo reale, come per Fail2Ban.",
"afterInstall": "Dopo l’installazione, la scheda mostra la versione e una cronologia degli audit vuota. Fai clic su <em>Esegui audit di sicurezza</em> per avviare la prima analisi.",
"installedAlt": "Scheda Lynis dopo l’installazione con versione 3.1.6, data dell’ultima analisi, indice di sicurezza 0, avvisi 0, suggerimenti 0, rapporto vuoto e pulsante Esegui audit di sicurezza",
"installedCaption": "Lynis è installato, senza audit ancora eseguiti. Gli indicatori mostrano inizialmente zero.",
"runningAlt": "Scheda Lynis durante l’audit con messaggio di analisi in corso, durata stimata di 2–5 minuti e pulsante Audit in corso disabilitato",
"runningCaption": "Audit in corso: il pulsante mostra un indicatore di caricamento e la scheda avvisa che l’analisi può richiedere da 2 a 5 minuti.",
"finishedBody": "Al termine, la scheda mostra i risultati: indice di sicurezza, avvisi, suggerimenti ed elenco dei <em>Rapporti di audit</em> con le analisi precedenti.",
"resultsAlt": "Scheda Lynis con indice 71, dettaglio Lynis 66 e PVE 71, 3 avvisi, 40 suggerimenti, punteggio adattato a Proxmox di 71 su 100 nella fascia Buono, rapporti con download PDF e pulsante Esegui audit di sicurezza",
"resultsCaption": "Risultati di esempio: indice di sicurezza <strong>71/100 (Buono)</strong>. La scheda mostra il punteggio originale Lynis (66) e quello adattato a Proxmox (71). L’adattamento dipende dal punteggio originale e dalla quota dei rilievi considerati normali su Proxmox VE; non aggiunge 11 punti fissi.",
"scoreTitle": "Punteggio originale Lynis e punteggio adattato a Proxmox",
"scoreIntro": "Le regole Lynis sono pensate per sistemi Debian generici. Proxmox se ne discosta in alcuni casi per motivi validi, come servizi del cluster eseguiti come root o impostazioni specifiche di <code>journald</code>. La scheda mostra entrambi i punteggi per:",
"scoreItems": [
"Seguire il <em>punteggio originale Lynis</em> come farebbe un revisore esterno.",
"Seguire il punteggio <em>adattato a Proxmox</em>, un riferimento più appropriato per confrontare i nodi dello stesso cluster."
],
"reportBody": "<strong>Rapporto completo.</strong> Il pulsante <em>PDF</em> di ogni audit scarica un rapporto di più pagine: sintesi, informazioni di sistema, stato della sicurezza, avvisi spiegati, suggerimenti ordinati per impatto e inventario dei pacchetti. Puoi allegarlo a una revisione della sicurezza.",
"reportAlt": "Prima pagina di esempio del PDF Lynis con sintesi, indice 71 su 100, conteggi di avvisi e suggerimenti, nome host, kernel, versione Lynis, data e panoramica della sicurezza",
"reportCaption": "Prima pagina del rapporto: sintesi, informazioni di sistema e stato della sicurezza. Seguono avvisi dettagliati, suggerimenti e pacchetti installati. È allegato un <a>PDF di esempio</a> come riferimento.",
"runPeriodically": "Eseguire l'audit periodicamente (dopo i principali aggiornamenti di Proxmox, dopo aver applicato tweaks post-install, prima di aprire un percorso di accesso remoto) e mantenere i rapporti — la tendenza conta più di qualsiasi singolo numero.",
"outro": "La guida a <em>installazione, configurazione e disinstallazione</em> e l’analisi di un rapporto di esempio sono in <link>ProxMenux → Sicurezza → Lynis</link>."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerCard": "Scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"card": "Autenticazione, 2FA, cambio password",
"endpoint": "/api/auth/*",
"source": "Configurazione locale di autenticazione in ~/.config/proxmenux-monitor/auth.json; JWT emessi da Monitor."
},
{
"card": "SSL/HTTPS",
"endpoint": "/api/auth/ssl/*",
"source": "<code>openssl x509</code> su <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
},
{
"card": "Elencare, generare e revocare token API",
"endpoint": "/api/auth/api-tokens",
"source": "I dati dei token restano sul sistema locale; nulla lascia l’host."
},
{
"card": "Gateway sicuro (deploy + stato)",
"endpoint": "/api/oci/*",
"source": "Crea un container LXC Alpine con <code>tailscaled</code> tramite <code>pct create</code> / <code>pct exec</code>."
},
{
"card": "Stato e regole Firewall",
"endpoint": "/api/security/firewall/*",
"source": "<code>pve-firewall</code> + <code>/etc/pve/firewall/&lt;cluster|host&gt;.fw</code>."
},
{
"card": "Fail2Ban (solo quando installato)",
"endpoint": "/api/security/fail2ban/*",
"source": "<code>fail2ban-client status</code>, <code>/var/log/fail2ban.log</code>, <code>/etc/fail2ban/jail.local</code>."
},
{
"card": "Lynis audit (solo quando installato)",
"endpoint": "/api/security/lynis/*",
"source": "Esegue <code>lynis audit system</code> in background e analizza il rapporto in <code>/var/log/lynis-report.dat</code>."
}
]
},
"whereNext": {
"heading": "Per approfondire",
"items": [
{
"label": "Accesso e autenticazione",
"href": "/docs/monitor/access-auth",
"tail": " — configurazione iniziale completa, scelta dell’app 2FA, recupero dopo la perdita dell’autenticatore ed esempi di proxy inverso."
},
{
"label": "Integrazioni",
"href": "/docs/monitor/integrations",
"tail": " — esempi di token API con Homepage, Home Assistant, Prometheus e n8n e configurazione completa di Secure Gateway."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tailRich": " — tutti gli endpoint <code>/api/auth</code>, <code>/api/security</code> e <code>/api/oci</code> con metodo, corpo della richiesta ed esempi curl."
},
{
"label": "ProxMenux → Sicurezza → Fail2Ban",
"href": "/docs/security/fail2ban",
"tail": " — guida all’installazione, jail configurati e installazione manuale."
},
{
"label": "ProxMenux → Sicurezza → Lynis",
"href": "/docs/security/lynis",
"tail": " — rapporto di esempio, interpretazione del punteggio e quando ripetere l’audit."
}
]
}
}
@@ -0,0 +1,367 @@
{
"meta": {
"title": "ProxMenux Monitor — Dashboard: scheda Impostazioni | Documentazione ProxMenux",
"description": "La scheda Impostazioni gestisce lingua, ordine di navigazione, preferenze della dashboard, soglie ed esclusioni dal monitoraggio, notifiche, IA e inventario delle ottimizzazioni dopo l’installazione."
},
"header": {
"title": "Dashboard: scheda Impostazioni",
"description": "Lingua di Monitor, ordine di navigazione, preferenze della dashboard, esclusioni dal monitoraggio, notifiche, configurazione IA e inventario attuale delle ottimizzazioni ProxMenux.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Dove viene salvata ogni impostazione",
"body": "Impostazioni riunisce presentazione della dashboard, monitoraggio Health Monitor, invio degli avvisi e modifiche già applicate da ProxMenux all’host. Le schede rimandano alla propria documentazione dettagliata; qui trovi il punto di accesso."
},
"interfaceLanguage": {
"heading": "Lingua di interfaccia",
"intro": "Scegli la lingua dell’<strong>interfaccia web di Monitor</strong>. Cambia subito, senza riavviare il servizio né modificare la lingua dei menu di terminale ProxMenux.",
"items": [
"ProxMenux Monitor offre attualmente inglese, tedesco, spagnolo, francese, italiano, portoghese, slovacco e svedese.",
"Alla prima visita usa la lingua del browser, se supportata; altrimenti l’inglese.",
"La scelta aggiorna la lingua della pagina e la sincronizza con le altre schede dello stesso profilo del browser.",
"Se manca una traduzione, solo quel testo appare in inglese anziché come chiave o segnaposto non valido."
],
"scopeTitle": "Preferenza locale del browser",
"scopeBody": "La scelta è salvata in <code>localStorage</code> sotto <code>proxmenux-ui-language</code>. Vale per questo profilo del browser e dispositivo, non per l’intero nodo. Ogni amministratore può scegliere la propria lingua."
},
"navigationOrder": {
"heading": "Ordine di navigazione",
"intro": "Riordina le sette voci principali: <strong>Panoramica, App, VM e LXC, Nodo, Backup, Terminale e Amministrazione</strong>. Premi <strong>Modifica</strong>, trascina le righe e salva.",
"items": [
"Con il mouse il trascinamento inizia alla pressione. Su schermi touch serve una pressione di 250 ms per distinguerlo dallo scorrimento.",
"I gruppi <strong>Nodo</strong> e <strong>Amministrazione</strong> si spostano interi; le pagine interne mantengono l’ordine stabilito.",
"Il menu mobile segue lo stesso ordine salvato.",
"<strong>Ripristina predefiniti</strong> reimposta l’ordine in modifica. Salva per applicare il cambiamento.",
"Le nuove schede principali delle versioni future vengono aggiunte alla fine dell’ordine personalizzato, conservando la tua disposizione."
],
"landingTitle": "La prima voce diventa la scheda iniziale",
"landingBody": "Monitor apre la prima voce salvata. Con <strong>Nodo</strong> apre Archiviazione; con <strong>Amministrazione</strong>, Registri di sistema. L’ordine è salvato nel browser sotto <code>proxmenux-nav-order</code>, quindi ogni dispositivo può avere la propria disposizione."
},
"networkUnits": {
"heading": "Unità rete",
"imageAlt": "Scheda Unità di rete con il selettore di visualizzazione su Byte",
"imageCaption": "Scegli tra bit al secondo e byte al secondo per ogni velocità di rete visualizzata nel cruscotto.",
"body": "Mostra la velocità in <strong>bit al secondo</strong> (Mbps/Gbps) o <strong>byte al secondo</strong> (MB/s/GB/s). I bit sono predefiniti, come nelle specifiche di schede e provider; i trasferimenti di file usano spesso byte. Grafici, etichette e suggerimenti cambiano subito senza ricaricare."
},
"health": {
"heading": "Monitoraggio integrità",
"intro": "La scheda imposta la <strong>durata del silenziamento</strong>: quanto attendere prima di segnalare nuovamente un avviso ignorato. Ogni categoria — CPU, memoria, storage, dischi, rete, VM, servizi PVE, registri, aggiornamenti e sicurezza — ha il proprio menu:",
"items": [
"<strong>24 h</strong> — default per la maggior parte delle categorie transitorie.",
"<strong>72 h</strong> — per silenziare questi eventi per qualche giorno.",
"<strong>168 h</strong> (1 settimana) e <strong>720 h</strong> (1 mese) — controlli periodici.",
"<strong>8760 h</strong> (1 anno) — silenziamento per un lungo periodo.",
"<strong>-1</strong> — silenzio permanente fino a quando non si riattiva manualmente.",
"<strong>Ore personalizzate</strong> — un numero intero per un valore intermedio."
],
"imageAlt": "Impostazioni, scheda Health Monitor con durata per categoria e silenziamenti attivi",
"imageCaption": "I menu definiscono la durata dei silenziamenti futuri. La sezione inferiore mostra gli avvisi silenziati e permette di riattivarli.",
"editTitle": "Modalità di modifica",
"editBody": "La scheda è inizialmente in sola lettura. <strong>Modifica</strong> in alto a destra attiva menu e pulsanti di riattivazione. <strong>Salva</strong> applica insieme durate e riattivazioni in attesa; <strong>Annulla</strong> le scarta. Salva è attivo solo se ci sono modifiche.",
"activeTitle": "Silenziamenti attivi",
"activeIntro": "Sotto le durate, <strong>Silenziamenti attivi</strong> elenca gli avvisi silenziati temporaneamente —24 h, 7 giorni o altro periodo— e quelli <em>permanenti</em>. Ogni riga mostra:",
"activeItems": [
"Un badge colorato: <strong>Permanente</strong> in ambra oppure un conto alla rovescia, come <strong>24 h rimanenti</strong> / <strong>7 giorni rimanenti</strong>, in blu.",
"L’identificatore dell’avviso in forma leggibile (ad es. <code>pve_storage_full_PBS-Cloud</code> → <em>Storage PVE pieno: PBS-Cloud</em>).",
"Categoria, gravità e data e ora in cui l’avviso è stato ignorato.",
"Un pulsante <strong>Riattiva</strong> in modifica prepara la rimozione del silenziamento al salvataggio."
],
"activeReenableTitle": "Come riattivare un avviso",
"activeReenableBody": "<strong>Riattiva</strong> in modifica colora la riga di verde e barra l’identificatore, senza applicare ancora il cambio. Premi di nuovo per <strong>Annullare</strong>. <strong>Salva</strong> invia in parallelo <code>POST /api/health/un-acknowledge</code> per ogni riattivazione e rimuove le righe. Se il problema persiste e la categoria consente nuovi avvisi, torna tra gli attivi al prossimo controllo.",
"activePermanentNote": "I silenziamenti permanenti —con <em>Permanente</em> o durata predefinita <code>-1</code>— <strong>si annullano solo qui</strong>. La finestra generale non offre quel pulsante; questa sezione riunisce elenco e riattivazione.",
"activeAutoRefreshTitle": "Aggiornamento automatico",
"activeAutoRefreshBody": "L’elenco si aggiorna ignorando o riattivando un avviso in Health Monitor, tornando alla scheda e quando cambia la visibilità. Non serve ricaricare.",
"calloutTitle": "Dettagli nella pagina Health Monitor",
"calloutBody": "Escalation, risoluzione automatica quando scompare un dispositivo e differenza tra ignorare e risolvere sono descritte in <link>Health Monitor → Ignorare avvisi e durata del silenziamento</link>. Questa scheda offre menu e silenziamenti attivi."
},
"thresholds": {
"heading": "Soglie di Health Monitor",
"intro": "La scheda precedente imposta <em>il silenzio dopo aver ignorato un avviso</em>; questa regola <strong>il valore che attiva un avviso</strong>. La maggior parte dei controlli ha valori <strong>Avviso</strong> e <strong>Critico</strong> modificabili. La tabella spiega eccezioni come la regola combinata dello swap e il rilevatore RAM attuale.",
"whatForTitle": "A cosa serve",
"whatForIntro": "I valori predefiniti sono un punto di partenza, ma ogni ambiente ha condizioni proprie:",
"whatForItems": [
"Un homelab con un solo SSD può avvisare prima, per esempio al 75/90%, per lasciare spazio agli snapshot.",
"Le soglie di memoria devono riflettere misurazioni e carico dell’host. La ridondanza Ceph non giustifica da sola avvisi meno severi; l’uso elevato di ARC ZFS non equivale a memoria di lavoro non recuperabile.",
"Scegli le soglie di temperatura secondo le specifiche del disco e le condizioni reali. Il raffreddamento passivo o forzato non determina da solo un limite sicuro universalmente più basso o alto.",
"Un host molto virtualizzato può avere picchi CPU durante le compilazioni senza avvisare a ogni picco dell’80%, ma deve segnalare una saturazione prolungata."
],
"whatForOutro": "Le modifiche supportate valgono <strong>dall’analisi successiva</strong>. Health Monitor legge <code>/usr/local/share/proxmenux/health_thresholds.json</code> a ogni ciclo senza riavvio. Alcuni indicatori, come la temperatura dei dischi, usano questi valori; alcune barre di capacità hanno limiti propri. La riga RAM descrive un’eccezione attuale.",
"coloursTitle": "Colori degli stati Avviso e Critico",
"coloursIntro": "I widget che usano Avviso/Critico seguono i tre stati sotto. Altri indicatori, come le barre di capacità PVE, hanno limiti propri; il loro colore da solo non dimostra un avviso Health Monitor.",
"headerColour": "Colore",
"headerRange": "Intervallo",
"headerMeaning": "Significato",
"colourRows": [
{
"colour": "Verde",
"range": "valore < Avviso",
"meaning": "Intervallo normale. Nessun avviso viene generato."
},
{
"colour": "Ambra",
"range": "Avviso ≤ valore < Critico",
"meaning": "Stato di avviso. Health Monitor genera un evento WARNING; le notifiche rispettano filtri e orari silenziosi."
},
{
"colour": "Rosso",
"range": "Valore ≥ Critico",
"meaning": "Stato critico. Health Monitor genera un evento CRITICAL che ignora gli orari silenziosi. Le impostazioni di categoria ed evento del canale restano valide; la consegna dipende anche dalla sua disponibilità."
}
],
"sectionsTitle": "Sezioni e valori predefiniti consigliati",
"sectionsIntro": "Sono i valori iniziali ProxMenux fino a modifica. Le sezioni seguono <em>carico di calcolo</em>, <em>temperatura</em> e <em>capacità di archiviazione</em>, dal carico attuale allo spazio occupato.",
"headerSection": "Sezione",
"headerWarning": "Avviso",
"headerCritical": "Critico",
"headerGates": "Controllo interessato",
"thresholdRows": [
{
"section": "Utilizzo CPU",
"warning": "85 %",
"critical": "95 %",
"gates": "Avviso di carico prolungato quando la CPU media supera la soglia nel periodo di controllo."
},
{
"section": "Memoria",
"warning": "85 %",
"critical": "95 %",
"gates": "Pressione RAM dell’host. Il valore configurabile mostra Critico al 95%, ma il rilevatore attuale usa una regola fissa del 90% prolungato; cambiare l’impostazione non modifica attualmente quel ramo."
},
{
"section": "Swap (solo soglia critica)",
"warning": "—",
"critical": "80 %",
"gates": "Il CRITICAL di swap richiede oltre l’80% di swap e meno del 15% di RAM disponibile su più misurazioni. Lo swap occupato da solo non attiva la regola."
},
{
"section": "Temperatura CPU",
"warning": "80 °C",
"critical": "90 °C",
"gates": "Temperatura del package CPU o dei core da <code>lm-sensors</code>."
},
{
"section": "Temperatura del disco — HDD",
"warning": "60 °C",
"critical": "65 °C",
"gates": "Temperatura HDD. Valori iniziali: avviso a 60 °C, critico a 65 °C. Sono valori di monitoraggio, non un limite universale del produttore; consulta le specifiche del modello."
},
{
"section": "Temperatura del disco — SSD",
"warning": "70 °C",
"critical": "75 °C",
"gates": "SSD SATA da 2,5 pollici o M.2. Questa classe usa 70/75 °C come valori iniziali; i limiti reali dipendono dal modello."
},
{
"section": "Temperatura del disco — NVMe",
"warning": "80 °C",
"critical": "85 °C",
"gates": "Temperatura NVMe. Questa classe usa 80/85 °C come valori iniziali. La temperatura di limitazione del controller dipende dal modello e non è sempre 85 °C."
},
{
"section": "Temperatura del disco — SAS",
"warning": "55 °C",
"critical": "65 °C",
"gates": "Temperatura SAS. Questa classe usa avviso a 55 °C e critico a 65 °C. Sono <em>valori di monitoraggio</em>, non prova di un guasto di raffreddamento a 55 °C né un limite universale."
},
{
"section": "Spazio su disco — host",
"warning": "85 %",
"critical": "95 %",
"gates": "Capacità di <code>/</code> e di ogni punto di montaggio dell’host (<code>/var/lib/vz</code>, <code>/mnt/*</code>…)."
},
{
"section": "Spazio disco — LXC rootfs",
"warning": "85 %",
"critical": "95 %",
"gates": "Disco root di ciascun container, valutato rispetto alla dimensione rootfs indicata da PVE."
},
{
"section": "Punti di montaggio LXC",
"warning": "85 %",
"critical": "95 %",
"gates": "Capacità dei montaggi nei CT attivi: mp0, mp1, NFS e bind mount. Esclude rootfs."
},
{
"section": "Storage PVE",
"warning": "85 %",
"critical": "95 %",
"gates": "Storage gestiti da PVE: LVM, LVM-thin, ZFS-pool, RBD/Ceph e PBS. Non sono tutti backend a blocchi."
},
{
"section": "Pool ZFS",
"warning": "85 %",
"critical": "95 %",
"gates": "Pool ZFS dell’host, indipendentemente dalla registrazione in PVE."
}
],
"defaultsTitle": "Valori predefiniti, modifiche e ripristino",
"defaultsBody": "Ogni sezione parte dai valori predefiniti; salvi solo le modifiche desiderate. La scheda mostra il valore <em>effettivo</em>: la modifica o il valore iniziale. <strong>Ripristina</strong> elimina tutte le modifiche di tutte le sezioni.",
"validationTitle": "Validazione",
"validationBody": "Il salvataggio verifica gli intervalli ammessi e rifiuta Critico sotto Avviso. L’interfaccia mostra gli errori e il server valida nuovamente le richieste API prima di salvare."
},
"lxcDetection": {
"heading": "Rilevamento aggiornamenti LXC",
"imageAlt": "Scheda di rilevamento aggiornamenti LXC con interruttore per cercare pacchetti in attesa nei container Debian, Ubuntu e Alpine attivi",
"imageCaption": "Interruttore dell’analisi periodica con <code>apt list --upgradable</code> / <code>apk list -u</code> nei CT attivi. È acceso per impostazione predefinita. L’opzione in Notifiche → Servizi appare mentre il rilevamento è attivo.",
"intro": "L’interruttore tra Soglie e Notifiche controlla l’analisi LXC. Attivo, interroga i gestori di pacchetti dei CT in esecuzione; Hardware mostra i risultati e alimenta <code>lxc_updates_available</code>. Disattivo, ferma le chiamate <code>pct exec</code> e rimuove le voci LXC da <code>managed_installs.json</code>; <code>/api/managed-installs</code> smette di riportare lo stato senza attendere 24 ore.",
"whatRunsTitle": "Cosa esegue l’analisi",
"whatRunsIntro": "Per ogni CT in stato <code>running</code> con un gestore di pacchetti supportato:",
"whatRunsItems": [
"<strong>Aggiornamento dei metadati.</strong> Se la cache apt/apk supera <strong>24 ore</strong>, tenta <code>apt-get update -qq</code> su Debian/Ubuntu o <code>apk update</code> su Alpine con limite di 60 s. Se fallisce, l’elenco usa la cache disponibile e può essere obsoleto.",
"<strong>Elenco.</strong> Esegue <code>apt list --upgradable</code> / <code>apk list -u</code> ed estrae numero di pacchetti e alcuni nomi.",
"<strong>Evitare duplicati per CT.</strong> Un’impronta di totale, aggiornamenti di sicurezza e nomi ordinati evita avvisi quotidiani identici. Un cambiamento significativo genera un nuovo avviso."
],
"selfUpdateTitle": "I CT aggiornati fuori apt possono indicare 0",
"selfUpdateBody": "Il rilevamento copre solo il gestore di pacchetti del CT. Software aggiornato fuori apt, come un’attività <code>plexupdate</code> configurata o immagini ottenute con <code>docker pull</code>, non rientra nel conteggio. Zero aggiornamenti apt non prova che tutte le app siano aggiornate. I pacchetti del sistema base restano rilevati.",
"refreshTitle": "Perché aggiornare i metadati dopo 24 ore",
"refreshBody": "Un CT attivo da tempo può avere metadati apt vecchi se nessuno esegue <code>apt update</code>. <code>apt list --upgradable</code> può quindi perdere nuovi aggiornamenti. ProxMenux tenta il rinnovo dopo 24 ore e lo salta se la cache è più recente.",
"toggleTitle": "Opzione di notifica legata al rilevamento",
"toggleBody": "L’opzione <code>lxc_updates_available</code> per canale in <strong>Notifiche → Servizi</strong> appare solo con rilevamento attivo. Disattivandolo, la riga scompare da tutti i canali. La preferenza resta nel database e ritorna al valore precedente alla riattivazione.",
"purgeTitle": "Cosa viene rimosso disattivando il rilevamento",
"purgeBody": "Disattivandolo si rimuovono subito le voci <code>type=lxc</code> da <code>/usr/local/share/proxmenux/managed_installs.json</code>. I contatori degli aggiornamenti LXC in Hardware spariscono al prossimo aggiornamento. Riattivandolo, il ciclo successivo ripopola il registro, o prima tramite aggiornamento manuale dell’API."
},
"storageExclusions": {
"heading": "Esclusioni storage remoto",
"imageAlt": "Scheda esclusioni degli storage remoti PBS-Cloud, PBS e PBS2 con controlli Stato e Avvisi per riga",
"imageCaption": "Controlli <em>Stato</em> e <em>Avvisi</em> per storage. Con entrambi spenti, lo storage non contribuisce a Health Monitor e non invia notifiche. Resta visibile in Archiviazione, indicato come escluso.",
"intro": "Puoi escludere gli storage gestiti da Proxmox (NFS / CIFS / PBS / Ceph / iSCSI / ecc.) con due controlli indipendenti:",
"items": [
"<strong>Stato</strong> — disattivando questo controllo, lo storage non contribuisce più alla categoria Archiviazione di Health Monitor. Utile per volumi di archivio solitamente offline o destinazioni di backup remote accese solo secondo un programma.",
"<strong>Avvisi</strong> — disattivandolo, gli avvisi di questo storage non passano più ai canali configurati, anche con i controlli di stato attivi. Utile per vedere lo stato nel pannello senza ricevere notifiche."
],
"outro": "Gli storage esclusi restano nella <link>scheda Archiviazione</link> con il badge viola <em>escluso</em>, mantenendo visibile l’inventario. Lo stato è salvato nella tabella SQLite <code>excluded_storages</code>."
},
"interfaceExclusions": {
"heading": "Esclusioni interfacce rete",
"imageAlt": "Scheda esclusioni delle interfacce vmbr0, vmbr1, vmbr2, bond0 ed eno1 con controlli Stato e Avvisi per interfaccia",
"imageCaption": "Come per gli storage, ogni interfaccia offre <em>Stato</em> e <em>Avvisi</em>. Ogni riga mostra nome, tipo (bridge / bond / fisica), IP e velocità del collegamento.",
"intro": "Lo stesso principio vale per le interfacce: escludere ciascuna dai controlli di stato, dalle notifiche o da entrambi. Esempi comuni:",
"items": [
"Un bridge di riserva disattivato intenzionalmente.",
"Una scheda di rete rimossa fisicamente ma ancora presente in <code>/etc/network/interfaces</code>.",
"Una sottointerfaccia VLAN usata solo durante la manutenzione.",
"Un bridge di gestione con cambi ripetuti e noti dello stato del collegamento durante la manutenzione."
],
"outro": "Lo stato è salvato nella tabella SQLite <code>excluded_interfaces</code>. Il badge viola <em>esclusa</em> nella <link>scheda Rete</link> mantiene visibili le interfacce escluse."
},
"notifications": {
"heading": "Notifiche e IA",
"body1": "Qui si attivano le notifiche di ProxMenux Monitor e la riformulazione con IA. <em>Attiva notifiche</em> avvia l’invio in background, registra una destinazione webhook Proxmox VE per riceverne gli eventi e apre i canali: Telegram, Discord, email, Gotify e altri. La riformulazione con IA è in una sezione avanzata espandibile dello stesso pannello.",
"body2": "Le opzioni sono spiegate in pagine dedicate: canali, controlli per evento, messaggi formattati, nome visualizzato, invio con deduplicazione, attesa, raggruppamento e ore silenziose, webhook PVE, provider IA e modalità delle istruzioni:",
"items": [
"<notifLink>Notifiche</notifLink>: configurazione dei canali (Telegram, Discord, Gotify, email e password per app Gmail / Microsoft, ntfy, Slack, Teams e webhook generico), categorie di eventi, messaggi formattati, nome visualizzato, invio, webhook PVE, cronologia e API.",
"<aiLink>Assistente IA</aiLink>: provider (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelli, istruzioni predefinite o personalizzate, lingua di uscita, dettaglio per canale e suggerimenti IA."
]
},
"optimizations": {
"heading": "Ottimizzazioni ProxMenux",
"intro": "Inventario delle ottimizzazioni successive all’installazione registrate da ProxMenux sull’host. Le opzioni di <autoLink>Post-installazione automatica</autoLink> e <customLink>Post-installazione personalizzabile</customLink> registrano l’applicazione in <code>/usr/local/share/proxmenux/installed_tools.json</code>. Monitor legge questo registro. Una voce non verifica di nuovo che tutte le impostazioni siano rimaste invariate.",
"imageAlt": "Scheda ottimizzazioni ProxMenux con 14 voci: punto colorato, nome e versione. Include APT IPv4 Force, Bashrc Customization, Fastfetch, Log2ram SSD Protection, Memory Settings Optimization, Setting persistent network interfaces, System Limits Increase, APT Language Skip, Entropy Generation haveged con Legacy, Kernel Panic Configuration, Logrotate Optimization, Network Optimizations, Subscription Banner Removal e VFIO IOMMU Passthrough.",
"imageCaption": "Ogni ottimizzazione mostra nome, versione e punto colorato. In alto a destra compare il contatore arancione <em>14 attive</em>. Gli strumenti con sorgente disponibile sono apribili.",
"dotsTitle": "Cosa significano i puntini",
"dotsItems": [
"<green/> <strong>Punto verde</strong>: ottimizzazione registrata senza indicazione Legacy né aggiornamento disponibile. Apri la riga se il sorgente è disponibile.",
"<amber/> <strong>Punto ambra e badge <em>legacy</em></strong>: ottimizzazione registrata il cui script è stato rinominato o sostituito. Il sorgente conservato si apre in modalità Legacy con dettagli ambra. Non verifica nuovamente la configurazione attuale dell’host."
],
"clickTitle": "Aprire il codice sorgente",
"clickBody": "Un clic mostra la funzione bash associata e il nome dello script (<code>auto_post_install.sh</code> o <code>customizable_post_install.sh</code>). Gli strumenti attuali usano file dell’host; quelli precedenti possono usare sorgente conservato. Evidenziazione della sintassi e Copia aiutano l’esame. Non è una copia garantita del codice eseguito all’installazione.",
"detailAlt": "Finestra del sorgente APT IPv4 Force con la funzione bash force_apt_ipv4 da customizable_post_install.sh versione 1.0. Il codice evidenziato configura /etc/apt/apt.conf.d/99-force-ipv4 con Acquire ForceIPv4 true, registra lo strumento e mostra un messaggio tradotto di configurazione APT IPv4 completata.",
"detailCaption": "Codice di <em>APT IPv4 Force</em>: funzione <code>force_apt_ipv4()</code> di <code>customizable_post_install.sh v1.0</code>, con evidenziazione della sintassi e copia con un clic.",
"whyTitle": "Perché questo è importante",
"whyBody": "ProxMenux può modificare parametri del kernel, repository, rete, rotazione dei log e passthrough GPU. Consulta le ottimizzazioni registrate prima di modifiche manuali, specie se un altro amministratore ha preparato l’host. La scheda mostra registro e sorgente disponibile; non controlla ogni impostazione attuale né conserva una cronologia esatta delle esecuzioni.",
"updatesTitle": "Banner degli aggiornamenti disponibili",
"updatesBody": "Se la versione su disco di un’ottimizzazione supera quella registrata sull’host, appare un banner con il numero e <strong>Applica</strong>. <strong>Applica</strong> apre il selettore, come <em>Applica aggiornamenti disponibili</em> nel menu post-installazione. Scegli cosa aggiornare: ProxMenux esegue di nuovo le funzioni e aggiorna il registro. Quando tutto è aggiornato, il banner scompare.",
"updatesAlt": "Scheda ottimizzazioni ProxMenux con banner degli aggiornamenti disponibili, numero in attesa e pulsante Applica per selezionarli",
"updatesCaption": "Il banner appare se almeno un’ottimizzazione ha una versione più recente su disco. Vedi <link>Applica aggiornamenti disponibili</link> per la procedura e l’equivalente Path-A nel menu della shell.",
"revertTitle": "Annullare un’ottimizzazione",
"revertBody": "Per annullare un’ottimizzazione, usa l’opzione corrispondente in <link>Disinstalla ottimizzazioni</link> dal menu ProxMenux Scripts. La disinstallazione rimuove la voce da <code>installed_tools.json</code> e la scheda non la mostra al prossimo aggiornamento."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerCard": "Scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"card": "Lingua di interfaccia",
"endpoint": "localStorage",
"source": "Preferenza del browser <code>proxmenux-ui-language</code>; senza una scelta salvata, usa inizialmente la lingua del browser."
},
{
"card": "Ordine di navigazione",
"endpoint": "localStorage",
"source": "Preferenza del browser <code>proxmenux-nav-order</code>; determina anche la scheda iniziale."
},
{
"card": "Unità rete",
"endpoint": "/api/settings",
"source": "Salvato nella tabella SQLite delle impostazioni del pannello."
},
{
"card": "Durate di Health Monitor",
"endpoint": "/api/health/settings",
"source": "Durata del silenziamento per categoria nel database di Health Monitor."
},
{
"card": "Esclusioni di storage/interfaccia",
"endpoint": "/api/storage/exclusions, /api/network/exclusions",
"source": "Tabelle SQLite <code>excluded_storages</code> e <code>excluded_interfaces</code>."
},
{
"card": "Pannello Notifiche e IA",
"endpoint": "/api/notifications/*",
"source": "Vedi <notifLink>Notifiche</notifLink> e <aiLink>Assistente IA</aiLink>."
},
{
"card": "Elenco ottimizzazioni ProxMenux",
"endpoint": "/api/proxmenux/installed-tools",
"source": "Legge <code>/usr/local/share/proxmenux/installed_tools.json</code>, scritto dalle chiamate a <code>register_tool</code> negli script post-installazione."
},
{
"card": "Finestra del codice di ottimizzazione",
"endpoint": "/api/proxmenux/tool-source",
"source": "Estrae la funzione bash associata da <code>auto_post_install.sh</code> o <code>customizable_post_install.sh</code> sull’host; gli strumenti precedenti possono usare codice conservato."
}
]
},
"whereNext": {
"heading": "Come proseguire",
"items": [
{
"label": "Scheda Apps",
"href": "/docs/monitor/dashboard/apps",
"tail": " — il pannello di avvio la cui posizione si modifica con l’ordine di navigazione."
},
{
"label": "Notifiche",
"href": "/docs/monitor/notifications",
"tail": " — canali, controlli per evento, impostazioni specifiche per canale, cronologia e invio di prova."
},
{
"label": "Assistente IA",
"href": "/docs/monitor/ai-assistant",
"tail": " — provider, modelli, modalità delle istruzioni, lingue e dettaglio per canale."
},
{
"label": "Health Monitor → Silenziare gli avvisi e durata del silenziamento",
"href": "/docs/monitor/health-monitor#dismissing-alerts-and-the-suppression-duration",
"tail": " — come funzionano i menu di durata per categoria."
},
{
"label": "ProxMenux Scripts → Post-installazione automatica",
"href": "/docs/post-install/automated",
"tailRich": " e <customLink>Post-installazione personalizzabile</customLink>: gli script che registrano le ottimizzazioni nell’elenco precedente."
},
{
"label": "Disinstalla ottimizzazioni",
"href": "/docs/post-install/uninstall",
"tail": " — come annullare un’ottimizzazione elencata sopra."
},
{
"label": "Indice Dashboard",
"href": "/docs/monitor/dashboard",
"tail": " — torna alla panoramica delle schede."
}
]
}
}
@@ -0,0 +1,268 @@
{
"meta": {
"title": "ProxMenux Monitor — Dashboard: scheda Archiviazione | Documentazione ProxMenux",
"description": "La scheda Archiviazione riunisce quattro viste: storage Proxmox con stato, pool ZFS, dischi interni con SMART e unità USB esterne. Il dettaglio di ogni disco mostra attributi SMART, usura, durata e storico permanente delle osservazioni."
},
"header": {
"title": "Dashboard: scheda Archiviazione",
"description": "Tutto lo storage dell’host in una schermata: NFS / CIFS / LVM / ZFS / dir Proxmox, stato dei pool ZFS, dischi interni SATA/NVMe con SMART e unità USB esterne. Fai clic su un disco per vedere attributi SMART e storico delle osservazioni.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Supportato da tre fonti",
"body": "Gli storage Proxmox provengono da <code>pvesm status</code>, ZFS da <code>zpool status</code>, i dischi da <code>lsblk</code> + <code>smartctl</code> e i campi NVMe da <code>nvme</code>. La scheda si aggiorna circa ogni 60 secondi; aprire il dettaglio richiede una lettura SMART."
},
"thresholds": {
"title": "Colori e soglie di stato applicate qui",
"intro": "Health Monitor classifica lo stato come <green/> <strong>verde</strong> sotto Avviso, <amber/> <strong>ambra</strong> tra Avviso e Critico e <red/> <strong>rosso</strong> da Critico in poi. Seguono i valori predefiniti. Le barre della dashboard possono usare altri limiti visivi descritti sotto.",
"items": [
"<strong>Capacità</strong> (dischi host, storage PVE, pool ZFS, montaggi LXC) — avviso 85%, critico 95%.",
"<strong>Temperatura del disco</strong> — HDD 60/65 °C · SSD 70/75 °C · NVMe 80/85 °C · SAS 55/65 °C (avvertimento / critico)."
],
"outro": "Ogni valore è configurabile per host. <link>Impostazioni → Soglie di Health Monitor</link> riporta i valori di riferimento e spiega come modificarli."
},
"topRow": {
"heading": "Riga superiore: riepilogo dello storage",
"intro": "All’apertura, quattro schede riepilogano capacità totale, uso locale, uso remoto e inventario dei dischi fisici. Offrono risposte rapide; le schede sottostanti contengono i dettagli.",
"imageAlt": "Scheda Archiviazione con quattro schede: capacità totale, uso locale, uso remoto e dischi fisici",
"imageCaption": "Riga superiore: capacità totale e numero di dischi, byte usati localmente e da remoto e dischi fisici per tipo con riepilogo dello stato.",
"headerCard": "Scheda",
"headerWhat": "Cosa mostra",
"totalLabel": "Capacità totale",
"totalWhat": "Capacità grezza totale di tutti i dischi fisici. Il piè di pagina indica quanti dischi sono stati rilevati.",
"localLabel": "Uso locale",
"localWhat": "Byte usati sullo storage locale: LVM / LVM-thin / ZFS / dir sui dischi dell’host. Il valore principale mostra i byte usati e il piè di pagina <em>X.XX % di Y TB</em> indica anche la percentuale di occupazione.",
"remoteLabel": "Uso remoto",
"remoteWhat": "Stesso formato dell’uso locale per storage remoti NFS / CIFS / PBS / Ceph / iSCSI. Sono conteggiati separatamente perché i guasti locali e remoti hanno effetti diversi e queste risorse si dimensionano e monitorano diversamente.",
"disksLabel": "Dischi fisici",
"disksIntro": "Due linee di ripartizione per l'inventario:",
"disksItems": [
"<strong>Per tipo</strong> — numero di NVMe in viola, SSD e HDD in blu. Compaiono i tipi rilevati; un host con soli NVMe mostra solo quel conteggio.",
"<strong>Per stato</strong> — numero di dischi <em>normali</em> in verde, con <em>avviso</em> in giallo e <em>critici</em> in rosso. Senza problemi compare solo «X normali»; gli altri stati appaiono in presenza di problemi."
]
},
"pveStorage": {
"heading": "Scheda di stoccaggio Proxmox",
"intro": "Una riga per storage di <code>/etc/pve/storage.cfg</code> con tipo (<code>nfs</code> / <code>cifs</code> / <code>zfspool</code> / <code>lvm</code> / <code>lvmthin</code> / <code>dir</code> / <code>pbs</code>), nome, stato attivo/errore/non monitorato, percentuale d’uso e barra colorata:",
"items": [
"<strong>Fino al 75%</strong> — barra e valore blu.",
"<strong>Oltre il 75% fino al 90%</strong> — barra e valore gialli. Questi limiti visivi sono distinti dalle soglie di Health Monitor.",
"<strong>> 90%</strong> — barra e valore rossi. Questo limite visivo è distinto dall’escalation di Health Monitor.",
"<strong>Errore</strong> — bordo rosso della riga se lo storage è configurato ma non raggiungibile, per esempio server NFS fermo o credenziali CIFS scadute.",
"<strong>Escluso</strong> — bordo viola ed etichetta «non monitorato». Storage esclusi dall’utente, come volumi di archivio mantenuti scollegati."
],
"calloutTitle": "Escludere uno storage dal monitoraggio",
"calloutBody": "Il menu di ogni storage permette di marcarlo come <em>escluso dal monitoraggio</em>. L’impostazione è salvata in <code>excluded_storages</code> e rispettata da dashboard e Health Monitor: nessuna notifica né effetto sullo stato generale."
},
"zfs": {
"heading": "Scheda Pool ZFS",
"intro": "Compare solo se ZFS è installato e c’è almeno un pool. Ogni riga mostra un pool con stato, dimensione, spazio allocato e libero e icona di stato:",
"items": [
"<strong>ONLINE</strong> — verde. Tutto sano.",
"<strong>DEGRADED</strong> — giallo. Il pool fornisce dati, ma almeno un dispositivo non è disponibile; occorre gestirne la sostituzione.",
"<strong>FAULTED</strong> / <strong>UNAVAIL</strong> / <strong>SUSPENDED</strong> — rosso. Il pool non fornisce dati e richiede intervento immediato."
],
"outro": "Lo stato ZFS e SMART di ogni disco contribuisce alla categoria <em>Dischi e I/O</em> di <link>Health Monitor</link>."
},
"physical": {
"heading": "Dischi fisici e stato SMART",
"intro": "Disco interno (SATA / NVMe). Ogni riga condensa i campi più utili a colpo d'occhio:",
"items": [
"<strong>Percorso del dispositivo</strong> — <code>/dev/sda</code>, <code>/dev/nvme0n1</code>.",
"<strong>Etichetta del tipo</strong> — SATA / NVMe e relativa icona.",
"<strong>Etichetta di sistema</strong> — indicatore arancione dei dischi identificati come dischi del sistema operativo. Il rilevamento usa i montaggi <code>/</code> e <code>/boot</code> e assegna <em>System</em>. L’assenza dell’etichetta non dimostra che il disco possa essere cancellato o riutilizzato senza rischi.",
"<strong>Modello</strong> — produttore e modello da <code>smartctl -i</code>.",
"<strong>Capacità</strong> — espressa in unità leggibili.",
"<strong>Temperatura</strong> — valore attuale in °C, colorato secondo il tipo di disco; NVMe usa soglie più alte di SATA.",
"<strong>Stato SMART</strong> — superato / fallito / sconosciuto.",
"<strong>Etichetta delle osservazioni</strong> — se lo storico permanente <code>disk_observations</code> contiene voci per il disco, un’etichetta blu ne indica il numero, come <em>3 obs.</em>. Fai clic sul disco per esaminarle.",
"<strong>Etichetta di stato</strong> — Regolare / Avviso / Critico, secondo SMART e le osservazioni recenti."
],
"clickHint": "Un clic sull’intera riga apre il dettaglio del disco descritto sotto.",
"warningTitle": "Attenzione ai dischi con etichetta System",
"warningBody": "I dischi con etichetta arancione <strong>System</strong> ospitano il sistema attivo. L’etichetta aiuta a identificarli; <link>ProxMenux → Gestione dischi → Formatta / Cancella</link> rifiuta le azioni distruttive su di essi. Per riutilizzare il disco di avvio, usa un ambiente di ripristino esterno al Proxmox in esecuzione."
},
"external": {
"heading": "Storage esterno (USB)",
"body": "Le unità USB hanno una scheda dedicata, visibile quando almeno una è presente. Mostra gli stessi campi dei dischi interni e l’etichetta arancione <strong>USB</strong>. Poiché spesso si collegano solo per backup o trasferimenti occasionali, le osservazioni sono conservate, ma gli errori I/O di un’unità USB scollegata non vengono escalati."
},
"drillIn": {
"heading": "Finestra di dettaglio del disco",
"intro": "Un clic sul disco apre quattro schede: <strong>Panoramica</strong> · <strong>SMART</strong> · <strong>Cronologia</strong> · <strong>Pianificazione</strong>. L’intestazione mostra percorso, modello, capacità e, se applicabile, l’etichetta arancione <em>System</em>.",
"overviewTitle": "Scheda 1 — Panoramica",
"overviewImageAlt": "Dettaglio del disco, scheda Panoramica con stato, indicatore circolare di usura e durata e attributi SMART principali",
"overviewImageCaption": "Panoramica: identificazione, stato, vita residua con usura attuale e dati scritti e attributi SMART principali.",
"overviewIntro": "Scheda iniziale per consultare lo stato del disco senza eseguire test. Tre sezioni:",
"overviewItems": [
"<strong>Identificazione</strong> — modello, numero di serie, capacità e stato Regolare / Avviso / Critico.",
"<strong>Usura e durata</strong> — anello della vita residua (97%, 50%, …) con attributo sorgente (<em>Media Wearout Indicator</em>, <em>Percentage Used</em>, …), barra della percentuale consumata, previsione <em>Vita stimata</em> in anni e dati totali scritti. NVMe mostra anche <em>Available Spare</em>.",
"<strong>Attributi SMART</strong>: i valori principali sono mostrati su due colonne: temperatura, ore di accensione con una durata leggibile come <em>3 anni e 116 giorni</em>, velocità di rotazione oppure <em>SSD</em>, cicli di accensione, stato SMART, settori riallocati, settori in attesa ed errori CRC. La tabella completa degli attributi si trova nella scheda SMART."
],
"smartTitle": "Scheda 2 — SMART",
"smartImageAlt": "Dettaglio del disco, scheda SMART con test breve ed esteso, ultimo risultato e tabella completa degli attributi",
"smartImageCaption": "Scheda SMART: avvia test brevi o estesi, consulta l’ultimo risultato e tutti gli attributi e apri il rapporto completo per stamparlo o salvarlo in PDF.",
"smartIntro": "Azioni disponibili in tre sezioni:",
"smartItems": [
"<strong>Esegui test SMART</strong> — due pulsanti. <em>Test breve (~2 min)</em> attende il risultato e lo mostra nella finestra. <em>Test esteso (background)</em> può durare ore sui dischi grandi, continua sul server e notifica al termine.",
"<strong>Ultimo test</strong> — tipo, stato (<em>superato</em> / <em>fallito</em>) e data e ora dell’ultima esecuzione.",
"<strong>Attributi SMART</strong> — tabella completa con ID, nome, valore, valore peggiore e stato regolare, avviso o critico. SATA/SAS mostra l’elenco numerato. NVMe usa <code>nvme smart-log</code>: temperatura, riserva disponibile, percentuale usata, unità lette/scritte, letture/scritture host, tempo di occupazione del controller, cicli di accensione, arresti non sicuri, errori del supporto, voci del registro errori e tempo con temperatura composita in avviso/critico."
],
"pdfTitle": "Visualizza il rapporto SMART completo (PDF)",
"pdfIntro": "In fondo a SMART, <strong>Visualizza rapporto SMART completo</strong> apre un rapporto stampabile. Usa la finestra di stampa del browser per salvarlo in PDF, archiviarlo o condividerlo con il supporto per un RMA.",
"pdfPreviewAlt": "Prima pagina del rapporto SMART con sintesi, indicatore PASSED e informazioni sul disco",
"pdfPreviewCaption": "Prima pagina: sintesi, indicatore PASSED e informazioni complete del disco. Il PDF di esempio include usura SSD, tutti gli attributi SMART e cronologia dei test.",
"pdfDownloadLabel": "Scarica un rapporto SMART di esempio (PDF)",
"pdfSectionsIntro": "Il rapporto ha sei sezioni principali:",
"pdfSections": [
"<strong>Sintesi</strong> — stato PASSED/FAILED, valutazione chiara del disco — regolare, usurato o guasto — e quattro dati: data del rapporto, ultimo tipo di test, risultato e attributi controllati.",
"<strong>Informazioni sul disco</strong> — modello, serie, capacità, tipo HDD/SSD/NVMe, famiglia, formato, interfaccia (SATA 3.3 · 6.0 Gb/s, …), TRIM, temperatura e soglia ottimale, ore e cicli di accensione, SMART, settori in attesa/riallocati ed errori CRC.",
"<strong>Usura e durata SSD</strong> (solo SSD/NVMe) — vita residua, attributo sorgente, usura attuale, dati scritti e ore di accensione.",
"<strong>Attributi SMART completi</strong> — ID, nome, valore, valore peggiore, soglia, valore grezzo e stato di ogni attributo. I principali — Reallocated Sector Ct, Power On Hours, Reported Uncorrect, UDMA CRC Error Count, Media Wearout Indicator, … — hanno una breve spiegazione sotto la riga.",
"<strong>Ultimo autotest e cronologia completa</strong> — ultimo test con tipo, risultato, messaggio finale e ore di accensione al momento, più tabella numerata di tutti i test conservati.",
"<strong>Raccomandazioni</strong> — azioni secondo il risultato. Per dischi regolari: <em>disco sano / test periodici / strategia di backup</em>. Se gli attributi superano i limiti, compaiono indicazioni per la sostituzione."
],
"pdfOutro": "Il browser crea il rapporto stampabile; Stampa e Salva come PDF aprono entrambi la finestra di stampa. Scegli un nome come <code>SMART-&lt;short-id&gt;.pdf</code>. Conserva copie datate per confrontare i cambiamenti o condividerle con il supporto.",
"historyTitle": "Scheda 3 — Cronologia",
"historyImageAlt": "Dettaglio del disco, scheda Cronologia con test SMART precedenti e azioni di download ed eliminazione",
"historyImageCaption": "Cronologia SMART del disco. Ogni riga mostra tipo, data e ora, anzianità, indicatore dell’ultimo test e azioni di download dell’output <code>smartctl</code> ed eliminazione.",
"historyIntro": "Test brevi ed estesi completati e conservati per il disco. Ogni voce contiene l’output originale <code>smartctl</code> e i campi interpretati da Monitor per la dashboard. Azioni per riga:",
"historyItems": [
"<strong>Scarica</strong> — salva lo snapshot JSON con i dati <code>smartctl -a</code> usati dal rapporto. Utile se il supporto richiede i campi diagnostici originali.",
"<strong>Elimina</strong> — rimuove manualmente un test dalla cronologia. La conservazione in Pianificazione (<em>ultimi 5 / 10 / 20</em>) elimina automaticamente i più vecchi."
],
"scheduleTitle": "Scheda 4 — Pianificazione",
"scheduleImageAlt": "Dettaglio del disco, scheda Pianificazione con interruttore per test SMART automatici, elenco dei piani e pulsante Aggiungi pianificazione",
"scheduleImageCaption": "Pianificazione: scegli tipo, frequenza e conservazione; Monitor configura <code>cron</code> per eseguire i test automaticamente.",
"scheduleIntro": "Test SMART automatici tramite cron, senza terminale. Tre aree:",
"scheduleItems": [
"<strong>Test SMART automatici</strong> — interruttore generale di tutti i piani del disco. Permette di sospenderli durante la manutenzione senza cancellarne la configurazione.",
"<strong>Piani configurati</strong> — una riga per piano con tipo (<em>breve</em> / <em>lungo</em>), espressione cron leggibile (<em>«Il giorno 1 del mese alle 03:00»</em>, <em>«Ogni domenica alle 02:00»</em>), dischi inclusi e conservazione.",
"<strong>Aggiungi / Modifica pianificazione</strong> — tipo (<em>breve ~2 min</em> / <em>lungo 1–4 h</em>), frequenza (<em>giornaliera / settimanale / mensile</em>), giorno del mese o settimana, ora e risultati conservati (<em>ultimi 5 / 10 / 20</em>)."
],
"scheduleOutro": "Il piano crea una voce cron sull’host che richiama Monitor. I risultati vanno nello storico SMART della scheda 3 e la conservazione elimina automaticamente i più vecchi al termine di un nuovo test.",
"tempTitle": "Finestra dello storico della temperatura",
"tempIntro": "Monitor raccoglie periodicamente le letture dei dischi con sensore di temperatura e le salva in uno storico locale. Il valore attuale appare in Panoramica; un clic apre lo storico della temperatura.",
"tempImageAlt": "Storico della temperatura con percorso e modello, intervalli di 1 ora, 24 ore, 7 o 30 giorni, indicatori Attuale/Minimo/Media/Massimo e grafico a linee colorato secondo le soglie del tipo di disco",
"tempImageCaption": "Il dettaglio della temperatura si apre da Panoramica se il sensore restituisce un valore diverso da zero. Il grafico usa le soglie HDD / SSD / NVMe / SAS.",
"tempShowsTitle": "Contenuto della finestra",
"tempShowsItems": [
"<strong>Selettore dell’intervallo</strong>: <em>1 ora</em>, <em>24 ore</em> predefinite, <em>7 giorni</em> o <em>30 giorni</em>. Ogni richiesta adatta la risoluzione per mantenere il grafico leggibile.",
"<strong>Quattro indicatori</strong>: <em>Attuale</em>, <em>Minimo</em>, <em>Media</em> e <em>Massimo</em> nell’intervallo. <em>Attuale</em> usa le soglie dello storage e delle notifiche per distinguere temperatura normale, elevata o molto alta.",
"<strong>Grafico a linee</strong> della temperatura nel tempo, con linea e area colorate secondo il tipo di disco:"
],
"tempDiskTypes": [
"HDD — soglie tipicamente più fresche.",
"SSD — soglie moderate.",
"NVMe — soglie più elevate (NVMe funziona più caldo per design).",
"SAS — avviso a 55 °C e critico a 65 °C, con soglia di avviso diversa da HDD."
],
"tempConfigurable": "I quattro tipi si configurano in <em>Impostazioni → Soglie di Health Monitor</em>.",
"tempWhyTitle": "Perché lo storico è utile",
"tempWhyItems": [
"<strong>Rilevare tendenze.</strong> Una lettura isolata non rivela che un disco si scalda da settimane, per esempio per ventilazione difettosa, polvere o calore vicino. Le viste di 7 e 30 giorni mostrano l’evoluzione.",
"<strong>Correlare i picchi.</strong> Se un backup o una ricostruzione ha superato brevemente la soglia, le viste di 1 e 24 ore mostrano se il picco è isolato o ricorrente.",
"<strong>Regolare le soglie.</strong> Prima di modificarle in <em>Impostazioni → Soglie di Health Monitor</em>, consulta il grafico di 30 giorni per conoscere l’intervallo operativo reale del disco."
],
"obsTitle": "Storico delle osservazioni nelle schede",
"obsIntro": "I guasti possono svilupparsi gradualmente. Un disco può indicare SMART <strong>PASSED</strong> e registrare errori di lettura in dmesg, perdere collegamenti SATA o mostrare settori in attesa intermittenti. ProxMenux conserva questi <em>segnali</em> e li mostra nella finestra accanto allo stato SMART attuale.",
"obsImageAlt": "Panoramica di un disco con SMART superato e zero settori riallocati/in attesa ed errori CRC, ma un’osservazione di errore I/O con messaggio originale del kernel, spiegazione ATA, prima e ultima data e conteggio",
"obsImageCaption": "Un disco che <strong>supera SMART</strong> può avere osservazioni precedenti. La scheda aggiunge lo storico dei segnali allo stato attuale.",
"obsWhatTitle": "Che cos’è un’osservazione",
"obsWhatIntro": "ProxMenux registra come <strong>osservazione</strong> gli eventi disco rilevati nei registri del kernel, dmesg o SMART troppo specifici per una notifica singola. Ogni riga mostra:",
"obsWhatItems": [
"<strong>Tipo</strong> — errore I/O, SMART, filesystem, pool ZFS o connessione.",
"<strong>Messaggio originale del kernel</strong> da dmesg, da copiare in un motore di ricerca o richiesta di supporto.",
"<strong>Breve spiegazione</strong> dei codici ATA noti: <code>IDNF</code>, indirizzo del settore non trovato, possibile settore o cavo difettoso; <code>UNC</code>, errore di lettura irrecuperabile, settore difettoso; e altri codici standard.",
"<strong>Prima e ultima data</strong> e <strong>numero di occorrenze</strong>, raggruppate per firma dell’errore."
],
"obsWhyTitle": "Perché ProxMenux le registra e mostra",
"obsWhyItems": [
"<strong>I guasti possono evolvere.</strong> Errori del bus ATA, settori UNC o errori del supporto possono apparire prima di SMART <em>FAILED</em>. Il buffer dmesg non li conserva dopo il riavvio; lo storico delle osservazioni sì.",
"<strong>SMART non esclude ogni guasto.</strong> Un disco può avere attributi verdi e presentare problemi. Le osservazioni conservano altri sintomi, come ICRC, IDNF, reset dei collegamenti SATA o riduzioni di velocità.",
"<strong>Distingue il presente dal recente.</strong> Health Monitor risolve automaticamente gli errori transitori che non si ripresentano. Lo storico permette di vedere giorni dopo, per esempio, tre errori I/O di una notte.",
"<strong>Alimenta le notifiche per livelli.</strong> disk_io usa la frequenza delle osservazioni per scegliere silenzio, WARNING o CRITICAL su una finestra mobile di 24 ore introdotta in 1.2.1.2."
],
"obsDedupTitle": "Raggruppamento dei duplicati e nuovi avvisi",
"obsDedupBody1": "Le osservazioni sono raggruppate per <strong>firma</strong>, un’impronta stabile di tipo di errore, dispositivo e campi chiave del messaggio. Le ripetizioni incrementano <code>occurrence_count</code> nella riga esistente. Una <strong>firma diversa</strong> crea un’altra osservazione ed è un nuovo evento per le notifiche.",
"obsDedupBody2": "Per evitare notifiche a cascata, la prima combinazione di disco, firma e gravità avvisa l’operatore. La stessa combinazione attende 24 ore prima di un nuovo avviso, anche se il conteggio aumenta. Il passaggio da WARNING a CRITICAL interrompe l’attesa e segnala il peggioramento.",
"obsDismissTitle": "Storico permanente ed errori attivi",
"obsDismissBody1": "Le osservazioni non possono essere ignorate, nascoste o eliminate. Ogni firma ha una scheda; una ripetizione aumenta il conteggio e aggiorna l’ultima data. Lo storico segue il numero di serie: un altro disco inizia vuoto anche sulla stessa porta e un cambio di nome del kernel conserva lo storico.",
"obsDismissBody2": "Risolvere o ignorare un errore attivo in Health Monitor non modifica le osservazioni. Restano dopo la risoluzione automatica, così un avviso transitorio della settimana scorsa è ancora visibile. Vedi <link>Health Monitor</link> per gestire gli errori attivi."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerSection": "Sezione della scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"section": "Schede di riepilogo superiori",
"endpoint": "/api/storage/summary",
"source": "Aggregato da <code>lsblk</code>, <code>zpool list</code>, <code>vgs</code> / <code>lvs</code>."
},
{
"section": "Inventario per disco",
"endpoint": "/api/storage",
"source": "<code>lsblk -O</code> + <code>smartctl -i</code> per dispositivo, con cache dell’identità svuotata agli eventi hotplug."
},
{
"section": "Storage Proxmox",
"endpoint": "/api/proxmox-storage",
"source": "<code>pvesh get /nodes/&lt;node&gt;/storage</code> con lo stato attivo/online di ciascuno."
},
{
"section": "Valori SMART attuali",
"endpoint": "/api/storage/smart/<disk>",
"source": "<code>smartctl -A &lt;dev&gt;</code> è una delle interrogazioni disponibili; l’endpoint di dettaglio usa anche il JSON SMART completo e dati specifici NVMe."
},
{
"section": "Cronologia degli autotest SMART",
"endpoint": "/api/storage/smart/<disk>/history",
"source": "Salvato in <code>/usr/local/share/proxmenux/smart/&lt;disk&gt;/</code> come snapshot JSON."
},
{
"section": "Osservazioni permanenti",
"endpoint": "/api/storage/observations",
"source": "Tabella SQLite aggiornata da Health Monitor a ogni ciclo e conservata dopo la risoluzione degli errori attivi."
}
],
"outro": "Verificare la catena di raccolta sull'host:",
"codeComment1": "# Ottieni lo stato attuale da uno script",
"codeComment2": "# Confronta i dati della dashboard con quelli del sistema operativo"
},
"whereNext": {
"heading": "Per approfondire",
"items": [
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — categoria Dischi e I/O e regole di soppressione."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — endpoint di storage e SMART."
},
{
"label": "Notifiche",
"href": "/docs/monitor/notifications",
"tailRich": " — azioni successive attivate da <code>disk_io_error</code>, <code>storage_unavailable</code> e <code>smart_test_failed</code>."
},
{
"label": "Indice Dashboard",
"href": "/docs/monitor/dashboard",
"tail": "— le altre schede."
},
{
"label": "ProxMenux → Gestore dischi",
"href": "/docs/disk-manager",
"tail": " — azioni TUI: formattare, cancellare, eseguire test SMART e importare dischi in VM o container."
},
{
"label": "ProxMenux → Stato e test SMART del disco",
"href": "/docs/disk-manager/smart-disk-test",
"tail": " — equivalente CLI: pianificare test SMART, esportare il JSON mostrato e consultare tipi di test e interpretazione dei risultati."
}
]
}
}
@@ -0,0 +1,120 @@
{
"meta": {
"title": "ProxMenux Monitor — Pannello: Log di sistema | Documentazione ProxMenux",
"description": "La scheda System Logs consolida tre sorgenti in una schermata: live journalctl con filtri e download, cronologia delle attività Proxmox (UPID), e registro di notifica — tutti ricercabili, filtrabili per gravità / intervallo di tempo e scaricabili come pacchetti di testo."
},
"header": {
"title": "Pannello: Log di sistema",
"description": "Tre sottoschede in una schermata: journal di sistema (journalctl con filtri), cronologia delle attività Proxmox e registro delle notifiche. Tutte consentono di cercare, filtrare e scaricare i dati come pacchetti di testo.",
"section": "ProxMenux Monitor · Dashboard"
},
"readOnly": {
"title": "sola lettura per design",
"body": "Questa scheda non modifica i file di log. I filtri risiedono nell'URL o nello stato dell'interfaccia; i file da scaricare sono preparati sul server. Il pannello non elimina mai le voci: per la manutenzione usa <code>journalctl --vacuum-time=&lt;N&gt;</code> o <code>logrotate</code> sull'host."
},
"topRow": {
"heading": "Riga superiore: quattro contatori",
"items": [
"<strong>Voci totali</strong> — numero di record nel periodo del filtro attivo.",
"<strong>Errori</strong> — numero di voci con gravità ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
"<strong>Avvisi</strong> — numero di voci con gravità 4 (<code>warning</code>).",
"<strong>Backup</strong> — numero di voci di attività vzdump / PBS nello stesso periodo."
]
},
"subtabs": {
"heading": "Tre sottoschede",
"logsTitle": "Log",
"logsIntro": "Il journal di sistema, letto sul server con <code>journalctl</code>. Filtri disponibili nella barra degli strumenti:",
"logsFilters": [
"<strong>Gravità</strong> — emerg / alert / crit / err / warning / notice / info / debug, o qualsiasi combinazione.",
"<strong>Time range</strong> — ultima 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizzato.",
"<strong>Ricerca libera</strong> — sottostringa o espressione regolare (<code>journalctl --grep</code>).",
"<strong>Filtro per unità</strong> — limita a una specifica unità systemd (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
],
"logsRowsAfter": "Ogni riga mostra timestamp, tasso di gravità, unità sorgente e il messaggio. I messaggi lunghi crollano con un \"mostra di più\". L'azione <strong>Download</strong> raggruppa il filtro corrente in un unico file <code>.txt</code> tramite <code>GET /api/logs/download</code> — utile quando si desidera condividere una fetta di giornale con qualcuno.",
"logDetailsModalTitle": "Finestra Dettagli del log",
"logDetailsBody": "Un clic su una riga apre <strong>Dettagli del log</strong> con tutti i campi strutturati acquisiti da journald per quella voce, come eseguendo <code>journalctl --output=verbose</code> sull'host.",
"logDetailsImageAlt": "Finestra Dettagli del log — singola voce del journal con livello, servizio, data e ora, origine, unità systemd, ID del processo, nome host e messaggio completo",
"logDetailsImageCaption": "Dettagli del log — tutti i campi strutturati di questa voce journald, con il messaggio completo non troncato in fondo. Utile per i log di cron e dei servizi quando conta la riga di comando eseguita.",
"fieldsIntro": "Campi indicati:",
"fields": [
"<strong>Level</strong> — distintivo di gravità colorato (INFO / ATTENZIONE / ERROR / CRITICAL).",
"<strong>Service</strong> — nome corto dell'unità / processo che ha emesso l'ingresso.",
"<strong>Timestamp</strong> — data e ora completi della linea di registro.",
"<strong>Source</strong> — origine dell'entrata (giornale, kernel, audit, ...).",
"<strong>Systemd Unit</strong> — l'unità effettiva <code>.service</code> / <code>.timer</code> / <code>.socket</code> se l'ingresso è associato a uno.",
"<strong>Process ID</strong> — PID del processo di emissione.",
"<strong>Hostname</strong> — utile quando le riviste vengono inoltrate attraverso nodi di cluster.",
"<strong>Messaggio</strong> — messaggio completo non troncato in un blocco a spaziatura fissa, pronto da copiare."
],
"maxLevelStoreTitle": "Journald MaxLevelStore",
"maxLevelStoreBody": "Su una nuova installazione Proxmox, journald usa per impostazione predefinita <code>MaxLevelStore=warning</code>, scartando i messaggi info. Monitor lo rileva all'avvio e aggiunge una configurazione complementare (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) con soglia <code>info</code>, per conservare messaggi informativi e più gravi. Questo non include debug.",
"backupsTitle": "Backup",
"backupsBody": "Cronologia delle attività Proxmox limitata ai backup. Una riga per attività (<code>vzdump</code>, trasferimenti PBS, Garbage Collect, Verify), con stato (OK / WARNINGS / ERROR), guest interessato, storage di origine, durata e UPID. Fai clic su una riga per caricare il log completo tramite <code>GET /api/task-log/&lt;upid&gt;</code>: gli stessi dati esposti da Proxmox in <em>Datacenter → Tasks</em>, limitati ai backup.",
"notificationsTitle": "Notifiche",
"notificationsBody1": "Tutte le notifiche inviate da Monitor: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams e webhook. Ogni riga mostra data e ora, canale, tipo di evento, gravità, titolo e corpo generati e, se l'IA è attiva, un comando per confrontare la sua riscrittura con l'originale.",
"notificationsBody2": "Usa questa scheda per verificare che un canale recapiti le notifiche e confrontare la riscrittura AI con il modello di base. I canali si configurano nella pagina dettagliata <link>Notifiche</link>."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerSubtab": "Sottoscheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"subtab": "Registri (filtro in tempo reale)",
"endpoint": "/api/logs",
"source": "<code>journalctl --output json --since &lt;range&gt;</code> con filtri per gravità, unità e ricerca applicati sul server."
},
{
"subtab": "Scarica",
"endpoint": "/api/logs/download",
"source": "La stessa query, restituita come testo semplice per grep / less."
},
{
"subtab": "Backup",
"endpoint": "/api/backups",
"source": "Cronologia delle attività PVE filtrata per <code>vzdump</code>, trasferimenti PBS, Garbage Collect e Verify."
},
{
"subtab": "Dettagli di un'attività di backup",
"endpoint": "/api/task-log/&lt;upid&gt;",
"source": "Log completo dell'attività in testo semplice, letto da <code>/var/log/pve/tasks/&lt;index&gt;/&lt;upid&gt;</code>."
},
{
"subtab": "Cronologia delle notifiche",
"endpoint": "/api/notifications/history",
"source": "Tabella SQLite <code>notification_history</code> alimentata dal ciclo di invio."
}
],
"apiIntro": "Il filtro in tempo reale e i download sono accessibili anche tramite API:",
"codeComment1": "# Errori ed eventi più gravi dell'ultima ora con una parola chiave",
"codeComment2": "# Scarica il journal completo delle ultime 6 ore come testo semplice",
"codeComment3": "# Cerca l'output completo di un'attività specifica tramite UPID"
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — la categoria Log di sistema, che rileva eventi persistenti, picchi e sequenze a cascata."
},
{
"label": "Notifiche",
"href": "/docs/monitor/notifications",
"tail": " — il monitoraggio del journal legge la stessa fonte e trasforma le corrispondenze in notifiche."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — gli endpoint logs e task-log con i rispettivi parametri di query."
},
{
"label": "Indice del pannello",
"href": "/docs/monitor/dashboard",
"tail": "— le altre schede."
}
]
}
}
@@ -0,0 +1,177 @@
{
"meta": {
"title": "ProxMenux Monitor — Pannello: Panoramica del sistema | Documentazione ProxMenux",
"description": "La scheda iniziale predefinita di ProxMenux Monitor: quattro schede (CPU, memoria, VM e LXC attivi, temperatura) con aggiornamenti in tempo reale e minigrafico di tendenza, grafico storico e riepiloghi di storage e rete con link alle rispettive schede."
},
"header": {
"title": "Pannello: Panoramica del sistema",
"description": "La scheda aperta per impostazione predefinita: quattro schede con metriche in tempo reale in alto, grafico storico al centro e riepiloghi di storage e rete in basso, dalle stesse API delle rispettive schede.",
"section": "ProxMenux Monitor · Dashboard"
},
"readOnly": {
"title": "Un'istantanea di sola lettura",
"body": "Tutti i pannelli di questa scheda sono informativi. Le azioni si trovano nelle schede collegate: Storage per gestire i dischi, VM e LXC per avviare o fermare i guest e Sicurezza per configurare l'autenticazione."
},
"captureAlt": "Scheda Panoramica di sistema — quattro schede metriche (CPU, Memoria, VM attive, Temperatura), grafico metrico nodo e schede di sommario di Storage / Network",
"captureCaption": "Panoramica del sistema, la scheda iniziale predefinita. Le quattro schede si aggiornano in tempo reale, il grafico mostra lo storico e le due schede in basso riepilogano storage e rete.",
"topRow": {
"heading": "Riga superiore: schede con metriche in tempo reale",
"intro": "Quattro schede in una griglia 2×2 su mobile e in una riga su desktop. Ciascuna si aggiorna da <code>/api/system</code> ogni pochi secondi.",
"headerCard": "Scheda",
"headerWhat": "Cosa mostra",
"headerSource": "Fonte",
"rows": [
{
"card": "Utilizzo CPU",
"what": "Percentuale attuale con barra di avanzamento. Si aggiorna ogni ~1 s tramite il campionatore dei parametri vitali.",
"source": "psutil.cpu_percent()"
},
{
"card": "Utilizzo memoria",
"what": "GB usati, percentuale e GB totali. La barra rappresenta la percentuale.",
"source": "psutil.virtual_memory()"
},
{
"card": "VM e LXC attivi",
"what": "Numero di guest in esecuzione, con ripartizione In esecuzione / Arrestati e totali di VM e LXC in fondo.",
"source": "/api/vms (consolidato)"
},
{
"card": "Temperatura",
"what": "Temperatura CPU in °C con stato (bassa / moderata / alta) e minigrafico degli ultimi 5 minuti sullo sfondo. Mostra <em>N/A</em> senza sensore. Un clic apre i dettagli.",
"source": "sensors / coretemp"
}
],
"thresholdsTitle": "Colori e soglie di stato applicate qui",
"thresholdsIntro": "Anelli, barre e minigrafici usano la stessa scala: <green/> <strong>verde</strong> sotto Avviso, <amber/> <strong>ambra</strong> tra Avviso e Critico, <red/> <strong>rosso</strong> da Critico in poi. Valori predefiniti consigliati inclusi in ProxMenux:",
"thresholdsItems": [
"<strong>Utilizzo CPU</strong> — avviso 85 %, critico 95 %.",
"<strong>Memoria</strong> — avviso 85 %, critico 95 %. Anche lo swap attiva Critico al 5 % di utilizzo; un host Proxmox sano dovrebbe usarlo raramente.",
"<strong>Temperatura CPU</strong> — avviso 80 °C, critico 90 °C."
],
"thresholdsOutro": "Ogni valore è configurabile per host. <link>Impostazioni → Soglie del monitor di integrità</link> centralizza le impostazioni e spiega come regolarle.",
"sparklineTitle": "Il minigrafico mostra la tendenza",
"sparklineBody": "La scheda della temperatura traccia gli ultimi 5 minuti sotto il valore, con colori di linea e sfumatura legati alle soglie Avviso/Critico descritte sopra. Permette di vedere subito se la temperatura dell'host sale senza aprire i dettagli."
},
"processes": {
"heading": "Processi con maggiore utilizzo di CPU e memoria",
"intro": "Le schede Utilizzo CPU e Memoria aprono un elenco ordinabile dei 25 processi principali: per utilizzo CPU dalla scheda CPU e per memoria residente dalla scheda Memoria.",
"listTitle": "La finestra di dialogo elenco",
"listItems": [
"<strong>Aggiornamento automatico</strong> — l'elenco si aggiorna ogni 5 secondi finché la finestra è aperta e interrompe le richieste alla chiusura.",
"<strong>Filtro</strong> — la ricerca limita l'elenco per comando, utente o PID.",
"<strong>Barra nella riga</strong> — la colonna della metrica principale disegna una piccola barra scalata al massimo valore nell'elenco filtrato. La graduatoria resta evidente anche se nessun processo si avvicina al 100 %.",
"<strong>Disposizione mobile</strong> — sotto 640 px le colonne PID e Utente si nascondono, così Comando, CPU % e Memoria restano visibili senza scorrimento orizzontale."
],
"captureListAlt": "Finestra dei processi per memoria — tabella ordinata per RSS con PID, utente, comando, CPU % e memoria",
"captureListCaption": "La scheda Memoria apre l'elenco ordinato per RSS (colore indaco). La scheda CPU apre lo stesso elenco ordinato per utilizzo CPU (colore blu).",
"detailTitle": "Dettaglio del processo",
"detailIntro": "Un clic su una riga apre una seconda finestra con i dati in tempo reale del processo, organizzati in quattro sezioni:",
"detailItems": [
"<strong>Panoramica</strong> — stato, processo padre, numero di thread, descrittori di file aperti, utente e gruppo.",
"<strong>Risorse</strong> — CPU %, memoria %, memoria residente (RSS), dimensione virtuale, swap e totali I/O di lettura e scrittura.",
"<strong>Comando</strong> — nome breve, riga di comando completa, percorso dell'eseguibile e directory di lavoro.",
"<strong>Durata</strong> — data e ora di avvio e tempo di esecuzione trascorso."
],
"detailRefresh": "I dettagli si aggiornano ogni 3 secondi. Quando il processo termina, le richieste cessano e appare l'avviso ambra <em>Questo processo è terminato</em>. L'ultimo stato acquisito resta visibile ma attenuato, per vedere cosa accadeva prima della fine.",
"captureDetailAlt": "Dettagli del processo — Panoramica, Risorse, Comando e Durata per un PID",
"captureDetailCaption": "Dettagli di un processo aperti da una riga dell'elenco. Il colore corrisponde alla scheda usata per aprirli: blu per CPU, indaco per Memoria."
},
"middle": {
"heading": "Centro: grafici delle metriche del nodo",
"body1": "Sotto le schede, <code>NodeMetricsCharts</code> mostra grafici storici di CPU, memoria e I/O disco dal database RRD di Proxmox tramite <code>/api/node/metrics</code>. Il selettore offre <em>1 ora / 24 ore / 7 giorni / 30 giorni / 1 anno</em>. La risoluzione diminuisce con periodi più ampi per mantenere fluido il grafico.",
"body2": "Sono gli stessi grafici dell'interfaccia web Proxmox per un nodo, integrati nel tema scuro di Monitor e allineati agli altri pannelli."
},
"bottom": {
"heading": "Riga inferiore: riepiloghi di storage e rete",
"storageTitle": "Scheda Panoramica dello storage",
"storageIntro": "Vista compatta dello stato dello storage dell'host, suddivisa in tre blocchi:",
"storageItems": [
"<strong>Capacità totale del nodo</strong> — somma degli storage VM/LXC e dello storage locale del sistema, con una barra sfumata dello spazio usato e libero.",
"<strong>Capacità totale / Dischi fisici</strong> — capacità grezza e numero dei dischi fisici rilevati.",
"<strong>Storage VM/LXC</strong> — spazio usato, libero e percentuale degli storage dei guest, con un contatore quando sono più di uno.",
"<strong>Storage locale (sistema)</strong> — filesystem root o di sistema montato sull'host, separato dal pool dei guest."
],
"storageDrillIn": "I dettagli sono nella <link>scheda Storage</link>: SMART per disco, pool ZFS, cronologia delle osservazioni e altro.",
"networkTitle": "Scheda panoramica della rete",
"networkBody1": "In alto appare il numero delle interfacce attive, fisiche e bridge insieme. Sotto, due righe di etichette colorate indicano le interfacce <code>up</code>: NIC fisiche in blu, bridge con un colore secondario. Il selettore in alto a destra (1 ora / 24 ore / 7 giorni / 30 giorni / 1 anno) controlla un piccolo grafico del traffico RX / TX.",
"networkBody2": "I dettagli per interfaccia (IP/MAC, grafico RRD, membri del bridge, modalità bond e altro) sono nella <link>scheda Rete</link>."
},
"refresh": {
"heading": "Modello di aggiornamento",
"intro": "Ogni pannello gestisce il proprio stato di caricamento (<code>loadingStates.cpu</code>, <code>loadingStates.storage</code>, …), così una sorgente lenta non blocca le altre. Durante il caricamento mostra un segnaposto pulsante. Gli errori sono gestiti senza interrompere la vista: senza sensore di temperatura mostra <em>N/A</em> invece di un errore.",
"items": [
"<strong>Schede superiori</strong> — aggiornamento ogni ~5 s. CPU e temperatura ricevono anche dati ogni secondo dal campionatore dei parametri vitali.",
"<strong>Grafico delle metriche del nodo</strong> — carica all'apertura e al cambio di periodo o lingua. Se necessario, riprova dopo 60 s.",
"<strong>Scheda Storage</strong> — aggiornamento ogni ~60 s. I dati SMART restano in cache più a lungo; la scheda Storage richiede una nuova lettura quando serve.",
"<strong>Scheda Rete</strong> — riepilogo ogni 59 s e grafico del traffico ogni 60 s nel periodo attivo.",
"<strong>Aggiornamento manuale</strong> — il pulsante Aggiorna nell'intestazione ricarica subito tutti i pannelli."
]
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerCard": "Scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"card": "Indicatore di stato nell'intestazione",
"endpoint": "/api/health",
"source": "Lo stato complessivo prodotto dal monitor di integrità a ogni ciclo e conservato in cache."
},
{
"card": "CPU / RAM / Swap / Tempo di attività",
"endpoint": "/api/system",
"source": "<code>/proc/stat</code>, <code>/proc/meminfo</code>, <code>/proc/uptime</code>, con campionamento CPU su un breve intervallo."
},
{
"card": "Informazioni sull'host (kernel, BIOS, distribuzione)",
"endpoint": "/api/info",
"source": "<code>uname -a</code>, <code>dmidecode</code>, versione PVE. Conservati in cache per processo."
},
{
"card": "Carte di archiviazione / rete / VM",
"endpoint": "/api/storage/summary, /api/network/summary, /api/vms",
"source": "Vedere le schede dedicate per ciascuno. Le schede di intestazione mostrano una vista compattata dagli stessi endpoint."
},
{
"card": "Frequenza di aggiornamento",
"endpoint": "—",
"source": "Dati di sistema ogni 5 s; storage, VM e riepilogo di rete ogni 59 s. Il pulsante Aggiorna nell'intestazione ricarica subito tutti i pannelli."
}
],
"codeComment1": "# Chiamata che alimenta lo indicatore di stato nell'intestazione",
"codeComment2": "# pubblico, senza token",
"codeComment3": "# Istantanea autenticata utilizzata dalle carte"
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tail": " — la finestra dell'indicatore di stato nell'intestazione: dieci categorie, avvisi ignorati e soppressione."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — endpoint system, info e health."
},
{
"label": "Notifiche",
"href": "/docs/monitor/notifications",
"tail": "— come gli stessi stati si trasformano in messaggi Telegram / Discord / Email."
},
{
"label": "Indice del pannello",
"href": "/docs/monitor/dashboard",
"tail": " — le altre schede del pannello a colpo d'occhio."
},
{
"label": "Architettura",
"href": "/docs/monitor/architecture",
"tail": " — i thread in background e le API che alimentano questa vista."
}
]
}
}
@@ -0,0 +1,174 @@
{
"meta": {
"title": "ProxMenux Monitor — Pannello: Terminale | Documentazione ProxMenux",
"description": "Shell dell'host Proxmox nel browser: fino a 4 terminali in griglia, pulsanti tastiera per dispositivi mobili (ESC, TAB, frecce, combinazioni Ctrl), prontuario di comandi integrato con cheat.sh e protezione JWT."
},
"header": {
"title": "Pannello: Terminale",
"description": "Una vera sessione shell sull'host Proxmox dal browser. Fino a quattro terminali contemporaneamente, pulsanti tastiera per dispositivi mobili e prontuario dei comandi integrato, con lo stesso tema del resto del pannello.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Un vero PTY nel browser",
"body": "Il terminale crea un PTY sul server tramite <code>flask_terminal_routes</code>, lo collega via WebSocket a <code>xterm.js</code> nel browser e viene eseguito come <code>root</code>, utente dell'unità systemd. Come con <code>ssh root@&lt;host&gt;</code>, puoi usare <code>vim</code>, <code>tmux</code>, strumenti ncurses e le CLI Proxmox (<code>qm</code>, <code>pct</code>, <code>pvesh</code>, <code>pvecm</code>). Ogni PTY esporta <code>PROXMENUX_TERMINAL=monitor</code>, ereditata da tutti i processi figli <code>bash</code>, incluso un successivo avvio di <code>menu</code>, per riconoscere il terminale di Monitor."
},
"singleAlt": "Scheda Terminale di ProxMenux Monitor — sessione singola con il riepilogo di sistema Fastfetch allo accesso",
"singleCaption": "Un terminale host aperto — la barra degli strumenti sopra mostra il conteggio (<em>1 / 4 terminali</em>), <em>+ Nuovo</em>, <em>Ricerca</em>, <em>Cancellazione</em> e <em>Chiudere</em>. Gli helper della tastiera mobile appaiono sotto il terminale su dispositivi touch.",
"target": {
"heading": "Obiettivo di connessione",
"body1": "La scheda Terminale apre una shell sullo <strong>host Proxmox stesso</strong>, come uno accesso SSH. Ogni scheda apre un nuovo terminale dell'host.",
"body2": "Per accedere a un <strong>container LXC</strong> dal browser, usa <em>Console</em> sulla scheda di ogni CT in esecuzione nella <link>scheda VM e LXC</link>. Apre una finestra che esegue <code>pct enter &lt;vmid&gt;</code> e usa la stessa barra per dispositivi mobili descritta sotto."
},
"menuGuard": {
"heading": "Protezione durante l'aggiornamento di menu in questo terminale",
"body1": "Dopo la conferma, <code>menu</code> sostituisce il proprio albero di script e si ricarica. Questo funziona tramite SSH o console Proxmox, ma nel browser chiuderebbe il PTY della shell e interromperebbe il WebSocket. Per evitarlo, <code>check_updates_stable</code>, <code>check_updates_beta</code> e <code>apply_release_channel</code> leggono <code>PROXMENUX_TERMINAL</code> e riconoscono il contesto Monitor.",
"body2": "Il dialogo sì/no viene quindi sostituito da un messaggio con il comando ufficiale di installazione: <code>bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\"</code> per stable e l'URL equivalente di <code>install_proxmenux_beta.sh</code> per beta. Lo aggiornamento si esegue tramite SSH o console dell'host Proxmox; il terminale del browser serve solo a leggere e confermare il messaggio."
},
"fourTerminals": {
"heading": "Fino a quattro terminali contemporaneamente",
"intro": "La scheda consente di aprire fino a quattro terminali host contemporaneamente. Ognuno ottiene il proprio PTY e il proprio WebSocket — sono sessioni completamente indipendenti. Due layout passano con le icone accanto al pulsante \"Nuovo\":",
"items": [
"<strong>Vista a schede</strong> — un terminale visibile, gli altri come schede con nome in alto (<em>Terminale 1</em>, <em>Terminale 2</em>…). Utile per un'attività con le altre in secondo piano.",
"<strong>Vista a griglia</strong> — tutti i terminali aperti in una griglia 2×2. Puoi osservare <code>htop</code> in uno, <code>iftop</code> in un altro e modificare file in un terzo senza cambiare scheda."
],
"outro": "La barra indica il conteggio (<em>1/4 terminali</em>, <em>4/4 terminali</em>). <strong>+ Nuovo</strong> apre una scheda; la piccola <code>×</code> nell'intestazione la chiude. Il grande pulsante rosso <strong>Chiudi</strong> in alto chiude tutti i terminali."
},
"gridAlt": "Scheda terminale ProxMenux Monitor — visualizzazione griglia con quattro terminali host che eseguono ls, configurazione di rete, iftop e il menu principale ProxMenux fianco a fianco",
"gridCaption": "Vista a griglia (4 / 4 terminali) — quattro PTY indipendenti in parallelo: elenco directory, <code>/etc/network/interfaces</code>, <code>iftop</code> e menu principale ProxMenux. Il selettore di disposizione nella barra alterna griglia e schede.",
"keyboard": {
"heading": "Pulsanti tastiera per dispositivi mobili",
"intro": "Le tastiere di telefoni e tablet spesso non offrono ESC, TAB, frecce o combinazioni con modificatori. Servono per usare <code>vim</code>, <code>nano</code>, <code>htop</code> e menu TUI. Terminale aggiunge quindi una riga di pulsanti tattili sotto il terminale quando lo schermo è piccolo o il dispositivo supporta il tocco:",
"headerButton": "Pulsante",
"headerSends": "Invia",
"headerUse": "Uso tipico",
"rows": [
{
"button": "ESC",
"sends": "\\x1b",
"use": "Esce dalla modalità di inserimento di <code>vim</code>, annulla un dialogo TUI o chiude una ricerca."
},
{
"button": "TAB",
"sends": "\\t",
"use": "Completamento dei percorsi e navigazione tra campi in dialog/whiptail."
},
{
"button": "↑ ↓ ← →",
"sends": "\\x1bO[ABCD]",
"use": "Cronologia della shell, movimento del cursore e navigazione dei menu."
},
{
"button": "↵ Invio",
"sends": "\\r",
"use": "Conferma. Alcune tastiere sullo schermo sostituiscono Invio con Vai/Fine; questo pulsante evita ambiguità."
},
{
"button": "Ctrl ▾",
"sends": "Menu a discesa",
"useRich": true
}
],
"ctrlIntro": "Tre sequenze di controllo:",
"ctrlItems": [
"<code>Ctrl+C</code> — annullare / interrompere il comando in esecuzione (<code>\\x03</code>).",
"<code>Ctrl+X</code> — esce da <code>nano</code> (<code>\\x18</code>).",
"<code>Ctrl+R</code> — ricerca a ritroso nella cronologia bash (<code>\\x12</code>)."
],
"modalTitle": "Stessa barra nella finestra della console LXC",
"modalBody": "La console aperta da <link>VM e LXC → Console</link> mostra gli stessi pulsanti tastiera sotto la finestra. Alla connessione inserisce automaticamente <code>pct enter &lt;vmid&gt;</code> per entrare direttamente nel container."
},
"lxcAlt": "Finestra console LXC di ProxMenux Monitor — Terminal: ubuntu (ID: 103), con la stessa barra per dispositivi mobili (ESC, TAB, frecce, Invio, Ctrl) sotto il terminale",
"lxcCaption": "Console LXC aperta da <em>VM e LXC → Console</em>. L'intestazione mostra il container di destinazione (<em>Terminal: ubuntu (ID: 103)</em>) e sotto il terminale appare la stessa barra tattile.",
"search": {
"heading": "Cerca comandi — prontuario integrato",
"intro": "Il pulsante blu <strong>Cerca</strong> apre una ricerca approssimativa dei comandi. Digita alcune lettere di un comando Linux o Proxmox (<code>ls</code>, <code>tar</code>, <code>qm</code>, <code>pct</code>, <code>zpool</code>, <code>systemctl</code>…) per vedere esempi con <em>Invia al terminale attivo</em> in un tocco. Puoi così ritrovare un'opzione senza cambiare scheda.",
"modalAlt": "Finestra Cerca comandi di ProxMenux Monitor — ricerca approssimativa di comandi Linux e Proxmox tramite cheat.sh, con vari esempi di ls",
"modalCaption": "Ricerca di <code>ls</code> — ogni risultato mostra comando, descrizione e una piccola freccia di invio al terminale attivo. In basso a destra è indicata la fonte dei dati (<em>Fornito da cheat.sh</em>).",
"aboutLabel": "Informazioni su cheat.sh:",
"aboutBody": "è un prontuario open source curato dalla comunità, con esempi brevi e pratici per centinaia di comandi Linux, strumenti di amministrazione e linguaggi di programmazione. Progettato per essere consultato con <code>curl cheat.sh/&lt;command&gt;</code>, è accessibile anche dal browser. ProxMenux Monitor inoltra le query tramite proxy sul server per mantenere la stessa origine del pannello.",
"headerSource": "Fonte",
"headerWhen": "Quando viene usato",
"headerWhat": "Cosa vedi",
"onlineLabel": "(in linea)",
"onlineWhen": "Quando l'host ha accesso a Internet e il proxy cheat.sh risponde.",
"onlineWhat": "Vari esempi pratici per comando, con la descrizione sopra. Il punto di stato nell'intestazione è <green>verde</green>.",
"fallbackLabel": "Alternativa locale",
"fallbackWhen": "Quando cheat.sh non è raggiungibile (host offline, firewall restrittivo o interruzione del servizio cheat.sh).",
"fallbackWhat": "Un elenco incluso di comandi Linux e Proxmox comuni. Il catalogo è più piccolo ma sempre disponibile. Il punto di stato è <red>rosso</red>.",
"sendingNote": "<strong>Come funziona l'invio</strong>: la freccia accanto al risultato invia il testo al terminale attivo (la scheda selezionata o l'ultimo terminale cliccato nella griglia). La finestra si chiude automaticamente per consentire di premere Invio."
},
"auth": {
"heading": "Autenticazione",
"items": [
"Il browser richiede prima un ticket monouso tramite <code>POST /api/terminal/ticket</code>, autenticato con JWT nell'intestazione <code>Authorization</code>. Poi invia il ticket all'apertura del WebSocket. Scade dopo 5 secondi; se l'autenticazione è attiva e il ticket manca o non è valido, la connessione si chiude prima di creare un PTY.",
"Se Monitor si trova dietro un proxy inverso, questo deve inoltrare gli upgrade WebSocket. Esempi per Nginx / Caddy / Traefik nella pagina <link>Accesso e autenticazione</link>."
]
},
"clipboard": {
"heading": "Appunti, cronologia dello schermo e ridimensionamento",
"items": [
"<strong>Copia e incolla</strong> — usa gli appunti del browser. Seleziona il testo con mouse o trackpad e usa la scorciatoia del sistema (<code>Cmd+C</code> su macOS, <code>Ctrl+Shift+C</code> su Linux/Windows). I desktop Linux supportano anche l'incollaggio con clic centrale.",
"<strong>Cronologia dello schermo</strong> — scorrimento con rotella o due dita. xterm.js conserva in memoria le ultime migliaia di righe.",
"<strong>Ridimensionamento</strong> — il terminale adatta la dimensione della finestra PTY quando ridimensioni il pannello, per visualizzare correttamente <code>htop</code> e <code>vim</code>.",
"<strong>Riconnessione al ritorno alla scheda</strong> — cambiare app su telefono o tablet, soprattutto iPad, può interrompere il WebSocket. Terminale rileva il cambio di visibilità e si riconnette al ritorno, con un timeout di 15 secondi per VPN lente."
]
},
"disconnect": {
"heading": "Cause di disconnessione",
"intro": "Le cause più comuni della fine di una sessione e come risolverle:",
"headerCause": "Causa",
"headerFix": "Soluzione",
"rows": [
{
"cause": "JWT di sessione scaduto all'apertura o riconnessione di un terminale (durata di 24 ore).",
"fix": "Aggiorna la pagina e accedi di nuovo. Il terminale non è progettato per sessioni non assistite, quindi la durata di JWT corrisponde al normale login del cruscotto."
},
{
"cause": "Timeout di inattività del proxy inverso.",
"fix": "Aumenta <code>proxy_read_timeout</code> in Nginx o il valore equivalente in Caddy / Traefik (esempi in Accesso e autenticazione)."
},
{
"cause": "Telefono o tablet in sospensione.",
"fix": "Al risveglio del dispositivo la scheda si riconnette automaticamente (timeout di 15 secondi per i percorsi VPN). In caso contrario, ricaricala."
},
{
"cause": "Il servizio si riavvia sull'host.",
"fix": "Ogni riavvio di <code>proxmenux-monitor.service</code> chiude tutti i PTY. Apri nuovi terminali quando il pannello ha terminato il caricamento."
}
]
},
"warning": {
"title": "Il terminale è una shell root sull'host",
"body": "Il terminale eredita l'utente dell'unità systemd (<code>root</code>) e ha pieni privilegi sull'host Proxmox. Configura nome utente, password e 2FA in <authLink>Accesso e autenticazione</authLink> prima di consentire accessi fuori dalla rete locale. Con autenticazione disattivata, chi raggiunge la porta 8008 può aprire una shell root senza altre conferme o credenziali SSH. Per accessi esterni usa <gatewayLink>Secure Gateway</gatewayLink> (Tailscale) o un proxy inverso HTTPS invece di pubblicare la porta su Internet."
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Accesso e autenticazione",
"href": "/docs/monitor/access-auth",
"tail": " — esempi per proxy inversi con le righe di upgrade WebSocket necessarie per il terminale."
},
{
"label": "Architettura",
"href": "/docs/monitor/architecture",
"tail": " — trasporto WebSocket (HTTP tramite flask-sock e HTTPS / WSS tramite gevent)."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tail": " — endpoint WebSocket /ws/terminal e /ws/script/<sid>, insieme al resto dell'API."
},
{
"label": "Integrazioni → Secure Gateway",
"href": "/docs/monitor/integrations",
"tail": "— quando si desidera l'accesso terminale da fuori della LAN senza esporre la porta 8008."
},
{
"label": "Indice del pannello",
"href": "/docs/monitor/dashboard",
"tail": "— le altre schede."
}
]
}
}
@@ -0,0 +1,245 @@
{
"meta": {
"title": "Scheda App LXC: scoperta, collegamenti e tracciamento versione | ProxMenux",
"description": "Scoprire e registrare le applicazioni LXC, creare collegamenti web e seguire in modo facoltativo le versioni installate e disponibili."
},
"header": {
"title": "Scheda App LXC: scoperta, collegamenti e tracciamento versione",
"description": "Dare ad ogni applicazione LXC un'identità persistente, l'accesso al web e le prove della versione facoltativa senza accoppiare la registrazione agli aggiornamenti."
},
"intro": {
"p1": "La scheda <strong>App</strong> registra le applicazioni di un LXC. Un record può contenere solo nome e link web, oppure anche un rilevatore della versione installata e una fonte upstream.",
"p2": "La procedura che modifica il software si configura nella <link>scheda Aggiornamenti</link>. Salvare un'app non esegue mai un installatore o un programma di aggiornamento.",
"callout": "Registrazione, tracciamento delle versioni e aggiornamento sono tre funzioni indipendenti. Ciascuna è utilizzabile senza richiedere le altre due.",
"dashboardTitle": "Dalla registrazione al lanciatore Apps",
"dashboard": "Ogni link web salvato qui appare anche come scheda nella <appsLink>scheda Apps</appsLink> principale. Questa pagina LXC resta il riferimento per nome, logo, link e tracciamento delle versioni."
},
"overview": {
"heading": "Cosa può offrire un record di applicazione",
"lead": "Un singolo record salvato può includere:",
"items": [
"Un nome visualizzato e un logo adattato al tema.",
"Uno o più link web cliccabili costruiti dall'indirizzo LXC, schema e porta salvata.",
"Un rilevatore opzionale per la versione attualmente installata all'interno del LXC.",
"Una sorgente opzionale GitHub, HTTP JSON o Docker Hub per l'ultima versione disponibile.",
"Notifiche di rilascio per applicazione e preferenze di inclusione del contatore di aggiornamento.",
"Una sezione corrispondente sulla scheda Aggiornamenti, anche quando il monitoraggio della versione è disabilitato."
]
},
"discovery": {
"heading": "Ricerca in cache e Trova applicazioni",
"lead": "I suggerimenti sono inclusi nella cache della finestra di ogni LXC. La scansione iniziale li prepara in background per mostrarli subito quando si apre App.",
"items": [
"L'apertura della scheda App <strong>non</strong> avvia una nuova scansione del catalogo e non interroga ripetutamente il LXC.",
"<strong>Trova applicazioni</strong> avvia una nuova ricerca per quel LXC. Usalo dopo aver installato software mentre ProxMenux è già in esecuzione.",
"L'elenco precedente resta visibile durante la scansione. Le nuove corrispondenze si aggiungono alla fine.",
"Se non ci sono nuove corrispondenze, il risultato appare accanto alle azioni e <strong>Registra applicazione</strong> resta disponibile per l'inserimento manuale.",
"Salvare, rimuovere o ripristinare un'app aggiorna immediatamente la stessa cache. Avviare o ripristinare un LXC rinfresca solo l'ospite attraverso il suo evento ciclo di vita esistente."
],
"callout": "Un suggerimento non è una registrazione. Resta in sola lettura finché non premi <strong>Registra</strong> e salvi il modulo."
},
"registration": {
"heading": "Registrazione di un'applicazione",
"lead": "Un suggerimento rilevato e un record manuale usano lo stesso editor:",
"steps": [
"<strong>Registra</strong> un suggerimento oppure usa <strong>Registra applicazione</strong> per scegliere dal catalogo o inserire un nome personalizzato.",
"Rivedere il nome e il logo proposti dal catalogo.",
"Aggiungi i link web richiesti. Le porte di ascolto rilevate vengono offerte come scorciatoie, ma nessuna viene salvata automaticamente.",
"<strong>Traccia versione upstream</strong> può restare disattivato per record con soli link. Se lo attivi, verifica il rilevatore della versione installata e la fonte upstream.",
"Se il tracciamento è attivo, usa <strong>Prova rilevatore</strong> e salva il record.",
"Premi <strong>Fine</strong> dopo la modifica. App e Aggiornamenti usano lo stesso record aggiornato in cache."
]
},
"catalog": {
"heading": "Registrazione assistita da catalogo",
"lead": "Il catalogo fornisce i default, ma il record salvato rimane modificabile.",
"items": [
"I risultati della ricerca possono precompilare nome canonico, logo e porte web comuni.",
"I rilevatori noti usano veri nomi di pacchetti, binari, file, distribuzioni Python, etichette OCI o comandi, invece di un'ipotesi universale come <code>/root/.app</code>.",
"Gli override di runtime verificati hanno la precedenza quando un'installazione utilizza un percorso che differisce dai metadati dell'installatore.",
"I marcatori Proxmox VE Helper-Scripts come <code>/root/.slug</code> rimangono un segnale di compatibilità per le nuove installazioni di helper, non l'unico rilevatore.",
"Ogni valore proposto può essere modificato prima di salvare per coprire installatori ufficiali e installazioni manuali."
]
},
"docker": {
"heading": "Come vengono rappresentati i Docker LXC",
"lead": "Per un LXC la cui piattaforma primaria è Docker, <strong>Docker</strong> è l'applicazione registrata a livello LXC.",
"items": [
"Un carico di lavoro containerizzato come Portainer, Frigate o Vaultwarden non è suggerito come un'applicazione indipendente LXC nativo.",
"I servizi Docker in esecuzione con porte TCP pubblicate sono proposti come link web opzionali nell'editor Docker.",
"Ogni link suggerito mostra servizio, porta dell'host e porta del container. Salva solo quelli che offrono un'interfaccia web.",
"Il logo globale Docker viene utilizzato quando un link non ha un logo specifico. Un logo per-link lo sovrascrive quando uno è configurato.",
"Dopo che Docker è registrato, Docker Engine e gli aggiornamenti delle immagini vengono visualizzati insieme nella sua sezione sulla scheda Aggiornamenti."
],
"callout": "Questa struttura previene un carico di lavoro Docker dall'aspetto di un software installato direttamente nel LXC preservando i collegamenti rapidi alle sue interfacce."
},
"webLinks": {
"heading": "Link web e loghi",
"lead": "I link web funzionano con o senza tracciamento della versione.",
"items": [
"Ogni link memorizza uno schema, la porta, la descrizione facoltativa e l'URL del logo opzionale.",
"L'URL visualizzato utilizza l'indirizzo corrente già rilevato per il LXC; l'indirizzo non viene duplicato in ogni record di app.",
"Un link senza il proprio logo rientra nel logo dell'app.",
"Più link possono rappresentare interfaccia amministrativa, API, interfaccia secondaria o un altro endpoint della stessa app.",
"Una app con soli link appare anche in Aggiornamenti, dove puoi configurare in seguito un programma personalizzato."
]
},
"tracking": {
"heading": "Tracciamento versione opzionale",
"lead": "Il tracciamento combina un rilevatore della versione installata con una fonte upstream opzionale. I due lati sono controllati separatamente.",
"colMethod": "Metodo per la versione installata",
"colUse": "Uso",
"detectorRows": [
{
"method": "dpkg / apk",
"use": "Legge la versione del pacchetto installato dai metadati del pacchetto Debian, Ubuntu o Alpine."
},
{
"method": "binary",
"use": "Esegue un percorso binario assoluto o un nome di comando con argomenti di versione."
},
{
"method": "file + regex",
"use": "Legge un file reale ed estrae la versione con un gruppo di cattura."
},
{
"method": "docker label / docker exec",
"use": "Legge un'etichetta di versione OCI o esegue un comando di versione all'interno di un contenitore Docker."
},
{
"method": "python distribution",
"use": "Utilizza importlib.metadata attraverso l'interprete Python selezionato."
},
{
"method": "command",
"use": "Esegue un comando avanzato in stile argv senza una shell ed estrae la versione dalla sua uscita."
},
{
"method": "manual",
"use": "Conserva una versione inserita manualmente; deve essere modificata dopo l'aggiornamento dell'app."
},
{
"method": "OCI image",
"use": "Per container installati da OCI manager Apps. Legge le versioni di app e immagine dal record di installazione e confronta il digest installato con quello pubblicato dal registro. Non richiede configurazione."
}
],
"sourcesHeading": "Fonti della versione disponibile",
"sources": [
"<strong>GitHub repository</strong>: ultima release o tag da un repository pubblico <code>owner/name</code>.",
"<strong>HTTP JSON</strong>: un endpoint pubblico più un percorso punteggiato come <code>data.version</code> o <code>releases[0].tag_name</code>.",
"<strong>Docker Hub</strong>: tag con versione filtrati tramite espressione regolare. Un'anteprima mostra i tag reali corrispondenti prima del salvataggio.",
"<code>latest</code>, <code>stable</code> e <code>lts</code> sono tag mobili senza versione. Traccia queste immagini tramite digest negli aggiornamenti delle immagini Docker."
],
"regexHeading": "Scrivere l'espressione di cattura",
"regexLead": "L'espressione regolare deve restituire la versione nel <strong>primo gruppo di cattura</strong>.",
"regexRules": [
"Abbina il testo emesso dalla sorgente binaria, file, comando o tag selezionata; non indovinare un percorso generico.",
"Usa <code>\\.</code> per i punti letterali, così non corrispondono a caratteri arbitrari.",
"Consenti una <code>v</code> iniziale solo se la fonte può includerla.",
"Includere suffissi come prerelease o revisioni distro solo quando sono significativi per il confronto.",
"Usa <strong>Prova rilevatore</strong> prima di salvare e verifica che la versione installata mostrata corrisponda al LXC."
],
"regexExampleLead": "cattura semantica comune:",
"regexExample": "v?(\\d+\\.\\d+\\.\\d+)",
"regexCallout": "Una corrispondenza regex riuscita non dimostra che il percorso del rilevatore sia corretto. Il percorso o pacchetto deve esistere nell'installazione reale da registrare."
},
"updater": {
"heading": "Il monitoraggio delle versioni e l'aggiornamento sono indipendenti",
"lead": "La <link>scheda Aggiornamenti</link> crea una sezione app non appena viene salvato un record.",
"items": [
"Un record di collegamento mostra che il tracciamento della versione non è configurato, ma può ancora ricevere un comando di aggiornamento personalizzato.",
"Un'applicazione con monitoraggio ma senza un metodo eseguibile mostra un messaggio neutro che chiede un comando personalizzato.",
"Una app con wrapper Proxmox VE Helper-Scripts verificato può usare il programma integrato anche se la registrazione è partita da un link web.",
"Aggiungere o modificare un programma di aggiornamento non cambia rilevatore o fonte upstream salvati in App."
]
},
"states": {
"heading": "Stati di versione nella scheda App",
"colState": "Stato",
"colDisplay": "Visualizzazione",
"colMeaning": "Significato",
"rows": [
{
"state": "Aggiornamento disponibile",
"display": "Versione disponibile in viola con icona a freccia verso l'alto",
"meaning": "Le versioni installate e a monte differiscono."
},
{
"state": "Aggiornata",
"display": "Versioni installata e disponibile senza avviso viola",
"meaning": "L'ultimo controllo non ha trovato una versione upstream più recente."
},
{
"state": "Monitoraggio in attesa",
"display": "Controllo o stato in sospeso",
"meaning": "Il record è configurato ma non ha ancora completato entrambi i controlli."
},
{
"state": "Tracciamento disattivato",
"display": "Solo link web; nessun blocco di confronto versione",
"meaning": "Il record resta valido e può avere un programma di aggiornamento."
},
{
"state": "Errore di verifica",
"display": "Spiegazione ambra all'interno della scheda",
"meaning": "Lo stato precedente resta visibile mentre viene segnalato l'errore del rilevatore o della fonte upstream."
}
]
},
"management": {
"heading": "Gestione delle applicazioni salvate e suggerite",
"lead": "Le azioni in fondo alla scheda hanno ruoli distinti:",
"items": [
"<strong>Trova applicazioni</strong> aggiorna la ricerca solo per questo LXC.",
"<strong>Registra altra applicazione</strong> apre catalogo ed editor manuale senza una nuova scansione del LXC.",
"<strong>Modifica</strong> mostra su ogni scheda Rimuovi, Verifica, notifiche e Modifica campi.",
"<strong>Nascondi</strong> rimuove un suggerimento indesiderato. Le rilevazioni nascoste si ripristinano nella vista di registrazione.",
"<strong>Verifica</strong> aggiorna i dati di versione della app salvata scelta; non cerca nuove app."
]
},
"troubleshooting": {
"heading": "Situazioni comuni",
"colProblem": "Situazione",
"colResolution": "Risoluzione",
"rows": [
{
"problem": "Il software è stato installato dopo l'avvio di ProxMenux",
"resolution": "Premere Trova applicazioni. La scansione esplicita aggiorna i suggerimenti in cache per quel LXC."
},
{
"problem": "Nessun'applicazione è stata rilevata",
"resolution": "Registralo manualmente. Un nome e un link web sono sufficienti; il tracciamento può essere aggiunto in seguito."
},
{
"problem": "Il rivelatore suggerito restituisce la versione sbagliata",
"resolution": "Apri Modifica campi, seleziona il pacchetto, binario o percorso reale e prova il rilevatore prima di salvare."
},
{
"problem": "Un carico di lavoro Docker non è offerto come app LXC",
"resolution": "Registrare Docker e aggiungere l'interfaccia pubblicata del carico di lavoro come collegamento web Docker. Gli aggiornamenti delle immagini rimangono nella sezione Docker."
},
{
"problem": "Un'app salvata non ha nessun pulsante di aggiornamento",
"resolution": "Aprire la scheda Aggiornamenti e configurare il suo metodo di aggiornamento. Il tracciamento della versione da solo non definisce come viene installato un aggiornamento."
}
]
},
"figures": {
"catalog": {
"alt": "Catalogo di registrazione con risultati di ricerca, loghi, porte e campi del rilevatore",
"caption": "Catalogo metadati accelera la registrazione mentre ogni valore proposto rimane modificabile."
},
"webLinks": {
"alt": "Scheda di applicazione LXC salvata contenente un link web cliccabile",
"caption": "Un record con soli link è valido: il tracciamento può restare disattivato e il programma di aggiornamento si aggiunge separatamente."
},
"tracking": {
"alt": "Campi opzionali del rilevatore della versione installata e della fonte upstream",
"caption": "Il rilevamento della versione installata e la fonte upstream si configurano e provano separatamente."
},
"card": {
"alt": "Scheda di applicazione salvata con versioni installate e disponibili più un link web",
"caption": "La scheda combina identità, prove di versione e accesso web senza eseguire azioni di aggiornamento da questa scheda."
}
}
}
@@ -0,0 +1,203 @@
{
"meta": {
"title": "Aggiornamenti LXC: OS, applicazioni e Docker | ProxMenux",
"description": "Configura ed esegui aggiornamenti del sistema operativo, delle applicazioni, di Docker Engine e delle immagini Docker in un container LXC."
},
"header": {
"title": "Aggiornamenti LXC: OS, applicazioni e Docker",
"description": "Verificare ogni obiettivo di aggiornamento in un unico luogo, eseguirlo in modo indipendente, o combinare obiettivi selezionati in un'azione di massa controllata."
},
"intro": {
"p1": "La scheda <strong>Aggiornamenti</strong> separa il rilevamento delle versioni dalla loro installazione. Registrazione e tracciamento opzionale sono nella <link>scheda App</link>; i metodi eseguibili si gestiscono qui.",
"p2": "Un'app salvata appare in Aggiornamenti anche con un solo link web. Il tracciamento delle versioni è opzionale e il programma di aggiornamento può essere configurato separatamente.",
"callout": "Registrare un'app non seleziona il programma di aggiornamento. Se viene rilevato un programma Helper-Scripts corrispondente, scegli e salva <strong>Helper-Scripts</strong> o <strong>Comando personalizzato</strong>. Il rilevamento non garantisce la compatibilità. La scelta è per app, anche quando più app condividono un LXC."
},
"overview": {
"heading": "Cosa contiene la scheda",
"lead": "Ogni target disponibile ha la sua sezione e azione:",
"items": [
"<strong>Pacchetti del sistema</strong> per container Debian, Ubuntu e Alpine.",
"Una sezione per ogni <strong>applicazione registrata</strong>, inclusi i record con soli link.",
"Una sezione <strong>Docker</strong> quando Docker è registrato, con Docker Engine e immagini contrassegnate raggruppate insieme.",
"Una sezione <strong>Aggiornamento in blocco</strong> configurabile, seguita da opzioni di backup, riavvio e pianificazione."
]
},
"mechanisms": {
"heading": "Come viene selezionato un metodo di aggiornamento",
"lead": "Il percorso integrato Proxmox VE Helper-Scripts segue il meccanismo ufficiale <helper>update-apps </helper>. Altri tipi di installazione utilizzano il pacchetto corrispondente, Docker o percorso personalizzato.",
"officialReference": "Riferimento ufficiale: la <helper>documentazione update-apps di Proxmox VE Helper-Scripts</helper> descrive modalità interattiva e non presidiata, backup, simulazioni, risorse temporanee di compilazione, log e codici di uscita.",
"colSource": "Fonte",
"colAction": "Azione visualizzata",
"colNotes": "Cosa viene eseguito",
"rows": [
{
"source": "Pacchetti APT o APK",
"action": "Applicare aggiornamenti del sistema operativo",
"notes": "Aggiorna i pacchetti container. Le app registrate installate come pacchetti dpkg o apk sono coperte da questo stesso passaggio."
},
{
"source": "Proxmox VE Helper-Scripts",
"action": "Applica aggiornamento",
"notes": "Dopo la scelta esplicita di Helper-Scripts esegue lo script ufficiale identificato dal wrapper /usr/bin/update convalidato. Un marcatore o una corrispondenza nel catalogo da soli non abilitano mai l'esecuzione."
},
{
"source": "Comando personalizzato",
"action": "Esegui programma di aggiornamento",
"notes": "Esegue il comando salvato nel LXC e sostituisce qualsiasi programma integrato di aggiornamento di quel record."
},
{
"source": "Docker Engine",
"action": "Aggiorna Docker Engine",
"notes": "Aggiorna solo i pacchetti Docker installati e le dipendenze necessarie. Non modifica altri pacchetti del sistema o i container."
},
{
"source": "Immagine Docker",
"action": "Aggiorna immagine",
"notes": "Scarica l'immagine selezionata e ricrea il gruppo di servizi Compose o il container autonomo protetto."
}
],
"callout": "Un comando personalizzato <strong>sostituisce</strong> Helper-Scripts per quell'app. Le esecuzioni manuali, in blocco e pianificate rispettano la scelta salvata. Restano i comandi esistenti e le vecchie selezioni salvate esplicitamente nei piani in blocco o nelle pianificazioni attive; una nuova app non viene mai inclusa da una vecchia pianificazione."
},
"docker": {
"heading": "Docker Engine e immagini Docker",
"lead": "Dopo che Docker è registrato sulla scheda App, il suo motore e l'inventario delle immagini appaiono all'interno della stessa sezione <strong>Docker</strong>.",
"items": [
"Il monitoraggio della versione Docker Engine è separato dal contatore del pacchetto OS e ha il suo pulsante di aggiornamento.",
"Le immagini locali dotate di tag vengono confrontate con quelle del rispettivo registro tramite il digest immutabile. <strong>Controlla ora</strong> aggiorna questo inventario senza scaricare immagini né riavviare i container.",
"I servizi Compose sono aggiornati dal progetto dichiarato. Le immagini dello stesso gruppo sono gestite insieme per evitare di ricreare il progetto più volte.",
"Un contenitore standalone è ricreato dalla sua configurazione attuale. Il flusso protetto mantiene i dati di rollback e ripristina il contenitore precedente se la ricreazione fallisce.",
"Ogni immagine è selezionabile separatamente per aggiornamenti manuali, in blocco e pianificati, tranne le dipendenze Compose dichiarate che devono seguire il servizio principale."
],
"callout": "I contenitori che funzionano all'interno di Docker non sono indicati come applicazioni LXC indipendenti. Le loro porte web pubblicate possono essere salvate come link sotto la registrazione Docker, mentre gli aggiornamenti delle immagini rimangono nella sezione Docker."
},
"actions": {
"heading": "Azioni individuali e colori di stato",
"lead": "Ogni sezione rimane utilizzabile in modo indipendente, indipendentemente dal fatto che sia configurato o meno un aggiornamento collettivo.",
"items": [
"<strong>Configura</strong> apre la scelta del programma quando non è definito un metodo; <strong>Modifica</strong> cambia una scelta salvata. I pulsanti informativi spiegano le opzioni, collegano la documentazione ufficiale e mostrano un esempio di script personalizzato. Selezionare non esegue l'opzione.",
"Con tracciamento versione disattivato ma programma disponibile, appare l'azione neutra <strong>Esegui programma di aggiornamento</strong>. ProxMenux non afferma che ci sia un aggiornamento in attesa.",
"Senza un programma Helper-Scripts disponibile, configura un comando personalizzato. Disattivare un metodo non ne seleziona un altro; i piani e le pianificazioni conservano le scelte e segnalano gli obiettivi non disponibili.",
"<strong>Aggiorna immagine</strong> agisce solo sull'unità Docker selezionata; non aggiorna Docker Engine né immagini non correlate."
],
"statusColState": "Stato conosciuto",
"statusColAppearance": "Aspetto",
"statusColMeaning": "Significato",
"statusRows": [
{
"state": "Aggiornamento verificato disponibile",
"appearance": "Testo viola, icona con freccia verso l’alto e azione viola",
"meaning": "Le versioni installate e disponibili o i digest delle immagini differiscono."
},
{
"state": "Aggiornato e verificato",
"appearance": "Segno di spunta verde e azione Aggiornato in verde",
"meaning": "L'ultimo controllo completato conferma che l'obiettivo è attuale."
},
{
"state": "Versione sconosciuta",
"appearance": "Testo neutro e azione neutrale",
"meaning": "Il programma di aggiornamento è eseguibile, ma mancano dati di versione per stabilire se il target è aggiornato o ha un aggiornamento disponibile."
}
]
},
"custom": {
"heading": "Comandi di aggiornamento personalizzati",
"lead": "Usa un comando personalizzato quando manca un programma integrato verificato o quando occorre sostituire la procedura normale.",
"items": [
"Apri <strong>Configura</strong> se il campo è vuoto, oppure <strong>Modifica</strong> se esiste già un metodo.",
"Per un'app integrata o Docker Engine, l'editor mostra il comando attuale. Salvare un contenuto diverso lo rende la sostituzione esplicita per quel record.",
"Testare prima la procedura completa nel terminale LXC. Deve essere non interattivo, utilizzare la directory di lavoro corretta e restituire uno stato di uscita non zero su guasto.",
"Non includere <code>pct exec</code>; ProxMenux entra già nel contenitore ed esegue il comando come root."
],
"exampleLead": "Esempio di una procedura completa di in-container:",
"example": "cd /opt/my-app && ./update.sh",
"callout": "Un comando come <code>myapp --version</code> legge solo una versione; non è un programma di aggiornamento. I comandi hanno privilegi amministrativi: esamina il contenuto come un comando di shell root."
},
"bulk": {
"heading": "Aggiornamento in blocco",
"lead": "La funzione in blocco crea un'azione riutilizzabile per un insieme preciso di obiettivi nel LXC. Si trova dopo le sezioni delle app e Docker e prima di <strong>Opzioni</strong>.",
"items": [
"I pacchetti del sistema sono obbligatori. Seleziona almeno un'app, Docker Engine o un'unità di immagine Docker aggiuntiva.",
"App e unità Docker si selezionano singolarmente. Il servizio principale Compose mostra le dipendenze aggiornate insieme a esso.",
"Gli obiettivi rimossi o non disponibili sono contrassegnati come obsoleti e vanno rimossi prima di salvare.",
"<strong>Applica aggiornamenti</strong> è viola se un obiettivo ha un aggiornamento verificato, verde se tutti risultano aggiornati e neutro se il risultato è sconosciuto.",
"Rimuovere la configurazione di massa non rimuove i singoli metodi di aggiornamento o le impostazioni di aggiornamento programmate."
],
"callout": "Aggiornamento Bulk non sostituisce i singoli pulsanti. È una scorciatoia opzionale per una selezione che dovrebbe funzionare insieme."
},
"options": {
"heading": "Opzioni di backup e riavvio",
"lead": "Le stesse opzioni valgono per esecuzioni manuali, in blocco e pianificate:",
"items": [
"<strong>Snapshot prima di applicare</strong> crea un backup vzdump sullo storage selezionato. Se il backup richiesto fallisce, l'aggiornamento non inizia.",
"<strong>Riavvia dopo l'applicazione</strong> riavvia il LXC solo dopo un'esecuzione riuscita.",
"Le selezioni sono memorizzate per LXC e rimangono indipendenti dall'elenco di destinazione."
]
},
"scheduled": {
"heading": "Aggiornamenti pianificati",
"lead": "Gli aggiornamenti programmati utilizzano gli stessi obiettivi eseguibili e le opzioni di sicurezza delle azioni manuali.",
"items": [
"Scegliere un'espressione preimpostata o cron, quindi selezionare obiettivi esatti: pacchetti OS, app individuali, Docker Engine, unità Docker standalone o gruppi di servizi Compose.",
"Il ritardo dopo il rilascio vale solo per app selezionate con tracciamento versione. Le app senza tracciamento eseguono il programma a ogni scadenza.",
"Lo stato dell'ultima esecuzione distingue successo, completamento parziale, errore, sospensione di sicurezza e nessun aggiornamento in attesa. Dopo la prima esecuzione pianificata, <strong>Aggiornamenti → Aggiornamenti pianificati → Visualizza log</strong> apre l'output completo del programma di aggiornamento e degli script secondari invocati.",
"Dopo ogni esecuzione, ProxMenux controlla il marcatore standard Debian di riavvio richiesto. La scheda Aggiornamenti e la notifica finale segnalano quando serve riavviare; l'avviso si cancella quando quel LXC viene avviato o riavviato.",
"Sull'host Proxmox, i log in esecuzione programmata vengono memorizzati in <code>/usr/local/share/proxmenux/logs/lxc-updates/</code> utilizzando il nome <code>&lt;VMID&gt;-scheduled-&lt;run-id&gt;.log</code>. Gli ultimi dieci registri sono conservati per LXC e i file più vecchi vengono rimossi automaticamente.",
"Questa storia conservata si applica agli aggiornamenti programmati. Un aggiornamento manuale visualizza la sua uscita dal vivo nella finestra di esecuzione Monitor e non crea un registro in esecuzione programmata in quella directory.",
"Le pianificazioni esterne sull'host rilevate da Proxmox VE Helper-Scripts sono mostrate separatamente per evidenziare automazioni sovrapposte."
],
"callout": "Eseguire manualmente ogni metodo selezionato prima di attivare un programma. I comandi programmati non possono rispondere alle richieste."
},
"completion": {
"heading": "Cosa succede dopo un aggiornamento",
"lead": "L'aggiornamento non è considerato finito quando il comando terminale semplicemente esce.",
"items": [
"Lo stesso run registra il suo risultato finale e aggiorna lo stato del pacchetto OS, le versioni delle app registrate e l'inventario Docker come applicabile.",
"Le esecuzioni pianificate conservano l'output del terminale e indicano se serve ancora un riavvio per completare le modifiche ai pacchetti.",
"La cache LXC viene sostituita con lo stato post-aggiornamento verificato, quindi i badge e i pulsanti non conservano il risultato precedente.",
"Quando parte un LXC fermato o ripristinato, l'evento del ciclo di vita aggiorna di nuovo i dati. L'inventario Docker attende che il demone sia pronto senza salvare come definitivo un risultato iniziale vuoto.",
"Le notifiche abilitate vengono emesse dall'esecuzione finalizzata, compresi i guasti parziali e i risultati delle immagini raggruppati Docker."
]
},
"troubleshooting": {
"heading": "Situazioni comuni",
"colProblem": "Situazione",
"colResolution": "Risoluzione",
"rows": [
{
"problem": "Nessun metodo di aggiornamento è stato identificato",
"resolution": "Apri Configura, aggiungi la procedura ufficiale non interattiva e provala manualmente prima di pianificarla."
},
{
"problem": "Viene mostrata una identità Proxmox VE Helper-Scripts ma non esiste azione",
"resolution": "Il LXC ha dati di identificazione legacy ma nessun wrapper /usr/bin/update verificato. Aggiungere un metodo personalizzato solo dopo aver confermato la procedura corretta."
},
{
"problem": "Le immagini Docker sono temporaneamente vuote dopo l'avvio o il ripristino",
"resolution": "Attendi che Docker sia pronto o premi Controlla ora. Il rilevamento riprova durante l'avvio e non considera definitivo un risultato vuoto transitorio."
},
{
"problem": "Un obiettivo di massa salvato non è più disponibile",
"resolution": "Modifica la configurazione in blocco, rimuovi il target obsoleto e seleziona il sostituto attuale, se esiste."
},
{
"problem": "Un comando personalizzato fallisce",
"resolution": "Eseguilo nel terminale LXC e verifica percorso, dipendenze, opzioni non interattive e codice di uscita."
},
{
"problem": "Un aggiornamento programmato dice che è necessario un riavvio",
"resolution": "Apri Visualizza log per esaminare l'esecuzione completata, poi riavvia quel LXC. ProxMenux cancella l'avviso quando l'evento del ciclo di vita rileva il nuovo avvio."
}
]
},
"figures": {
"osPending": {
"alt": "Sezione pacchetti di sistema operativo con conteggi di aggiornamento in sospeso e di sicurezza",
"caption": "La sezione del sistema operativo mantiene gli aggiornamenti dei pacchetti indipendenti dalle azioni di applicazione e Docker."
},
"options": {
"alt": "Opzioni di aggiornamento LXC con backup pre-update e riavvio post-update",
"caption": "Le preferenze di backup e riavvio valgono per esecuzioni manuali, in blocco e pianificate."
}
}
}
@@ -0,0 +1,244 @@
{
"meta": {
"title": "ProxMenux Monitor — Pannello: VM e LXC | Documentazione ProxMenux",
"description": "Inventario dei guest con CPU, memoria e disco in tempo reale. I dettagli includono configurazione, risorse, backup, risultati recenti del log Proxmox, note e Avvia / Spegni / Riavvia / Forza arresto."
},
"header": {
"title": "Pannello: VM e LXC",
"description": "Inventario completo dei guest del nodo: quattro metriche in alto, elenco ordinabile di VM e LXC e dettagli per guest con configurazione, risorse, backup, log e comandi Avvia / Spegni / Riavvia / Forza arresto.",
"section": "ProxMenux Monitor · Dashboard"
},
"intro": {
"title": "Controlli dei sistemi guest",
"body": "Questa scheda controlla il ciclo di vita dei guest. Le azioni passano da <code>POST /api/vms/&lt;vmid&gt;/control</code> con conferma esplicita e aggiornano la riga del guest. L'arresto forzato richiede il pulsante dedicato Forza arresto."
},
"topRow": {
"heading": "Riga superiore: quattro schede statistiche",
"intro": "Quattro schede riepilogano lo stato dei guest: totali, uso CPU, memoria assegnata rispetto alla capacità dell'host e spazio disco assegnato.",
"imageAlt": "scheda VM & LXCs — riga superiore di quattro schede statistiche: Total VMs & LXCs, Totale CPU, Memoria totale, Disco totale",
"imageCaption": "Riga superiore: totali e stati In esecuzione / Arrestati, uso CPU, memoria usata / assegnata ai guest attivi / assegnata totale con indicatore Entro i limiti e spazio disco assegnato.",
"headerCard": "Scheda",
"headerWhat": "Cosa mostra",
"totalLabel": "Totale VM e LXC",
"totalWhat": "Conto totale con due distintivi — <em>X Running</em> (verde) e <em>Y Stopped</em> (rosso, solo quando > 0). Il numero che guardi quando qualcosa non e' tornato dopo un riavvio.",
"cpuLabel": "CPU totale",
"cpuWhat": "Utilizzo CPU totale in tempo reale dei guest, come percentuale della CPU fisica dell'host, con il testo <em>“Utilizzo CPU assegnata”</em>.",
"memoryLabel": "Memoria totale",
"memoryIntro": "Tre letture impilate verticalmente:",
"memoryItems": [
"<strong>Usata attualmente</strong> — valore principale, come <em>15.4 GB</em>, e <em>X.X % di Y GB</em> rispetto alla RAM dell'host. La barra blu indica la percentuale.",
"<strong>Assegnata agli attivi</strong> + <strong>Assegnata totale</strong> — somma di <code>maxmem</code> dei guest <em>in esecuzione</em> e di <em>tutti</em>, inclusi quelli arrestati. La prima conta ora, la seconda quando li avvii tutti insieme.",
"<strong>Entro i limiti</strong>, verde, diventa <em>Sovra-allocata</em> se il totale supera la RAM dell'host. Una sovra-allocazione controllata può funzionare con KSM; lo indicatore avverte quando il margine diminuisce."
],
"diskLabel": "Spazio disco totale",
"diskWhat": "Somma di spazio su disco assegnato a tutti gli ospiti, nell'unità appropriata (GB / TB), con la linea di piè di pagina <em>\"Allocated disk space\"</em>."
},
"inventory": {
"heading": "Elenco di macchine virtuali e container",
"intro": "Una fila per ospite. L'elenco è basato su <code>/api/vms</code>, che consolida <code>qm list</code> + <code>pct list</code> + <code>pvesh /cluster/resources</code> sull'host.",
"imageAlt": "Elenco macchine e contenitori virtuali — una riga per ospite con stato, tipo distintivo, nome, ID e in linea CPU / percentuali di memoria / disco",
"imageCaption": "Il layout ottimizzato per dispositivi mobili dell'inventario — gli stessi dati mostrati dalla vista desktop, riprodotto in una singola colonna con le percentuali e gli indicatori di stato mantenuti compatti.",
"rowsIntro": "Ogni riga mostra:",
"rows": [
"<strong>Icona di stato</strong> — triangolo verde per In esecuzione o quadrato rosso per Arrestato. Il resto della riga si attenua per i guest arrestati.",
"<strong>Tipo</strong> — <em>LXC</em> in ciano per container, <em>VM</em> in viola per macchine virtuali.",
"<strong>Nome</strong> — hostname o nome visualizzato del guest.",
"<strong>VMID</strong> — l'ID numerico Proxmox sotto il nome.",
"<strong>Inline metrics</strong> — tre percentuali con la loro icona (CPU %, Memory %, Disk %). Ogni icona gira arancione quando la metrica attraversa una soglia di attenzione (ad esempio la memoria sopra il 90 %), quindi una scansione rapida ti dice quale ospite è sotto pressione senza aprirlo."
],
"clickHint": "Un clic su una riga apre i dettagli, sia per guest attivi sia per guest arrestati.",
"mobileTitle": "L'elenco è costruito mobile-first",
"mobileBody": "Su telefoni e finestre strette, tipo, nome, ID e tre percentuali si impilano in una colonna, come nella schermata. Le viste ampie li distribuiscono in orizzontale. In ogni caso tutta la riga è selezionabile per aprire i dettagli."
},
"drillIn": {
"heading": "Finestra dei dettagli del guest",
"intro": "La finestra mostra nome, VMID, tipo, stato e tempo di attività. Le schede si adattano al guest: <strong>Stato</strong>, <strong>App</strong> e <strong>Aggiornamenti</strong> per applicazioni LXC, <strong>Montaggi</strong> se presenti, <strong>Log</strong> per container OCI manager Apps, <strong>Backup</strong> e <strong>Firewall</strong>. La barra fissa mantiene disponibili controlli del ciclo di vita e terminale LXC.",
"statusTitle": "Tab 1 — Stato",
"statusImageAlt": "Dettagli del guest — Stato con CPU, memoria e disco in tempo reale, I/O disco e rete, logo del sistema e Risorse / Indirizzi IP",
"statusImageCaption": "Stato: CPU, memoria e disco con barre in alto; totali I/O (disco letto/scritto, rete ricevuta/inviata); poi Risorse con Note, + Info ed elenco degli indirizzi IP.",
"statusIntro": "La scheda iniziale permette di verificare lo stato del guest. Tre blocchi:",
"liveTitle": "1. Riga delle metriche in tempo reale",
"liveItems": [
"<strong>Utilizzo CPU (X core)</strong> — percentuale con barra. I core configurati nell'intestazione spiegano a cosa corrisponde il 100 %.",
"<strong>Memoria</strong> — <em>usata / massima</em> in GB con barra.",
"<strong>Disco</strong> — <em>usato / massimo</em> per l'immagine del disco principale, nello stesso formato."
],
"ioTitle": "2. Totale I/O + logo OS",
"ioItems": [
"<strong>I/O disco</strong> — letture (↓) e scritture (↑) totali dall'avvio. Aiuta a individuare aumenti improvvisi di I/O rispetto all'attività abituale del guest.",
"<strong>I/O rete</strong> — download (↓) e upload (↑) totali, con lo stesso principio.",
"<strong>Logo del sistema</strong> — icona Debian / Ubuntu / Alpine / Windows / ecc. secondo il sistema rilevato. Aiuta a identificare le finestre aperte."
],
"resourcesTitle": "3. Blocco risorse",
"resourcesIntro": "Configurazione secondo Proxmox: core CPU, memoria (<code>maxmem</code> configurato) e swap. Due sezioni espandibili nell'intestazione:",
"resourcesItems": [
"<strong>Note</strong> — descrizione modificabile del guest. Salvare richiama <code>PUT /api/vms/&lt;vmid&gt;/config</code> e scrive in <code>/etc/pve/qemu-server/&lt;vmid&gt;.conf</code> o <code>/etc/pve/lxc/&lt;vmid&gt;.conf</code>.",
"<strong>+ Info</strong> — campi extra troppo verbosi per la visualizzazione predefinita: modalità bios, tipo macchina, stato agente, voci passanti hostpci, punti di montaggio (CT), ordine di avvio."
],
"ipsTitle": "4. Indirizzi IP",
"ipsBody": "Ogni indirizzo IPv4 o IPv6 del guest appare in una etichetta verde. L'elenco è vuoto se il guest è fermo o se una VM non ha l'agente QEMU; i LXC comunicano gli indirizzi direttamente.",
"appTitle": "Tab 2 — App (solo LXC)",
"appIntro": "Registra app LXC, salva link web e confronta opzionalmente le versioni. I suggerimenti sono in cache dall'avvio; <strong>Trova applicazioni</strong> ripete la ricerca per questo LXC dopo nuove installazioni.",
"appLinkLead": "Vedere la",
"appLinkLabel": "pagina app dedicata",
"appLinkTail": "per la ricerca in cache, la registrazione assistita da catalogo, i collegamenti web Docker e i rivelatori di versione.",
"updatesTitle": "Tab 3 — Aggiornamenti (solo LXC)",
"updatesIntro": "<strong>Pacchetti del sistema</strong>, app, <strong>Docker Engine</strong> e immagini Docker restano obiettivi distinti. Ciascuno si esegue da solo o si seleziona per un'azione in blocco o pianificata.",
"updatesLinkLead": "Vedere la",
"updatesLinkLabel": "pagina dedicata agli aggiornamenti",
"updatesLinkTail": "per programmi di aggiornamento integrati e personalizzati, ricreazione Docker, selezione in blocco, opzioni di sicurezza e pianificazione.",
"mountsTitle": "Scheda 4 — Montaggi (solo LXC, se presenti)",
"mountsImageAlt": "Dettagli LXC, Montaggi: volumi PVE, bind mount dell'host o dello storage PVE e NFS/CIFS montati nel CT. Ogni scheda mostra tipo, capacità, byte usati/totali, opzioni e stato: verde sano, ambra sola lettura/divergente, rosso non raggiungibile.",
"mountsImageCaption": "La scheda Montaggi compare solo per i container LXC e solo se esiste almeno un punto di montaggio o un montaggio remoto temporaneo. Un CT senza montaggi non mostra questa scheda.",
"mountsIntro": "Proxmox mostra i montaggi configurati come <code>mpX</code>, ma non quelli aggiunti nel CT con <code>mount.cifs</code>, NFS tramite <code>autofs</code> e altri. Questa scheda unisce <strong>entrambe le viste</strong>: montaggi configurati <strong>e</strong> rilevati nel container, con stato per montaggio e capacità quando il server la può ricavare.",
"mountTypesTitle": "Tipi di montaggio rilevati",
"mountTypesItems": [
"<strong>Volume PVE</strong> — storage gestito da Proxmox, come subvolume ZFS, directory o Ceph RBD. La capacità deriva dalle statistiche PVE e coincide con Proxmox.",
"<strong>Bind da storage PVE</strong> — voce <code>mpX</code> che punta a un percorso di uno storage noto a PVE.",
"<strong>Bind dall'host</strong> — voce <code>mpX</code> con un percorso dell'host (<code>/mnt/something</code>). La capacità viene da <code>df</code> su quel percorso.",
"<strong>Montaggio temporaneo nel CT</strong> — esiste <em>solo</em> nel namespace dei montaggi del container, come una condivisione NFS montata dal CT stesso. La capacità viene letta tramite <code>pct exec &lt;vmid&gt; df</code>, l’unico modo per rilevarla: dall’host, <code>/proc/&lt;pid&gt;/root</code> non espone le statistiche effettive del montaggio remoto."
],
"mountStateTitle": "Punto di stato e avvisi per scheda",
"mountStateItems": [
"<green/> <strong>Verde</strong> — montaggio sano e raggiungibile.",
"<amber/> <strong>Ambra</strong> — configurato ma non montato, sola lettura o <em>bind zombie</em>. La sorgente sull'host è stata rimossa ma il CT la vede ancora montata, ad esempio dopo aver scollegato un disco USB o eseguito <code>umount</code> sull'host.",
"<red/> <strong>Rosso</strong> — non raggiungibile: la verifica non raggiunge il montaggio, per esempio una condivisione NFS con server inattivo."
],
"mountsCalloutTitle": "Informazioni aggiuntive rispetto a Proxmox",
"mountsCalloutBody": "Una vista dei percorsi da cui il container legge o su cui scrive, con la relativa capacità. Le condivisioni NFS o CIFS montate all’interno del CT, invisibili all’interfaccia web Proxmox, compaiono con la stessa presentazione e gli stessi controlli degli altri punti di montaggio. I montaggi remoti non più raggiungibili e i bind mount non più validi vengono segnalati prima che causino problemi durante un backup.",
"logsTitle": "Tab 5 — Log (solo contenitori OCI)",
"logsBody": "Solo per container OCI manager Apps. Mostra la console del processo principale dell'immagine da <code>/var/log/proxmenux/oci/VMID.console.log</code>: ultime 100, 500 o 1000 righe, aggiornamento in tempo reale durante il funzionamento, filtro e download. Rilegge il file all'apertura, anche a container fermo. Dettagli: <ociLink>Container OCI in ProxMenux Monitor</ociLink>.",
"backupsTitle": "Tab 6 — Backup",
"backupsImageAlt": "Dettagli del guest — Backup con elenco delle copie disponibili, destinazioni, dimensioni e pulsante Crea backup",
"backupsImageCaption": "Tutti i backup del guest sugli storage Proxmox configurati, dal più recente. L'intestazione indica il numero.",
"backupsIntro": "Elenca i backup del guest sugli storage Proxmox, dal più recente. Il contatore nel titolo permette di vedere se esistono backup. Ogni riga mostra:",
"backupsItems": [
"<strong>Data e ora</strong> — momento dell'esecuzione.",
"<strong>Destinazione</strong> — storage (PBS-Cloud, PBS-Local, NFS-Backup, …), colorato secondo lo stato.",
"<strong>Dimensione</strong> — dimensione finale del backup su disco."
],
"backupsOutro": "<strong>+ Crea backup</strong> avvia un backup sullo storage indicato come “Backup target” in Proxmox. Il ripristino si esegue nell'interfaccia web Proxmox; Monitor mostra i backup recenti del guest e permette di crearne.",
"firewallTitle": "Scheda 7 — Firewall",
"firewallIntro": "Legge il log firewall Proxmox del guest direttamente dall'host, senza servizi aggiuntivi né richieste periodiche. La scheda è sempre presente; il contenuto dipende dalla attivazione del firewall e dalla registrazione dei pacchetti da parte di una regola.",
"firewallItems": [
"<strong>Firewall disattivato</strong> — avviso ambra con il percorso per attivarlo in Proxmox (<em>&lt;Container|VM&gt; → Firewall → Options</em>) e il requisito di almeno una regola con <code>log: info</code> o superiore per mostrare i pacchetti.",
"<strong>Firewall attivo, nessun evento</strong> — la vista vuota ricorda il requisito di registrazione, utile subito dopo la attivazione.",
"<strong>Eventi presenti</strong> — pannello a spaziatura fissa scorrevole con voci originali per azione: <green>ACCEPT</green> verde, <orange>REJECT</orange> arancione, <red>DROP</red> rosso. Il contatore nell'intestazione indica le voci caricate."
],
"firewallRefresh": "<em>Aggiorna</em> carica le ultime voci su richiesta. Senza aggiornamento automatico, l'elenco mostra il momento dell'apertura o dell'ultimo clic. La fonte è <code>/var/log/pve-firewall.log</code>, filtrata per VMID tramite <code>GET /api/vms/&lt;vmid&gt;/firewall/log</code>.",
"firewallCalloutTitle": "Perché è qui quando l'UI Proxmox lo mostra già?",
"firewallCalloutBody": "Evita di passare a Proxmox e mantiene la vista dello stesso VMID: avvia il guest, controlla montaggi ed eventi firewall, poi fermalo dal pannello. Le regole si modificano in Proxmox; Monitor non le cambia.",
"actionBarTitle": "Barra di azione inferiore",
"actionBarIntro": "Sempre visibile ai piedi del modale indipendentemente da quale scheda è attiva:",
"consoleItem": "<strong>Console</strong>, solo per LXC attivi, apre <code>pct enter &lt;vmid&gt;</code> nel container. Usa xterm.js e WebSocket come la <link>scheda Terminale</link>, con la <strong>barra per dispositivi mobili</strong>: ESC, TAB, frecce, Invio e Ctrl+C / Ctrl+X / Ctrl+R. Funziona da telefono o tablet. Per le VM usa la console Proxmox noVNC.",
"lifecycleIntro": "Quattro pulsanti in griglia 2×2 inviano <code>POST /api/vms/&lt;vmid&gt;/control</code> con la <code>action</code> corrispondente. Si abilitano in base allo stato del guest.",
"headerButton": "Pulsante",
"headerEnabled": "Abilitato quando",
"headerAction": "Azione inviata all'host",
"lifecycleRows": [
{
"button": "Avvia",
"color": "green",
"enabled": "Il guest è arrestato.",
"action": "qm start / pct start"
},
{
"button": "Spegni",
"color": "blue",
"enabled": "Il guest è in esecuzione.",
"action": "qm shutdown / pct shutdown — spegnimento ordinato, ACPI"
},
{
"button": "Riavvia",
"color": "blue",
"enabled": "Il guest è in esecuzione.",
"action": "qm reboot / pct reboot — riavvio ordinato"
},
{
"button": "Forza arresto",
"color": "red",
"enabled": "Il guest è in esecuzione.",
"action": "qm stop / pct stop — spegnimento forzato"
}
],
"forceStopTitle": "Forza arresto interrompe subito l'esecuzione",
"forceStopBody": "<strong>Forza arresto</strong> salta lo spegnimento, come togliere l'alimentazione. Usa <strong>Spegni</strong> finché il guest risponde. Forza solo se lo spegnimento si blocca e accetti il rischio di perdita dei dati. Il pulsante rosso e l'etichetta aiutano a evitare clic accidentali."
},
"dataCollected": {
"heading": "Come vengono raccolti i dati",
"headerSection": "Sezione della scheda",
"headerEndpoint": "Endpoint",
"headerSource": "Fonte",
"rows": [
{
"section": "Elenco dell'inventario",
"endpoint": "/api/vms",
"source": "<code>pvesh get /cluster/resources --type vm</code> per VM e CT."
},
{
"section": "Pannello dettagli (configura, rete, dischi)",
"endpoint": "/api/vms/<vmid>",
"source": "<code>qm config &lt;id&gt;</code> per VM / <code>pct config &lt;id&gt;</code> per CT."
},
{
"section": "Grafico delle metriche del guest",
"endpoint": "/api/vms/<vmid>/metrics",
"source": "Dati RRD PVE (<code>pvesh get /nodes/&lt;node&gt;/qemu/&lt;id&gt;/rrddata</code>) adattati alla visualizzazione in grafico."
},
{
"section": "Risultati recenti del log Proxmox",
"endpoint": "/api/vms/<vmid>/logs",
"source": "<code>pvesh get /nodes/&lt;node&gt;/&lt;qemu|lxc&gt;/&lt;vmid&gt;/log --start 0 --limit 1000</code>. Se il comando fallisce restituisce uno elenco vuoto; non fornisce tutti i log interni del guest."
},
{
"section": "Backup disponibili per gli ospiti",
"endpoint": "/api/vms/<vmid>/backups",
"source": "<code>pvesm list &lt;storage&gt;</code> filtrato da VMID."
},
{
"section": "Log firewall del guest (scheda Firewall)",
"endpoint": "/api/vms/<vmid>/firewall/log",
"source": "<code>/var/log/pve-firewall.log</code> filtrato da VMID."
},
{
"section": "Pulsanti di alimentazione (Start / Stop / Reboot / Shutdown)",
"endpoint": "/api/vms/<vmid>/control",
"source": "<code>qm start|stop|reboot|shutdown</code> o equivalenti <code>pct</code>."
}
],
"codeComment1": "# Confronta i dati del pannello con PVE",
"codeComment2": "# Esamina la configurazione del guest come nella finestra",
"codeComment3": "# VM",
"codeComment4": "# CT"
},
"whereNext": {
"heading": "Dove proseguire",
"items": [
{
"label": "Monitoraggio integrità",
"href": "/docs/monitor/health-monitor",
"tailRich": " — categoria VM e Container: avvio fallito, timeout QMP ed errori di arresto CT."
},
{
"label": "Notifiche",
"href": "/docs/monitor/notifications",
"tailRich": " — cosa attivano gli eventi <code>vm_*</code>, <code>ct_*</code>, <code>migration_*</code> e <code>backup_*</code> nelle fasi successive."
},
{
"label": "Riferimento API",
"href": "/docs/monitor/api",
"tailRich": " — endpoint di VM e backup."
},
{
"label": "Indice del pannello",
"href": "/docs/monitor/dashboard",
"tailRich": "— le altre schede."
},
{
"label": "ProxMenux → Creare VM",
"href": "/docs/create-vm",
"tailRich": " — creazione dei sistemi: modelli NAS (Synology e altri), VM Linux/Windows e impostazioni adatte a Proxmox."
}
]
}
}