{
"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 flask_terminal_routes, lo collega via WebSocket a xterm.js nel browser e viene eseguito come root, utente dell'unità systemd. Come con ssh root@<host>, puoi usare vim, tmux, strumenti ncurses e le CLI Proxmox (qm, pct, pvesh, pvecm). Ogni PTY esporta PROXMENUX_TERMINAL=monitor, ereditata da tutti i processi figli bash, incluso un successivo avvio di menu, 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 (1 / 4 terminali), + Nuovo, Ricerca, Cancellazione e Chiudere. 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 host Proxmox stesso, come uno accesso SSH. Ogni scheda apre un nuovo terminale dell'host.",
"body2": "Per accedere a un container LXC dal browser, usa Console sulla scheda di ogni CT in esecuzione nella scheda VM e LXC. Apre una finestra che esegue pct enter <vmid> 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, menu 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, check_updates_stable, check_updates_beta e apply_release_channel leggono PROXMENUX_TERMINAL e riconoscono il contesto Monitor.",
"body2": "Il dialogo sì/no viene quindi sostituito da un messaggio con il comando ufficiale di installazione: bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\" per stable e l'URL equivalente di install_proxmenux_beta.sh 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": [
"Vista a schede — un terminale visibile, gli altri come schede con nome in alto (Terminale 1, Terminale 2…). Utile per un'attività con le altre in secondo piano.",
"Vista a griglia — tutti i terminali aperti in una griglia 2×2. Puoi osservare htop in uno, iftop in un altro e modificare file in un terzo senza cambiare scheda."
],
"outro": "La barra indica il conteggio (1/4 terminali, 4/4 terminali). + Nuovo apre una scheda; la piccola × nell'intestazione la chiude. Il grande pulsante rosso Chiudi 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, /etc/network/interfaces, iftop 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 vim, nano, htop 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 vim, 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": [
"Ctrl+C — annullare / interrompere il comando in esecuzione (\\x03).",
"Ctrl+X — esce da nano (\\x18).",
"Ctrl+R — ricerca a ritroso nella cronologia bash (\\x12)."
],
"modalTitle": "Stessa barra nella finestra della console LXC",
"modalBody": "La console aperta da VM e LXC → Console mostra gli stessi pulsanti tastiera sotto la finestra. Alla connessione inserisce automaticamente pct enter <vmid> 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 VM e LXC → Console. L'intestazione mostra il container di destinazione (Terminal: ubuntu (ID: 103)) e sotto il terminale appare la stessa barra tattile.",
"search": {
"heading": "Cerca comandi — prontuario integrato",
"intro": "Il pulsante blu Cerca apre una ricerca approssimativa dei comandi. Digita alcune lettere di un comando Linux o Proxmox (ls, tar, qm, pct, zpool, systemctl…) per vedere esempi con Invia al terminale attivo 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 ls — ogni risultato mostra comando, descrizione e una piccola freccia di invio al terminale attivo. In basso a destra è indicata la fonte dei dati (Fornito da cheat.sh).",
"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 curl cheat.sh/<command>, è 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 è verde.",
"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 è rosso.",
"sendingNote": "Come funziona l'invio: 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 POST /api/terminal/ticket, autenticato con JWT nell'intestazione Authorization. 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 Accesso e autenticazione."
]
},
"clipboard": {
"heading": "Appunti, cronologia dello schermo e ridimensionamento",
"items": [
"Copia e incolla — usa gli appunti del browser. Seleziona il testo con mouse o trackpad e usa la scorciatoia del sistema (Cmd+C su macOS, Ctrl+Shift+C su Linux/Windows). I desktop Linux supportano anche l'incollaggio con clic centrale.",
"Cronologia dello schermo — scorrimento con rotella o due dita. xterm.js conserva in memoria le ultime migliaia di righe.",
"Ridimensionamento — il terminale adatta la dimensione della finestra PTY quando ridimensioni il pannello, per visualizzare correttamente htop e vim.",
"Riconnessione al ritorno alla scheda — 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 proxy_read_timeout 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 proxmenux-monitor.service 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 (root) e ha pieni privilegi sull'host Proxmox. Configura nome utente, password e 2FA in Accesso e autenticazione 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 Secure Gateway (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/, 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."
}
]
}
}