fix(i18n): review Italian translations for 1.2.8

This commit is contained in:
martino
2026-11-02 01:09:21 +01:00
parent d6f6b4c914
commit fa8f021ee9
11 changed files with 337 additions and 99 deletions
+78 -78
View File
@@ -830,60 +830,60 @@
"temperatureUnavailableCount": "Non disponibili: {count}", "temperatureUnavailableCount": "Non disponibili: {count}",
"zfs": { "zfs": {
"classes": { "classes": {
"normal": "dati", "normal": "Dati",
"special": "speciale", "special": "Speciale",
"dedup": "Dedup", "dedup": "Dedup",
"log": "registro", "log": "Log",
"cache": "cache", "cache": "Cache",
"spare": "ricambio" "spare": "Riserva"
}, },
"poolDetails": "layout della piscina, stato dello scrubbing e integrità del dispositivo", "poolDetails": "Struttura del pool, stato dello scrub e stato dei dispositivi",
"detailsUnavailable": "il layout dettagliato della piscina richiede OpenZFS 2.3 o versione successiva.", "detailsUnavailable": "La struttura dettagliata del pool richiede OpenZFS 2.3 o versione successiva.",
"status": "Stato", "status": "Stato",
"action": "Azione", "action": "Azione",
"capacity": "Capacità", "capacity": "Capacità",
"fragmentation": "Frammentazione", "fragmentation": "Frammentazione",
"dedupRatio": "rapporto di deduplicazione", "dedupRatio": "Rapporto di deduplicazione",
"layout": "disposizione", "layout": "Struttura",
"singleDisk": "disco singolo", "singleDisk": "Disco singolo",
"stripe": "Striscia", "stripe": "Stripe",
"mirror": "Specchio", "mirror": "Mirror",
"raidz": "RAIDZ{parity}", "raidz": "RAIDZ{parity}",
"draid": "dRAID{parity}", "draid": "dRAID{parity}",
"diskCountOne": "disco {count}", "diskCountOne": "{count} disco",
"diskCountMany": "dischi {count}", "diskCountMany": "{count} dischi",
"errorsReported": "Errori segnalati", "errorsReported": "Errori segnalati",
"scanTitle": "Scrub / Resilver", "scanTitle": "Scrub / Resilver",
"scrub": "Scrub", "scrub": "Scrub",
"resilver": "Resilver", "resilver": "Resilver",
"neverScrubbed": "Mai strofinato", "neverScrubbed": "Scrub mai eseguito",
"scanRunning": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: {kind} in corso ({percent}%)", "scanRunning": "{kind} in corso ({percent}%)",
"scanCanceled": "{kind} annullato", "scanCanceled": "{kind} annullato",
"scanFinished": "{kind} finito {date}", "scanFinished": "{kind} terminato {date}",
"started": "iniziato", "started": "Inizio",
"ended": "finito", "ended": "Fine",
"repaired": "riparato", "repaired": "Dati riparati",
"scanErrors": "errori di scansione", "scanErrors": "Errori di scansione",
"dataErrors": "errori dati {count}", "dataErrors": "{count} errori nei dati",
"noDataErrors": "nessun errore di dati noto", "noDataErrors": "Nessun errore noto nei dati",
"device": "dispositivo", "device": "Dispositivo",
"disk": "disco", "disk": "Disco",
"state": "Stato", "state": "Stato",
"readErrors": "leggi gli errori", "readErrors": "Errori di lettura",
"writeErrors": "scrivi gli errori", "writeErrors": "Errori di scrittura",
"checksumErrors": "errori di checksum", "checksumErrors": "Errori di checksum",
"readShort": "R", "readShort": "R",
"writeShort": "W", "writeShort": "W",
"checksumShort": "CK", "checksumShort": "CK",
"slowIos": "I/O lenti", "slowIos": "I/O lenti",
"via": "tramite {name}", "via": "tramite {name}",
"totalSize": "dimensione totale", "totalSize": "Dimensione totale",
"fragShort": "frag." "fragShort": "Frag."
}, },
"storageController": "controller di archiviazione", "storageController": "Controller storage",
"noController": "nessun controller rilevato", "noController": "Nessun controller rilevato",
"diskCountOne": "disco {count}", "diskCountOne": "{count} disco",
"diskCountMany": "dischi {count}" "diskCountMany": "{count} dischi"
}, },
"details": { "details": {
"temperature": { "temperature": {
@@ -2673,9 +2673,9 @@
"help": "Un disco escluso non viene interrogato durante i controlli pianificati, nemmeno per temperatura, SMART o modalità di alimentazione. L’apertura dei suoi dettagli SMART comporta comunque una lettura." "help": "Un disco escluso non viene interrogato durante i controlli pianificati, nemmeno per temperatura, SMART o modalità di alimentazione. L’apertura dei suoi dettagli SMART comporta comunque una lettura."
}, },
"storageDisplay": { "storageDisplay": {
"title": "visualizzazione della memoria", "title": "Visualizzazione storage",
"description": "modifica la disposizione dei dischi nella pagina Archiviazione", "description": "Modifica la disposizione dei dischi nella pagina Storage",
"groupByController": "raggruppa i dischi fisici per controller di archiviazione" "groupByController": "Raggruppa i dischi fisici per controller storage"
} }
}, },
"login": { "login": {
@@ -4162,8 +4162,8 @@
"rotationRate": "Velocità di rotazione", "rotationRate": "Velocità di rotazione",
"classCode": "Codice classe", "classCode": "Codice classe",
"serial": "Seriale", "serial": "Seriale",
"storageController": "controller di archiviazione", "storageController": "Controller storage",
"attachedDisks": "Dischi allegati" "attachedDisks": "Dischi collegati"
}, },
"values": { "values": {
"cores": "{count} core", "cores": "{count} core",
@@ -5312,7 +5312,7 @@
"login_attempts": "Tentativi di accesso", "login_attempts": "Tentativi di accesso",
"fail2ban": "Fail2Ban", "fail2ban": "Fail2Ban",
"proxmox_storages": "Storage Proxmox", "proxmox_storages": "Storage Proxmox",
"reboot_required": "riavvio richiesto" "reboot_required": "Riavvio necessario"
}, },
"details": { "details": {
"noTemperatureSensor": "Nessun sensore di temperatura rilevato. Installa lm-sensors se l’hardware lo supporta.", "noTemperatureSensor": "Nessun sensore di temperatura rilevato. Installa lm-sensors se l’hardware lo supporta.",
@@ -5378,7 +5378,7 @@
"failedLogins": "Tentativi di accesso non riusciti in 24 ore: {count}", "failedLogins": "Tentativi di accesso non riusciti in 24 ore: {count}",
"fail2banBannedIps": "Indirizzi IP bloccati da Fail2Ban: {count} (jail: {jails})", "fail2banBannedIps": "Indirizzi IP bloccati da Fail2Ban: {count} (jail: {jails})",
"uptimeDays": "Tempo di attività: {count} giorni", "uptimeDays": "Tempo di attività: {count} giorni",
"pendingPackages": "{count} pacchetti in sospeso", "pendingPackages": "Pacchetti previsti: {count} (inclusi i nuovi pacchetti)",
"updatedDaysAgo": "Ultimo aggiornamento {count} giorni fa", "updatedDaysAgo": "Ultimo aggiornamento {count} giorni fa",
"storageAvailable": "{type} disponibile", "storageAvailable": "{type} disponibile",
"storageUsage": "{percent}% utilizzato", "storageUsage": "{percent}% utilizzato",
@@ -5392,7 +5392,7 @@
"startupStorageNotFound": "Controllo storage Proxmox dopo l’avvio: {storage} non è ancora visibile sul server", "startupStorageNotFound": "Controllo storage Proxmox dopo l’avvio: {storage} non è ancora visibile sul server",
"startupStorageUnavailable": "Controllo storage Proxmox dopo l’avvio: {storage} non è ancora pronto", "startupStorageUnavailable": "Controllo storage Proxmox dopo l’avvio: {storage} non è ancora pronto",
"startupStorageStatus": "Controllo storage Proxmox dopo l’avvio: {storage} (stato corrente: {status})", "startupStorageStatus": "Controllo storage Proxmox dopo l’avvio: {storage} (stato corrente: {status})",
"noPendingUpdates": "nessun aggiornamento in sospeso" "noPendingUpdates": "Nessun aggiornamento in sospeso"
}, },
"time": { "time": {
"justNow": "proprio adesso", "justNow": "proprio adesso",
@@ -5431,51 +5431,51 @@
"7days": "7 giorni" "7days": "7 giorni"
}, },
"restart": { "restart": {
"button": "riavvia il server", "button": "Riavvia server",
"title": "riavviare il server {server}?", "title": "Riavviare il server {server}?",
"impact": "il riavvio interrompe temporaneamente il server, le macchine virtuali, i contenitori e i relativi servizi.", "impact": "Il riavvio interrompe temporaneamente il server, le macchine virtuali, i container e i relativi servizi.",
"cancel": "Annulla", "cancel": "Annulla",
"confirm": "conferma il riavvio", "confirm": "Conferma riavvio",
"blocked": "il riavvio sarà disponibile al termine dell'aggiornamento dell'host.", "blocked": "Il riavvio sarà disponibile al termine dell’aggiornamento dell’host.",
"accepted": "richiesta di riavvio accettata.Verificare che il server ritorni online.", "accepted": "Richiesta di riavvio accettata. Controlla che il server torni online.",
"unconfirmed": "non è stato possibile verificare la richiesta di riavvio.Controlla il server prima di riprovare." "unconfirmed": "Non è stato possibile verificare la richiesta di riavvio. Controlla il server prima di riprovare."
}, },
"versions": { "versions": {
"title": "aggiornamento ProxMenux", "title": "Aggiornamento ProxMenux",
"installed": "versione installata", "installed": "Versione installata",
"latest": "versione disponibile", "latest": "Versione disponibile",
"lastKnown": "ultima versione disponibile conosciuta", "lastKnown": "Ultima versione disponibile nota",
"available": "aggiornamento disponibile", "available": "Aggiornamento disponibile",
"current": "ProxMenux è aggiornato", "current": "ProxMenux è aggiornato",
"currentVersion": "la versione {version} è aggiornata", "currentVersion": "La versione {version} è aggiornata",
"unknown": "impossibile verificare la versione disponibile", "unknown": "Impossibile verificare la versione disponibile",
"unverified": "non verificato", "unverified": "Non verificata",
"stable": "canale stabile", "stable": "Canale stabile",
"beta": "canale Beta", "beta": "Canale beta",
"checked": "Ultimo controllo riuscito: {time}" "checked": "Ultimo controllo riuscito: {time}"
}, },
"hostUpdate": { "hostUpdate": {
"running": "l'aggiornamento dell'host continua anche se ti disconnetti.Riaprilo dopo aver effettuato l'accesso.", "running": "L’aggiornamento dell’host continua anche se ti disconnetti. Riaprilo dopo aver effettuato l’accesso.",
"finished": "l'ultimo aggiornamento dell'host è terminato.Il suo risultato è disponibile.", "finished": "L’ultimo aggiornamento dell’host è terminato. Il risultato è disponibile.",
"attention": "l'aggiornamento dell'host richiede attenzione.Non è stato fermato;riconnettersi per ispezionarlo.", "attention": "L’aggiornamento dell’host richiede attenzione. Non è stato interrotto; riconnettiti per verificarne lo stato.",
"view": "visualizza l'aggiornamento", "view": "Visualizza aggiornamento",
"viewResult": "Visualizza il risultato", "viewResult": "Visualizza il risultato",
"hideResult": "nascondi il risultato", "hideResult": "Nascondi il risultato",
"resultTitle": "risultato dell'aggiornamento dell'host", "resultTitle": "Risultato dell’aggiornamento dell’host",
"resultReadOnly": "output salvato di un aggiornamento completato.Aprendolo non viene eseguito un altro aggiornamento.", "resultReadOnly": "Output salvato di un aggiornamento completato. Aprirlo non avvia un altro aggiornamento.",
"resultUnavailable": "non è stato possibile caricare il risultato salvato.Non è stato avviato alcun aggiornamento.", "resultUnavailable": "Non è stato possibile caricare il risultato salvato. Non è stato avviato alcun aggiornamento.",
"retryResult": "ricarica il risultato", "retryResult": "Ricarica il risultato",
"loadingResult": "caricamento del risultato salvato…", "loadingResult": "Caricamento del risultato salvato…",
"closeResult": "chiudi risultato", "closeResult": "Chiudi risultato",
"noReboot": "non è richiesto alcun riavvio", "noReboot": "Nessun riavvio necessario",
"rebootMarker": "il sistema operativo richiede un riavvio.", "rebootMarker": "Il sistema operativo richiede un riavvio.",
"rebootUnknown": "impossibile determinare se è necessario un riavvio.", "rebootUnknown": "Impossibile determinare se è necessario un riavvio.",
"rebootKernel": "è necessario un riavvio per attivare {installed}.Attualmente in esecuzione: {running}." "rebootKernel": "È necessario un riavvio per attivare {installed}. Attualmente in esecuzione: {running}."
}, },
"updateSystem": "aggiornamento del sistema", "updateSystem": "Aggiorna sistema",
"packagePlanNote": "il piano include anche nuovi pacchetti, come un nuovo kernel.La panoramica conta solo gli aggiornamenti ai pacchetti esistenti.", "packagePlanNote": "Il piano include anche nuovi pacchetti, come un nuovo kernel. La panoramica conta solo gli aggiornamenti ai pacchetti esistenti.",
"snapshotUnavailable": "i nuovi risultati sulla salute non sono ancora disponibili.", "snapshotUnavailable": "I nuovi risultati dei controlli di integrità non sono ancora disponibili.",
"lastKnownResults": "mostra gli ultimi risultati disponibili con l'ora di controllo originale." "lastKnownResults": "Sono mostrati gli ultimi risultati disponibili con l’ora originale del controllo."
}, },
"profilePage": { "profilePage": {
"loading": "Caricamento profilo…", "loading": "Caricamento profilo…",
+11 -11
View File
@@ -87,7 +87,7 @@
"A host reboot is required after this change.": "Dopo questa modifica occorre riavviare l’host.", "A host reboot is required after this change.": "Dopo questa modifica occorre riavviare l’host.",
"A host reboot is required before starting the VM. Reboot now?": "Occorre riavviare l’host prima di avviare la VM. Riavviare ora?", "A host reboot is required before starting the VM. Reboot now?": "Occorre riavviare l’host prima di avviare la VM. Riavviare ora?",
"A host script is not written over a symbolic link:": "Uno script host non viene scritto su un link simbolico:", "A host script is not written over a symbolic link:": "Uno script host non viene scritto su un link simbolico:",
"A host update is already running. Reconnect to it instead of starting another.": "un aggiornamento dell'host è già in esecuzione. Riconnettiti ad esso invece di avviarne un altro.", "A host update is already running. Reconnect to it instead of starting another.": "Un aggiornamento dell'host è già in esecuzione. Riconnettiti invece di avviarne un altro.",
"A job with this ID already exists.": "Esiste già un’attività con questo ID.", "A job with this ID already exists.": "Esiste già un’attività con questo ID.",
"A journal already exists; review or recover it before trying again": "Esiste già un journal; esaminarlo o recuperarlo prima di riprovare", "A journal already exists; review or recover it before trying again": "Esiste già un journal; esaminarlo o recuperarlo prima di riprovare",
"A keyfile is installed at:": "Un file di chiavi è installato in:", "A keyfile is installed at:": "Un file di chiavi è installato in:",
@@ -3092,7 +3092,7 @@
"Host paths found in container configs or saved records (not targeted for removal):": "Percorsi dell'host trovati nelle configurazioni dei container o nei record salvati (non destinati alla rimozione):", "Host paths found in container configs or saved records (not targeted for removal):": "Percorsi dell'host trovati nelle configurazioni dei container o nei record salvati (non destinati alla rimozione):",
"Host permissions applied (o+rwx + default ACL) — unprivileged LXCs can read/write through bind-mounts": "Autorizzazioni host applicate (o+rwx + ACL predefinito): gli LXC non privilegiati possono leggere/scrivere tramite montaggi bind", "Host permissions applied (o+rwx + default ACL) — unprivileged LXCs can read/write through bind-mounts": "Autorizzazioni host applicate (o+rwx + ACL predefinito): gli LXC non privilegiati possono leggere/scrivere tramite montaggi bind",
"Host system path": "Percorso sistema host", "Host system path": "Percorso sistema host",
"Host update lock is unavailable.": "il blocco dell'aggiornamento dell'host non è disponibile.", "Host update lock is unavailable.": "Il lock per l'aggiornamento dell'host non è disponibile.",
"Host write access confirmed.": "Accesso in scrittura dell'host confermato.", "Host write access confirmed.": "Accesso in scrittura dell'host confermato.",
"Hostname": "Nome host", "Hostname": "Nome host",
"Hostname or IP address clients will use for this GoToSocial instance": "Nome host o indirizzo IP che i client useranno per questa istanza di GoToSocial", "Hostname or IP address clients will use for this GoToSocial instance": "Nome host o indirizzo IP che i client useranno per questa istanza di GoToSocial",
@@ -3176,7 +3176,7 @@
"Identical:": "Identica:", "Identical:": "Identica:",
"Identify candidate disk (never use system disk):": "Identifica il disco candidato (non usare mai il disco di sistema):", "Identify candidate disk (never use system disk):": "Identifica il disco candidato (non usare mai il disco di sistema):",
"Identify persistent disk paths": "Identifica i percorsi persistenti dei dischi", "Identify persistent disk paths": "Identifica i percorsi persistenti dei dischi",
"Identity provider for single sign-on and access control": "provider di identità per Single Sign-On e controllo degli accessi", "Identity provider for single sign-on and access control": "Provider di identità per il single sign-on e il controllo degli accessi",
"If 'proxmox-ve' removal warning:": "Se compare un avviso di rimozione di 'proxmox-ve':", "If 'proxmox-ve' removal warning:": "Se compare un avviso di rimozione di 'proxmox-ve':",
"If Code 43 error appears, KVM hiding is already configured.": "Se compare l'errore Codice 43, l'occultamento KVM è già configurato.", "If Code 43 error appears, KVM hiding is already configured.": "Se compare l'errore Codice 43, l'occultamento KVM è già configurato.",
"If GUI does not load:": "Se la GUI non viene caricata:", "If GUI does not load:": "Se la GUI non viene caricata:",
@@ -4029,7 +4029,7 @@
"Manage private image registries.\nSaved credentials let ProxMenux access your private images.": "Gestisci i registri di immagini private.\nLe credenziali salvate consentono a ProxMenux di accedere alle tue immagini private.", "Manage private image registries.\nSaved credentials let ProxMenux access your private images.": "Gestisci i registri di immagini private.\nLe credenziali salvate consentono a ProxMenux di accedere alle tue immagini private.",
"Manage registry accounts as root on the Proxmox node.": "Gestisci gli account del registro come root sul nodo Proxmox.", "Manage registry accounts as root on the Proxmox node.": "Gestisci gli account del registro come root sul nodo Proxmox.",
"Managed disks must have backup enabled and a valid size": "I dischi gestiti devono avere il backup abilitato e una dimensione valida", "Managed disks must have backup enabled and a valid size": "I dischi gestiti devono avere il backup abilitato e una dimensione valida",
"Managed public route include is missing": "Manca il file di configurazione delle rotte pubbliche gestite", "Managed public route include is missing": "Manca la direttiva di inclusione per le rotte pubbliche gestite",
"Managed public route installation failed": "Impossibile configurare le rotte pubbliche gestite", "Managed public route installation failed": "Impossibile configurare le rotte pubbliche gestite",
"Managing Nginx proxy hosts with a simple, powerful interface.": "Gestione degli host proxy Nginx tramite un'interfaccia semplice e potente.", "Managing Nginx proxy hosts with a simple, powerful interface.": "Gestione degli host proxy Nginx tramite un'interfaccia semplice e potente.",
"Manticore Search": "Manticore Search", "Manticore Search": "Manticore Search",
@@ -4893,7 +4893,7 @@
"Open the dashboard to create a new admin account:": "Apri la dashboard per creare un nuovo account amministratore:", "Open the dashboard to create a new admin account:": "Apri la dashboard per creare un nuovo account amministratore:",
"Open the page of an application in the menu": "Apri la pagina di un'applicazione nel menu", "Open the page of an application in the menu": "Apri la pagina di un'applicazione nel menu",
"Open the web address and create the first account: the daemon registers by itself and starts the first scan.": "Apri l'indirizzo web e crea il primo account: il daemon si registra da solo e avvia la prima scansione.", "Open the web address and create the first account: the daemon registers by itself and starts the first scan.": "Apri l'indirizzo web e crea il primo account: il daemon si registra da solo e avvia la prima scansione.",
"Open the web address and create the password of the akadmin user in the first-run setup.": "apri l'indirizzo web e crea la password dell'utente akadmin nella configurazione di prima esecuzione.", "Open the web address and create the password of the akadmin user in the first-run setup.": "Apri l'indirizzo web e imposta la password dell'utente akadmin durante la configurazione iniziale.",
"Open-source AI-powered coding assistant": "Assistente open source per la programmazione basato sull'IA", "Open-source AI-powered coding assistant": "Assistente open source per la programmazione basato sull'IA",
"Open-source UI for building and debugging multi-agent and RAG applications": "Interfaccia open source per creare ed eseguire il debug di applicazioni multiagente e RAG", "Open-source UI for building and debugging multi-agent and RAG applications": "Interfaccia open source per creare ed eseguire il debug di applicazioni multiagente e RAG",
"Open-source in-memory data store.": "Archivio dati in memoria open source.", "Open-source in-memory data store.": "Archivio dati in memoria open source.",
@@ -5851,7 +5851,7 @@
"Root shell/profile config": "Configurazione shell/profilo root", "Root shell/profile config": "Configurazione shell/profilo root",
"Root user on the PVE host (default 'root'):": "Utente root sull'host PVE (default 'root'):", "Root user on the PVE host (default 'root'):": "Utente root sull'host PVE (default 'root'):",
"Rootfs size in GB": "Dimensione rootfs in GB", "Rootfs size in GB": "Dimensione rootfs in GB",
"Rotate and write /var/log to disk when it passes 85% of its size?": "Ruotare e scrivere /var/log su disco quando supera l'85% della sua dimensione?", "Rotate and write /var/log to disk when it passes 85% of its size?": "Eseguire la rotazione dei log e scrivere /var/log su disco quando lo spazio occupato supera l'85% della capacità assegnata?",
"Rotate the recovery passphrase": "Sostituisci la passphrase di ripristino", "Rotate the recovery passphrase": "Sostituisci la passphrase di ripristino",
"Routing Information": "Informazioni di instradamento", "Routing Information": "Informazioni di instradamento",
"Routing Table": "Tabella di instradamento", "Routing Table": "Tabella di instradamento",
@@ -6274,7 +6274,7 @@
"Self-hosted remote device management.": "Gestione self-hosted dei dispositivi remoti.", "Self-hosted remote device management.": "Gestione self-hosted dei dispositivi remoti.",
"Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "App di pianificazione e prenotazione da ospitare sul proprio server, con interfaccia di amministrazione integrata e database SQLite.", "Self-hosted scheduling and booking app with a built-in admin interface and SQLite database.": "App di pianificazione e prenotazione da ospitare sul proprio server, con interfaccia di amministrazione integrata e database SQLite.",
"Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gestore di spese condivise e budget di gruppo da ospitare sul proprio server, per registrare gli acquisti e calcolare chi deve cosa a chi.", "Self-hosted shared-expense and group-budget manager for tracking purchases and settling who owes whom.": "Gestore di spese condivise e budget di gruppo da ospitare sul proprio server, per registrare gli acquisti e calcolare chi deve cosa a chi.",
"Self-hosted smart home video platform.": "Piattaforma video per la smart home ospitata in autonomia.", "Self-hosted smart home video platform.": "Piattaforma video self-hosted per la smart home.",
"Self-hosted software development service": "Servizio di sviluppo software ospitabile sul proprio server", "Self-hosted software development service": "Servizio di sviluppo software ospitabile sul proprio server",
"Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Tracker per l'allenamento della forza da ospitare sul proprio server, con registri degli allenamenti, programmi, foto dei progressi e PWA per dispositivi mobili.", "Self-hosted strength-training tracker with workout logs, programs, progress photos, and a mobile PWA.": "Tracker per l'allenamento della forza da ospitare sul proprio server, con registri degli allenamenti, programmi, foto dei progressi e PWA per dispositivi mobili.",
"Self-hosted task and project management.": "Gestione di attività e progetti sul proprio server.", "Self-hosted task and project management.": "Gestione di attività e progetti sul proprio server.",
@@ -6954,7 +6954,7 @@
"The build could not be checked beforehand; continuing without that check.": "Non è stato possibile verificare la build in anticipo; si prosegue senza tale verifica.", "The build could not be checked beforehand; continuing without that check.": "Non è stato possibile verificare la build in anticipo; si prosegue senza tale verifica.",
"The cached image does not match the current digest": "L'immagine nella cache non corrisponde al digest corrente", "The cached image does not match the current digest": "L'immagine nella cache non corrisponde al digest corrente",
"The cached image is damaged; it will be downloaded again.": "L'immagine nella cache è danneggiata; verrà scaricata nuovamente.", "The cached image is damaged; it will be downloaded again.": "L'immagine nella cache è danneggiata; verrà scaricata nuovamente.",
"The carried record could not be verified before the backup": "Impossibile verificare la copia del registro nel contenitore prima del backup", "The carried record could not be verified before the backup": "Impossibile verificare la copia del record nel container prima del backup",
"The changes need the application installer": "Le modifiche richiedono il programma di installazione dell’applicazione", "The changes need the application installer": "Le modifiche richiedono il programma di installazione dell’applicazione",
"The character device does not exist:": "Il dispositivo a caratteri non esiste:", "The character device does not exist:": "Il dispositivo a caratteri non esiste:",
"The command asks for a password that is not echoed. After creating the users, the web interface asks for a user name and a password.": "Il comando richiede una password non visualizzata durante la digitazione. Dopo la creazione degli utenti, l’interfaccia web richiede nome utente e password.", "The command asks for a password that is not echoed. After creating the users, the web interface asks for a user name and a password.": "Il comando richiede una password non visualizzata durante la digitazione. Dopo la creazione degli utenti, l’interfaccia web richiede nome utente e password.",
@@ -8003,7 +8003,7 @@
"VIRTUAL MACHINE ID": "ID MACCHINA VIRTUALE", "VIRTUAL MACHINE ID": "ID MACCHINA VIRTUALE",
"VLAN": "VLAN", "VLAN": "VLAN",
"VLAN tag": "Tag VLAN", "VLAN tag": "Tag VLAN",
"VLAN tag (empty = none)": "Tag VLAN (vuoto = nessuna)", "VLAN tag (empty = none)": "Tag VLAN (vuoto = nessuno)",
"VLC Media Player is a free and open source cross-platform multimedia player and framework that delivers dependable performance across multiple devices.": "VLC Media Player è un lettore e framework multimediale gratuito, open source e multipiattaforma che offre prestazioni affidabili su diversi dispositivi.", "VLC Media Player is a free and open source cross-platform multimedia player and framework that delivers dependable performance across multiple devices.": "VLC Media Player è un lettore e framework multimediale gratuito, open source e multipiattaforma che offre prestazioni affidabili su diversi dispositivi.",
"VM": "VM", "VM": "VM",
"VM Conflict Policy": "Politica conflitti VM", "VM Conflict Policy": "Politica conflitti VM",
@@ -8193,7 +8193,7 @@
"Web access": "Accesso web", "Web access": "Accesso web",
"Web address of the AdGuard Home that receives the settings (e.g. http://192.168.1.3)": "Indirizzo web dell'istanza AdGuard Home che riceve le impostazioni (ad es. http://192.168.1.3)", "Web address of the AdGuard Home that receives the settings (e.g. http://192.168.1.3)": "Indirizzo web dell'istanza AdGuard Home che riceve le impostazioni (ad es. http://192.168.1.3)",
"Web address of the main AdGuard Home, whose settings are copied (e.g. http://192.168.1.2)": "Indirizzo web dell'istanza AdGuard Home principale, da cui vengono copiate le impostazioni (ad es. http://192.168.1.2)", "Web address of the main AdGuard Home, whose settings are copied (e.g. http://192.168.1.2)": "Indirizzo web dell'istanza AdGuard Home principale, da cui vengono copiate le impostazioni (ad es. http://192.168.1.2)",
"Web interface": "interfaccia web", "Web interface": "Interfaccia web",
"Web interface for Borg Backup repositories and jobs.": "Interfaccia web per repository e job di Borg Backup.", "Web interface for Borg Backup repositories and jobs.": "Interfaccia web per repository e job di Borg Backup.",
"Web interface for managing 3D printers.": "Interfaccia web per gestire stampanti 3D.", "Web interface for managing 3D printers.": "Interfaccia web per gestire stampanti 3D.",
"Web interface to manage devices running Tasmota firmware.": "Interfaccia web per gestire dispositivi con firmware Tasmota.", "Web interface to manage devices running Tasmota firmware.": "Interfaccia web per gestire dispositivi con firmware Tasmota.",
@@ -8640,7 +8640,7 @@
"missing": "mancanti", "missing": "mancanti",
"mkfs.btrfs not found. Install btrfs-progs and retry.": "mkfs.btrfs non trovato. Installare btrfs-progs e riprovare.", "mkfs.btrfs not found. Install btrfs-progs and retry.": "mkfs.btrfs non trovato. Installare btrfs-progs e riprovare.",
"more": "in più", "more": "in più",
"more packages; the full list is in the update log": "pacchetti in più; l'elenco completo è nel log dell'aggiornamento", "more packages; the full list is in the update log": "pacchetti non visualizzati; l'elenco completo è nel log dell'aggiornamento",
"motionEye web interface": "Interfaccia web motionEye", "motionEye web interface": "Interfaccia web motionEye",
"mount.cifs command not found after installation.": "Comando mount.cifs non trovato dopo l'installazione.", "mount.cifs command not found after installation.": "Comando mount.cifs non trovato dopo l'installazione.",
"mount.nfs command not found after installation.": "Comando mount.nfs non trovato dopo l'installazione.", "mount.nfs command not found after installation.": "Comando mount.nfs non trovato dopo l'installazione.",
@@ -115,7 +115,7 @@
} }
}, },
{ {
"p": "In base al profilo, il documento include identità del nodo e data della valutazione, sintesi, riepilogo per area, struttura di hardware, rete e archiviazione, protezione dei guest, risultati con evidenze, fonti illeggibili e ambito e politica applicati." "p": "Il documento include, secondo quanto previsto da ciascun profilo, l’identità del nodo e la data della valutazione, la sintesi dei risultati, un riepilogo per area, la struttura di hardware, rete e archiviazione, la protezione dei guest, i risultati con le relative evidenze, le fonti che non è stato possibile leggere e l’ambito e i criteri applicati."
} }
] ]
}, },
@@ -0,0 +1,235 @@
{
"meta": {
"title": "Installare un’app e proporla al catalogo | ProxMenux",
"description": "Istruzioni riutilizzabili per un agente: installare un’app self-hosted con OCI manager Apps, verificarla e preparare un contributo al catalogo per tutti."
},
"header": {
"title": "Installare un’app e proporla al catalogo",
"description": "Istruzioni pratiche da dare al tuo agente per installare l’app che desideri, verificarla sul tuo sistema Proxmox e preparare una voce del catalogo OCI di ProxMenux riutilizzabile da altri.",
"section": "OCI manager Apps"
},
"sections": [
{
"id": "purpose",
"title": "Una richiesta, due risultati",
"blocks": [
{
"p": "Usa questa guida quando vuoi che un agente installi un’applicazione self-hosted sul sistema Proxmox che scegli e la proponga per il catalogo OCI di ProxMenux. La guida si rivolge a utenti con host Proxmox, architetture CPU, sistemi di storage e hardware diversi. Non presuppone un computer o un homelab specifico."
},
{
"cards": {
"items": [
{
"icon": "server",
"title": "La tua app",
"body": "Il servizio richiesto viene installato e verificato sul sistema Proxmox che hai scelto. Questa istanza e i suoi dati vanno conservati, salvo tua richiesta di rimozione."
},
{
"icon": "boxes",
"title": "La voce del catalogo",
"body": "L’agente verifica l’immagine upstream, scrive il relativo oci-compose, lo testa nei limiti consentiti dal sistema disponibile e prepara una pull request per gli altri utenti di ProxMenux."
}
]
}
},
{
"calloutWarning": {
"title": "Un test su un sistema non dimostra il supporto su tutti",
"body": "L’agente deve rilevare la versione effettiva di Proxmox, l’architettura CPU, lo storage, la rete e i dispositivi disponibili. Indica quali combinazioni sono state testate. Non dichiarare mai per deduzione il supporto di un’altra architettura, GPU, NPU, dispositivo USB o tipo di storage."
}
},
{
"p": "Una voce del catalogo non viene automaticamente indicata come verificata con un ✓ negli elenchi dell’installatore. Questo simbolo viene assegnato tramite il <validation>processo di validazione</validation> separato del progetto. Un download o un avvio del container riuscito non basta a dimostrare che l’app funziona."
}
]
},
{
"id": "brief",
"title": "Copia queste istruzioni per il tuo agente",
"blocks": [
{
"p": "Sostituisci i dettagli tra parentesi quadre se li conosci. Per il resto, l’agente dovrebbe esaminare il sistema Proxmox selezionato e lo stato attuale del repository, poi segnalarti le decisioni che richiedono il tuo intervento."
},
{
"agentPrompt": {
"title": "Richiesta riutilizzabile",
"body": "Voglio installare [APP NAME] sul sistema Proxmox che scelgo, usando OCI manager Apps. Se l’app è adatta, voglio anche che tu prepari un contributo al catalogo OCI di ProxMenux, così che altri utenti possano installarla.\n\nProgetto upstream o immagine (se noti): [LINK OR UNKNOWN]\nSistema Proxmox da usare: [SELECTED HOST OR UNKNOWN]\nRequisiti particolari (se noti): [DATA, NETWORK, GPU/USB, HTTPS, OR NONE]\n\nSegui questi passaggi:\n1. Esamina l’host Proxmox selezionato e indica la versione di Proxmox VE, l’architettura, lo storage disponibile, le opzioni di rete e i dispositivi pertinenti. Non presupporre un’architettura o un hardware specifici.\n2. Controlla il progetto e l’immagine upstream, il catalogo ProxMenux attuale, le pull request aperte e le indicazioni recenti dei manutentori. Non aggiungere duplicati. Le applicazioni vengono proposte per il catalogo nella discussione #440 (https://github.com/MacRimi/ProxMenux/discussions/440): se l’app non è già presente, proponila indicando l’immagine, il registro in cui è pubblicata e la categoria. Il catalogo usa l’immagine pubblicata dallo sviluppatore, quando esiste; identifica con precisione chi la pubblica.\n3. Installa l’app che ho richiesto tramite OCI manager Apps. Prima di confermare, controlla l’immagine, le risorse, i percorsi dei dati, la rete e le variabili. Proteggi i servizi e i dati esistenti. Dopo i test, lascia installata l’app richiesta, salvo mia richiesta di rimozione.\n4. Verifica che il servizio risponda davvero e che l’accesso o la configurazione iniziale funzionino. Registra ciò che hai osservato; non dichiarare funzionanti caratteristiche non testate.\n5. Scrivi l’oci-compose per la voce del catalogo, seguendo oci/README.md e i file in oci/examples/, e prepara l’icona. Se l’app richiede più servizi, descrivi e testa l’intero stack con l’approccio attuale di ProxMenux; non omettere database, cache o rete interna necessari.\n6. Esegui i controlli del repository, incluso `cd oci && python3 -m unittest discover -s tests -p 'test_*.py'` come utente non privilegiato su una copia del repository, mai su un host di produzione, insieme ai controlli pertinenti su catalogo, documentazione e traduzioni offline. Correggi gli errori causati da questa modifica e ripeti i controlli.\n7. Quando è praticabile, valida la voce candidata per il catalogo usando istanze di test che puoi eliminare. Non usare l’app che voglio conservare o i suoi dati per test distruttivi di aggiornamento, ripristino o rimozione. Indica con trasparenza l’hardware non disponibile e i casi non testati.\n8. Prepara una pull request mirata con il nome dell’app, l’immagine, l’icona, una sintesi dei risultati dei test e i limiti, e allega l’oci-compose testato alla proposta nella discussione #440. Controlla tutti gli esiti CI obbligatori e i commenti dei manutentori. Non eseguire il merge della pull request.\n9. Elimina solo le istanze di test temporanee, i file temporanei e i backup di test creati per questo lavoro. Conserva l’installazione che ho richiesto, i suoi dati e tutte le istanze e i backup estranei a questo lavoro.\n\nPrima di apportare una modifica irreversibile, esporre il servizio pubblicamente o eliminare qualsiasi cosa che possa contenere i miei dati, fermati e chiedimi conferma. Non inserire password, token o configurazioni private nel repository o nella pull request. Concludi con l’URL dell’app o i dettagli di connessione, il link alla pull request, i controlli osservati, le risorse eliminate e gli eventuali limiti rimasti."
}
},
{
"calloutTip": {
"title": "Mantieni riservate le credenziali",
"body": "Inserisci le credenziali del registro e i segreti dell’app solo nell’interfaccia locale prevista. Nel catalogo, nelle schermate, nei log e nella pull request i valori devono essere oscurati: mai password o token reali."
}
}
]
},
{
"id": "research",
"title": "Cosa deve verificare prima l’agente",
"blocks": [
{
"steps": {
"items": [
{
"title": "Controlla l’host scelto",
"body": "Registra la versione di Proxmox VE e l’architettura dell’host. Individua lo storage disponibile, i bridge, l’assegnazione degli indirizzi e gli eventuali dispositivi GPU, NPU o USB pertinenti. Controlla nel registro il manifest dell’immagine dell’app per quell’architettura. Un manifest per amd64 non dimostra il supporto di arm64, né viceversa."
},
{
"title": "Controlla l’app e il catalogo",
"body": "Leggi la documentazione e l’esempio di installazione dello sviluppatore. Controlla le <proposals>proposte per il catalogo OCI</proposals>, la <roadmap>roadmap</roadmap>, il <catalog>catalogo</catalog> e le pull request aperte per individuare duplicati o decisioni progettuali attuali; prima di procedere, proponi l’app nella discussione dedicata. Il catalogo usa l’immagine pubblicata dallo sviluppatore, quando esiste; per un’immagine della community, verifica e indica chi la pubblica."
},
{
"title": "Comprendi l’intera configurazione di installazione",
"body": "Registra immagini, comandi, porte, variabili d’ambiente, volumi, utente e permessi, controlli di stato, comportamento al primo avvio, credenziali, dipendenze e hardware opzionale. Per un’app con più servizi, includi database, cache e rete interna quando necessari. Segnala i comportamenti di Compose privi di un equivalente sicuro in Proxmox, invece di ometterli senza avvisare."
},
{
"title": "Risolvi il riferimento all’immagine",
"body": "Usa la procedura Skopeo di OCI manager Apps per risolvere il riferimento all’immagine, scaricarla e verificarne i layer. Se la procedura fallisce, individua la causa reale: credenziali, immagine o tag mancanti, architettura non supportata, problemi di rete o limite di richieste del registro."
}
]
}
}
]
},
{
"id": "install",
"title": "Installa e verifica l’app richiesta",
"blocks": [
{
"list": {
"items": [
"Usa OCI manager Apps per l’installazione. Quando serve, scegli un VMID di test libero e imposta storage, bridge, indirizzo e risorse in modo adeguato all’host selezionato e alla richiesta dell’utente.",
"Prima di confermare, controlla l’immagine, le risorse, i percorsi persistenti, la rete e le variabili. Mantieni nascosti i segreti. Per l’installazione avanzata, confronta le scelte relative a VMID, CPU, RAM, storage, bridge, variabili e associazioni dei dispositivi supportati con la configurazione risultante in `pct config`.",
"Usa la modalità di gestione delle credenziali effettivamente prevista dall’app: inserite dall’utente, generate dall’installatore, mostrate al primo avvio o indicate nella documentazione dell’immagine. Verifica che funzionino e oscurale nelle prove raccolte.",
"Verifica il servizio reale. Per un’app web, apri l’URL mostrato e controlla che la pagina o la schermata di accesso si carichi. Per un servizio non web, verifica il protocollo e la porta previsti. Usa HTTPS o un reverse proxy solo quando serve per il test o l’installazione richiesti.",
"Quando l’installatore offre queste opzioni, testa sia i volumi gestiti da Proxmox sia le directory dell’host. Crea dati nell’app e verifica che rimangano nella posizione prevista con i permessi richiesti.",
"Riavvia l’app o lo stack e verifica che torni operativo con i suoi dati e credenziali funzionanti. Testa solo l’hardware effettivamente disponibile; in caso contrario, indica il dispositivo mancante e lascia quell’integrazione non verificata."
]
}
},
{
"calloutDanger": {
"title": "Proteggi l’installazione che l’utente vuole conservare",
"body": "Il ripristino di un backup, il rollback in caso di immagine non funzionante e la rimozione possono essere distruttivi. Esegui questi controlli solo su istanze di test che puoi eliminare, oppure dopo aver definito un piano esplicito che protegga l’installazione richiesta e i suoi dati. Non rimuovere mai l’app richiesta dall’utente come normale pulizia finale."
}
}
]
},
{
"id": "catalog",
"title": "Prepara e valida la voce del catalogo",
"blocks": [
{
"list": {
"items": [
"Segui la guida oci-compose in <readme>oci/README.md</readme> e i file in `oci/examples/`. Aggiungi un ID univoco, la categoria corretta, l’attribuzione al progetto upstream, i link alla documentazione, le architetture supportate, il riferimento corretto all’immagine e l’icona dell’app. Verifica che l’icona corrisponda al prodotto giusto e venga visualizzata correttamente.",
"Conserva il comportamento di avvio, le porte, l’ambiente e i percorsi persistenti dell’immagine. Contrassegna i segreti come dati sensibili. Imposta proprietario e permessi dei dati in base a informazioni verificate del progetto upstream, non a supposizioni.",
"Usa valori predefiniti prudenti e scegli consapevolmente quali impostazioni opzionali rendere disponibili. Dichiara il supporto di GPU, NPU, USB o di un’architettura solo quando la procedura attuale di ProxMenux lo consente e il requisito è documentato.",
"Descrivi ogni servizio necessario a un’app con più servizi e conserva dipendenze, rete privata, controlli di stato, percorsi persistenti e operazioni coordinate. Mantieni separati uno stack complesso o una modifica al motore condiviso quando questo permette ai manutentori una revisione più sicura.",
"Esegui l’intera suite del motore OCI come utente non privilegiato su una copia del repository, anche se la CI non la esegue. Esegui i controlli pertinenti su schema, catalogo, documentazione, i18n e record di validazione. Non modificare mai a mano la pagina generata `oci/VALIDATION.md`: viene rigenerata da `python3 .github/scripts/oci_validation.py render`."
]
}
},
{
"shell": {
"code": "cd oci && python3 -m unittest discover -s tests -p 'test_*.py'"
}
}
]
},
{
"id": "lifecycle",
"title": "Verifiche del ciclo di vita su un’istanza di test eliminabile",
"blocks": [
{
"p": "Usa un’istanza di test separata per i controlli che aggiornano, ripristinano o rimuovono un’app. Prova le opzioni realmente supportate dall’app e disponibili sull’host di test. Per ogni riga, indica PASS, FAIL, BLOCKED, NOT APPLICABLE o NOT TESTED e includi prove osservabili."
},
{
"table": {
"headers": [
"Verifica",
"Criterio di superamento"
],
"rows": [
[
"Download dell’immagine",
"Skopeo risolve il riferimento previsto e ne verifica i layer. In caso di errore, la causa viene identificata."
],
[
"Installazione predefinita",
"Il riepilogo di conferma è corretto; l’LXC o l’intero stack si avvia, ha connettività di rete e supera i controlli del primo avvio."
],
[
"Impostazioni avanzate",
"Le scelte rappresentative per VMID, CPU, RAM, storage, bridge, variabili e dispositivi supportati corrispondono alla configurazione Proxmox salvata."
],
[
"Credenziali e risposta del servizio",
"Le credenziali mostrate o configurate funzionano. La pagina web o la schermata di accesso si carica, oppure il servizio non web previsto risponde."
],
[
"Dati persistenti",
"Le opzioni di storage gestito e directory dell’host si comportano come documentato; i dati creati rimangono dopo il riavvio con i permessi corretti."
],
[
"Riavvio",
"L’app o lo stack si avvia automaticamente e conserva dati e configurazione."
],
[
"Backup e ripristino",
"Un’istanza di test eliminabile, ripristinata da un backup Proxmox con un VMID diverso, si avvia, risponde e compare in «Gestisci le applicazioni OCI installate»."
],
[
"Aggiornamento e rollback",
"Un aggiornamento dell’immagine conserva dati, credenziali, rete, dispositivi e impostazioni Proxmox. Testa il rollback se puoi farlo in sicurezza; altrimenti indicalo come NOT TESTED."
],
[
"Modifica",
"Un’impostazione supportata viene modificata, le altre impostazioni restano invariate e l’app continua a rispondere. Le modifiche che non riguardano l’immagine non dovrebbero causarne un nuovo download o la ricreazione dell’app senza necessità."
],
[
"Rimozione",
"«Gestisci le applicazioni OCI installate» rimuove i container LXC di test, i dischi e i record. Le directory dei dati sull’host rimangono. Elimina solo i backup creati per i VMID riservati ai test temporanei."
]
]
}
},
{
"calloutInfo": {
"title": "Indica chiaramente i limiti hardware",
"body": "Se l’interfaccia dell’app si avvia ma manca una telecamera, un coordinatore, una GPU, una NPU o un dispositivo USB opzionale, il controllo dell’interfaccia può riuscire mentre quell’integrazione hardware rimane NOT TESTED. Specifica il dispositivo e le capacità dell’host necessari."
}
}
]
},
{
"id": "pr",
"title": "Prepara la pull request e consegna il risultato",
"blocks": [
{
"steps": {
"items": [
{
"title": "Mostra cosa è stato davvero testato",
"body": "Includi nome dell’app, ID del catalogo, immagine e digest, versione di Proxmox VE, architettura, modalità di installazione, storage, rete, profilo dei dispositivi e la verifica effettiva della risposta del servizio. Riassumi gli esiti del ciclo di vita ed elenca i casi bloccati, non disponibili e non testati. Includi l’icona e il risultato dei test del motore OCI."
},
{
"title": "Controlla i riscontri ricevuti",
"body": "Dopo aver aperto la pull request, controlla ogni verifica CI obbligatoria sul suo commit corrente. Leggi i commenti e le revisioni dei manutentori, apporta le modifiche richieste e ripeti i controlli interessati. Non dichiarare pronta la PR finché un controllo obbligatorio fallisce o una modifica richiesta resta irrisolta. Non eseguire il merge."
},
{
"title": "Elimina solo le risorse temporanee",
"body": "Elimina le istanze di test temporanee, i file e i backup di test creati per questo lavoro. Conserva l’istanza dell’app che l’utente ha chiesto di mantenere, i suoi dati e tutte le istanze e i backup estranei al lavoro. Verifica la pulizia confrontandola con i VMID di test registrati per questa esecuzione."
},
{
"title": "Riepiloga la consegna",
"body": "Fornisci all’utente l’indirizzo dell’app funzionante o i dettagli di connessione, il link alla pull request, i controlli e gli esiti CI effettivamente osservati, le risorse temporanee eliminate e gli eventuali limiti. Non includere mai segreti nella pull request o nel resoconto finale."
}
]
}
}
]
}
]
}
@@ -265,7 +265,7 @@
"list": { "list": {
"items": [ "items": [
"Un Dockerfile senza immagine pubblicata: prima occorre creare l’immagine e pubblicarla in un registro OCI.", "Un Dockerfile senza immagine pubblicata: prima occorre creare l’immagine e pubblicarla in un registro OCI.",
"I file Compose con più servizi usano un LXC nativo per servizio. Ogni applicazione web deve pubblicare la propria porta; i volumi con la stessa origine possono condividere una directory dell’host. Le opzioni non supportate, le reti esterne e i servizi senza un controllo di integrità supportato continuano a bloccare l’installazione.", "I file Compose con più servizi usano un LXC nativo per servizio. Ogni applicazione web deve avere un proprio endpoint pubblicato; i volumi con la stessa origine possono condividere una directory dell’host. Le opzioni non supportate, le reti esterne e i servizi senza un controllo di integrità supportato continuano a bloccare l’installazione.",
"<code>configs</code>, segreti esterni o formati di dispositivi che non possono essere adattati senza ambiguità.", "<code>configs</code>, segreti esterni o formati di dispositivi che non possono essere adattati senza ambiguità.",
"Sostituzioni della shell come <code>$(command)</code>: occorre inserire direttamente il valore risultante.", "Sostituzioni della shell come <code>$(command)</code>: occorre inserire direttamente il valore risultante.",
"Opzioni <code>docker run</code> non riconosciute e <code>--env-file</code>: usa invece un file Compose con valori espliciti." "Opzioni <code>docker run</code> non riconosciute e <code>--env-file</code>: usa invece un file Compose con valori espliciti."
+1 -1
View File
@@ -197,7 +197,7 @@
{ {
"label": "Installare un’app e proporla al catalogo", "label": "Installare un’app e proporla al catalogo",
"href": "/docs/oci-manager/contribute-app", "href": "/docs/oci-manager/contribute-app",
"tail": "istruzioni per l’agente, verifiche e pull request." "tail": "Istruzioni per l’agente, verifiche dell’installazione e pull request per il catalogo."
}, },
{ {
"label": "Installazione, aggiornamento e modifica", "label": "Installazione, aggiornamento e modifica",
@@ -116,10 +116,10 @@
"items": [ "items": [
"Se il registro restituisce ancora il digest installato, non viene scaricato nulla e l’istanza rimane invariata.", "Se il registro restituisce ancora il digest installato, non viene scaricato nulla e l’istanza rimane invariata.",
"La nuova immagine viene verificata livello per livello prima di arrestare il CT. Un download danneggiato viene ripetuto una seconda volta; un’immagine già nella cache che non supera la verifica viene scaricata di nuovo.", "La nuova immagine viene verificata livello per livello prima di arrestare il CT. Un download danneggiato viene ripetuto una seconda volta; un’immagine già nella cache che non supera la verifica viene scaricata di nuovo.",
"Le impostazioni modificate in Proxmox VE dopo l’installazione (memoria, swap, core, limite e priorità della CPU, avvio con il nodo) vengono conservate e incluse nel nuovo contratto.", "Le impostazioni modificate in Proxmox VE dopo l’installazione vengono conservate e incluse nel nuovo contratto: variabili, memoria, swap, core, limite e priorità della CPU, avvio con il nodo, nome host, comando di avvio, opzioni di rete, tag VLAN, DNS, fuso orario, funzionalità, protezione, dimensioni dei dischi e righe lxc.* aggiunte. Una variabile rimossa in Proxmox VE viene eliminata dal contratto e, se l’immagine la definisce, il nuovo container usa il valore dell’immagine. Un disco o un dispositivo aggiunto in Proxmox VE viene salvato nel contratto: il menu lo mostra per la revisione, mentre un aggiornamento pianificato lo accetta.",
"L'interfaccia LAN che la suite Arr e le applicazioni multi-container aggiungono (<code>net1</code>) e l'ordine di avvio (<code>startup</code>) sono restituiti al nuovo contenitore come sono.", "L'interfaccia LAN che la suite Arr e le applicazioni multi-container aggiungono (<code>net1</code>) e l'ordine di avvio (<code>startup</code>) sono restituiti al nuovo contenitore come sono.",
"Una directory dell’host viene riconosciuta dal suo percorso e dal filesystem su cui si trova, non dal nome di dispositivo che l’host assegna al suo disco, quindi un disco USB o di rete che ricompare con un altro nome resta la stessa directory. Quando il suo disco non è collegato, l’aggiornamento si interrompe prima che il CT venga arrestato e indica la directory mancante.", "Una directory dell’host viene riconosciuta dal suo percorso e dal filesystem su cui si trova, non dal nome di dispositivo che l’host assegna al suo disco, quindi un disco USB o di rete che ricompare con un altro nome resta la stessa directory. Quando il suo disco non è collegato, l’aggiornamento si interrompe prima che il CT venga arrestato e indica la directory mancante.",
"Qualsiasi altra differenza tra il CT e il suo contratto interrompe l’aggiornamento prima che il CT venga arrestato." "Una modifica che non può essere conservata, come la rimozione di un volume dati, un’architettura diversa o uno snapshot creato dall’utente, interrompe l’aggiornamento prima che il CT venga arrestato."
] ]
} }
}, },
@@ -141,7 +141,7 @@
], ],
[ [
"Aggiornamenti pianificati", "Aggiornamenti pianificati",
"L’immagine viene aggiornata all’ora scelta solo se il registro ne pubblica una nuova, con la possibilità di attendere che abbia 1, 3, 7 o 14 giorni. Un container modificato al di fuori di ProxMenux viene saltato e segnalato." "L’immagine viene aggiornata all’ora scelta solo se il registro ne pubblica una nuova, con la possibilità di attendere che abbia 1, 3, 7 o 14 giorni. Le impostazioni modificate in Proxmox vengono conservate."
] ]
] ]
} }
@@ -223,6 +223,9 @@
] ]
} }
}, },
{
"p": "L’interfaccia di accesso può avere un tag VLAN. L’installazione avanzata lo richiede insieme all’indirizzo; per un’applicazione con un solo container, Modifica consente di cambiarlo o rimuoverlo. Un tag impostato in Proxmox viene conservato. Se è presente un tag, ProxMenux verifica l’applicazione dall’interno del suo container, quindi l’host non deve avere accesso a quella VLAN."
},
{ {
"flow": { "flow": {
"nodes": [ "nodes": [
@@ -109,7 +109,7 @@
} }
], ],
"hardwareTitle": "Impostazioni predefinite in base all’hardware", "hardwareTitle": "Impostazioni predefinite in base all’hardware",
"hardwareBody": "Lo script legge l'hardware dell'host prima di applicare le impostazioni. Log2RAM è installato solo su dischi SSD/root NVMe per impostazione predefinita (richiede se il rilevamento indica diversamente). La dimensione del disco ram Log2RAM viene scelta dal totale RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Con Log2RAM attivo, il journal resta su disco con un proprio limite.", "hardwareBody": "Lo script rileva l’hardware dell’host prima di applicare le impostazioni. Per impostazione predefinita, Log2RAM viene installato solo se il disco di sistema è SSD o NVMe (negli altri casi viene chiesta conferma). La dimensione del ramdisk di Log2RAM viene scelta in base alla RAM totale (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Con Log2RAM attivo, il journal resta su disco con un proprio limite.",
"upgrade": { "upgrade": {
"heading": "Aggiorna gli elenchi dei pacchetti e il sistema", "heading": "Aggiorna gli elenchi dei pacchetti e il sistema",
"intro": "Il primo passo del pacchetto automatizzato è l'aggiornamento Proxmox. La guida di aggiornamento di Proxmox per un host in esecuzione (nella stessa versione principale) è quella di eseguire:", "intro": "Il primo passo del pacchetto automatizzato è l'aggiornamento Proxmox. La guida di aggiornamento di Proxmox per un host in esecuzione (nella stessa versione principale) è quella di eseguire:",
@@ -140,13 +140,13 @@
"doesLabel": "Cosa fa ProxMenux:", "doesLabel": "Cosa fa ProxMenux:",
"doesItems": [ "doesItems": [
"Rileva se il disco root è SSD/NVMe leggendo <code>/sys/block/&lt;dev&gt;/queue/rotational</code>. Su un disco rotazionale il flusso automatizzato chiede prima di installare.", "Rileva se il disco root è SSD/NVMe leggendo <code>/sys/block/&lt;dev&gt;/queue/rotational</code>. Su un disco rotazionale il flusso automatizzato chiede prima di installare.",
"Installa Log2RAM 1.7.2 dal progetto ufficiale, verificando che il download sia quella versione, e lascia il suo codice invariato. L'email di errore viene disattivata con <code>NOTIFICATION=false</code>, poiché Proxmox VE non include un comando mail.", "Installa Log2RAM 1.7.2 dal progetto ufficiale, verificando che il download sia quella versione, e lascia il suo codice invariato. L’email di errore viene disattivata con <code>NOTIFICATION=false</code>, poiché Proxmox VE non include il comando mail per impostazione predefinita.",
"Dimensiona il ramdisk in base alla RAM dell’host: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>&gt; 16 GB → 512M</code>. Scrive il valore in <code>SIZE=</code> di <code>/etc/log2ram.conf</code>.", "Dimensiona il ramdisk in base alla RAM dell’host: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>&gt; 16 GB → 512M</code>. Scrive il valore in <code>SIZE=</code> di <code>/etc/log2ram.conf</code>.",
"Mantiene su disco il journal (<code>/var/log/journal</code>), i log delle attività di Proxmox VE (<code>/var/log/pve</code>) e, se installato, quelli di Proxmox Backup Server (<code>/var/log/proxmox-backup</code>), in <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> e <code>/var/hdd.proxmox-backup</code>. Ogni percorso abituale diventa un collegamento alla sua cartella su disco. Lo spostamento avviene all'avvio, prima che parta Log2RAM.", "Mantiene su disco il journal (<code>/var/log/journal</code>), i log delle attività di Proxmox VE (<code>/var/log/pve</code>) e, se installato, quelli di Proxmox Backup Server (<code>/var/log/proxmox-backup</code>), in <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> e <code>/var/hdd.proxmox-backup</code>. Ogni percorso abituale diventa un collegamento alla sua cartella su disco. Lo spostamento avviene all'avvio, prima che parta Log2RAM.",
"Scrive il ramdisk su disco con il timer di Log2RAM ogni 1h / 3h / 6h secondo la stessa fascia di RAM, e svuota la cache del disco dopo ogni scrittura, così una sincronizzazione completata sopravvive a un'interruzione di corrente.", "Scrive il ramdisk su disco con il timer di Log2RAM ogni 1h / 3h / 6h secondo la stessa fascia di RAM e, dopo ogni scrittura, sincronizza i dati in cache con il disco, così una sincronizzazione completata sopravvive a un’interruzione di corrente.",
"Installa un controllo in <code>/etc/cron.d/log2ram-auto-sync</code> eseguito ogni 10 minuti. Quando <code>/var/log</code> supera l'85% del ramdisk, ruota i log, comprime quelli appena ruotati e scrive tutto su disco. Nessun log viene svuotato.", "Installa un controllo in <code>/etc/cron.d/log2ram-auto-sync</code> eseguito ogni 10 minuti. Quando <code>/var/log</code> supera l'85% del ramdisk, ruota i log, comprime quelli appena ruotati e scrive tutto su disco. Nessun log viene svuotato.",
"Mantiene il journal di systemd su disco con un limite di 1 GB, in <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Su un host con Proxmox Backup Server aggiunge <code>/etc/logrotate.d/proxmox-backup-api</code> (rotazione 20 MB × 3) per i suoi log delle API.", "Mantiene il journal di systemd su disco con un limite di 1 GB, in <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Su un host con Proxmox Backup Server aggiunge <code>/etc/logrotate.d/proxmox-backup-api</code> (rotazione 20 MB × 3) per i suoi log delle API.",
"Si registra in <code>installed_tools.json</code> per poter essere annullato da Disinstalla ottimizzazioni. Un aggiornamento da una versione precedente mantiene la dimensione e l'intervallo di sincronizzazione e sposta il journal su disco al successivo avvio." "Si registra in <code>installed_tools.json</code> per consentirne la rimozione da Disinstalla ottimizzazioni. Un aggiornamento da una versione precedente mantiene la dimensione e l’intervallo di sincronizzazione e sposta il journal su disco al successivo avvio."
], ],
"howUseLabel": "Come usare:", "howUseLabel": "Come usare:",
"howUseBody": "Nel flusso automatico Log2RAM si installa senza intervento quando rileva un disco di sistema SSD/NVMe. Il flusso personalizzabile chiede la dimensione, l'intervallo di sincronizzazione e se attivare il controllo. Le modifiche hanno effetto al successivo avvio.", "howUseBody": "Nel flusso automatico Log2RAM si installa senza intervento quando rileva un disco di sistema SSD/NVMe. Il flusso personalizzabile chiede la dimensione, l'intervallo di sincronizzazione e se attivare il controllo. Le modifiche hanno effetto al successivo avvio.",