diff --git a/.github/workflows/test-i18n.yml b/.github/workflows/test-i18n.yml
index 2b3e4685..7f4dfb51 100644
--- a/.github/workflows/test-i18n.yml
+++ b/.github/workflows/test-i18n.yml
@@ -9,15 +9,20 @@ on:
- 'AppImage/messages/**'
- 'AppImage/lib/i18n/**'
- 'AppImage/components/terminal-panel.tsx'
+ - 'web/**'
- 'CONTRIBUTING.md'
# Scheduler consumers and the offline extractor's .sh/.func inputs.
- 'scripts/**/*.sh'
- 'scripts/**/*.func'
- 'scripts/**/*.py'
- 'lang/*.json'
+ - 'menu'
+ - 'install_proxmenux.sh'
+ - 'install_proxmenux_beta.sh'
- 'oci/src/**/*.py'
- 'oci/catalog/**/*.json'
- 'oci/remote/**/*.sh'
+ - 'oci/remote/**/*.py'
push:
branches: [main, develop]
paths:
@@ -27,15 +32,20 @@ on:
- 'AppImage/messages/**'
- 'AppImage/lib/i18n/**'
- 'AppImage/components/terminal-panel.tsx'
+ - 'web/**'
- 'CONTRIBUTING.md'
# Scheduler consumers and the offline extractor's .sh/.func inputs.
- 'scripts/**/*.sh'
- 'scripts/**/*.func'
- 'scripts/**/*.py'
- 'lang/*.json'
+ - 'menu'
+ - 'install_proxmenux.sh'
+ - 'install_proxmenux_beta.sh'
- 'oci/src/**/*.py'
- 'oci/catalog/**/*.json'
- 'oci/remote/**/*.sh'
+ - 'oci/remote/**/*.py'
workflow_dispatch:
permissions:
diff --git a/web/messages/de/guides/backup-cloud.json b/web/messages/de/guides/backup-cloud.json
new file mode 100644
index 00000000..ebd26a61
--- /dev/null
+++ b/web/messages/de/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher | ProxMenux",
+ "description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript.",
+ "ogTitle": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
+ "ogDescription": "Mit rclone Cloud-Speicher auf dem Proxmox-VE-Host einhängen und als vzdump-Ziel für Sicherungen von VMs und Containern verwenden."
+ },
+ "header": {
+ "title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
+ "description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript.",
+ "section": "Leitfäden"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Ziehen Sie zuerst Proxmox Backup Server in Betracht",
+ "pbsCalloutBody": "Auf einem zweiten Rechner, der die x86-64-Anforderungen erfüllt, bietet Proxmox Backup Server inkrementelle, deduplizierte Sicherungen mit optionaler clientseitiger Verschlüsselung. Er ist für VM-Sicherungen ausgelegt. Diese Anleitung beschreibt stattdessen das Einhängen von Cloud-Speicher wie Google Drive, Mega, OneDrive oder Dropbox als Sicherungsziel.",
+ "stepsTitle": "Was Sie einrichten",
+ "steps": [
+ "Ein Verzeichnis auf dem Proxmox-Host erstellen und als Speicher für vzdump-Sicherungen registrieren.",
+ "Installieren und konfigurieren Sie rclone für Ihren Cloud-Anbieter.",
+ "Montieren Sie den Cloud-Ordner in das Verzeichnis.",
+ "Den Cloud-Speicher bei jedem Systemstart mit einer systemd-Einheit einhängen."
+ ],
+ "vzdumpCalloutTitle": "Hinweis zu vzdump-Sicherungen in Proxmox",
+ "vzdumpCalloutBody": "Proxmox-vzdump-Archive sind Vollsicherungen, keine inkrementellen Sicherungen. Ihre tatsächliche Größe hängt von den enthaltenen Daten und der Komprimierung ab, nicht allein von der Kapazität des virtuellen Datenträgers. Belegt ein Archiv 30 GB, benötigen fünf aufbewahrte Archive ungefähr 150 GB. Legen Sie eine Aufbewahrungsrichtlinie fest, damit der Cloud-Speicher nicht vollläuft."
+ },
+ "createDir": {
+ "heading": "1. Verzeichnis auf dem Host erstellen und als Sicherungsspeicher registrieren",
+ "body": "Verbinden Sie sich per SSH mit dem Host oder öffnen Sie die Proxmox-Shell. Erstellen Sie unter /mnt/ ein Verzeichnis als Einhängepunkt. Wählen Sie einen Namen, der den Anbieter erkennen lässt:",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "Im Proxmox Web UI: Datacenter → Storage → Add → Directory.",
+ "image1Alt": "Hinzufügen von neuem Speicher in Proxmox",
+ "configIntro": "Konfigurieren Sie es so:",
+ "configItems": [
+ "ID: gdrive (oder was auch immer Sie für den Verzeichnisnamen verwendet haben)",
+ "Verzeichnis:/mnt/gdrive",
+ "Inhalt: Wählen Sie VZDump-Sicherungsdatei."
+ ],
+ "image2Alt": "Konfiguration eines neuen Speichers in Proxmox",
+ "afterConfig": "Klicken Sie auf Hinzufügen:",
+ "image3Alt": "Neuer Speicher in Proxmox hinzugefügt",
+ "afterAdd": "Das Verzeichnis ist nun als Proxmox-Speicher registriert. Es ist noch leer, da der Cloud-Speicher bisher nicht eingehängt wurde."
+ },
+ "installRclone": {
+ "heading": "2. rclone installieren und konfigurieren",
+ "body": "rclone verbindet sich mit Cloud-Speicheranbietern. Installieren Sie es aus den Debian-Paketquellen:",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Wenn Sie ein neueres rclone benötigen",
+ "newerCalloutBody": "Wenn Sie eine neuere Version als die in Debian benötigen, verwenden Sie den offiziellen Installer:",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Browserbasierte Authentifizierung über SSH-Tunnel",
+ "tunnelBody": "Bei Anbietern mit Browser-Anmeldung fehlt auf dem Proxmox-Host meist ein Browser. Folgen Sie der rclone-Anleitung zur Ferneinrichtung: Nutzen Sie den Browser Ihres Laptops und leiten Sie dessen lokale Rückrufverbindung per SSH an rclone auf dem Host weiter.",
+ "tunnelFrom": "Auf Ihrem Laptop, wobei Sie ip_proxmox durch die Proxmox-IP ersetzen:",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "Diese SSH-Sitzung öffnet den lokalen Port 53682 auf Ihrem Laptop und leitet Verbindungen an denselben Port des Proxmox-Hosts weiter. Lassen Sie sie während der rclone-Konfiguration geöffnet.",
+ "runHeading": "2.2 rclone config ausführen",
+ "runBody": "Führen Sie in der gerade geöffneten SSH-Sitzung Folgendes aus:",
+ "runCode": "rclone config",
+ "runAfter": "Folgen Sie den Anweisungen zum Hinzufügen einer neuen Remote-Konfiguration. Die Antworten hängen vom Anbieter ab; beachten Sie die rclone-Anbieterdokumentation für Google Drive, Mega, Dropbox, OneDrive usw. Entscheidend ist die Frage zur Authentifizierung:",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Antworten Sie mit Y. rclone zeigt eine lokale URL an. Öffnen Sie sie im Browser Ihres Laptops; der SSH-Tunnel leitet die Verbindung weiter. Erlauben Sie rclone den Zugriff beim Cloud-Anbieter, um die Konfiguration abzuschließen.",
+ "nameRemote": "Wählen Sie als Namen der Remote-Konfiguration einen zum Verzeichnis passenden Namen, etwa gdrive."
+ },
+ "mount": {
+ "heading": "3. Cloud-Ordner einhängen",
+ "body": "Erstellen Sie in Ihrem Cloud-Speicher einen Ordner für die Sicherungen, zum Beispiel PBC für Proxmox Backup Cloud.",
+ "mountIntro": "Hängen Sie ihn im Verzeichnis auf dem Host ein:",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC - der Ordner in Ihrer Cloud.",
+ "/mnt/gdrive - das Hostverzeichnis, das Sie als Datenspeicher registriert haben."
+ ],
+ "mountFootnote": "Dieser Befehl läuft im Vordergrund. Lassen Sie ihn zum Testen in einem Terminal laufen und erstellen Sie eine Sicherung. Für das automatische Einhängen bei jedem Systemstart richten Sie anschließend eine systemd-Einheit ein."
+ },
+ "systemd": {
+ "heading": "4. Automatisch bei jedem Systemstart einhängen (systemd)",
+ "body": "Eine systemd-Einheit bietet mehr Kontrolle als crontab @reboot: Sie kann den Netzwerkstart abwarten, bei Fehlern neu starten und Protokolle über journalctl bereitstellen.",
+ "createIntro": "Erstellen Sie die Unit-Datei:",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Einfügen:",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Passen Sie gdrive:/PBC und /mnt/gdrive an, falls Sie andere Namen verwenden. Speichern Sie, verlassen Sie den Editor mit Ctrl+X und aktivieren und starten Sie den Dienst:",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Überprüfung:",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "Die Unit fordert nach 10 Sekunden einen Neustart an, wenn der rclone-Prozess mit einem Fehler endet. Das repariert keine abgelaufenen Zugangsdaten und garantiert keine Behebung aller Netzwerk- oder Anbieterfehler. Prüfen Sie /var/log/rclone-gdrive.log und journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Warum --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Mit Schreibcache landen Schreibzugriffe wie fwrite zunächst im lokalen Datenträgercache. rclone lädt eine Datei nach dem Schließen und Ablauf der Schreibverzögerung hoch. Halten Sie genügend lokalen Platz für laufende Sicherungen frei und prüfen Sie den abgeschlossenen Upload, bevor Sie die Cloud-Kopie als verfügbar ansehen."
+ },
+ "configureBackup": {
+ "heading": "5. Cloud-Speicher als Sicherungsziel einrichten",
+ "body": "Wählen Sie in Proxmox bei einer geplanten oder manuell gestarteten Sicherung den registrierten Speicher als Ziel:",
+ "image5Alt": "Backup-Ziel in Proxmox auswählen",
+ "after": "Warten Sie nach Abschluss von vzdump auf das Ende des rclone-Uploads im Hintergrund und prüfen Sie das Archiv in der Oberfläche des Cloud-Anbieters:",
+ "image6Alt": "Backup-Datei im Cloud Storage"
+ },
+ "retention": {
+ "heading": "6. Aufbewahrung — Cloud-Speicherplatz im Blick behalten",
+ "body": "Proxmox-vzdump-Archive sind Vollsicherungen, keine inkrementellen Sicherungen. Ihre tatsächliche Größe hängt von den enthaltenen Daten und der Komprimierung ab, nicht allein von der Kapazität des virtuellen Datenträgers. Belegt ein Archiv 30 GB, benötigen fünf aufbewahrte Archive ungefähr 150 GB. Legen Sie eine Aufbewahrungsrichtlinie fest, damit der Cloud-Speicher nicht vollläuft.",
+ "uiPath": "In der Proxmox-Oberfläche: Rechenzentrum → Sicherung → [Ihr Auftrag] → Aufbewahrung:",
+ "image7Alt": "Aufbewahrungseinstellungen für Sicherungen in Proxmox",
+ "starterIntro": "Mögliche Ausgangswerte für eine Heim- oder Testumgebung:",
+ "starterItems": [
+ "Die letzten 5 täglichen Sicherungen aufbewahren",
+ "Die letzten 4 wöchentlichen Sicherungen aufbewahren",
+ "Die letzten 6 monatlichen Sicherungen aufbewahren"
+ ],
+ "adjust": "Passen Sie die Werte an Ihr Cloud-Kontingent und die Änderungshäufigkeit der VMs an."
+ },
+ "troubleshoot": {
+ "heading": "Fehlerbehebung",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: Das Verzeichnis ist bereits eingehängt, möglicherweise durch eine andere rclone-Instanz. Prüfen Sie, dass keine Sicherung läuft, bevor Sie den alten Mount mit fusermount -uz /mnt/gdrive entfernen. Starten Sie danach die systemd-Einheit neu.",
+ "Die Sicherung ist sehr langsam: Prüfen Sie --vfs-cache-mode writes in der Zeile ExecStart, die Leistung des lokalen Caches, die Upload-Bandbreite und Anbieterlimits. Der Upload kann nach Abschluss von vzdump weiterlaufen.",
+ "Die Sicherung meldet No space left on device: Prüfen Sie lokalen Cache-Platz und Cloud-Kontingent. Der Cache liegt meist unter ~/.cache/rclone/. Wählen Sie bei Platzmangel etwa --cache-dir /var/cache/rclone auf einem Dateisystem mit genügend Platz. Ein anderer Pfad auf demselben vollen Dateisystem hilft nicht.",
+ "Das rclone-Anmeldetoken ist abgelaufen: Verbinden Sie sich erneut per SSH mit dem Tunnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) und führen Sie rclone config reconnect gdrive: aus, um die Anmeldung zu erneuern.",
+ "Sicherungen sind in der Cloud vorhanden, lassen sich aber nicht korrekt wiederherstellen: Nutzen Sie Cloud-Speicher nicht als einziges Sicherungsziel. Ergänzen Sie ihn durch lokales PBS oder vzdump auf einem anderen Datenträger."
+ ]
+ }
+}
diff --git a/web/messages/de/guides/index.json b/web/messages/de/guides/index.json
new file mode 100644
index 00000000..ae4c53ea
--- /dev/null
+++ b/web/messages/de/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Proxmox-VE-Anleitungen — Coral TPU, NVIDIA, Kodi in LXC, Samba, Cloud-Backups | ProxMenux",
+ "description": "Ausführliche Proxmox-VE-Anleitungen: Kodi in einem LXC-Container mit GPU-Beschleunigung, NVIDIA-Treiber auf PVE 9, USB-Laufwerke per Samba im Container und vzdump-Sicherungen in Google Drive, Mega, Dropbox oder OneDrive. Dazu ausgewählte Community-Ressourcen, Glossar und Befehlsreferenz.",
+ "ogTitle": "Proxmox-VE-Anleitungen — Coral TPU, NVIDIA, Kodi in LXC, Samba und Cloud-Backups",
+ "ogDescription": "Ausführliche Proxmox-VE-Anleitungen zu GPU-Durchreichung, Kodi als LXC-Mediacenter, per Samba freigegebenen USB-Laufwerken und Cloud-Backups mit rclone sowie ausgewählte Community-Ressourcen.",
+ "twitterTitle": "Proxmox-VE-Anleitungen | ProxMenux",
+ "twitterDescription": "Ausführliche Proxmox-VE-Anleitungen zu GPUs, Kodi in LXC, Samba, Cloud-Backups und weiteren Themen.",
+ "ogImageAlt": "ProxMenux-Anleitungen — ausführliche Tutorials für Proxmox VE"
+ },
+ "header": {
+ "title": "ProxMenux-Anleitungen",
+ "tagline": "Ausführliche Anleitungen, Kurzreferenzen und ausgewählte Community-Ressourcen, um Proxmox VE optimal zu nutzen."
+ },
+ "inDepth": {
+ "heading": "Ausführliche Anleitungen",
+ "intro": "Ausführliche Anleitungen für konkrete Proxmox-Aufgaben. Jede beschreibt die manuellen Schritte eines automatisierten ProxMenux-Ablaufs, damit Sie jeden Schritt nachvollziehen können.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Kodi in LXC mit GPU-Beschleunigung installieren und an Monitor oder Fernseher anschließen",
+ "description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
+ "description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "USB-Festplatte oder -Stick in LXC einbinden und per Samba im Netzwerk freigeben",
+ "description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "NVIDIA Grafikkartentreiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
+ "description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container."
+ }
+ ]
+ },
+ "references": {
+ "heading": "ProxMenux-Referenzen",
+ "intro": "Schnellreferenzmaterial aus der ProxMenux-Dokumentation selbst.",
+ "cards": {
+ "glossary": {
+ "title": "Glossar",
+ "description": "Mehr als 60 Definitionen technischer Begriffe aus ProxMenux: Proxmox, Virtualisierung, Speicher, Netzwerk und Linux. Schnell nachschlagen mit Kategorien und Querverweisen."
+ },
+ "helpInfo": {
+ "title": "Hilfe und Info - Befehlskatalog",
+ "description": "Ausgewählte Linux- und Proxmox-Befehle, nach Themen geordnet und mit Kopierfunktion. Entspricht der Befehlsreferenz im ProxMenux-Menü."
+ },
+ "linuxResources": {
+ "title": "Linux Ressourcen",
+ "description": "Externe Ressourcen zum Lernen der Linux-Kommandozeile, zu Sicherheitspraktiken, Überwachungswerkzeugen und ZFS — als Ergänzung zum ProxMenux-Befehlskatalog."
+ },
+ "externalRepos": {
+ "title": "Externe Repositories",
+ "description": "Skript-Repositories von Drittanbietern, die als alternative Menüoptionen in ProxMenux eingebunden sind, etwa community-scripts/ProxmoxVE."
+ }
+ }
+ },
+ "official": {
+ "heading": "Offizielle Proxmox Ressourcen",
+ "intro": "Dokumentation direkt von Proxmox Server Solutions — die maßgebliche Referenz für die Plattform.",
+ "cards": {
+ "pveDocs": {
+ "title": "Proxmox VE Dokumentation",
+ "description": "Das offizielle Administrationshandbuch mit umfassenden Informationen zu Installation, Netzwerk, Speicher, Clustern, Hochverfügbarkeit und API."
+ },
+ "pbsDocs": {
+ "title": "Proxmox-Backup-Server-Dokumentation",
+ "description": "Dokumentation für PBS — inkrementelle, deduplizierte, verschlüsselte Backups für Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Offizielles Videotraining",
+ "description": "Offizielle Videoanleitungen und Schulungen von Proxmox."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Offizielles Community-Forum für Fragen, Fehlerbehebung und Erfahrungsaustausch. Wird von den Projektbetreuern mitverfolgt."
+ }
+ }
+ },
+ "community": {
+ "heading": "Gemeinschaftsprojekte & Ressourcen",
+ "intro": "Open-Source-Projekte und ausgewählte Listen aus der Proxmox-Community. Unabhängig von Proxmox Server Solutions und ProxMenux; hier aufgeführt, weil sie sich als nützlich erwiesen haben.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "Von der Community gepflegter Katalog von Skripten zur einfachen Bereitstellung von LXC-Containern und VMs sowie für PVE-Anpassungen, etwa für Home Assistant, Plex oder Frigate. Führt die Idee von ttecks Helper-Scripts fort."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (ausgewählte Ressourcen)",
+ "description": "Umfangreiche, von der Community zusammengestellte Sammlung von Proxmox-VE-Ressourcen: Werkzeuge, Bibliotheken, Integrationen, Blogs und Videos. Ein guter Ausgangspunkt, um mehr zu entdecken."
+ }
+ },
+ "suggestRich": "Kennen Sie eine gute Ressource, die hier fehlt? Erstellen Sie ein Issue oder einen PR auf GitHub. Diese Liste soll eine gezielte Auswahl bleiben und nicht alles auflisten."
+ },
+ "discussion": {
+ "heading": "Gemeinschaftsdiskussion",
+ "intro": "Wo Leute über Proxmox und ProxMenux sprechen.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "GitHub Discussions für ProxMenux: Funktionsideen, Fragen und Antworten sowie Einblicke in eigene Installationen. Der passende Ort für Themen zu Menü, Monitor und Dokumentation."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Offizielles Proxmox-Forum (auch oben verlinkt). Der richtige Ort für eingehende Fehlersuche und konfigurationsspezifische Probleme."
+ },
+ "reddit": {
+ "title": "r/Proxmox auf Reddit",
+ "description": "Aktives Subreddit für Diskussionen, Tipps und technische Hilfe. Niedrigere Einstiegshürde als im Forum und oft schnellere Antworten auf allgemeine Fragen."
+ }
+ }
+ }
+}
diff --git a/web/messages/de/guides/kodi-lxc.json b/web/messages/de/guides/kodi-lxc.json
new file mode 100644
index 00000000..494499b4
--- /dev/null
+++ b/web/messages/de/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Kodi in LXC mit GPU-Beschleunigung installieren | ProxMenux-Anleitungen",
+ "description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen.",
+ "ogTitle": "Kodi in LXC mit GPU-Beschleunigung installieren",
+ "ogDescription": "Kodi in einem privilegierten LXC-Container unter Proxmox VE mit Zugriff auf iGPU und USB-Eingabegeräte des Hosts ausführen und den Server zum Mediacenter machen."
+ },
+ "header": {
+ "title": "Kodi in LXC mit GPU-Beschleunigung installieren und an Monitor oder Fernseher anschließen",
+ "description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen.",
+ "section": "Leitfäden"
+ },
+ "intro": {
+ "calloutTitle": "Hinweis",
+ "calloutBody": "Diese Anleitung verwendet ein externes Community-Skript zur Einrichtung des Kodi-LXC-Containers. Den Zugriff auf die iGPU des Hosts können Sie auch mit ProxMenux einrichten: GPUs und Coral-TPU → GPU zu LXC hinzufügen konfiguriert /dev/dri und installiert die Treiber im Container. Das folgende Skript richtet zusätzlich Kodi und den Autostart auf tty7 ein. Verwenden Sie es für ein fertig eingerichtetes LXC-Mediacenter; den ProxMenux-Ablauf nutzen Sie, wenn Sie nur GPU-Zugriff für einen selbst eingerichteten Container benötigen.",
+ "credit": "Das ursprüngliche Kodi-LXC-Skript stammt von mrrudy.",
+ "stepsTitle": "Was Sie einrichten",
+ "steps": [
+ "Mit dem Skript einen privilegierten LXC-Container mit Kodi erstellen.",
+ "USB-Tastatur, Maus oder Controller im Container zugänglich machen.",
+ "(Optional) Kodi aus den im Container eingerichteten Paketquellen aktualisieren."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Erstellen Sie den Kodi LXC",
+ "body": "Wählen Sie für diese Anleitung Privileged in den erweiterten Skripteinstellungen. Standardmäßig erstellt das Skript unprivilegierte Container, die passende Geräteberechtigungen und ID-Zuordnungen benötigen. Es konfiguriert GPU-Zugriff, Kodi und den Autostart auf tty7:",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "Die Installation dauert etwas. Sobald Kodi auf tty7 startet, schließen Sie Monitor oder Fernseher an den HDMI-/DisplayPort-Ausgang des Hosts an. Dort sollte die Kodi-Oberfläche erscheinen."
+ },
+ "addInput": {
+ "heading": "2. Tastatur, Maus oder USB-Controller hinzufügen",
+ "body": "Eingabegeräte finden Sie auf dem Host unter /dev/input/. Ermitteln Sie deren Major-Nummer:",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Liste der Eingabegeräte",
+ "afterList": "Verwenden Sie bei Zeichengeräten die Major-Nummer vor dem Komma, im Beispiel 13. Stoppen Sie den Kodi-LXC-Container und bearbeiten Sie seine Konfiguration. Ersetzen Sie '<'CTID'>' durch seine ID, etwa 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Fügen Sie Folgendes hinzu und passen Sie 13 an die Nummer auf Ihrem Host an:",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "LXC Konfiguration",
+ "save": "Speichern Sie die Datei, beenden Sie den Editor mit Ctrl+X und starten Sie nur den Container neu. Ein Neustart des Proxmox-Hosts ist nicht nötig:",
+ "restartCode": "pct reboot CTID",
+ "plug": "Schließen Sie Tastatur, Maus oder Controller an. Kodi sollte nun darauf reagieren."
+ },
+ "updateKodi": {
+ "heading": "3. (Optional) Kodi aus den eingerichteten Paketquellen aktualisieren",
+ "calloutTitle": "Wichtig",
+ "calloutBody": "Das team-xbmc-PPA ist nur für Ubuntu vorgesehen und wird laut Kodi derzeit nicht gepflegt. Ein fehlendes add-apt-repository identifiziert nicht die Distribution. Prüfen Sie cat /etc/os-release auf NAME=\"Ubuntu\"; fügen Sie Debian keine Ubuntu-PPAs hinzu. Die folgenden Befehle aktualisieren Pakete aus den eingerichteten Paketquellen des Containers.",
+ "body": "Im Container (pct enter '<'CTID'>'):",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Starten Sie den Container nach dem Update neu. Kodi verwendet die Version aus den eingerichteten Paketquellen; diese kann von der neuesten Projektversion abweichen."
+ },
+ "screenshots": {
+ "heading": "Bildschirmfotos",
+ "image1Alt": "Kodi-Schnittstelle 1",
+ "image2Alt": "Kodi-Schnittstelle 2"
+ },
+ "troubleshoot": {
+ "heading": "Fehlerbehebung",
+ "items": [
+ "Der Kodi-LXC-Container startet, aber der Fernseher bleibt leer: Möglicherweise fehlt der Zugriff auf die iGPU. Prüfen Sie im Container ls /dev/dri; dort sollten card0 und renderD128 erscheinen. Falls das Verzeichnis leer ist, prüfen Sie die GPU-Durchreichung oder verwenden Sie in ProxMenux GPU zu LXC hinzufügen.",
+ "Tastatur oder Maus nach Neustart nicht erkannt: Prüfen Sie, ob /dev/input eingehängt ist und Kodi Leserechte auf die Geräte hat. Führen Sie ls -l /dev/input auf Host und Container aus und prüfen Sie die Regel lxc.cgroup2.devices.allow.",
+ "Hardwarebeschleunigte Wiedergabe nutzt CPU statt GPU: Installieren oder aktualisieren Sie die VA-API-Treiber im Container: intel-media-va-driver für neuere Intel-iGPUs, i965-va-driver für ältere und mesa-va-drivers für AMD.",
+ "add-apt-repository: command not found: Der Befehl ist nicht installiert; das beweist nicht, dass der Container Debian verwendet. Prüfen Sie Distribution und verfügbare Pakete. Verwenden Sie unter Debian die Debian-Pakete für Kodi und kein Ubuntu-PPA."
+ ]
+ },
+ "further": {
+ "heading": "Weiterführende Informationen",
+ "konpatRich": "Konpats Blogbeitrag mit weiterem Hintergrund zur Intel-iGPU-Durchreichung an LXC."
+ }
+}
diff --git a/web/messages/de/guides/lxc-samba.json b/web/messages/de/guides/lxc-samba.json
new file mode 100644
index 00000000..b6470990
--- /dev/null
+++ b/web/messages/de/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "USB-Laufwerk in LXC einbinden und per Samba freigeben | ProxMenux",
+ "description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben.",
+ "ogTitle": "USB-Laufwerk in LXC einbinden und per Samba freigeben",
+ "ogDescription": "USB-Laufwerk einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und den Inhalt im LAN freigeben."
+ },
+ "header": {
+ "title": "USB-Festplatte oder -Stick in LXC einbinden und per Samba im Netzwerk freigeben",
+ "description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben.",
+ "section": "Leitfäden"
+ },
+ "recommended": {
+ "calloutTitle": "Empfohlen",
+ "calloutIntro": "ProxMenux bietet beide Teile dieses Ablaufs als geführte Menüs an:",
+ "items": [
+ "Datenträgerverwaltung → Physischen Datenträger formatieren/löschen für die Formatierung.",
+ "Speicher und Freigaben → LXC-Netzwerkfreigaben → Samba-Server in LXC für die Installation im privilegierten Container und die Samba-Konfiguration."
+ ],
+ "calloutOutro": "Die geführten Abläufe berücksichtigen die Berechtigungen unprivilegierter Container und bieten Freigabeprofile für Lesen/Schreiben, Nur-Lesen oder eigene Einstellungen sowie die Gruppe sharedfiles. Diese Anleitung beschreibt die manuellen Schritte, damit Sie sie nachvollziehen oder selbst konfigurieren können."
+ },
+ "intro": {
+ "body": "Ein zusätzliches USB-Laufwerk kann für einen Proxmox-Host hilfreich sein, besonders bei Mini-PCs mit wenig internem Erweiterungsplatz. Diese Anleitung erklärt:",
+ "stepsTitle": "Was Sie einrichten",
+ "steps": [
+ "Ein USB-Laufwerk einem privilegierten LXC-Container zugänglich machen.",
+ "Installieren von Samba im Container.",
+ "Teilen der Festplatteninhalte über das LAN."
+ ],
+ "useCasesTitle": "Anwendungsfälle",
+ "useCases": [
+ "Torrent-Dateien speichern und im Netzwerk bereitstellen.",
+ "Speicher für einen Medienserver wie Plex, Jellyfin oder Emby bereitstellen.",
+ "Dokumente speichern, die Paperless automatisch einliest.",
+ "Generischer NAS-Speicher für das Heimnetzwerk."
+ ],
+ "privilegedCalloutTitle": "Privilegierter Container für diese Anleitung",
+ "privilegedCalloutBody": "Diese Anleitung verwendet einen privilegierten LXC-Container mit einem Blockgerät als mp0. Bei unprivilegierten Containern können Sie stattdessen das Dateisystem auf dem Host einhängen und sein Verzeichnis per Bind-Mount mit passenden ID-Zuordnungen und Berechtigungen durchreichen. Siehe Speicher und Freigaben → LXC-Einhängepunkte in ProxMenux."
+ },
+ "attach": {
+ "heading": "1. USB-Laufwerk in LXC einbinden",
+ "identifyHeading": "1.1 Identifizieren Sie das Gerät",
+ "identifyBody": "Vergleichen Sie die Datenträgerliste vor und nach dem Anschließen des USB-Laufwerks. Das neue Gerät ist das gesuchte Laufwerk.",
+ "beforeLabel": "Vorher:",
+ "afterLabel": "Nachher:",
+ "imageBeforeAlt": "Festplattenliste vor dem Hinzufügen von USB-Laufwerk",
+ "imageAfterAlt": "Festplattenliste nach dem Hinzufügen von USB-Laufwerk",
+ "lsblkBody": "Mit lsblk -o NAME,SIZE,MODEL,SERIAL listen Sie Blockgeräte mit Modell und Seriennummer auf.",
+ "stableCalloutTitle": "Wichtig — Verwenden Sie eine stabile Kennung",
+ "stableCalloutBody": "Der Gerätename /dev/sdb1 kann sich nach einem Neustart ändern, besonders bei mehreren USB-Laufwerken. Ermitteln Sie die dauerhafte Kennung:",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Verwenden Sie in der LXC-Konfiguration den Eintrag /dev/disk/by-id/usb-... der gewünschten Partition statt /dev/sdb1. Wählen Sie die Partition, nicht den ganzen Datenträger. Sie bleibt so bei geänderter Geräteerkennung identifizierbar.",
+ "formatHeading": "1.2 Formatieren Sie die Festplatte",
+ "formatBody": "ext4 eignet sich für Linux-Freigaben: Es unterscheidet Groß-/Kleinschreibung und unterstützt POSIX-ACLs sowie große Dateien. Das Formatieren zerstört den Inhalt des vorhandenen Dateisystems. Prüfen Sie die Partition und führen Sie den Befehl auf dem Proxmox-Host aus:",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Ersetzen Sie /dev/sdb1 durch die tatsächliche Partition oder deren dauerhaften Pfad /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Einhängepunkt im LXC-Container erstellen",
+ "mkdirBody": "Erstellen Sie im LXC das Verzeichnis, in dem die Festplatte angezeigt wird (jeder Name funktioniert):",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Gerät in LXC einbinden",
+ "wireBody": "Bearbeiten Sie auf dem Proxmox-Host die Containerkonfiguration. Ersetzen Sie '<'CTID'>' durch die Container-ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Fügen Sie diese Zeile hinzu:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Alternativ können Sie den kürzeren Eintrag mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0 verwenden, wenn Sie das Risiko einer Änderung des Gerätepfads akzeptieren.",
+ "wireBackupNote": "Das Beispiel setzt backup=0. Inhalte von Geräte- und Bind-Mounts werden nicht in Container-Sicherungen mit vzdump aufgenommen. Sichern Sie die Daten des externen Laufwerks separat.",
+ "restartHeading": "1.5 Starten Sie den LXC neu und setzen Sie Berechtigungen",
+ "restartBody": "Starten Sie den CT neu, um den Mount Point anzuwenden:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Erstellen Sie im LXC-Container zuerst das Freigabekonto, bevor Sie ihm das Verzeichnis zuweisen, und setzen Sie dann die Berechtigungen:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Notiz",
+ "permsNote": "Ersetzen Sie proxmenux durch Ihren Kontonamen. Der Modus 770 erlaubt Eigentümer und Gruppe den Zugriff und sperrt andere aus. Er ist restriktiver als chmod -R 777. Das Konto wird hier erstellt und in Schritt 2.2 bei Samba registriert."
+ },
+ "samba": {
+ "heading": "2. Installieren Sie Samba",
+ "installHeading": "2.1 Installieren Sie das Paket im LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Bestätigen Sie, dass der Dienst läuft:",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Freigabekonto prüfen",
+ "userBody": "Das Systemkonto proxmenux wurde in Schritt 1.5 ohne Anmeldeshell erstellt. Prüfen Sie es vor dem Setzen des Samba-Passworts und verwenden Sie durchgehend Ihren gewählten Namen:",
+ "userCode": "id proxmenux",
+ "passwordBody": "Setzen Sie das Samba-Passwort. Es ist vom Systempasswort getrennt, da Samba einen eigenen Anmeldedatenspeicher führt:",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Eigentümer und ACLs festlegen",
+ "aclBody": "Wenn chown aus Schritt 1.5 genügt, sind die Dateirechte eingerichtet. Für mehrere Benutzer mit unterschiedlichen Rechten auf denselben Pfad können Sie ACLs verwenden:",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Samba-Freigabe konfigurieren",
+ "editHeading": "3.1 Bearbeiten smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Fügen Sie am Dateiende eine Freigabedefinition hinzu:",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Notiz",
+ "validUsersNote": "Die valid users = proxmenux-Linie beschränkt den Zugriff auf diesen einzelnen Samba-Benutzer. Verwenden Sie für den gruppenbasierten Zugriff valid users = @samba_users, nachdem Sie den/die Benutzer zu einer Gruppe namens samba_users hinzugefügt haben.",
+ "reloadHeading": "3.2 Samba neu laden",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Zugang prüfen",
+ "body": "Suchen Sie von jedem LAN-Client zu \\\\'<'CT_IP'>' (Windows) oder smb://'<'CT_IP'>' (macOS / Linux-Dateimanager). Authentifizierung mit dem Samba-Benutzer (proxmenux) und dem Passwort, das Sie mit smbpasswd festgelegt haben.",
+ "image1Alt": "Samba-Serverzugriff von einem Client",
+ "image2Alt": "Samba-Authentifizierungsaufforderung",
+ "usageBody": "Sie können die Freigabe im Container und über das Netzwerk verwenden:",
+ "image3Alt": "USB-Laufwerk über die Freigabe nutzen"
+ },
+ "troubleshoot": {
+ "heading": "Fehlerbehebung",
+ "items": [
+ "pct reboot meldet „device not found“: Prüfen Sie, ob der Gerätepfad in mp0 auf dem Host existiert. Kontrollieren Sie ls -l /dev/disk/by-id/ und korrigieren Sie den Pfad.",
+ "Der Container startet, aber /mnt/lxc_USB ist leer: Der Datenträger ist möglicherweise nicht eingehängt oder sein Dateisystem ist leer. Prüfen Sie auf dem Host mit pct exec '<'CTID'>' -- mount | grep lxc_USB. Fehlt der Mount, prüfen Sie Konfiguration, Gerätepfad und Startfehler.",
+ "Die Samba-Anmeldung klappt, aber Schreiben meldet „Permission denied“: Prüfen Sie Linux-Dateirechte und Schreibeinstellungen der Freigabe. Kontrollieren Sie chown und setfacl in den Abschnitten 1.5 und 2.3.",
+ "Die Freigabe wird nicht gefunden, aber smb://'<'ip'>'/lxc_usb funktioniert: Die ältere NetBIOS-Erkennung nutzt nmbd. Modernes Windows nutzt WS-Discovery. Installieren Sie unter Debian 12/13 apt-get install -y wsdd und prüfen Sie Dienst und Firewall. Nur nmbd zu aktivieren stellt kein WS-Discovery bereit.",
+ "Weiteren Benutzer zur Freigabe hinzufügen: Erstellen Sie das Konto mit adduser, registrieren Sie es mit smbpasswd -a und ergänzen Sie die kommaseparierte Liste valid users =. Vergeben Sie auch die nötigen Dateirechte oder ACLs."
+ ]
+ }
+}
diff --git a/web/messages/de/guides/nvidia-manual.json b/web/messages/de/guides/nvidia-manual.json
new file mode 100644
index 00000000..29d9b7de
--- /dev/null
+++ b/web/messages/de/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "NVIDIA Treiber auf Proxmox VE 9 installieren (manuelles Verfahren) | ProxMenux Guides",
+ "description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
+ "ogTitle": "NVIDIA-Treiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
+ "ogDescription": "NVIDIA-Treiber auf PVE 9 manuell einrichten: Hosttreiber, Persistenzdienst, optionaler NVENC-Patch und GPU-Zugriff für einzelne LXC-Container."
+ },
+ "header": {
+ "title": "NVIDIA Grafikkartentreiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
+ "description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
+ "section": "Leitfäden"
+ },
+ "intro": {
+ "calloutTitle": "Notiz",
+ "calloutBody": "Diese Anleitung beschreibt die manuellen Schritte als Referenz. Für die meisten Nutzer empfiehlt sich der ProxMenux-Assistent: NVIDIA-Treiber installieren (Host) unter GPUs und Coral-TPU sowie GPU zu LXC hinzufügen oder GPU zu VM hinzufügen für die jeweilige Gastkonfiguration. Der Assistent erledigt diese Schritte mit zusätzlichen Prüfungen für Kernel-Header, IOMMU und VFIO-Konflikte. Die manuelle Anleitung hilft, einzelne Befehle zu verstehen oder abweichende Konfigurationen einzurichten.",
+ "targetNote": "Gezielt auf Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) und PVE 8 (Bookworm) sind nicht mehr abgedeckt.",
+ "stepsTitle": "Was Sie einrichten",
+ "steps": [
+ "Proxmox-VE-9-Host vorbereiten: nouveau sperren, Paketquellen und Voraussetzungen prüfen.",
+ "Installieren Sie den NVIDIA Treiber auf dem Host.",
+ "Installieren Sie den NVIDIA Persistenzdienst.",
+ "Optional: Mit dem keylase-Patch das Limit gleichzeitiger NVENC-Sitzungen bei Consumer-GPUs aufheben.",
+ "Die GPU einem oder mehreren LXC-Containern zugänglich machen und jeweils die passende Treiberversion installieren."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Bereiten Sie den Host vor (PVE 9)",
+ "blacklistHeading": "1.1 nouveau sperren",
+ "blacklistBody": "Überprüfen Sie, ob der Open-Source-nouveau-Treiber bereits auf der schwarzen Liste steht:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Wenn blacklist nouveau nicht angezeigt wird, fügen Sie es hinzu und starten Sie neu:",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Blacklist-Prüfung",
+ "reposHeading": "1.2 Paketquellen prüfen (PVE 9 / Trixie)",
+ "reposBody": "Post-Install-Werkzeuge haben die Paketquellen möglicherweise schon eingerichtet. Prüfen Sie zuerst die vorhandenen Quellen und überspringen Sie bereits erledigte Änderungen. Vermeiden Sie doppelte Einträge.",
+ "reposOtherwise": "Andernfalls für eine unveränderte PVE-9-Installation ohne Enterprise-Abonnement:",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Stellen Sie sicher, dass es die No-Abonnement-Quelle für Trixie enthält:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "Und die Debian-Quellen bei /etc/apt/sources.list.d/debian.sources:",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Aktualisieren Sie das System und installieren Sie die Voraussetzungen",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Installieren Sie die Build-Tools und Kernel-Header, die zum Kompilieren des Kernel-Moduls NVIDIA erforderlich sind:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Installieren Sie den NVIDIA-Treiber auf dem Host",
+ "pickHeading": "2.1 Wählen Sie eine Treiberversion",
+ "pickBody": "Wählen Sie einen Treiberzweig, der GPU und laufenden Kernel unterstützt. Der neueste Zweig unterstützt ältere GPUs möglicherweise nicht. Prüfen Sie die Produktliste der gewählten NVIDIA-Version:",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Wenn Sie den NVENC-Patch anwenden möchten (Schritt 4), überprüfen Sie zuerst, ob der Patch die von Ihnen gewählte Treiberversion unterstützt: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Hinweis",
+ "pickReplace": "Ersetzen Sie latest.txt in der URL durch die Versionsnummer, um den Installer mit der Endung .run zu finden. Die vollständige Treiberliste steht unter:",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "NVIDIA Treiber herunterladen",
+ "pickVersionNote": "Ersetzen Sie '<'VERSION'>' durch die aktuelle Version (z. B. 580.95.05).",
+ "downloadHeading": "2.2 Download und Ausführen des Installationsprogramms",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Starten Sie den Installer. Die folgende Option kann nouveau bei Bedarf deaktivieren; vor Abschluss kann ein Neustart nötig sein:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "Nachdem der Host zurückgekommen ist, führen Sie das Installationsprogramm erneut aus, um das Kernelmodul zu kompilieren und zu installieren:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 NVIDIA-Module beim Booten laden",
+ "modulesBody": "Bearbeiten Sie die Konfiguration zum Laden der Module:",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Fügen Sie die NVIDIA-Module für Host und LXC hinzu. VFIO-Module sind für VM-Durchreichung vorgesehen und werden hier nicht benötigt:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Speichern Sie die Datei, beenden Sie den Editor mit Ctrl+X und erstellen Sie initramfs neu:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Udev-Regeln erstellen",
+ "udevBody": "Damit beim Laden der Module die Geräteknoten /dev/nvidia* erstellt werden:",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Speichern (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. NVIDIA-Persistenzdienst",
+ "body": "Der Persistenzdienst hält die GPU initialisiert, wenn keine andere Anwendung sie nutzt. Das reduziert wiederholte Initialisierungslatenz und erhält den Initialisierungszustand zwischen Clients:",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Prüfen Sie nach dem Neustart, ob der Treiber geladen ist und der Dienst läuft:",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "Ausgabe von NVIDIA SMI",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "Status des NVIDIA-Persistenzdienstes"
+ },
+ "nvenc": {
+ "heading": "4. Optional: Limit gleichzeitiger NVENC-Sitzungen aufheben",
+ "body": "NVENC-Sitzungslimits hängen von GPU-Modell und Treiberversion ab. Prüfen Sie die NVIDIA-Matrix statt eines pauschalen Limits je Generation. Der keylase-Patch entfernt das Softwarelimit bei unterstützten Treiberversionen und kann Kodierungsaufgaben wie Plex- oder Jellyfin-Transkodierung helfen.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "NVIDIA Patch-Anwendung",
+ "after": "Wenden Sie den Patch nach jedem Treiberupdate erneut an. Das keylase-Repository enthält bei Bedarf auch patch-fbc.sh für FBC, die Erfassung des Bildpuffers."
+ },
+ "lxcSetup": {
+ "heading": "5. GPU-Zugriff für einen LXC-Container einrichten",
+ "identifyHeading": "5.1 Gerätenummern angeben",
+ "identifyBody": "Auf dem Host:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "NVIDIA Geräteliste",
+ "identifyNote": "Notieren Sie die Major-Gerätenummern. Sie können sich je nach System unterscheiden. Typische Werte:",
+ "tableHeaders": {
+ "device": "Gerät",
+ "major": "Typische Major-Nummer"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (variiert)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (mit nvidia geteilt)"
+ }
+ ],
+ "editHeading": "5.2 Bearbeiten der LXC-Konfiguration",
+ "editBody": "Stoppen Sie den Container, falls er läuft. Öffnen Sie seine Konfiguration und ersetzen Sie '<'CTID'>' durch die Container-ID:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Kommentieren Sie nur tatsächlich widersprüchliche Zeilen zu lxc.cgroup2.devices.allow oder /dev/dri aus. Ergänzen Sie die NVIDIA-Gerätekonfiguration und passen Sie die Major-Nummern an die NVIDIA-Geräte an, die ls -l /dev/nv* auf Ihrem Host zeigt:",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "LXC Konfiguration",
+ "editSave": "Speichern (Ctrl+X) und starten Sie den Container.",
+ "installCtHeading": "5.3 Installieren Sie den Treiber im Container",
+ "installCtCalloutTitle": "Wichtig",
+ "installCtCalloutBody": "Dieser Teil wird im Container ausgeführt, nicht auf dem Host.",
+ "installCtBody": "Das Kernelmodul ist bereits auf dem Host geladen. Der Container benötigt nur die Bibliotheken im Benutzerbereich mit derselben Treiberversion:",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Prüfen Sie die Abfragen und installieren Sie hier nur Bibliotheken im Benutzerbereich. Kompilieren oder installieren Sie kein Kernelmodul im LXC-Container.",
+ "installCtImageAlt": "NVIDIA Treiberinstallation",
+ "verifyCtHeading": "5.4 Verifizieren im Container",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI in LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "NVIDIA Geräte in LXC",
+ "verifyCtAfter": "Die GPU sollte aufgelistet sein und ihre Geräteknoten sollten im Containerdateisystem erscheinen.",
+ "workloadHeading": "5.5 GPU-Nutzung mit einer echten Arbeitslast prüfen",
+ "workloadBody": "Aktivieren Sie NVIDIA-Hardwarebeschleunigung in Plex oder Jellyfin, starten Sie eine Videotranskodierung und prüfen Sie im Dashboard oder Protokoll die tatsächliche GPU-Nutzung. Die Treiberinstallation allein aktiviert sie nicht in der Anwendung.",
+ "workloadImage1Alt": "Plex mit NVIDIA GPU",
+ "workloadImage2Alt": "Plex mit NVIDIA GPU - aktive Sitzung",
+ "repeatNote": "Wiederholen Sie Abschnitt 5 für jeden weiteren Container mit GPU-Zugriff. Aktualisieren Sie bei Hosttreiber-Updates auch die Bibliotheken im Benutzerbereich aller Container auf die passende Version."
+ },
+ "docker": {
+ "heading": "6. (Optional) NVIDIA Docker in einem LXC",
+ "body": "Wenn Docker bereits im LXC-Container läuft, installieren Sie dort nvidia-container-toolkit für den GPU-Zugriff seiner Docker-Container. Zuerst muss die GPU im LXC funktionieren. Die folgenden Befehle gelten für Docker als Root-Dienst:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Die Befehle richten das NVIDIA-Repository ein, installieren das Toolkit, konfigurieren die Docker-Laufzeit und starten Docker neu. Geräteberechtigungen und cgroup-Beschränkungen des LXC gelten weiterhin. Prüfen Sie die GPU mit einer Testlast."
+ },
+ "troubleshoot": {
+ "heading": "Fehlerbehebung",
+ "items": [
+ "nvidia-smi funktioniert auf dem Host, meldet im Container aber „No devices found“: Prüfen Sie Gerätemounts, Berechtigungen und passende Treiberbibliotheken. Bei abweichenden Versionen installieren Sie die Hostversion '<'VERSION'>' im Container mit --no-kernel-module.",
+ "Die Treiberkompilierung schlägt fehl: Prüfen Sie das Bauprotokoll. „No precompiled kernel interface was found“ kann nur bedeuten, dass lokal kompiliert werden muss. Installieren Sie zu uname -r passende Header mit apt-get install pve-headers-$(uname -r) oder dem entsprechenden proxmox-headers-Paket.",
+ "NVENC-Sitzungen bleiben begrenzt: Prüfen Sie die Unterstützung des aktiven Treibers durch den Patch. Ein Treiberupdate kann ihn überschreiben. Wenden Sie bei unterstützter Version ./patch.sh aus /opt/nvidia/nvidia-patch erneut an und prüfen Sie die Ausgabe.",
+ "Die GPU reagiert nach Leerlauf nicht mehr: Prüfen Sie systemctl status nvidia-persistenced und aktivieren Sie den Dienst bei Bedarf. Prüfen Sie auch Kernel- und Treiberprotokolle; ein gestoppter Persistenzdienst ist nicht die einzig mögliche Ursache.",
+ "Der Container startet, aber ls /dev/nv* zeigt keine NVIDIA-Geräte: Prüfen Sie Bind-Mounts und Gerätepfade auf dem Host. Ermitteln Sie mit ls -l /dev/nv* die NVIDIA-Major-Nummern und prüfen Sie Regeln für lxc.cgroup2.devices.allow sowie Dateirechte."
+ ]
+ }
+}
diff --git a/web/messages/en/guides/backup-cloud.json b/web/messages/en/guides/backup-cloud.json
index 191dce85..557e5280 100644
--- a/web/messages/en/guides/backup-cloud.json
+++ b/web/messages/en/guides/backup-cloud.json
@@ -12,7 +12,7 @@
},
"intro": {
"pbsCalloutTitle": "Consider Proxmox Backup Server first",
- "pbsCalloutBody": "If you have a second machine (a Pi, an old PC, a NAS), running Proxmox Backup Server on it gives you incremental, deduplicated, encrypted backups — a much better fit for VM backup than rsync-style cloud sync. The cloud-mount approach in this guide is for users who specifically want backups to land in their personal cloud (Google Drive / Mega / OneDrive / Dropbox).",
+ "pbsCalloutBody": "On a second machine that meets its x86-64 requirements, Proxmox Backup Server offers incremental, deduplicated backups and optional client-side encryption. It is designed for VM backups. This guide instead covers mounting personal cloud storage such as Google Drive, Mega, OneDrive or Dropbox as a backup destination.",
"stepsTitle": "What you'll do",
"steps": [
"Create a directory on the Proxmox host and register it as a vzdump-capable datastore.",
@@ -21,7 +21,7 @@
"Make the mount survive reboots (systemd unit — more robust than crontab)."
],
"vzdumpCalloutTitle": "Heads up about Proxmox vzdump backups",
- "vzdumpCalloutBody": "They're not incremental. Every backup contains the full VM disk image (compressed). On a quota-limited cloud, this fills up fast. Plan a retention policy from day one (see end of guide)."
+ "vzdumpCalloutBody": "Proxmox vzdump archives are full backups, not incremental. Their actual size depends on the data included and compression, not just the virtual disk capacity. If one archive occupies 30 GB, five retained archives need roughly 150 GB. Set a retention policy so the cloud does not fill up."
},
"createDir": {
"heading": "1. Create the host directory and register it as a datastore",
@@ -48,10 +48,10 @@
"newerCalloutBody": "If you need a newer rclone than what Debian ships, use the official installer:",
"newerCode": "curl https://rclone.org/install.sh | bash",
"tunnelHeading": "2.1 Browser-based authentication via SSH tunnel",
- "tunnelBody": "rclone's auth flow opens a local web browser. Since the Proxmox host doesn't have a desktop, rclone's remote-setup procedure routes the auth callback through an SSH tunnel back to your laptop's browser.",
+ "tunnelBody": "For providers with browser-based login, the Proxmox host usually has no browser. Follow rclone’s remote-setup procedure: use your laptop’s browser and forward its localhost callback connection through SSH to rclone on the host.",
"tunnelFrom": "From your laptop (replace ip_proxmox with the Proxmox IP):",
"tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
- "tunnelAfter": "This SSH session forwards port 53682 from the Proxmox host to your laptop's localhost. Keep it open during the rclone config below.",
+ "tunnelAfter": "This SSH session opens localhost port 53682 on your laptop and forwards connections to the same port on the Proxmox host. Keep it open during the rclone configuration below.",
"runHeading": "2.2 Run rclone config",
"runBody": "In the SSH session you just opened, run:",
"runCode": "rclone config",
@@ -64,7 +64,7 @@
"heading": "3. Mount the cloud folder",
"body": "Create a folder in your personal cloud to hold the backups. Call it something like PBC (Proxmox Backup Cloud).",
"mountIntro": "Mount it onto the host directory:",
- "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
"mountItems": [
"gdrive:/PBC — the folder in your cloud.",
"/mnt/gdrive — the host directory you registered as a datastore."
@@ -82,20 +82,20 @@
"enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
"verifyIntro": "Verify:",
"verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
- "verifyAfter": "If the service ever fails (provider rate-limits, expired auth token, network blip), it'll auto-restart after 10 seconds. Logs are at /var/log/rclone-gdrive.log and via journalctl -u rclone-gdrive.service -f.",
+ "verifyAfter": "The unit requests a restart after 10 seconds if the rclone process exits with a failure. This does not repair expired credentials or guarantee recovery from every network or provider error. Check /var/log/rclone-gdrive.log and journalctl -u rclone-gdrive.service -f.",
"vfsCalloutTitle": "Why --vfs-cache-mode writes?",
- "vfsCalloutBody": "vzdump streams the backup archive to disk; without VFS write caching, every fwrite blocks on a HTTP round-trip to the cloud — backups get slow and providers may rate-limit. The cache buffers writes locally and flushes them in the background."
+ "vfsCalloutBody": "With write caching, writes such as fwrite go to a local disk cache. rclone uploads a file after it is closed and the write-back delay has passed. Reserve enough local space for active backups, and verify the upload has completed before counting the cloud copy as available."
},
"configureBackup": {
"heading": "5. Configure the backup to land in the cloud",
"body": "In the Proxmox UI, when scheduling a backup or running an ad-hoc one, pick the storage you registered as the target:",
"image5Alt": "Selecting backup destination in Proxmox",
- "after": "After the backup completes, the file appears in your cloud:",
+ "after": "After vzdump finishes, wait for rclone’s background upload to complete and verify the archive in the cloud provider’s interface:",
"image6Alt": "Backup file in cloud storage"
},
"retention": {
"heading": "6. Retention — keep cloud quota under control",
- "body": "Proxmox vzdump backups are full snapshots, not incremental. A 30 GB VM = 30 GB per backup. Without retention, the cloud fills up.",
+ "body": "Proxmox vzdump archives are full backups, not incremental. Their actual size depends on the data included and compression, not just the virtual disk capacity. If one archive occupies 30 GB, five retained archives need roughly 150 GB. Set a retention policy so the cloud does not fill up.",
"uiPath": "In the Proxmox UI: Datacenter → Backup → [your job] → Retention:",
"image7Alt": "Backup retention settings in Proxmox",
"starterIntro": "Reasonable starter values for a home / lab setup:",
@@ -109,10 +109,10 @@
"troubleshoot": {
"heading": "Troubleshooting",
"items": [
- "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: the previous mount didn't unmount cleanly. Force-unmount: fusermount -uz /mnt/gdrive, then restart the systemd unit.",
- "Backup is extremely slow: confirm --vfs-cache-mode writes is on the ExecStart line. Without it, every write blocks on the cloud. Also check your upstream bandwidth — vzdump is bound by it.",
- "Backup fails with ''No space left on device'': the cache directory (~/.cache/rclone/) filled up before the upload caught up. Move it to a larger filesystem with --cache-dir /var/cache/rclone in the systemd unit.",
- "rclone auth token expired (typical on Google Drive after a long idle period): SSH back in with the tunnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) and run rclone config reconnect gdrive: to refresh.",
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: the directory is already mounted, possibly by another rclone instance. Check that no backup is active before removing the old mount with fusermount -uz /mnt/gdrive, then restart the systemd unit.",
+ "Backup is extremely slow: confirm --vfs-cache-mode writes is on the ExecStart line. Check local cache performance, upload bandwidth and provider limits. The background upload can continue after vzdump finishes.",
+ "Backup fails with No space left on device: check local cache space and the provider’s quota. The cache commonly uses ~/.cache/rclone/. If it is full, select a cache path such as --cache-dir /var/cache/rclone on a filesystem with enough space; a different path on the same full filesystem will not help.",
+ "rclone authentication token expired: reconnect over SSH with the tunnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) and run rclone config reconnect gdrive: to renew authorization.",
"Backups land but are corrupted on restore: stop using cloud storage as the only backup destination. Combine with local PBS / vzdump on a different disk for resilience."
]
}
diff --git a/web/messages/en/guides/kodi-lxc.json b/web/messages/en/guides/kodi-lxc.json
index 572963f0..1709a379 100644
--- a/web/messages/en/guides/kodi-lxc.json
+++ b/web/messages/en/guides/kodi-lxc.json
@@ -18,12 +18,12 @@
"steps": [
"Create a privileged LXC running Kodi (script-driven).",
"Wire your USB keyboard, mouse or controller into the CT.",
- "(Optional) Update Kodi to the latest version from the team-xbmc PPA."
+ "(Optional) Update Kodi from the container’s configured repositories."
]
},
"createCt": {
"heading": "1. Create the Kodi LXC",
- "body": "The CT needs to be privileged so it can access USB input devices (keyboards, remotes, controllers). The script handles privilege flags + GPU wiring + Kodi install + autostart on tty7:",
+ "body": "For this recipe, select Privileged in the script’s advanced settings. The script defaults to unprivileged containers, which require appropriate device permissions and ID mapping. It configures GPU access, Kodi and autostart on tty7:",
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
"after": "Be patient — it takes a while to install. When it finishes and Kodi starts on tty7, you can plug your monitor or TV directly into the host's HDMI / DisplayPort output and you should see the Kodi UI."
},
@@ -32,22 +32,22 @@
"body": "Input devices live under /dev/input/ on the host. Identify the major number:",
"listCode": "ls -l /dev/input",
"imageAlt": "Input devices list",
- "afterList": "Take the first column number (in the example: 13). Stop the Kodi LXC, then edit its config (replace '<'CTID'>' with the container ID — for example, 102):",
- "editCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "afterList": "For character devices, use the major number before the comma (in the example: 13). Stop the Kodi LXC and edit its configuration, replacing '<'CTID'>' with its ID, for example 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
"addLines": "Add (adjust 13 to what you saw on your host):",
- "configCode": "lxc.cgroup2.devices.allow = c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
"imageConfigAlt": "LXC configuration",
"save": "Save (Ctrl+X) and restart only the container — no need to reboot the whole Proxmox host:",
- "restartCode": "pct restart '<'CTID'>'",
+ "restartCode": "pct reboot CTID",
"plug": "Plug in the keyboard / mouse / controller and Kodi should respond to it."
},
"updateKodi": {
- "heading": "3. (Optional) Update Kodi to the latest release",
+ "heading": "3. (Optional) Update Kodi from the configured repositories",
"calloutTitle": "Important",
- "calloutBody": "The team-xbmc PPA is Ubuntu-only. If the Kodi LXC is based on a Debian template, add-apt-repository won't be available and the PPA will not work. The mrrudy script defaults to an Ubuntu template, so this should normally apply. To verify: cat /etc/os-release inside the container — look for NAME=\"Ubuntu\".",
+ "calloutBody": "The team-xbmc PPA is Ubuntu-only, and Kodi currently states that it is unmaintained. A missing add-apt-repository command does not identify the distribution. Check cat /etc/os-release and look for NAME=\"Ubuntu\"; do not add Ubuntu PPAs to Debian. The commands below update packages from the container’s configured repositories.",
"body": "Inside the container (pct enter '<'CTID'>'):",
- "code": "sudo add-apt-repository ppa:team-xbmc/ppa\nsudo apt update\nsudo apt install kodi kodi-bin",
- "after": "Restart the container when it finishes; on boot you'll have the latest Kodi."
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Restart the container after the update. Kodi will use the version available from its configured repositories, which may differ from the latest upstream release."
},
"screenshots": {
"heading": "Screenshots",
@@ -58,9 +58,9 @@
"heading": "Troubleshooting",
"items": [
"Kodi LXC starts but nothing on the TV: the CT may not have inherited the iGPU. Confirm with ls /dev/dri inside the container (you should see card0, renderD128). If empty, the GPU passthrough wasn't applied — re-run the script or use the ProxMenux Add GPU to LXC menu.",
- "Keyboard / mouse not detected after restart: the major number for /dev/input changed (rare, but happens after kernel updates). Re-run ls -l /dev/input on the host and update the lxc.cgroup2.devices.allow line.",
+ "Keyboard / mouse not detected after restart: check that /dev/input is mounted and device permissions let Kodi read it. Run ls -l /dev/input on the host and in the container, and check the lxc.cgroup2.devices.allow rule.",
"Hardware-accelerated playback uses CPU instead of GPU: install or update VA-API drivers inside the container (intel-media-va-driver for newer Intel iGPUs, i965-va-driver for older ones, mesa-va-drivers on AMD).",
- "add-apt-repository: command not found: the container is Debian, not Ubuntu. Either use the Debian Kodi packages (older but stable) or recreate the CT from an Ubuntu template."
+ "add-apt-repository: command not found: the command is not installed; this does not prove the container is Debian. Check its distribution and available packages. Use Debian’s Kodi packages on Debian, without adding the Ubuntu PPA."
]
},
"further": {
diff --git a/web/messages/en/guides/lxc-samba.json b/web/messages/en/guides/lxc-samba.json
index d88ac704..d10133e5 100644
--- a/web/messages/en/guides/lxc-samba.json
+++ b/web/messages/en/guides/lxc-samba.json
@@ -34,8 +34,8 @@
"Holding documents that get auto-scanned by Paperless.",
"Generic NAS-style storage for the home network."
],
- "privilegedCalloutTitle": "Privileged container required",
- "privilegedCalloutBody": "Direct device passthrough (mp0 with a host path) needs a privileged LXC. Unprivileged CTs can't bind-mount block devices directly — for those you need bind mounts of host directories instead (see ProxMenux Storage & Share Manager → LXC Mount Points)."
+ "privilegedCalloutTitle": "Privileged container used in this recipe",
+ "privilegedCalloutBody": "This recipe uses a privileged LXC with a block device as mp0. For an unprivileged container, an alternative is to mount the filesystem on the host and bind-mount its directory, with appropriate ID mapping and permissions. See Storage & Share Manager → LXC Mount Points in ProxMenux."
},
"attach": {
"heading": "1. Attach the USB disk to the LXC",
@@ -48,10 +48,10 @@
"lsblkBody": "You can also use lsblk -o NAME,SIZE,MODEL,SERIAL to list every block device with model and serial.",
"stableCalloutTitle": "Important — use a stable identifier",
"stableCalloutBody": "/dev/sdb1 can change between boots if you have multiple USB disks. Find the persistent identifier:",
- "stableCalloutCode": "ls -l /dev/disk/by-id/ | grep -v part",
- "stableCalloutAfter": "Use the /dev/disk/by-id/usb-... path in the LXC config below instead of /dev/sdb1. It survives reboots and re-plugging.",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Use the /dev/disk/by-id/usb-... entry for the intended partition in the LXC config, instead of /dev/sdb1. Choose the partition entry, not the whole-disk entry; it identifies the same partition when device enumeration changes.",
"formatHeading": "1.2 Format the disk",
- "formatBody": "ext4 is a sensible default for Linux-backed shares (case-sensitive, supports POSIX ACLs, no file-size limits). Run from the Proxmox host, not the container:",
+ "formatBody": "ext4 is a practical choice for Linux-backed shares: it is case-sensitive and supports POSIX ACLs and large files. Formatting destroys the existing filesystem’s contents. Run on the Proxmox host, after confirming the partition, not inside the container:",
"formatCode": "mkfs.ext4 /dev/sdb1",
"formatAfter": "Replace /dev/sdb1 with the actual partition device — or with the persistent /dev/disk/by-id/usb-...-part1 path.",
"mkdirHeading": "1.3 Create the mount point inside the LXC",
@@ -59,18 +59,18 @@
"mkdirCode": "mkdir /mnt/lxc_USB",
"wireHeading": "1.4 Wire the device into the LXC",
"wireBody": "On the Proxmox host (not inside the CT), edit the container's config. Replace '<'CTID'>' with the container ID:",
- "wireEditCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
"wireAddLine": "Add this line:",
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
"wireShortForm": "(Or, if you accept the risk of the device path changing, the shorter form: mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0.)",
- "wireBackupNote": "The backup=0 flag excludes this mount point from vzdump backups — usually the right call for large external drives that are the host's target storage rather than its data.",
+ "wireBackupNote": "This example sets backup=0. Device and bind mount contents are not included in container vzdump backups. Arrange a separate backup for the external disk’s data.",
"restartHeading": "1.5 Restart the LXC and set permissions",
"restartBody": "Restart the CT to apply the mount point:",
- "restartCode": "pct restart '<'CTID'>'",
- "permsBody": "Inside the LXC, give the directory permissions appropriate for the user that will own the share:",
- "permsCode": "# Inside the container\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Inside the LXC, create the share account before assigning ownership, then set the directory permissions:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
"permsNoteTitle": "Note",
- "permsNote": "Replace proxmenux with the username you'll create in step 2.2 below. 770 gives full access to the user and group, no access to others — safer than the wide-open chmod -R 777 while still letting the share work."
+ "permsNote": "Replace proxmenux with your chosen account name. The mode 770 allows the owner and group to access the directory, with no access for others; it is more restrictive than chmod -R 777. The account is created here and registered with Samba in step 2.2."
},
"samba": {
"heading": "2. Install Samba",
@@ -78,9 +78,9 @@
"installCode": "apt-get update\napt-get install -y samba",
"confirmBody": "Confirm the service is running:",
"confirmCode": "systemctl status smbd.service",
- "userHeading": "2.2 Create the share user",
- "userBody": "Pick a username (here we use proxmenux; substitute your own). Create it as a system user with no shell:",
- "userCode": "adduser proxmenux",
+ "userHeading": "2.2 Verify the share user",
+ "userBody": "The account proxmenux was created in step 1.5 as a system user without a login shell. Check it before setting its Samba password; substitute your chosen name throughout:",
+ "userCode": "id proxmenux",
"passwordBody": "Set the Samba password (separate from the system password — Samba maintains its own credential store):",
"passwordCode": "smbpasswd -a proxmenux",
"aclHeading": "2.3 Set ownership / ACLs",
@@ -109,11 +109,11 @@
"troubleshoot": {
"heading": "Troubleshooting",
"items": [
- "pct restart fails with \"device not found\": the device path in mp0 doesn't exist on the host. Check with ls -l /dev/disk/by-id/ and update the path.",
- "CT starts but /mnt/lxc_USB is empty: the disk isn't mounted inside the CT. Check from the host: pct exec '<'CTID'>' -- mount | grep lxc_USB. If absent, the mount point in the config is wrong.",
- "Samba authenticates but writes fail with \"Permission denied\": Linux permissions on the directory don't allow the Samba user to write. Re-check chown / setfacl in section 1.5 / 2.3.",
- "Share doesn't appear in network browsers but smb://'<'ip'>'/lxc_usb works: browseability over the LAN depends on NetBIOS / WS-Discovery. Add nmbd: apt-get install -y samba-common-bin and ensure nmbd is enabled.",
- "Want to add a second user to the same share: create the user with adduser, register with smbpasswd -a, add to the share's valid users = list comma-separated."
+ "pct reboot fails with \"device not found\": the device path in mp0 doesn't exist on the host. Check with ls -l /dev/disk/by-id/ and update the path.",
+ "CT starts but /mnt/lxc_USB is empty: the disk may not be mounted, or its filesystem may be empty. Check from the host with pct exec '<'CTID'>' -- mount | grep lxc_USB. If the mount is absent, inspect its configuration, device path and startup errors.",
+ "Samba authenticates but writes fail with \"Permission denied\": check the directory’s Linux permissions and the share’s write settings. Review chown and setfacl in sections 1.5 and 2.3.",
+ "Share discovery fails but smb://'<'ip'>'/lxc_usb works: legacy NetBIOS discovery uses nmbd. Modern Windows discovery uses WS-Discovery instead; on Debian 12/13 install apt-get install -y wsdd and check its service and firewall. Enabling nmbd alone does not provide WS-Discovery.",
+ "To add a second user to the share: create the account with adduser, register it with smbpasswd -a and add it to the comma-separated valid users = list. Also grant the required filesystem permissions or ACLs."
]
}
}
diff --git a/web/messages/en/guides/nvidia-manual.json b/web/messages/en/guides/nvidia-manual.json
index da02ba62..513a1f99 100644
--- a/web/messages/en/guides/nvidia-manual.json
+++ b/web/messages/en/guides/nvidia-manual.json
@@ -29,10 +29,10 @@
"blacklistBody": "Check whether the open-source nouveau driver is already blacklisted:",
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
"blacklistAdd": "If blacklist nouveau does not appear, add it and reboot:",
- "blacklistAddCode": "echo \"blacklist nouveau\" '>>' /etc/modprobe.d/blacklist.conf\nreboot",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
"blacklistImageAlt": "Blacklist check",
"reposHeading": "1.2 Verify repositories (PVE 9 / Trixie)",
- "reposBody": "If you ran the ProxMenux Post-Install script (or any other Proxmox post-install tooling), the repositories are already in place — skip this step.",
+ "reposBody": "Post-install tools may already have configured the repositories. Inspect the existing sources first and skip changes that are already in place; do not create duplicate entries.",
"reposOtherwise": "Otherwise, on a vanilla PVE 9 install with no enterprise subscription:",
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
"reposPveBody": "Make sure it contains the no-subscription source for Trixie:",
@@ -47,7 +47,7 @@
"installDriver": {
"heading": "2. Install the NVIDIA driver on the host",
"pickHeading": "2.1 Pick a driver version",
- "pickBody": "Check the latest stable driver:",
+ "pickBody": "Choose a driver branch that supports your GPU and running kernel. The newest branch may not support older GPU models; check NVIDIA’s supported-products list for the chosen release:",
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
"nvencCallout": "If you plan to apply the NVENC patch (step 4), verify the patch supports your chosen driver version first: github.com/keylase/nvidia-patch",
"nvencCalloutTitle": "Heads up",
@@ -56,27 +56,27 @@
"pickImageAlt": "NVIDIA driver download",
"pickVersionNote": "Throughout the rest of this guide, replace '<'VERSION'>' with the actual version (for example 580.95.05).",
"downloadHeading": "2.2 Download and run the installer",
- "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/'<'VERSION'>'/NVIDIA-Linux-x86_64-'<'VERSION'>'.run\nchmod +x NVIDIA-Linux-x86_64-'<'VERSION'>'.run",
- "firstPassBody": "First pass — this disables nouveau and prepares the system:",
- "firstPassCode": "./NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Run the installer. The option below can disable nouveau if necessary; installation may need a reboot before it can finish:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
"secondPassBody": "After the host comes back, run the installer again to compile and install the kernel module:",
- "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-questions --ui=none",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
"modulesHeading": "2.3 Load NVIDIA modules at boot",
"modulesBody": "Edit the modules-load configuration:",
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
- "modulesAddBody": "Add the VFIO and NVIDIA modules:",
- "modulesAddCode": "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd\nnvidia\nnvidia_uvm",
+ "modulesAddBody": "Add the NVIDIA modules needed for host/LXC use. VFIO modules are for VM passthrough and are not required for this LXC setup:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
"modulesSaveBody": "Save (Ctrl+X) and rebuild initramfs:",
"modulesSaveCode": "update-initramfs -u -k all",
"udevHeading": "2.4 Create udev rules",
"udevBody": "So that /dev/nvidia* device nodes are created when the modules load:",
"udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
- "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\n# Create /dev/nvidia0, /dev/nvidia1 ... and /dev/nvidiactl when nvidia module is loaded\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c ''/usr/bin/nvidia-smi -L''\"\n\n# Create the CUDA node when nvidia_uvm CUDA module is loaded\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c ''/usr/bin/nvidia-modprobe -c0 -u''\"",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
"udevSaveBody": "Save (Ctrl+X)."
},
"persistence": {
"heading": "3. NVIDIA driver persistence service",
- "body": "The persistence daemon keeps the GPU initialised between uses, which avoids the latency hit and occasional state loss that happens when the kernel module is loaded and unloaded repeatedly:",
+ "body": "The persistence daemon keeps the GPU initialized when no other application is using it. This reduces repeated initialization latency and preserves GPU-initialization state between clients:",
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
"verifyBody": "Verify the driver is loaded and the service is running after reboot:",
"verifySmiCode": "nvidia-smi",
@@ -86,7 +86,7 @@
},
"nvenc": {
"heading": "4. (Optional) Lift the NVENC concurrent-session limit",
- "body": "Consumer NVIDIA GPUs ship with a hardcoded limit on the number of simultaneous NVENC encoding sessions (typically 3, 5 or 8 depending on generation). The keylase patch removes that restriction. Useful when running Plex / Jellyfin / Frigate transcoding workloads.",
+ "body": "NVENC session limits depend on the GPU model and driver version; consult NVIDIA’s support matrix rather than assuming a fixed limit by GPU generation. The keylase patch removes the software limit for supported driver versions. It can help encoding workloads such as Plex or Jellyfin transcoding.",
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
"imageAlt": "NVIDIA patch application",
"after": "The patch must be re-applied after every driver update. The keylase repo also includes patch-fbc.sh for the FBC (frame buffer capture) limit if you need it."
@@ -103,24 +103,36 @@
"major": "Typical major"
},
"tableRows": [
- { "device": "/dev/nvidia0, /dev/nvidiactl", "major": "195" },
- { "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools", "major": "509 (varies)" },
- { "device": "/dev/dri/*", "major": "226" },
- { "device": "/dev/nvidia-modeset", "major": "195 (shares with nvidia)" }
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (varies)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (shares with nvidia)"
+ }
],
"editHeading": "5.2 Edit the LXC config",
"editBody": "Stop the container first if it's running. Open its config file (replace '<'CTID'>' with the container ID):",
- "editCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
"editConfigBody": "Comment out any pre-existing lxc.cgroup2.devices.allow or /dev/dri lines that conflict, then append the NVIDIA wiring (adjust the major numbers to match what ls -l /dev/nv* showed on your host):",
- "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.cgroup2.devices.allow: c 10:* rwm\nlxc.cgroup2.devices.allow: c 238:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file\nlxc.mount.entry: /dev/nvram dev/nvram none bind,optional,create=file",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
"editConfigImageAlt": "LXC configuration",
"editSave": "Save (Ctrl+X) and start the container.",
"installCtHeading": "5.3 Install the driver inside the container",
"installCtCalloutTitle": "Important",
"installCtCalloutBody": "This part runs inside the container, not on the host.",
"installCtBody": "The kernel module is already loaded by the host — the container only needs the userland libraries that match the same driver version:",
- "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/'<'VERSION'>'/NVIDIA-Linux-x86_64-'<'VERSION'>'.run\nchmod +x NVIDIA-Linux-x86_64-'<'VERSION'>'.run\n./NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-kernel-module",
- "installCtAfter": "Accept the defaults at every prompt.",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Review the prompts and keep this installation limited to user-space libraries. Do not build or install a kernel module inside the LXC.",
"installCtImageAlt": "NVIDIA driver installation",
"verifyCtHeading": "5.4 Verify inside the container",
"verifyCtSmiCode": "nvidia-smi",
@@ -129,25 +141,25 @@
"verifyCtLsImageAlt": "NVIDIA devices in LXC",
"verifyCtAfter": "You should see the GPU listed and the device nodes mounted into the container's filesystem.",
"workloadHeading": "5.5 Confirm a real workload picks up the GPU",
- "workloadBody": "For Plex / Jellyfin, transcode a video and check the dashboard / logs — hardware-accelerated transcoding is now active.",
+ "workloadBody": "Enable NVIDIA hardware acceleration in Plex or Jellyfin, start a video transcode and check its dashboard or logs for actual GPU use. Installing the driver alone does not enable acceleration in the application.",
"workloadImage1Alt": "Plex using NVIDIA GPU",
"workloadImage2Alt": "Plex using NVIDIA GPU - active session",
- "repeatNote": "To wire the GPU into another container, repeat section 5 for each additional CTID. The driver install inside the container only needs to be done once per container."
+ "repeatNote": "Repeat section 5 for each additional container that needs GPU access. Keep the user-space driver libraries in every container aligned when the host driver is updated."
},
"docker": {
"heading": "6. (Optional) NVIDIA Docker inside an LXC",
- "body": "If the container runs Docker and you want containers-inside-the-container to use the GPU, install nvidia-docker2. From inside the LXC:",
- "code": "wget https://raw.githubusercontent.com/MacRimi/manuales/main/NVIDIA/nvidia-docker.sh\nchmod +x nvidia-docker.sh\n./nvidia-docker.sh",
- "after": "The script handles the repository setup, package install and Docker daemon configuration in one go."
+ "body": "If Docker already runs inside the LXC, install nvidia-container-toolkit there to expose the GPU to its Docker containers. GPU access from the LXC must work first. The following commands are for a rootful Docker installation:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "These commands configure NVIDIA’s repository, install the toolkit, configure the Docker runtime and restart Docker. LXC device permissions and cgroup restrictions still apply; verify GPU use with a test workload."
},
"troubleshoot": {
"heading": "Troubleshooting",
"items": [
- "nvidia-smi on the host shows the GPU, but inside the container it errors with \"No devices found\": the driver versions don't match. Re-download the same '<'VERSION'>' inside the container and run with --no-kernel-module.",
- "Driver compile fails on the host with \"No precompiled kernel interface was found\": kernel headers are missing or out of sync. Re-run apt-get install pve-headers-$(uname -r) and confirm uname -r matches the running kernel.",
- "NVENC sessions still capped after applying the patch: the patch was overwritten by a driver update. Re-run ./patch.sh from /opt/nvidia/nvidia-patch.",
- "GPU stops responding after a few hours of idle: persistence daemon isn't running. Check with systemctl status nvidia-persistenced and start / enable it.",
- "Container starts but ls /dev/nv* shows nothing: the major numbers in the LXC config don't match the host's. Re-run ls -l /dev/nv* on the host and adjust the lxc.cgroup2.devices.allow lines accordingly."
+ "nvidia-smi works on the host but reports \"No devices found\" in the container: check device mounts, permissions and matching driver libraries. If versions differ, install the host’s '<'VERSION'>' in the container with --no-kernel-module.",
+ "Driver compilation fails: inspect the build log. \"No precompiled kernel interface was found\" can simply mean the installer must compile locally. Install headers matching uname -r using apt-get install pve-headers-$(uname -r), or the equivalent proxmox-headers package for that kernel.",
+ "NVENC sessions remain limited: confirm the patch supports the active driver. A driver update can overwrite it. For a supported version, reapply ./patch.sh from /opt/nvidia/nvidia-patch and review its output.",
+ "GPU stops responding after idle: check systemctl status nvidia-persistenced and enable the service if intended. Also inspect kernel and driver logs; a stopped persistence daemon is not the only possible cause.",
+ "Container starts but ls /dev/nv* shows no NVIDIA devices: check the bind-mount entries and host device paths. Use ls -l /dev/nv* on the host to verify NVIDIA major numbers, then check the lxc.cgroup2.devices.allow rules and permissions."
]
}
}
diff --git a/web/messages/es/guides/backup-cloud.json b/web/messages/es/guides/backup-cloud.json
index 5af2079b..e697ee82 100644
--- a/web/messages/es/guides/backup-cloud.json
+++ b/web/messages/es/guides/backup-cloud.json
@@ -1,18 +1,18 @@
{
"meta": {
- "title": "Backup de Proxmox a almacenamiento en la nube personal | Guías ProxMenux",
- "description": "Usa rclone para montar una nube personal (Google Drive, Mega, Dropbox, OneDrive, etc.) como un directorio en el host Proxmox VE, regístralo como datastore de vzdump y haz backup de VMs / CTs directamente a la nube — sin scripts adicionales.",
- "ogTitle": "Backup de Proxmox a almacenamiento en la nube personal",
+ "title": "Backup de Proxmox en almacenamiento en la nube personal | ProxMenux",
+ "description": "Usa rclone para montar una nube personal (Google Drive, Mega, Dropbox, OneDrive, etc.) como un directorio en el host Proxmox VE, regístralo como datastore de vzdump y haz backup de VMs / CTs directamente a la nube — sin script extra.",
+ "ogTitle": "Backup de Proxmox en almacenamiento en la nube personal",
"ogDescription": "Monta una nube personal con rclone en un host Proxmox VE y haz backup de VMs / CTs directamente a ella como datastore de vzdump."
},
"header": {
- "title": "Backup de Proxmox a almacenamiento en la nube personal",
- "description": "Usa rclone para montar una nube personal (Google Drive, Mega, Dropbox, OneDrive, etc.) como un directorio en el host Proxmox VE, regístralo como datastore de vzdump y haz backup de VMs / CTs directamente a la nube — sin scripts adicionales.",
+ "title": "Backup de Proxmox en almacenamiento en la nube personal",
+ "description": "Usa rclone para montar una nube personal (Google Drive, Mega, Dropbox, OneDrive, etc.) como un directorio en el host Proxmox VE, regístralo como datastore de vzdump y haz backup de VMs / CTs directamente a la nube — sin script extra.",
"section": "Guías"
},
"intro": {
"pbsCalloutTitle": "Considera primero Proxmox Backup Server",
- "pbsCalloutBody": "Si tienes una segunda máquina (una Pi, un PC viejo, un NAS), ejecutar Proxmox Backup Server en ella te da backups incrementales, deduplicados y cifrados — una opción mucho más adecuada para backup de VMs que una sincronización tipo rsync a la nube. El enfoque de montar la nube de esta guía es para usuarios que específicamente quieren que los backups acaben en su nube personal (Google Drive / Mega / OneDrive / Dropbox).",
+ "pbsCalloutBody": "En una segunda máquina que cumpla sus requisitos x86-64, Proxmox Backup Server ofrece copias incrementales, deduplicadas y con cifrado opcional en el cliente. Está diseñado para copias de VM. Esta guía explica cómo montar una nube personal, como Google Drive, Mega, OneDrive o Dropbox, como destino de las copias.",
"stepsTitle": "Qué vas a hacer",
"steps": [
"Crear un directorio en el host Proxmox y registrarlo como un datastore compatible con vzdump.",
@@ -21,7 +21,7 @@
"Hacer que el montaje sobreviva a los reinicios (unit de systemd — más robusto que crontab)."
],
"vzdumpCalloutTitle": "Aviso sobre los backups vzdump de Proxmox",
- "vzdumpCalloutBody": "No son incrementales. Cada backup contiene la imagen completa del disco de la VM (comprimida). En una nube con cuota limitada, esto se llena rápido. Planea una política de retención desde el primer día (ver el final de la guía)."
+ "vzdumpCalloutBody": "Los archivos vzdump de Proxmox son copias completas, no incrementales. Su tamaño real depende de los datos incluidos y de la compresión, no solo de la capacidad del disco virtual. Si un archivo ocupa 30 GB, conservar cinco requiere unos 150 GB. Configura una política de retención para evitar que la nube se llene."
},
"createDir": {
"heading": "1. Crear el directorio del host y registrarlo como datastore",
@@ -32,7 +32,7 @@
"configIntro": "Configúralo así:",
"configItems": [
"ID:gdrive (o lo que hayas usado como nombre de directorio)",
- "Directory:/mnt/gdrive",
+ "Directorio:/mnt/gdrive",
"Content: selecciona VZDump backup file"
],
"image2Alt": "Configurando nuevo almacenamiento en Proxmox",
@@ -48,10 +48,10 @@
"newerCalloutBody": "Si necesitas un rclone más reciente que el que trae Debian, usa el instalador oficial:",
"newerCode": "curl https://rclone.org/install.sh | bash",
"tunnelHeading": "2.1 Autenticación basada en navegador a través de un túnel SSH",
- "tunnelBody": "El flujo de autenticación de rclone abre un navegador web local. Como el host Proxmox no tiene escritorio, el procedimiento de remote-setup de rclone redirige el callback de autenticación a través de un túnel SSH hasta el navegador de tu portátil.",
+ "tunnelBody": "Para los proveedores que usan autenticación web, el host Proxmox normalmente no tiene navegador. Sigue el procedimiento remoto de rclone: utiliza el navegador del portátil y reenvía su conexión de retorno a localhost por SSH hasta rclone en el host.",
"tunnelFrom": "Desde tu portátil (reemplaza ip_proxmox por la IP de Proxmox):",
"tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
- "tunnelAfter": "Esta sesión SSH reenvía el puerto 53682 del host Proxmox al localhost de tu portátil. Mantenla abierta durante la configuración de rclone que viene a continuación.",
+ "tunnelAfter": "Esta sesión SSH abre el puerto localhost 53682 en tu portátil y reenvía las conexiones al mismo puerto del host Proxmox. Mantenla abierta durante la configuración de rclone.",
"runHeading": "2.2 Ejecutar rclone config",
"runBody": "En la sesión SSH que acabas de abrir, ejecuta:",
"runCode": "rclone config",
@@ -64,7 +64,7 @@
"heading": "3. Montar la carpeta de la nube",
"body": "Crea una carpeta en tu nube personal para guardar los backups. Llámala algo como PBC (Proxmox Backup Cloud).",
"mountIntro": "Móntala sobre el directorio del host:",
- "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
"mountItems": [
"gdrive:/PBC — la carpeta en tu nube.",
"/mnt/gdrive — el directorio del host que registraste como datastore."
@@ -82,21 +82,21 @@
"enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
"verifyIntro": "Verifica:",
"verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
- "verifyAfter": "Si el servicio falla alguna vez (rate-limits del proveedor, token de autenticación caducado, corte de red), se reiniciará automáticamente al cabo de 10 segundos. Los logs están en /var/log/rclone-gdrive.log y vía journalctl -u rclone-gdrive.service -f.",
- "vfsCalloutTitle": "¿Por qué --vfs-cache-mode writes?",
- "vfsCalloutBody": "vzdump escribe el archivo de backup al disco en streaming; sin caché de escritura VFS, cada fwrite se bloquea esperando a un round-trip HTTP a la nube — los backups se vuelven lentos y los proveedores pueden aplicar rate-limit. La caché bufferiza las escrituras localmente y las vuelca en segundo plano."
+ "verifyAfter": "La unidad solicita un reinicio al cabo de 10 segundos si rclone termina con un error. No repara credenciales caducadas ni garantiza recuperarse de cualquier fallo de red o del proveedor. Consulta /var/log/rclone-gdrive.log y journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "¿Por qué usar --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Con caché de escritura, operaciones como fwrite escriben en una caché local en disco. rclone sube el archivo cuando se cierra y transcurre el intervalo de escritura diferida. Reserva espacio local para las copias en curso y verifica que la subida termine antes de dar por disponible la copia remota."
},
"configureBackup": {
- "heading": "5. Configurar el backup para que aterrice en la nube",
+ "heading": "5. Configurar la nube como destino de las copias",
"body": "En la UI de Proxmox, cuando programes un backup o ejecutes uno ad-hoc, elige el almacenamiento que registraste como destino:",
"image5Alt": "Seleccionando destino de backup en Proxmox",
- "after": "Cuando el backup termine, el fichero aparece en tu nube:",
+ "after": "Cuando termine vzdump, espera a que finalice la subida de rclone en segundo plano y comprueba el archivo en la interfaz del proveedor:",
"image6Alt": "Fichero de backup en el almacenamiento en la nube"
},
"retention": {
"heading": "6. Retención — mantén la cuota de la nube bajo control",
- "body": "Los backups vzdump de Proxmox son snapshots completos, no incrementales. Una VM de 30 GB = 30 GB por backup. Sin retención, la nube se llena.",
- "uiPath": "En la UI de Proxmox: Datacenter → Backup → [tu job] → Retention:",
+ "body": "Los archivos vzdump de Proxmox son copias completas, no incrementales. Su tamaño real depende de los datos incluidos y de la compresión, no solo de la capacidad del disco virtual. Si un archivo ocupa 30 GB, conservar cinco requiere unos 150 GB. Configura una política de retención para evitar que la nube se llene.",
+ "uiPath": "En la interfaz de Proxmox: Centro de datos → Copias de seguridad → [tu tarea] → Retención:",
"image7Alt": "Ajustes de retención de backup en Proxmox",
"starterIntro": "Valores iniciales razonables para un montaje doméstico / de laboratorio:",
"starterItems": [
@@ -109,11 +109,11 @@
"troubleshoot": {
"heading": "Solución de problemas",
"items": [
- "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: el montaje anterior no se desmontó limpiamente. Fuerza el desmontaje: fusermount -uz /mnt/gdrive, luego reinicia la unit de systemd.",
- "El backup es extremadamente lento: confirma que --vfs-cache-mode writes está en la línea ExecStart. Sin esa opción, cada escritura se bloquea en la nube. Comprueba también tu ancho de banda de subida — vzdump está limitado por él.",
- "El backup falla con ''No space left on device'': el directorio de caché (~/.cache/rclone/) se llenó antes de que la subida pudiera alcanzarlo. Muévelo a un sistema de ficheros más grande con --cache-dir /var/cache/rclone en la unit de systemd.",
- "El token de autenticación de rclone caducó (típico en Google Drive tras un periodo largo de inactividad): vuelve a conectarte por SSH con el túnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) y ejecuta rclone config reconnect gdrive: para refrescarlo.",
- "Los backups llegan pero salen corruptos al restaurar: deja de usar el almacenamiento en la nube como único destino de backup. Combínalo con PBS local / vzdump en un disco diferente para tener resiliencia."
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: el directorio ya está montado, quizá por otra instancia de rclone. Comprueba que no haya copias en curso antes de quitar el montaje anterior con fusermount -uz /mnt/gdrive y reinicia la unidad systemd.",
+ "La copia es muy lenta: confirma que --vfs-cache-mode writes figure en la línea ExecStart. Revisa el rendimiento de la caché local, la velocidad de subida y los límites del proveedor. La subida puede continuar después de terminar vzdump.",
+ "La copia falla con No space left on device: revisa el espacio de la caché local y la cuota del proveedor. La caché suele estar en ~/.cache/rclone/. Si se llena, elige una ruta como --cache-dir /var/cache/rclone en un sistema de archivos con espacio; cambiar de ruta dentro del mismo sistema lleno no ayuda.",
+ "El token de rclone ha caducado: vuelve a conectarte por SSH con el túnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) y ejecuta rclone config reconnect gdrive: para renovar la autorización.",
+ "Las copias llegan a la nube, pero fallan al restaurarlas: evita que la nube sea el único destino de las copias. Combínala con PBS local o vzdump en otro disco."
]
}
}
diff --git a/web/messages/es/guides/index.json b/web/messages/es/guides/index.json
index 8bbcd020..80496395 100644
--- a/web/messages/es/guides/index.json
+++ b/web/messages/es/guides/index.json
@@ -1,20 +1,20 @@
{
"meta": {
"title": "Guías de Proxmox VE — Coral TPU, NVIDIA, Kodi en LXC, Samba, backup en la nube | ProxMenux",
- "description": "Tutoriales hechos a mano para Proxmox VE: instalar Kodi dentro de un LXC con aceleración por GPU, configurar drivers NVIDIA en PVE 9, disco USB compartido por Samba en un contenedor, backups con vzdump a la nube personal (Google Drive, Mega, Dropbox, OneDrive). Más recursos curados de la comunidad, glosario y referencia de comandos.",
+ "description": "Tutoriales detallados de Proxmox VE: Kodi en LXC con aceleración por GPU, controladores NVIDIA en PVE 9, un disco USB compartido por Samba desde un contenedor y copias vzdump a Google Drive, Mega, Dropbox o OneDrive. Incluye recursos seleccionados de la comunidad, glosario y referencia de comandos.",
"ogTitle": "Guías de Proxmox VE — Coral TPU, NVIDIA, Kodi en LXC, Samba, backup en la nube",
- "ogDescription": "Tutoriales hechos a mano para Proxmox VE: passthrough de GPU, Kodi como media center en LXC, Samba sobre USB, backup en la nube con rclone, y recursos curados de la comunidad.",
+ "ogDescription": "Tutoriales detallados de Proxmox VE: acceso directo a GPU, Kodi en LXC, discos USB compartidos por Samba, copias en la nube con rclone y recursos seleccionados de la comunidad.",
"twitterTitle": "Guías de Proxmox VE | ProxMenux",
- "twitterDescription": "Tutoriales hechos a mano para Proxmox VE — GPU, Kodi en LXC, Samba, backup en la nube y más.",
- "ogImageAlt": "Guías ProxMenux — Tutoriales hechos a mano para Proxmox VE"
+ "twitterDescription": "Tutoriales detallados de Proxmox VE: GPU, Kodi en LXC, Samba, copias en la nube y mucho más.",
+ "ogImageAlt": "Guías ProxMenux — Tutoriales detallados de Proxmox VE"
},
"header": {
"title": "Guías de ProxMenux",
- "tagline": "Tutoriales en profundidad, referencias rápidas y recursos curados de la comunidad para sacarle todo el partido a Proxmox VE."
+ "tagline": "Tutoriales en profundidad, referencias rápidas y recursos seleccionados de la comunidad para aprovechar Proxmox VE."
},
"inDepth": {
"heading": "Guías en profundidad",
- "intro": "Tutoriales hechos a mano que cubren flujos concretos de Proxmox. Cada uno es el equivalente manual de un flujo automatizado de ProxMenux — útil cuando quieres visibilidad completa de cada paso.",
+ "intro": "Tutoriales detallados para tareas concretas de Proxmox. Cada uno explica los pasos manuales de un proceso automatizado por ProxMenux, para que puedas ver qué se hace en cada etapa.",
"items": [
{
"slug": "kodi-lxc",
@@ -34,7 +34,7 @@
{
"slug": "nvidia-manual",
"title": "Instalación de drivers de tarjeta gráfica NVIDIA en Proxmox VE 9 (procedimiento manual)",
- "description": "Instalación y configuración manual de drivers NVIDIA en un host Proxmox VE 9, más el cableado de LXC necesario para exponer la GPU a uno o más contenedores. Cubre instalación del driver, servicio de persistencia, parche NVENC opcional y la configuración por contenedor."
+ "description": "Instalación y configuración manual de los controladores NVIDIA en un host Proxmox VE 9 y del acceso a la GPU desde uno o varios contenedores LXC. Incluye el controlador, el servicio de persistencia, el parche NVENC opcional y la configuración de cada contenedor."
}
]
},
@@ -48,7 +48,7 @@
},
"helpInfo": {
"title": "Ayuda e información — Catálogo de comandos",
- "description": "Catálogo curado de comandos útiles de Linux y Proxmox organizados por tema, con copia al portapapeles. Espeja la referencia disponible dentro del menú de ProxMenux."
+ "description": "Selección de comandos útiles de Linux y Proxmox organizada por temas, con copia al portapapeles. Recoge la referencia disponible en el menú de ProxMenux."
},
"linuxResources": {
"title": "Recursos de Linux",
@@ -84,18 +84,18 @@
},
"community": {
"heading": "Proyectos y recursos de la comunidad",
- "intro": "Proyectos de código abierto y listas curadas de la comunidad Proxmox en general. No están afiliados a Proxmox Server Solutions ni a ProxMenux — se incluyen porque han demostrado ser útiles.",
+ "intro": "Proyectos de código abierto y listas seleccionadas de la comunidad Proxmox. No están afiliados a Proxmox Server Solutions ni a ProxMenux; se incluyen porque han demostrado ser útiles.",
"cards": {
"helperScripts": {
"title": "Proxmox VE Helper-Scripts",
"description": "Catálogo mantenido por la comunidad con scripts de un solo paso para desplegar LXCs (Home Assistant, Plex, Frigate, …), VMs y ajustes de PVE. Sucesor espiritual de los helper scripts de tteck."
},
"awesome": {
- "title": "awesome-proxmox-ve (lista curada)",
- "description": "Gran meta-lista curada por la comunidad con recursos de Proxmox VE: herramientas, librerías, integraciones, blogs y vídeos. Buen punto de partida para descubrir más."
+ "title": "awesome-proxmox-ve (lista de recursos seleccionados)",
+ "description": "Amplia colección de recursos de Proxmox VE seleccionados por la comunidad: herramientas, bibliotecas, integraciones, blogs y vídeos. Un buen punto de partida para descubrir más."
}
},
- "suggestRich": "¿Tienes un recurso de calidad que deberíamos añadir aquí? Abre un issue o un PR en GitHub. La idea es mantener esta lista curada, no exhaustiva."
+ "suggestRich": "¿Conoces algún recurso de calidad que falte? Abre un issue o un PR en GitHub. Queremos mantener una selección útil, en lugar de una lista exhaustiva."
},
"discussion": {
"heading": "Discusión de la comunidad",
diff --git a/web/messages/es/guides/kodi-lxc.json b/web/messages/es/guides/kodi-lxc.json
index 2a92b365..164f842f 100644
--- a/web/messages/es/guides/kodi-lxc.json
+++ b/web/messages/es/guides/kodi-lxc.json
@@ -12,18 +12,18 @@
},
"intro": {
"calloutTitle": "Aviso",
- "calloutBody": "Esta guía usa un script externo de la comunidad para arrancar el LXC de Kodi. La parte de GPU (passthrough de la iGPU del host al contenedor) también la cubre el flujo automatizado de ProxMenux: GPUs and Coral-TPU → Add GPU to LXC en el menú de ProxMenux — se encarga del cableado de /dev/dri y de la instalación del driver dentro del CT. El script de abajo además arranca el propio Kodi y el autoarranque en tty7. Úsalo si quieres un LXC media center llave en mano; usa el flujo de ProxMenux si solo necesitas acceso a la GPU para un CT que has montado a mano.",
+ "calloutBody": "Esta guía utiliza un script externo de la comunidad para preparar el LXC de Kodi. ProxMenux también puede configurar el acceso a la iGPU del host: GPUs y Coral-TPU → Añadir GPU a LXC configura /dev/dri e instala los controladores dentro del contenedor. El script siguiente instala además Kodi y el arranque automático en tty7. Úsalo para preparar un centro multimedia en LXC; elige el asistente de ProxMenux si solo necesitas dar acceso a la GPU a un contenedor que ya has configurado.",
"credit": "Script original del LXC de Kodi creado por mrrudy.",
"stepsTitle": "Qué vas a hacer",
"steps": [
"Crear un LXC privilegiado ejecutando Kodi (con el script).",
- "Cablear tu teclado, ratón o mando USB dentro del CT.",
- "(Opcional) Actualizar Kodi a la última versión desde el PPA team-xbmc."
+ "Dar acceso al teclado, ratón o mando USB desde el contenedor.",
+ "(Opcional) Actualizar Kodi desde los repositorios configurados en el contenedor."
]
},
"createCt": {
"heading": "1. Crear el LXC de Kodi",
- "body": "El CT tiene que ser privilegiado para que pueda acceder a los dispositivos USB de entrada (teclados, mandos a distancia, controles). El script se encarga de los flags de privilegio, el cableado de la GPU, la instalación de Kodi y el autoarranque en tty7:",
+ "body": "Para este procedimiento, selecciona Privileged en los ajustes avanzados del script. Por defecto crea contenedores sin privilegios, que requieren permisos de dispositivos y mapeo de identificadores adecuados. El script configura el acceso a la GPU, Kodi y su arranque en tty7:",
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
"after": "Ten paciencia — la instalación tarda un rato. Cuando termine y Kodi arranque en tty7, puedes conectar tu monitor o TV directamente a la salida HDMI / DisplayPort del host y deberías ver la UI de Kodi."
},
@@ -32,22 +32,22 @@
"body": "Los dispositivos de entrada viven en /dev/input/ en el host. Identifica el número major:",
"listCode": "ls -l /dev/input",
"imageAlt": "Listado de dispositivos de entrada",
- "afterList": "Coge el número de la primera columna (en el ejemplo: 13). Para el LXC de Kodi y luego edita su config (reemplaza '<'CTID'>' por el ID del contenedor — por ejemplo, 102):",
- "editCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "afterList": "En los dispositivos de caracteres, toma el número major situado antes de la coma (en el ejemplo, 13). Detén el LXC de Kodi y edita su configuración; sustituye '<'CTID'>' por su ID, por ejemplo 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
"addLines": "Añade (ajusta 13 a lo que viste en tu host):",
- "configCode": "lxc.cgroup2.devices.allow = c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
"imageConfigAlt": "Configuración del LXC",
"save": "Guarda (Ctrl+X) y reinicia solo el contenedor — no hace falta reiniciar el host Proxmox entero:",
- "restartCode": "pct restart '<'CTID'>'",
+ "restartCode": "pct reboot CTID",
"plug": "Conecta el teclado / ratón / mando y Kodi debería responder."
},
"updateKodi": {
- "heading": "3. (Opcional) Actualizar Kodi a la última versión",
+ "heading": "3. (Opcional) Actualizar Kodi desde los repositorios configurados",
"calloutTitle": "Importante",
- "calloutBody": "El PPA team-xbmc es solo para Ubuntu. Si el LXC de Kodi está basado en una plantilla Debian, add-apt-repository no estará disponible y el PPA no funcionará. El script de mrrudy usa por defecto una plantilla Ubuntu, así que normalmente esto se cumple. Para verificarlo: cat /etc/os-release dentro del contenedor — busca NAME=\"Ubuntu\".",
+ "calloutBody": "El PPA team-xbmc es solo para Ubuntu y Kodi indica que ya no tiene mantenimiento. Que falte add-apt-repository no identifica la distribución. Compruébala con cat /etc/os-release y busca NAME=\"Ubuntu\"; no añadas PPA de Ubuntu a Debian. Los comandos siguientes actualizan los paquetes desde los repositorios configurados en el contenedor.",
"body": "Dentro del contenedor (pct enter '<'CTID'>'):",
- "code": "sudo add-apt-repository ppa:team-xbmc/ppa\nsudo apt update\nsudo apt install kodi kodi-bin",
- "after": "Reinicia el contenedor cuando termine; al arrancar tendrás el último Kodi."
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Reinicia el contenedor después de actualizar. Kodi utilizará la versión disponible en los repositorios configurados, que puede diferir de la última versión del proyecto."
},
"screenshots": {
"heading": "Capturas",
@@ -57,14 +57,14 @@
"troubleshoot": {
"heading": "Solución de problemas",
"items": [
- "El LXC de Kodi arranca pero no se ve nada en la TV: puede que el CT no haya heredado la iGPU. Confírmalo con ls /dev/dri dentro del contenedor (deberías ver card0, renderD128). Si está vacío, el passthrough de GPU no se aplicó — vuelve a ejecutar el script o usa el menú Add GPU to LXC de ProxMenux.",
- "El teclado / ratón no se detecta tras reiniciar: el número major de /dev/input cambió (raro, pero pasa tras actualizaciones de kernel). Vuelve a ejecutar ls -l /dev/input en el host y actualiza la línea lxc.cgroup2.devices.allow.",
- "La reproducción acelerada por hardware usa CPU en lugar de GPU: instala o actualiza los drivers VA-API dentro del contenedor (intel-media-va-driver para iGPUs Intel modernas, i965-va-driver para las más antiguas, mesa-va-drivers en AMD).",
- "add-apt-repository: command not found: el contenedor es Debian, no Ubuntu. O bien usa los paquetes Kodi de Debian (más antiguos pero estables), o bien recrea el CT desde una plantilla Ubuntu."
+ "El LXC de Kodi arranca pero no se ve nada en la TV: puede que el contenedor no tenga acceso a la iGPU. Comprueba ls /dev/dri en su interior: deberían aparecer card0 y renderD128. Si está vacío, revisa el acceso a la GPU; puedes usar el menú Añadir GPU a LXC de ProxMenux.",
+ "El teclado o ratón no se detecta tras reiniciar: comprueba que /dev/input esté montado y Kodi tenga permiso para leer los dispositivos. Ejecuta ls -l /dev/input en el host y el contenedor, y revisa la regla lxc.cgroup2.devices.allow.",
+ "La reproducción acelerada por hardware usa la CPU en lugar de la GPU: instala o actualiza los controladores VA-API en el contenedor: intel-media-va-driver para iGPU Intel modernas, i965-va-driver para las antiguas y mesa-va-drivers para AMD.",
+ "add-apt-repository: command not found: falta el comando; eso no demuestra que el contenedor sea Debian. Comprueba la distribución y los paquetes disponibles. En Debian, utiliza sus paquetes Kodi sin añadir el PPA de Ubuntu."
]
},
"further": {
- "heading": "Más lecturas",
- "konpatRich": "El post de Konpat — contexto adicional sobre passthrough de iGPU Intel a LXC."
+ "heading": "Más información",
+ "konpatRich": "Artículo de Konpat con más contexto sobre el acceso a la iGPU Intel desde LXC."
}
}
diff --git a/web/messages/es/guides/lxc-samba.json b/web/messages/es/guides/lxc-samba.json
index c0bd16a3..c9f682ce 100644
--- a/web/messages/es/guides/lxc-samba.json
+++ b/web/messages/es/guides/lxc-samba.json
@@ -1,13 +1,13 @@
{
"meta": {
"title": "Añadir una unidad USB a un LXC y compartirla con Samba | Guías ProxMenux",
- "description": "Conecta un disco duro USB o una memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
+ "description": "Conecta un disco duro USB o memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
"ogTitle": "Añadir una unidad USB a un LXC y compartirla con Samba",
"ogDescription": "Conecta una unidad USB a un LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la LAN."
},
"header": {
- "title": "Añadir una unidad USB o memoria a un LXC y compartirla por la red con Samba",
- "description": "Conecta un disco duro USB o una memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
+ "title": "Añadir un disco o memoria USB a un LXC y compartirlo por la red con Samba",
+ "description": "Conecta un disco duro USB o memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
"section": "Guías"
},
"recommended": {
@@ -17,7 +17,7 @@
"Disk Manager → Format / Wipe Physical Disk para el paso de formateo.",
"Storage & Share Manager → LXC network sharing → Samba server in LXC para la instalación del CT privilegiado y la configuración de Samba."
],
- "calloutOutro": "Los flujos guiados se encargan de las peculiaridades de permisos de los CT unprivileged, de los presets de modo de share (lectura-escritura / solo lectura / personalizado) y de la configuración del grupo sharedfiles. Esta guía es el equivalente manual — útil si quieres visibilidad total sobre cada paso o si prefieres cablearlo todo a mano."
+ "calloutOutro": "Los asistentes gestionan las particularidades de permisos de los contenedores sin privilegios, los perfiles de lectura y escritura, solo lectura o personalizados y el grupo sharedfiles. Esta guía explica los pasos manuales para que puedas entenderlos o configurarlos por tu cuenta."
},
"intro": {
"body": "A veces resulta útil añadir un disco duro o una memoria USB a un host Proxmox, sobre todo en un mini PC con expansión interna limitada. Esta guía cubre:",
@@ -34,8 +34,8 @@
"Guardar documentos que escanea automáticamente Paperless.",
"Almacenamiento tipo NAS genérico para la red doméstica."
],
- "privilegedCalloutTitle": "Se requiere un contenedor privilegiado",
- "privilegedCalloutBody": "El passthrough directo de dispositivos (mp0 con una ruta del host) necesita un LXC privilegiado. Los CT unprivileged no pueden hacer bind-mount directo de dispositivos de bloque — para esos necesitas bind mounts de directorios del host (consulta ProxMenux Storage & Share Manager → LXC Mount Points)."
+ "privilegedCalloutTitle": "Contenedor privilegiado para este procedimiento",
+ "privilegedCalloutBody": "Este procedimiento utiliza un LXC privilegiado con un dispositivo de bloque como mp0. Para un contenedor sin privilegios, una alternativa es montar el sistema de archivos en el host y pasar su directorio mediante bind mount, con permisos y mapeo de identificadores adecuados. Consulta Almacenamiento y recursos compartidos → Puntos de montaje LXC en ProxMenux."
},
"attach": {
"heading": "1. Conectar el disco USB al LXC",
@@ -48,29 +48,29 @@
"lsblkBody": "También puedes usar lsblk -o NAME,SIZE,MODEL,SERIAL para listar cada dispositivo de bloque con su modelo y número de serie.",
"stableCalloutTitle": "Importante — usa un identificador estable",
"stableCalloutBody": "/dev/sdb1 puede cambiar entre arranques si tienes varios discos USB. Busca el identificador persistente:",
- "stableCalloutCode": "ls -l /dev/disk/by-id/ | grep -v part",
- "stableCalloutAfter": "Usa la ruta /dev/disk/by-id/usb-... en la config del LXC en lugar de /dev/sdb1. Sobrevive a reinicios y a desconexiones.",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Utiliza la entrada /dev/disk/by-id/usb-... de la partición elegida en la configuración LXC, en lugar de /dev/sdb1. Escoge la partición, no el disco completo: así seguirá identificada aunque cambie el orden de los dispositivos.",
"formatHeading": "1.2 Formatear el disco",
- "formatBody": "ext4 es un valor por defecto razonable para shares basados en Linux (sensible a mayúsculas, soporta ACLs POSIX, sin límites de tamaño de fichero). Ejecútalo desde el host Proxmox, no desde el contenedor:",
+ "formatBody": "ext4 es una opción práctica para recursos compartidos desde Linux: distingue mayúsculas, admite ACL POSIX y archivos grandes. El formateo destruye el contenido del sistema de archivos existente. Confirma la partición y ejecuta el comando en el host Proxmox:",
"formatCode": "mkfs.ext4 /dev/sdb1",
"formatAfter": "Reemplaza /dev/sdb1 por el dispositivo de partición real — o por la ruta persistente /dev/disk/by-id/usb-...-part1.",
"mkdirHeading": "1.3 Crear el punto de montaje dentro del LXC",
"mkdirBody": "Dentro del LXC, crea el directorio donde aparecerá el disco (cualquier nombre vale):",
"mkdirCode": "mkdir /mnt/lxc_USB",
- "wireHeading": "1.4 Cablear el dispositivo al LXC",
- "wireBody": "En el host Proxmox (no dentro del CT), edita la config del contenedor. Reemplaza '<'CTID'>' por el ID del contenedor:",
- "wireEditCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "wireHeading": "1.4 Configurar el dispositivo en LXC",
+ "wireBody": "En el host Proxmox, edita la configuración del contenedor. Sustituye '<'CTID'>' por su ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
"wireAddLine": "Añade esta línea:",
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
"wireShortForm": "(O, si aceptas el riesgo de que la ruta del dispositivo cambie, la forma corta: mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0.)",
- "wireBackupNote": "El flag backup=0 excluye este punto de montaje de los backups de vzdump — normalmente la elección correcta para discos externos grandes que son el almacenamiento de destino del host y no sus datos.",
+ "wireBackupNote": "El ejemplo utiliza backup=0. El contenido de los montajes de dispositivos y de tipo bind no se incluye en las copias vzdump del contenedor. Prepara una copia independiente de los datos del disco externo.",
"restartHeading": "1.5 Reiniciar el LXC y ajustar permisos",
"restartBody": "Reinicia el CT para aplicar el punto de montaje:",
- "restartCode": "pct restart '<'CTID'>'",
- "permsBody": "Dentro del LXC, dale al directorio los permisos apropiados para el usuario que será dueño del share:",
- "permsCode": "# Dentro del contenedor\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Dentro del LXC, crea el usuario del recurso compartido antes de asignarle la propiedad y ajusta los permisos del directorio:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
"permsNoteTitle": "Nota",
- "permsNote": "Reemplaza proxmenux por el nombre de usuario que crearás en el paso 2.2 más abajo. 770 da acceso total al usuario y al grupo, sin acceso para el resto — más seguro que el chmod -R 777 abierto a todos y aun así suficiente para que el share funcione."
+ "permsNote": "Sustituye proxmenux por el nombre que elijas. El modo 770 permite acceder al propietario y al grupo, sin acceso para otros; es más restrictivo que chmod -R 777. El usuario se crea aquí y se registra en Samba en el paso 2.2."
},
"samba": {
"heading": "2. Instalar Samba",
@@ -78,17 +78,17 @@
"installCode": "apt-get update\napt-get install -y samba",
"confirmBody": "Confirma que el servicio está corriendo:",
"confirmCode": "systemctl status smbd.service",
- "userHeading": "2.2 Crear el usuario del share",
- "userBody": "Escoge un nombre de usuario (aquí usamos proxmenux; sustitúyelo por el tuyo). Créalo como usuario del sistema sin shell:",
- "userCode": "adduser proxmenux",
+ "userHeading": "2.2 Verificar el usuario del recurso compartido",
+ "userBody": "El usuario proxmenux se creó en el paso 1.5 como usuario del sistema sin shell de inicio de sesión. Compruébalo antes de establecer la contraseña Samba; utiliza el nombre que hayas elegido en todos los pasos:",
+ "userCode": "id proxmenux",
"passwordBody": "Establece la contraseña de Samba (independiente de la contraseña del sistema — Samba mantiene su propio almacén de credenciales):",
"passwordCode": "smbpasswd -a proxmenux",
"aclHeading": "2.3 Configurar la propiedad / ACLs",
"aclBody": "Si el simple chown del paso 1.5 te basta, los permisos ya están listos. Para un control más fino (varios usuarios compartiendo la misma ruta con permisos distintos), usa ACLs:",
- "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # ACL por defecto — se aplica a los ficheros nuevos"
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
},
"configure": {
- "heading": "3. Configurar el share de Samba",
+ "heading": "3. Configurar el recurso compartido Samba",
"editHeading": "3.1 Editar smb.conf",
"editCode": "nano /etc/samba/smb.conf",
"appendBody": "Añade una definición de share al final:",
@@ -109,11 +109,11 @@
"troubleshoot": {
"heading": "Solución de problemas",
"items": [
- "pct restart falla con \"device not found\": la ruta del dispositivo en mp0 no existe en el host. Comprueba con ls -l /dev/disk/by-id/ y actualiza la ruta.",
- "El CT arranca pero /mnt/lxc_USB está vacío: el disco no está montado dentro del CT. Comprueba desde el host: pct exec '<'CTID'>' -- mount | grep lxc_USB. Si no aparece, el punto de montaje en la config está mal.",
- "Samba autentica pero las escrituras fallan con \"Permission denied\": los permisos Linux del directorio no permiten al usuario de Samba escribir. Revisa chown / setfacl en la sección 1.5 / 2.3.",
- "El share no aparece en los navegadores de red pero smb://'<'ip'>'/lxc_usb sí funciona: la visibilidad por LAN depende de NetBIOS / WS-Discovery. Añade nmbd: apt-get install -y samba-common-bin y asegúrate de que nmbd esté habilitado.",
- "Quieres añadir un segundo usuario al mismo share: crea el usuario con adduser, regístralo con smbpasswd -a y añádelo a la lista valid users = del share separado por comas."
+ "pct reboot falla con “device not found”: comprueba que la ruta del dispositivo en mp0 exista en el host. Revisa ls -l /dev/disk/by-id/ y corrígela si hace falta.",
+ "El CT arranca, pero /mnt/lxc_USB está vacío: puede faltar el montaje o estar vacío el sistema de archivos. Comprueba desde el host con pct exec '<'CTID'>' -- mount | grep lxc_USB. Si no aparece el montaje, revisa su configuración, la ruta del dispositivo y los errores de arranque.",
+ "Samba autentica, pero falla al escribir con “Permission denied”: revisa los permisos Linux del directorio y los ajustes de escritura del recurso compartido. Comprueba chown y setfacl en las secciones 1.5 y 2.3.",
+ "El recurso no aparece en la red, pero smb://'<'ip'>'/lxc_usb funciona: el descubrimiento NetBIOS antiguo utiliza nmbd. Windows moderno usa WS-Discovery; en Debian 12/13 instala apt-get install -y wsdd y revisa el servicio y el cortafuegos. Habilitar solo nmbd no proporciona WS-Discovery.",
+ "Para añadir otro usuario al recurso compartido: créalo con adduser, regístralo con smbpasswd -a y añádelo a la lista valid users =, separada por comas. Concede también los permisos o ACL necesarios en el sistema de archivos."
]
}
}
diff --git a/web/messages/es/guides/nvidia-manual.json b/web/messages/es/guides/nvidia-manual.json
index 9d1d5f0d..27f64319 100644
--- a/web/messages/es/guides/nvidia-manual.json
+++ b/web/messages/es/guides/nvidia-manual.json
@@ -1,18 +1,18 @@
{
"meta": {
"title": "Instalación de drivers NVIDIA en Proxmox VE 9 (procedimiento manual) | Guías ProxMenux",
- "description": "Instalación y configuración manual de drivers NVIDIA en un host Proxmox VE 9, más el cableado del LXC necesario para exponer la GPU a uno o varios contenedores. Cubre la instalación de drivers, el servicio de persistencia, el parche NVENC opcional y la configuración por contenedor.",
+ "description": "Instalación y configuración manual de los controladores NVIDIA en un host Proxmox VE 9 y del acceso a la GPU desde uno o varios contenedores LXC. Incluye el controlador, el servicio de persistencia, el parche NVENC opcional y la configuración de cada contenedor.",
"ogTitle": "Instalación de drivers NVIDIA en Proxmox VE 9 (procedimiento manual)",
"ogDescription": "Instalación manual de drivers NVIDIA en PVE 9 — driver del host, servicio de persistencia, parche NVENC opcional y cableado LXC por contenedor."
},
"header": {
"title": "Instalación de drivers de tarjeta gráfica NVIDIA en Proxmox VE 9 (procedimiento manual)",
- "description": "Instalación y configuración manual de drivers NVIDIA en un host Proxmox VE 9, más el cableado del LXC necesario para exponer la GPU a uno o varios contenedores. Cubre la instalación de drivers, el servicio de persistencia, el parche NVENC opcional y la configuración por contenedor.",
+ "description": "Instalación y configuración manual de los controladores NVIDIA en un host Proxmox VE 9 y del acceso a la GPU desde uno o varios contenedores LXC. Incluye el controlador, el servicio de persistencia, el parche NVENC opcional y la configuración de cada contenedor.",
"section": "Guías"
},
"intro": {
"calloutTitle": "Nota",
- "calloutBody": "Este es el procedimiento manual conservado como referencia. Para la mayoría de usuarios, el camino recomendado es el flujo automatizado de ProxMenux: Install NVIDIA Drivers (Host) en el menú GPUs and Coral-TPU, y Add GPU to LXC (o Add GPU to VM) para el cableado por guest. El flujo automatizado se encarga de los mismos pasos documentados aquí (con comprobaciones de seguridad adicionales: compatibilidad de kernel headers, validación de IOMMU, resolución de conflictos con VFIO). Esta página es para operadores que quieran entender cada comando, o que necesiten desviarse del flujo estándar.",
+ "calloutBody": "Este procedimiento manual se conserva como referencia. Para la mayoría de usuarios recomendamos el asistente de ProxMenux: Instalar controladores NVIDIA en el host, en GPUs y Coral-TPU, y después Añadir GPU a LXC o Añadir GPU a VM para configurar el invitado. El asistente realiza los mismos pasos con comprobaciones adicionales de las cabeceras del kernel, IOMMU y conflictos VFIO. Esta página permite entender cada comando o adaptar la configuración.",
"targetNote": "Dirigido a Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) y PVE 8 (Bookworm) ya no se cubren.",
"stepsTitle": "Qué vas a hacer",
"steps": [
@@ -20,19 +20,19 @@
"Instalar el driver NVIDIA en el host.",
"Instalar el servicio de persistencia NVIDIA.",
"(Opcional) Aplicar el parche de keylase para levantar el límite de sesiones concurrentes de NVENC en GPUs de consumo.",
- "Cablear la GPU en uno o varios contenedores LXC e instalar el driver correspondiente dentro de cada uno."
+ "Dar acceso a la GPU a uno o varios contenedores LXC e instalar la versión correspondiente del controlador en cada uno."
]
},
"prepareHost": {
"heading": "1. Preparar el host (PVE 9)",
- "blacklistHeading": "1.1 Blacklist de nouveau",
+ "blacklistHeading": "1.1 Bloquear nouveau",
"blacklistBody": "Comprueba si el driver open-source nouveau ya está en la blacklist:",
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
"blacklistAdd": "Si blacklist nouveau no aparece, añádelo y reinicia:",
- "blacklistAddCode": "echo \"blacklist nouveau\" '>>' /etc/modprobe.d/blacklist.conf\nreboot",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
"blacklistImageAlt": "Comprobación de blacklist",
"reposHeading": "1.2 Verificar repositorios (PVE 9 / Trixie)",
- "reposBody": "Si has ejecutado el script Post-Install de ProxMenux (o cualquier otra herramienta post-install de Proxmox), los repositorios ya están listos — sáltate este paso.",
+ "reposBody": "Las herramientas de postinstalación pueden haber configurado ya los repositorios. Revisa las fuentes existentes y omite los cambios que ya estén hechos; no dupliques entradas.",
"reposOtherwise": "Si no, en una instalación PVE 9 limpia sin suscripción enterprise:",
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
"reposPveBody": "Asegúrate de que contiene la fuente no-subscription para Trixie:",
@@ -47,7 +47,7 @@
"installDriver": {
"heading": "2. Instalar el driver NVIDIA en el host",
"pickHeading": "2.1 Elegir una versión de driver",
- "pickBody": "Consulta el último driver estable:",
+ "pickBody": "Elige una rama del controlador compatible con tu GPU y el kernel en uso. La más reciente puede excluir modelos antiguos; consulta la lista de productos compatibles de la versión NVIDIA elegida:",
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
"nvencCallout": "Si vas a aplicar el parche NVENC (paso 4), verifica primero que el parche soporte tu versión de driver: github.com/keylase/nvidia-patch",
"nvencCalloutTitle": "Aviso",
@@ -56,27 +56,27 @@
"pickImageAlt": "Descarga del driver NVIDIA",
"pickVersionNote": "A lo largo del resto de esta guía, reemplaza '<'VERSION'>' por la versión real (por ejemplo, 580.95.05).",
"downloadHeading": "2.2 Descargar y ejecutar el instalador",
- "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/'<'VERSION'>'/NVIDIA-Linux-x86_64-'<'VERSION'>'.run\nchmod +x NVIDIA-Linux-x86_64-'<'VERSION'>'.run",
- "firstPassBody": "Primera pasada — esto desactiva nouveau y prepara el sistema:",
- "firstPassCode": "./NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Ejecuta el instalador. La opción siguiente puede desactivar nouveau si hace falta; quizá necesites reiniciar antes de completar la instalación:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
"secondPassBody": "Cuando el host vuelva, ejecuta el instalador de nuevo para compilar e instalar el módulo del kernel:",
- "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-questions --ui=none",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
"modulesHeading": "2.3 Cargar módulos NVIDIA en el arranque",
"modulesBody": "Edita la configuración de carga de módulos:",
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
- "modulesAddBody": "Añade los módulos VFIO y NVIDIA:",
- "modulesAddCode": "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd\nnvidia\nnvidia_uvm",
+ "modulesAddBody": "Añade los módulos NVIDIA necesarios para el host y LXC. Los módulos VFIO son para acceso directo desde una VM y no hacen falta para este procedimiento LXC:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
"modulesSaveBody": "Guarda (Ctrl+X) y reconstruye initramfs:",
"modulesSaveCode": "update-initramfs -u -k all",
"udevHeading": "2.4 Crear reglas udev",
"udevBody": "Para que los nodos de dispositivo /dev/nvidia* se creen cuando se cargan los módulos:",
"udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
- "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\n# Create /dev/nvidia0, /dev/nvidia1 ... and /dev/nvidiactl when nvidia module is loaded\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c ''/usr/bin/nvidia-smi -L''\"\n\n# Create the CUDA node when nvidia_uvm CUDA module is loaded\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c ''/usr/bin/nvidia-modprobe -c0 -u''\"",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
"udevSaveBody": "Guarda (Ctrl+X)."
},
"persistence": {
"heading": "3. Servicio de persistencia del driver NVIDIA",
- "body": "El daemon de persistencia mantiene la GPU inicializada entre usos, lo que evita la penalización de latencia y la pérdida ocasional de estado que ocurre cuando el módulo del kernel se carga y descarga repetidamente:",
+ "body": "El servicio de persistencia mantiene la GPU inicializada cuando ninguna otra aplicación la usa. Reduce la latencia de reinicialización y conserva el estado de inicialización entre clientes:",
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
"verifyBody": "Verifica que el driver está cargado y el servicio está en marcha tras reiniciar:",
"verifySmiCode": "nvidia-smi",
@@ -86,7 +86,7 @@
},
"nvenc": {
"heading": "4. (Opcional) Levantar el límite de sesiones concurrentes de NVENC",
- "body": "Las GPUs NVIDIA de consumo vienen con un límite hardcodeado en el número de sesiones simultáneas de codificación NVENC (típicamente 3, 5 u 8 según la generación). El parche de keylase elimina esa restricción. Útil cuando ejecutas cargas de transcodificación de Plex / Jellyfin / Frigate.",
+ "body": "El límite de sesiones NVENC depende del modelo de GPU y de la versión del controlador; consulta la matriz de NVIDIA en vez de asumir una cifra por generación. El parche keylase elimina el límite de software en las versiones compatibles. Puede ayudar en tareas de codificación como la transcodificación de Plex o Jellyfin.",
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
"imageAlt": "Aplicación del parche NVIDIA",
"after": "El parche debe reaplicarse después de cada actualización del driver. El repositorio de keylase también incluye patch-fbc.sh para el límite de FBC (frame buffer capture) si lo necesitas."
@@ -103,24 +103,36 @@
"major": "Major típico"
},
"tableRows": [
- { "device": "/dev/nvidia0, /dev/nvidiactl", "major": "195" },
- { "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools", "major": "509 (varía)" },
- { "device": "/dev/dri/*", "major": "226" },
- { "device": "/dev/nvidia-modeset", "major": "195 (comparte con nvidia)" }
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (varía)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (comparte con nvidia)"
+ }
],
"editHeading": "5.2 Editar la config del LXC",
"editBody": "Para el contenedor primero si está corriendo. Abre su archivo de configuración (reemplaza '<'CTID'>' por el ID del contenedor):",
- "editCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
"editConfigBody": "Comenta las líneas lxc.cgroup2.devices.allow o /dev/dri preexistentes que entren en conflicto, luego añade el cableado NVIDIA (ajusta los números major a lo que ls -l /dev/nv* mostró en tu host):",
- "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.cgroup2.devices.allow: c 10:* rwm\nlxc.cgroup2.devices.allow: c 238:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file\nlxc.mount.entry: /dev/nvram dev/nvram none bind,optional,create=file",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
"editConfigImageAlt": "Configuración del LXC",
"editSave": "Guarda (Ctrl+X) y arranca el contenedor.",
"installCtHeading": "5.3 Instalar el driver dentro del contenedor",
"installCtCalloutTitle": "Importante",
"installCtCalloutBody": "Esta parte se ejecuta dentro del contenedor, no en el host.",
"installCtBody": "El módulo del kernel ya está cargado por el host — el contenedor solo necesita las librerías de userland que coincidan con la misma versión del driver:",
- "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/'<'VERSION'>'/NVIDIA-Linux-x86_64-'<'VERSION'>'.run\nchmod +x NVIDIA-Linux-x86_64-'<'VERSION'>'.run\n./NVIDIA-Linux-x86_64-'<'VERSION'>'.run --no-kernel-module",
- "installCtAfter": "Acepta los valores por defecto en cada prompt.",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Revisa las preguntas y limita esta instalación a las bibliotecas de espacio de usuario. No compiles ni instales un módulo del kernel dentro del LXC.",
"installCtImageAlt": "Instalación del driver NVIDIA",
"verifyCtHeading": "5.4 Verificar dentro del contenedor",
"verifyCtSmiCode": "nvidia-smi",
@@ -129,25 +141,25 @@
"verifyCtLsImageAlt": "Dispositivos NVIDIA en LXC",
"verifyCtAfter": "Deberías ver la GPU listada y los nodos de dispositivo montados en el sistema de archivos del contenedor.",
"workloadHeading": "5.5 Confirmar que una carga real usa la GPU",
- "workloadBody": "Para Plex / Jellyfin, transcodifica un vídeo y mira el dashboard / logs — la transcodificación acelerada por hardware ya está activa.",
+ "workloadBody": "Activa la aceleración NVIDIA en Plex o Jellyfin, transcodifica un vídeo y comprueba el uso real de la GPU en su panel o registros. Instalar el controlador no activa por sí solo la aceleración en la aplicación.",
"workloadImage1Alt": "Plex usando la GPU NVIDIA",
"workloadImage2Alt": "Plex usando la GPU NVIDIA - sesión activa",
- "repeatNote": "Para cablear la GPU en otro contenedor, repite la sección 5 para cada CTID adicional. La instalación del driver dentro del contenedor solo hace falta hacerla una vez por contenedor."
+ "repeatNote": "Repite la sección 5 para cada contenedor adicional que necesite la GPU. Cuando actualices el controlador del host, mantén sincronizadas las bibliotecas de espacio de usuario de todos los contenedores."
},
"docker": {
"heading": "6. (Opcional) NVIDIA Docker dentro de un LXC",
- "body": "Si el contenedor ejecuta Docker y quieres que los contenedores-dentro-del-contenedor usen la GPU, instala nvidia-docker2. Desde dentro del LXC:",
- "code": "wget https://raw.githubusercontent.com/MacRimi/manuales/main/NVIDIA/nvidia-docker.sh\nchmod +x nvidia-docker.sh\n./nvidia-docker.sh",
- "after": "El script se encarga de la configuración del repositorio, la instalación del paquete y la configuración del daemon Docker de una sola vez."
+ "body": "Si Docker ya está instalado en el LXC, instala nvidia-container-toolkit dentro para dar acceso a la GPU a sus contenedores Docker. El acceso desde el LXC debe funcionar primero. Estos comandos son para Docker ejecutado como root:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Estos comandos configuran el repositorio de NVIDIA, instalan el toolkit, configuran el entorno de Docker y lo reinician. Siguen aplicándose los permisos de dispositivos y las restricciones cgroup del LXC; verifica la GPU con una carga de prueba."
},
"troubleshoot": {
"heading": "Solución de problemas",
"items": [
- "nvidia-smi en el host muestra la GPU, pero dentro del contenedor da error \"No devices found\": las versiones del driver no coinciden. Vuelve a descargar la misma '<'VERSION'>' dentro del contenedor y ejecútalo con --no-kernel-module.",
- "La compilación del driver falla en el host con \"No precompiled kernel interface was found\": faltan los kernel headers o están desincronizados. Vuelve a ejecutar apt-get install pve-headers-$(uname -r) y confirma que uname -r coincide con el kernel en ejecución.",
- "Las sesiones de NVENC siguen capadas después de aplicar el parche: el parche fue sobrescrito por una actualización del driver. Vuelve a ejecutar ./patch.sh desde /opt/nvidia/nvidia-patch.",
- "La GPU deja de responder tras unas horas de inactividad: el daemon de persistencia no está corriendo. Compruébalo con systemctl status nvidia-persistenced y arráncalo / habilítalo.",
- "El contenedor arranca pero ls /dev/nv* no muestra nada: los números major en la config del LXC no coinciden con los del host. Vuelve a ejecutar ls -l /dev/nv* en el host y ajusta las líneas lxc.cgroup2.devices.allow en consecuencia."
+ "nvidia-smi funciona en el host, pero muestra “No devices found” en el contenedor: revisa los montajes, permisos y versiones de las bibliotecas. Si difieren, instala la misma '<'VERSION'>' del host dentro del contenedor con --no-kernel-module.",
+ "Falla la compilación del controlador: consulta el registro. “No precompiled kernel interface was found” puede indicar que el instalador debe compilar localmente. Instala las cabeceras de uname -r con apt-get install pve-headers-$(uname -r) o el paquete proxmox-headers equivalente.",
+ "Las sesiones NVENC siguen limitadas: confirma que el parche admita el controlador activo. Una actualización puede sobrescribirlo. Para una versión compatible, vuelve a aplicar ./patch.sh desde /opt/nvidia/nvidia-patch y revisa su salida.",
+ "La GPU deja de responder tras estar inactiva: comprueba systemctl status nvidia-persistenced y activa el servicio si corresponde. Revisa también los registros del kernel y del controlador; no es la única causa posible.",
+ "El contenedor arranca, pero ls /dev/nv* no muestra dispositivos NVIDIA: revisa los bind mounts y las rutas del host. Usa ls -l /dev/nv* en el host para verificar los números major de NVIDIA y comprueba las reglas lxc.cgroup2.devices.allow y los permisos."
]
}
}
diff --git a/web/messages/fr/guides/backup-cloud.json b/web/messages/fr/guides/backup-cloud.json
new file mode 100644
index 00000000..70db9548
--- /dev/null
+++ b/web/messages/fr/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Sauvegarder Proxmox dans un stockage cloud personnel | ProxMenux",
+ "description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire.",
+ "ogTitle": "Sauvegarder Proxmox dans un stockage cloud personnel",
+ "ogDescription": "Monter un stockage cloud avec rclone sur l’hôte Proxmox VE et l’utiliser comme destination vzdump pour les VM et conteneurs."
+ },
+ "header": {
+ "title": "Sauvegarder Proxmox dans un stockage cloud personnel",
+ "description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire.",
+ "section": "Guides"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Envisagez d’abord Proxmox Backup Server",
+ "pbsCalloutBody": "Sur une seconde machine répondant aux exigences x86-64, Proxmox Backup Server propose des sauvegardes incrémentales et dédupliquées, avec chiffrement facultatif côté client. Il est conçu pour les VM. Ce guide explique plutôt comment monter un stockage cloud personnel, comme Google Drive, Mega, OneDrive ou Dropbox, comme destination de sauvegarde.",
+ "stepsTitle": "Ce que vous allez faire",
+ "steps": [
+ "Créer un répertoire sur l’hôte Proxmox et le déclarer comme stockage de sauvegarde vzdump.",
+ "Installez et configurez rclone pour votre fournisseur de cloud.",
+ "Montez le dossier cloud sur le répertoire.",
+ "Rétablir le montage après chaque redémarrage avec une unité systemd."
+ ],
+ "vzdumpCalloutTitle": "À propos des sauvegardes vzdump de Proxmox",
+ "vzdumpCalloutBody": "Les archives vzdump de Proxmox sont des sauvegardes complètes, pas incrémentielles. Leur taille dépend des données incluses et de la compression, pas seulement de la capacité du disque virtuel. Si une archive occupe 30 GB, en conserver cinq nécessite environ 150 GB. Définissez une politique de rétention pour éviter de remplir le cloud."
+ },
+ "createDir": {
+ "heading": "1. Créer le répertoire sur l’hôte et le déclarer comme stockage de sauvegarde",
+ "body": "Connectez-vous à l’hôte par SSH ou ouvrez le shell Proxmox, puis créez un point de montage dans /mnt/. Choisissez un nom qui identifie le fournisseur :",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "Dans l'interface web Proxmox: Datacenter → Stockage → Ajouter → Directory.",
+ "image1Alt": "Ajouter un nouveau stockage dans Proxmox",
+ "configIntro": "Configurez-le comme ceci :",
+ "configItems": [
+ "ID:gdrive (ou tout ce que vous avez utilisé pour le nom du répertoire)",
+ "Répertoire:/mnt/gdrive",
+ "Contenu : sélectionnez Fichier de sauvegarde VZDump."
+ ],
+ "image2Alt": "Configuration du nouveau stockage dans Proxmox",
+ "afterConfig": "Cliquez sur Ajouter :",
+ "image3Alt": "Nouveau stockage ajouté dans Proxmox",
+ "afterAdd": "Le répertoire est déclaré comme stockage Proxmox, mais il reste vide : le cloud n’y est pas encore monté."
+ },
+ "installRclone": {
+ "heading": "2. Installer et configurer rclone",
+ "body": "rclone communique avec les services de stockage cloud. Installez-le depuis les dépôts Debian :",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Si vous avez besoin d'un nouveau rclone",
+ "newerCalloutBody": "Si vous avez besoin d’une version plus récente que celle proposée par Debian, utilisez l’installateur officiel :",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Authentification par navigateur via le tunnel SSH",
+ "tunnelBody": "Pour les fournisseurs utilisant une connexion web, l’hôte Proxmox n’a généralement pas de navigateur. Suivez la procédure de configuration distante de rclone : utilisez le navigateur du portable et transférez sa connexion de retour localhost par SSH vers rclone sur l’hôte.",
+ "tunnelFrom": "Sur votre ordinateur portable, en remplaçant ip_proxmox par l’adresse IP de Proxmox :",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "Cette session SSH ouvre le port localhost 53682 sur le portable et transfère les connexions vers le même port de l’hôte Proxmox. Gardez-la ouverte pendant la configuration de rclone.",
+ "runHeading": "2.2 Exécuter rclone config",
+ "runBody": "Dans la session SSH que vous venez d’ouvrir, exécutez :",
+ "runCode": "rclone config",
+ "runAfter": "Suivez les instructions pour ajouter une nouvelle configuration distante, ou « remote ». Les réponses dépendent du fournisseur ; consultez la documentation des fournisseurs rclone pour Google Drive, Mega, Dropbox, OneDrive, etc. L’étape clé est la question d’authentification :",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Répondez Y. rclone affiche une URL locale. Ouvrez-la dans le navigateur du portable ; le tunnel SSH transfère la connexion. Autorisez rclone auprès du fournisseur cloud pour terminer la configuration.",
+ "nameRemote": "Pour le nom de la configuration distante, choisissez un nom correspondant au répertoire, par exemple gdrive."
+ },
+ "mount": {
+ "heading": "3. Monter le dossier cloud",
+ "body": "Créez un dossier dans votre cloud pour les sauvegardes, par exemple PBC, pour Proxmox Backup Cloud.",
+ "mountIntro": "Montez-le dans le répertoire de l’hôte :",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC — le dossier dans votre cloud.",
+ "/mnt/gdrive — le répertoire hôte que vous avez enregistré comme datastore."
+ ],
+ "mountFootnote": "Cette commande reste au premier plan. Laissez-la tourner dans un terminal pour tester une sauvegarde. Pour rétablir le montage à chaque démarrage, créez une unité systemd dans la section suivante."
+ },
+ "systemd": {
+ "heading": "4. Montage automatique à chaque démarrage avec systemd",
+ "body": "Une unité systemd offre plus de contrôle que crontab @reboot : elle peut attendre le démarrage du réseau, redémarrer en cas d’échec et fournir des journaux via journalctl.",
+ "createIntro": "Créez le fichier de l’unité :",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Collez :",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Adaptez gdrive:/PBC et /mnt/gdrive si vous avez choisi d’autres noms. Enregistrez, quittez l’éditeur avec Ctrl+X, puis activez et démarrez le service :",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Vérifier :",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "L’unité demande un redémarrage après 10 secondes si le processus rclone se termine en échec. Cela ne répare pas les identifiants expirés et ne garantit pas la résolution de tout problème réseau ou fournisseur. Consultez /var/log/rclone-gdrive.log et journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Pourquoi utiliser --vfs-cache-mode writes ?",
+ "vfsCalloutBody": "Avec le cache d’écriture, les opérations comme fwrite écrivent dans un cache disque local. rclone envoie le fichier après sa fermeture et le délai d’écriture différée. Prévoyez assez d’espace local pour les sauvegardes en cours et vérifiez la fin de l’envoi avant de considérer la copie distante comme disponible."
+ },
+ "configureBackup": {
+ "heading": "5. Configurer le cloud comme destination de sauvegarde",
+ "body": "Dans Proxmox, pour une sauvegarde planifiée ou manuelle, choisissez le stockage déclaré comme destination :",
+ "image5Alt": "Sélection de la destination de sauvegarde dans Proxmox",
+ "after": "Une fois vzdump terminé, attendez la fin de l’envoi rclone en arrière-plan et vérifiez l’archive dans l’interface du fournisseur cloud :",
+ "image6Alt": "Fichier de sauvegarde dans le stockage en nuage"
+ },
+ "retention": {
+ "heading": "6. Rétention : maîtriser le quota cloud",
+ "body": "Les archives vzdump de Proxmox sont des sauvegardes complètes, pas incrémentielles. Leur taille dépend des données incluses et de la compression, pas seulement de la capacité du disque virtuel. Si une archive occupe 30 GB, en conserver cinq nécessite environ 150 GB. Définissez une politique de rétention pour éviter de remplir le cloud.",
+ "uiPath": "Dans l’interface Proxmox : Centre de données → Sauvegarde → [votre tâche] → Rétention :",
+ "image7Alt": "Paramètres de rétention de sauvegarde dans Proxmox",
+ "starterIntro": "Valeurs de départ possibles pour une installation personnelle ou de test :",
+ "starterItems": [
+ "Conserver les 5 dernières sauvegardes quotidiennes",
+ "Conserver les 4 dernières sauvegardes hebdomadaires",
+ "Conserver les 6 dernières sauvegardes mensuelles"
+ ],
+ "adjust": "Adaptez les valeurs au quota cloud et à la fréquence des modifications des VM."
+ },
+ "troubleshoot": {
+ "heading": "Dépannage",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem : le répertoire est déjà monté, éventuellement par une autre instance rclone. Vérifiez qu’aucune sauvegarde n’est en cours avant de supprimer l’ancien montage avec fusermount -uz /mnt/gdrive, puis redémarrez l’unité systemd.",
+ "La sauvegarde est très lente : vérifiez --vfs-cache-mode writes sur la ligne ExecStart, les performances du cache local, le débit montant et les limites du fournisseur. L’envoi peut continuer après la fin de vzdump.",
+ "La sauvegarde échoue avec No space left on device : vérifiez l’espace du cache local et le quota cloud. Le cache utilise généralement ~/.cache/rclone/. S’il est plein, choisissez par exemple --cache-dir /var/cache/rclone sur un système de fichiers disposant d’espace. Changer de chemin sur le même système plein ne suffit pas.",
+ "Le jeton d’authentification rclone a expiré : reconnectez-vous par SSH avec le tunnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) et exécutez rclone config reconnect gdrive: pour renouveler l’autorisation.",
+ "Les sauvegardes sont présentes dans le cloud, mais leur restauration échoue : n’utilisez pas le cloud comme seule destination. Ajoutez des sauvegardes PBS ou vzdump locales sur un autre disque."
+ ]
+ }
+}
diff --git a/web/messages/fr/guides/index.json b/web/messages/fr/guides/index.json
new file mode 100644
index 00000000..c2802c1f
--- /dev/null
+++ b/web/messages/fr/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Guides Proxmox VE — Coral TPU, NVIDIA, Kodi dans LXC, Samba et sauvegarde cloud | ProxMenux",
+ "description": "Tutoriels détaillés pour Proxmox VE : Kodi dans LXC avec accélération GPU, pilotes NVIDIA sur PVE 9, disque USB partagé par Samba dans un conteneur et sauvegardes vzdump vers Google Drive, Mega, Dropbox ou OneDrive. Avec une sélection de ressources communautaires, un glossaire et une référence des commandes.",
+ "ogTitle": "Guides Proxmox VE — Coral TPU, NVIDIA, Kodi dans LXC, Samba et sauvegarde cloud",
+ "ogDescription": "Tutoriels détaillés pour Proxmox VE : passthrough GPU, centre multimédia Kodi dans LXC, disque USB partagé par Samba, sauvegarde cloud avec rclone et ressources communautaires sélectionnées.",
+ "twitterTitle": "Guides Proxmox VE | ProxMenux",
+ "twitterDescription": "Tutoriels détaillés pour Proxmox VE : GPU, Kodi dans LXC, Samba, sauvegarde cloud et autres sujets.",
+ "ogImageAlt": "Guides ProxMenux — tutoriels détaillés pour Proxmox VE"
+ },
+ "header": {
+ "title": "Guides ProxMenux",
+ "tagline": "Tutoriels approfondis, références rapides et ressources communautaires sélectionnées pour tirer le meilleur parti de Proxmox VE."
+ },
+ "inDepth": {
+ "heading": "Guides détaillés",
+ "intro": "Tutoriels détaillés pour des tâches précises dans Proxmox. Chacun présente les étapes manuelles d’un processus automatisé par ProxMenux, pour comprendre ce qui se passe à chaque étape.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Installer Kodi dans LXC avec accélération GPU et le relier à un écran ou téléviseur",
+ "description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Sauvegarder Proxmox dans un stockage cloud personnel",
+ "description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "Ajouter un disque ou une clé USB à LXC et le partager sur le réseau avec Samba",
+ "description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "Installation des pilotes de cartes graphiques NVIDIA sur Proxmox VE 9 (procédure manuelle)",
+ "description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur."
+ }
+ ]
+ },
+ "references": {
+ "heading": "Références ProxMenux",
+ "intro": "Matériel de référence rapide de la documentation ProxMenux elle-même.",
+ "cards": {
+ "glossary": {
+ "title": "Glossaire",
+ "description": "Plus de 60 définitions des termes techniques de ProxMenux : Proxmox, virtualisation, stockage, réseau et Linux. Consultation rapide avec étiquettes de catégorie et liens croisés."
+ },
+ "helpInfo": {
+ "title": "Aide et information — Catalogue des commandes",
+ "description": "Une sélection de commandes Linux et Proxmox classées par thème, avec copie dans le presse-papiers. Reprend la référence disponible dans le menu ProxMenux."
+ },
+ "linuxResources": {
+ "title": "Ressources Linux",
+ "description": "Ressources externes pour apprendre la ligne de commande Linux, les bonnes pratiques de sécurité, les outils de surveillance et ZFS, en complément du catalogue de commandes ProxMenux."
+ },
+ "externalRepos": {
+ "title": "Dépôts externes",
+ "description": "Dépôts de scripts tiers intégrés dans ProxMenux comme options de menu alternatives (community-scripts/ProxmoxVE, etc.)."
+ }
+ }
+ },
+ "official": {
+ "heading": "Ressources officielles Proxmox",
+ "intro": "Documentation publiée par Proxmox Server Solutions, la référence officielle de la plateforme.",
+ "cards": {
+ "pveDocs": {
+ "title": "Documentation Proxmox VE",
+ "description": "Le guide officiel d’administration : une référence complète sur l’installation, le réseau, le stockage, les clusters, la haute disponibilité et l’API."
+ },
+ "pbsDocs": {
+ "title": "Documentation Proxmox Backup Server",
+ "description": "Documentation PBS : sauvegardes incrémentales, dédupliquées et chiffrées pour Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Formation vidéo officielle",
+ "description": "Tutoriels vidéo et formations officiels de Proxmox."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Forum communautaire officiel pour les questions, le dépannage et le partage d’expériences, suivi par les responsables du projet."
+ }
+ }
+ },
+ "community": {
+ "heading": "Projets et ressources communautaires",
+ "intro": "Projets open source et listes sélectionnées dans la communauté Proxmox. Ils ne sont affiliés ni à Proxmox Server Solutions ni à ProxMenux ; ils figurent ici pour leur utilité.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "Catalogue maintenu par la communauté de scripts pour déployer simplement des conteneurs LXC, des VM et des réglages PVE, par exemple pour Home Assistant, Plex ou Frigate. Il reprend l’esprit des scripts de tteck."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (liste de ressources sélectionnées)",
+ "description": "Vaste sélection communautaire de ressources Proxmox VE : outils, bibliothèques, intégrations, blogs et vidéos. Un bon point de départ pour en découvrir davantage."
+ }
+ },
+ "suggestRich": "Vous connaissez une ressource de qualité à ajouter ? Ouvrez une issue ou une PR sur GitHub. Cette liste doit rester une sélection pertinente plutôt qu’un inventaire exhaustif."
+ },
+ "discussion": {
+ "heading": "Débat communautaire",
+ "intro": "Où les gens parlent de Proxmox et ProxMenux.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "Discussions GitHub dédiées à ProxMenux : idées de fonctions, questions-réponses et partage de configurations. L’endroit adapté aux sujets liés au menu, à Monitor et à la documentation."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Forum Proxmox officiel (également lié ci-dessus). Le bon endroit pour le dépannage en profondeur et les problèmes spécifiques à la configuration."
+ },
+ "reddit": {
+ "title": "r/Proxmox sur Reddit",
+ "description": "Subreddit actif pour les discussions, conseils et questions techniques. Plus accessible que le forum, avec des réponses souvent plus rapides aux questions informelles."
+ }
+ }
+ }
+}
diff --git a/web/messages/fr/guides/kodi-lxc.json b/web/messages/fr/guides/kodi-lxc.json
new file mode 100644
index 00000000..30ae7c6f
--- /dev/null
+++ b/web/messages/fr/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Installer Kodi dans LXC avec accélération GPU | Guides ProxMenux",
+ "description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur.",
+ "ogTitle": "Installer Kodi dans LXC avec accélération GPU",
+ "ogDescription": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, avec accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, pour transformer le serveur en centre multimédia."
+ },
+ "header": {
+ "title": "Installer Kodi dans LXC avec accélération GPU et le relier à un écran ou téléviseur",
+ "description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur.",
+ "section": "Guides"
+ },
+ "intro": {
+ "calloutTitle": "Attention",
+ "calloutBody": "Ce guide utilise un script communautaire externe pour préparer le conteneur Kodi. ProxMenux peut également lui donner accès à l’iGPU de l’hôte : GPU et Coral-TPU → Ajouter un GPU à LXC configure /dev/dri et installe les pilotes dans le conteneur. Le script ci-dessous installe aussi Kodi et son démarrage automatique sur tty7. Utilisez-le pour un centre multimédia LXC prêt à l’emploi ; choisissez la procédure ProxMenux si vous souhaitez seulement donner accès au GPU à un conteneur déjà configuré.",
+ "credit": "Le script Kodi LXC original a été créé par mrrudy.",
+ "stepsTitle": "Ce que vous allez faire",
+ "steps": [
+ "Créer un conteneur LXC privilégié avec Kodi à l’aide du script.",
+ "Donner au conteneur accès au clavier, à la souris ou à la manette USB.",
+ "Facultatif : mettre à jour Kodi depuis les dépôts configurés dans le conteneur."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Créer le Kodi LXC",
+ "body": "Pour cette procédure, sélectionnez Privileged dans les réglages avancés du script. Par défaut, il crée des conteneurs non privilégiés, qui nécessitent des droits sur les périphériques et une correspondance des identifiants adaptés. Il configure l’accès au GPU, Kodi et son démarrage sur tty7 :",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "L’installation prend un peu de temps. Lorsque Kodi démarre sur tty7, reliez l’écran ou le téléviseur à la sortie HDMI/DisplayPort de l’hôte. L’interface de Kodi devrait s’afficher."
+ },
+ "addInput": {
+ "heading": "2. Ajouter un clavier, une souris ou une manette USB",
+ "body": "Les périphériques d’entrée se trouvent dans /dev/input/ sur l’hôte. Repérez leur numéro majeur :",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Liste des périphériques d'entrée",
+ "afterList": "Pour les périphériques de caractères, prenez le numéro majeur avant la virgule, ici 13. Arrêtez le conteneur Kodi et modifiez sa configuration, en remplaçant '<'CTID'>' par son identifiant, par exemple 102 :",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Ajoutez les lignes suivantes en adaptant 13 au numéro relevé sur votre hôte :",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "Configuration LXC",
+ "save": "Enregistrez le fichier, quittez l’éditeur avec Ctrl+X et redémarrez uniquement le conteneur. Inutile de redémarrer l’hôte Proxmox :",
+ "restartCode": "pct reboot CTID",
+ "plug": "Branchez le clavier, la souris ou la manette USB. Kodi devrait réagir."
+ },
+ "updateKodi": {
+ "heading": "3. Facultatif : mettre à jour Kodi depuis les dépôts configurés",
+ "calloutTitle": "Important",
+ "calloutBody": "Le PPA team-xbmc est réservé à Ubuntu et Kodi indique qu’il n’est plus maintenu. L’absence de add-apt-repository ne permet pas d’identifier la distribution. Vérifiez cat /etc/os-release et recherchez NAME=\"Ubuntu\" ; n’ajoutez pas de PPA Ubuntu à Debian. Les commandes ci-dessous mettent à jour les paquets depuis les dépôts configurés dans le conteneur.",
+ "body": "Dans le conteneur (pct enter '<'CTID'>') :",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Redémarrez le conteneur après la mise à jour. Kodi utilisera la version disponible dans ses dépôts configurés, qui peut différer de la dernière version du projet."
+ },
+ "screenshots": {
+ "heading": "Captures d'écran",
+ "image1Alt": "Interface Kodi 1",
+ "image2Alt": "Interface Kodi 2"
+ },
+ "troubleshoot": {
+ "heading": "Dépannage",
+ "items": [
+ "Le conteneur Kodi démarre, mais rien ne s’affiche sur le téléviseur : il n’a peut-être pas accès à l’iGPU. Vérifiez ls /dev/dri dans le conteneur : card0 et renderD128 devraient apparaître. Si le répertoire est vide, vérifiez le passthrough GPU ou utilisez Ajouter un GPU à LXC dans ProxMenux.",
+ "Clavier ou souris non détecté après redémarrage : vérifiez que /dev/input est monté et que Kodi peut lire les périphériques. Exécutez ls -l /dev/input sur l’hôte et dans le conteneur, puis vérifiez la règle lxc.cgroup2.devices.allow.",
+ "La lecture avec accélération matérielle utilise le CPU au lieu du GPU : installez ou mettez à jour les pilotes VA-API dans le conteneur : intel-media-va-driver pour les iGPU Intel récents, i965-va-driver pour les anciens et mesa-va-drivers pour AMD.",
+ "add-apt-repository: command not found : la commande n’est pas installée ; cela ne prouve pas que le conteneur utilise Debian. Vérifiez la distribution et les paquets disponibles. Sur Debian, utilisez ses paquets Kodi sans ajouter le PPA Ubuntu."
+ ]
+ },
+ "further": {
+ "heading": "Pour en savoir plus",
+ "konpatRich": "Article de Konpat pour en savoir plus sur l’accès à l’iGPU Intel depuis LXC."
+ }
+}
diff --git a/web/messages/fr/guides/lxc-samba.json b/web/messages/fr/guides/lxc-samba.json
new file mode 100644
index 00000000..97e3bd3d
--- /dev/null
+++ b/web/messages/fr/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Ajouter un disque USB à LXC et le partager avec Samba | ProxMenux",
+ "description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau.",
+ "ogTitle": "Ajouter un disque USB à LXC et le partager avec Samba",
+ "ogDescription": "Donner accès à un disque USB dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau local."
+ },
+ "header": {
+ "title": "Ajouter un disque ou une clé USB à LXC et le partager sur le réseau avec Samba",
+ "description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau.",
+ "section": "Guides"
+ },
+ "recommended": {
+ "calloutTitle": "Recommandé",
+ "calloutIntro": "ProxMenux propose les deux parties de cette procédure sous forme de menus guidés :",
+ "items": [
+ "Gestion des disques → Formater/effacer un disque physique pour le formatage.",
+ "Stockage et partage → Partage réseau LXC → Serveur Samba dans LXC pour l’installation dans le conteneur privilégié et la configuration de Samba."
+ ],
+ "calloutOutro": "Les procédures guidées gèrent les particularités des droits des conteneurs non privilégiés, les profils de partage en lecture-écriture, lecture seule ou personnalisés, ainsi que le groupe sharedfiles. Ce guide présente les étapes manuelles pour les comprendre ou les configurer vous-même."
+ },
+ "intro": {
+ "body": "Un disque dur ou une clé USB peut être utile sur un hôte Proxmox, surtout sur un mini-PC offrant peu de possibilités d’extension interne. Ce guide explique :",
+ "stepsTitle": "Ce que vous allez faire",
+ "steps": [
+ "Fixation du disque USB à un LXC privilégié.",
+ "Installation de Samba à l'intérieur du conteneur.",
+ "Partage du contenu du disque sur le réseau local."
+ ],
+ "useCasesTitle": "Cas d'utilisation",
+ "useCases": [
+ "Héberger des fichiers torrent et les partager sur le réseau.",
+ "Fournir du stockage à un serveur multimédia comme Plex, Jellyfin ou Emby.",
+ "Stocker des documents que Paperless traite automatiquement.",
+ "Stockage générique de type NAS pour le réseau domestique."
+ ],
+ "privilegedCalloutTitle": "Conteneur privilégié pour cette procédure",
+ "privilegedCalloutBody": "Cette procédure utilise un conteneur LXC privilégié avec un périphérique de bloc comme mp0. Pour un conteneur non privilégié, vous pouvez monter le système de fichiers sur l’hôte puis partager son répertoire par montage bind, avec les droits et correspondances d’identifiants adaptés. Voir Stockage et partage → Points de montage LXC dans ProxMenux."
+ },
+ "attach": {
+ "heading": "1. Rendre le disque USB accessible dans LXC",
+ "identifyHeading": "1.1 Identifier l'appareil",
+ "identifyBody": "Comparez la liste des disques avant et après le branchement USB. Le nouveau périphérique est le disque recherché.",
+ "beforeLabel": "Avant:",
+ "afterLabel": "Après:",
+ "imageBeforeAlt": "Liste de disques avant d'ajouter un lecteur USB",
+ "imageAfterAlt": "Liste de disques après l'ajout du lecteur USB",
+ "lsblkBody": "Utilisez aussi lsblk -o NAME,SIZE,MODEL,SERIAL pour afficher les périphériques de bloc avec leur modèle et numéro de série.",
+ "stableCalloutTitle": "Important — utilisez un identifiant stable",
+ "stableCalloutBody": "Le nom /dev/sdb1 peut changer après un redémarrage, surtout avec plusieurs disques USB. Recherchez l’identifiant persistant :",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Utilisez l’entrée /dev/disk/by-id/usb-... de la partition choisie dans la configuration LXC, au lieu de /dev/sdb1. Choisissez la partition, pas le disque entier : elle restera identifiable si l’ordre des périphériques change.",
+ "formatHeading": "1.2 Formater le disque",
+ "formatBody": "ext4 convient aux partages sous Linux : distinction des majuscules, ACL POSIX et fichiers volumineux. Le formatage détruit le contenu du système de fichiers existant. Vérifiez la partition puis exécutez la commande sur l’hôte Proxmox :",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Remplacez /dev/sdb1 par la partition réelle ou son chemin persistant /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Créer le point de montage dans le conteneur LXC",
+ "mkdirBody": "À l'intérieur du LXC, créez le répertoire où le disque apparaîtra (tout nom fonctionne):",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Déclarer le périphérique dans LXC",
+ "wireBody": "Sur l’hôte Proxmox, modifiez la configuration du conteneur. Remplacez '<'CTID'>' par son identifiant :",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Ajouter cette ligne:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Vous pouvez aussi utiliser l’entrée courte mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0 si vous acceptez le risque de changement du nom du périphérique.",
+ "wireBackupNote": "Cet exemple utilise backup=0. Le contenu des montages de périphériques et des montages bind n’est pas inclus dans les sauvegardes vzdump du conteneur. Prévoyez une sauvegarde distincte des données du disque externe.",
+ "restartHeading": "1.5 Redémarrez le LXC et définissez les permissions",
+ "restartBody": "Redémarrer le CT pour appliquer le point de montage:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Dans le conteneur LXC, créez le compte de partage avant de lui attribuer le répertoire, puis définissez les droits :",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Remarque",
+ "permsNote": "Remplacez proxmenux par le nom choisi. Le mode 770 autorise le propriétaire et le groupe, sans accès pour les autres ; il est plus restrictif que chmod -R 777. Le compte est créé ici puis enregistré dans Samba à l’étape 2.2."
+ },
+ "samba": {
+ "heading": "2. Installer Samba",
+ "installHeading": "2.1 Installez le paquet à l'intérieur du LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Confirmez que le service fonctionne :",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Vérifier le compte de partage",
+ "userBody": "Le compte système proxmenux a été créé sans shell de connexion à l’étape 1.5. Vérifiez-le avant de définir son mot de passe Samba et utilisez le nom choisi à chaque étape :",
+ "userCode": "id proxmenux",
+ "passwordBody": "Définissez le mot de passe Samba. Il est distinct du mot de passe système, car Samba possède son propre stockage d’identifiants :",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Définir le propriétaire et les ACL",
+ "aclBody": "Si le chown de l’étape 1.5 suffit, les droits sont prêts. Pour plusieurs utilisateurs ayant des droits différents sur le même chemin, utilisez des ACL :",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Configurer le partage Samba",
+ "editHeading": "3.1 Modifier smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Ajoutez une définition de partage à la fin du fichier :",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Remarque",
+ "validUsersNote": "La ligne valid users = proxmenux limite l'accès à ce seul utilisateur Samba. Pour l'accès par groupe, utilisez valid users = @samba_users après avoir ajouté les utilisateurs à un groupe nommé samba_users.",
+ "reloadHeading": "3.2 Recharger Samba",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Vérifier l'accès",
+ "body": "Depuis n'importe quel client LAN, naviguez vers \\\\'<'CT_IP'>' (Windows) ou smb://'<'CT_IP'>' (gestionnaires de fichiers macOS / Linux). Authentifier avec l'utilisateur Samba (proxmenux) et le mot de passe que vous définissez avec smbpasswd.",
+ "image1Alt": "Accès au serveur Samba depuis un client",
+ "image2Alt": "Demande d'authentification Samba",
+ "usageBody": "Vous pouvez utiliser le partage dans le conteneur et sur le réseau :",
+ "image3Alt": "Utilisation du disque USB via le partage"
+ },
+ "troubleshoot": {
+ "heading": "Dépannage",
+ "items": [
+ "pct reboot échoue avec « device not found » : vérifiez que le chemin dans mp0 existe sur l’hôte. Consultez ls -l /dev/disk/by-id/ et corrigez le chemin.",
+ "Le conteneur démarre, mais /mnt/lxc_USB est vide : le disque peut ne pas être monté, ou son système de fichiers peut être vide. Vérifiez depuis l’hôte avec pct exec '<'CTID'>' -- mount | grep lxc_USB. Si le montage est absent, contrôlez sa configuration, le chemin du périphérique et les erreurs de démarrage.",
+ "L’authentification Samba réussit, mais l’écriture échoue avec « Permission denied » : vérifiez les droits Linux du répertoire et les réglages d’écriture du partage. Consultez chown et setfacl dans les sections 1.5 et 2.3.",
+ "Le partage reste invisible, mais smb://'<'ip'>'/lxc_usb fonctionne : l’ancienne découverte NetBIOS utilise nmbd. Windows moderne utilise WS-Discovery ; sur Debian 12/13, installez apt-get install -y wsdd et vérifiez le service et le pare-feu. Activer uniquement nmbd ne fournit pas WS-Discovery.",
+ "Pour ajouter un autre utilisateur au partage : créez le compte avec adduser, enregistrez-le avec smbpasswd -a et ajoutez-le à la liste valid users =, séparée par des virgules. Accordez aussi les droits ou ACL nécessaires sur le système de fichiers."
+ ]
+ }
+}
diff --git a/web/messages/fr/guides/nvidia-manual.json b/web/messages/fr/guides/nvidia-manual.json
new file mode 100644
index 00000000..e793e333
--- /dev/null
+++ b/web/messages/fr/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "Installer les pilotes NVIDIA sur Proxmox VE 9 — procédure manuelle | Guides ProxMenux",
+ "description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur.",
+ "ogTitle": "Installation des pilotes NVIDIA sur Proxmox VE 9 (procédure manuelle)",
+ "ogDescription": "Installer manuellement NVIDIA sur PVE 9 : pilote hôte, service de persistance, correctif NVENC facultatif et accès au GPU pour chaque conteneur LXC."
+ },
+ "header": {
+ "title": "Installation des pilotes de cartes graphiques NVIDIA sur Proxmox VE 9 (procédure manuelle)",
+ "description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur.",
+ "section": "Guides"
+ },
+ "intro": {
+ "calloutTitle": "Remarque",
+ "calloutBody": "Cette procédure manuelle est conservée comme référence. Pour la plupart des utilisateurs, préférez l’assistant ProxMenux : Installer les pilotes NVIDIA sur l’hôte dans GPU et Coral-TPU, puis Ajouter un GPU à LXC ou Ajouter un GPU à une VM pour configurer l’invité. L’assistant effectue ces étapes avec des vérifications supplémentaires des en-têtes du noyau, d’IOMMU et des conflits VFIO. Cette page aide à comprendre chaque commande ou à adapter la configuration.",
+ "targetNote": "Cible à Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) et PVE 8 (Bookworm) ne sont plus couverts.",
+ "stepsTitle": "Ce que vous allez faire",
+ "steps": [
+ "Préparer l’hôte Proxmox VE 9 : bloquer nouveau, vérifier les dépôts et les prérequis.",
+ "Installez le pilote NVIDIA sur l'hôte.",
+ "Installez le service de persistance NVIDIA.",
+ "Facultatif : appliquer le correctif keylase pour lever la limite de sessions NVENC simultanées sur les GPU grand public.",
+ "Donner accès au GPU à un ou plusieurs conteneurs LXC et installer la version du pilote correspondante dans chacun."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Préparer l'hôte (PVE 9)",
+ "blacklistHeading": "1.1 Bloquer nouveau",
+ "blacklistBody": "Vérifiez si le pilote open source nouveau est déjà sur la liste noire:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Si blacklist nouveau n'apparaît pas, ajoutez-le et redémarrez :",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Vérification de la liste noire",
+ "reposHeading": "1.2 Vérifier les dépôts (PVE 9 / Trixie)",
+ "reposBody": "Les outils de post-installation ont peut-être déjà configuré les dépôts. Vérifiez d’abord les sources existantes et ignorez les modifications déjà effectuées ; ne créez pas de doublons.",
+ "reposOtherwise": "Sinon, sur une installation PVE 9 d’origine sans abonnement Enterprise :",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Assurez-vous qu'il contient la source sans abonnement pour Trixie:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "Et les sources Debian à /etc/apt/sources.list.d/debian.sources :",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Mettre à jour le système et installer les conditions préalables",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Installez les outils de compilation et les en-têtes du noyau nécessaires pour compiler le module du noyau NVIDIA:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Installez le pilote NVIDIA sur l'hôte",
+ "pickHeading": "2.1 Choisir une version du pilote",
+ "pickBody": "Choisissez une branche de pilote compatible avec le GPU et le noyau utilisé. La plus récente peut exclure les anciens GPU ; vérifiez les produits pris en charge pour la version NVIDIA choisie :",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Si vous prévoyez d'appliquer le correctif NVENC (étape 4), vérifiez que le correctif prend en charge la version du pilote choisie en premier: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Attention",
+ "pickReplace": "Remplacez latest.txt dans l’URL par le numéro de version pour trouver l’installateur se terminant par .run. Liste complète des pilotes :",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "Téléchargement du pilote NVIDIA",
+ "pickVersionNote": "Dans le reste de ce guide, remplacer '<'VERSION'>' par la version actuelle (par exemple 580.95.05).",
+ "downloadHeading": "2.2 Téléchargez et exécutez l'installateur",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Lancez l’installateur. L’option suivante peut désactiver nouveau si nécessaire ; un redémarrage peut être requis avant de terminer :",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "Après le retour de l'hôte, exécutez à nouveau l'installateur pour compiler et installer le module noyau:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 Charger les modules NVIDIA au démarrage",
+ "modulesBody": "Modifiez la configuration de chargement des modules :",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Ajoutez les modules NVIDIA pour l’hôte et LXC. Les modules VFIO servent au passthrough vers les VM et ne sont pas nécessaires ici :",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Enregistrer (Ctrl+X) et reconstruire initramfs:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Créer des règles udev",
+ "udevBody": "Pour créer les nœuds de périphérique /dev/nvidia* au chargement des modules :",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Enregistrer (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. Service de persistance NVIDIA",
+ "body": "Le service de persistance garde le GPU initialisé lorsqu’aucune autre application ne l’utilise. Il réduit la latence de réinitialisation et conserve cet état entre les clients :",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Après redémarrage, vérifiez que le pilote est chargé et le service actif :",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "Sortie NVIDIA SMI",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "État du service de persistance NVIDIA"
+ },
+ "nvenc": {
+ "heading": "4. Facultatif : lever la limite de sessions NVENC simultanées",
+ "body": "La limite de sessions NVENC dépend du GPU et du pilote. Consultez la matrice NVIDIA plutôt que de supposer un nombre par génération. Le correctif keylase supprime la limite logicielle pour les pilotes pris en charge et peut aider le transcodage Plex ou Jellyfin.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "Application du patch NVIDIA",
+ "after": "Réappliquez le correctif après chaque mise à jour du pilote. Le dépôt keylase contient aussi patch-fbc.sh pour FBC, la capture du tampon d’image."
+ },
+ "lxcSetup": {
+ "heading": "5. Configurer l’accès au GPU dans un conteneur LXC",
+ "identifyHeading": "5.1 Identifier les numéros d'appareil",
+ "identifyBody": "Sur l'hôte:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "Liste des appareils NVIDIA",
+ "identifyNote": "Notez les numéros majeurs des périphériques ; ils peuvent varier selon le système. Valeurs typiques :",
+ "tableHeaders": {
+ "device": "Appareil",
+ "major": "Numéro majeur typique"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (variable)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (partagé avec nvidia)"
+ }
+ ],
+ "editHeading": "5.2 Modifier la configuration de LXC",
+ "editBody": "Arrêtez le conteneur s’il est actif. Ouvrez sa configuration en remplaçant '<'CTID'>' par son identifiant :",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Commentez uniquement les lignes lxc.cgroup2.devices.allow ou /dev/dri réellement conflictuelles. Ajoutez la configuration NVIDIA et adaptez les numéros majeurs aux périphériques NVIDIA affichés par ls -l /dev/nv* sur votre hôte :",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "Configuration LXC",
+ "editSave": "Enregistrer (Ctrl+X) et démarrer le conteneur.",
+ "installCtHeading": "5.3 Installez le pilote dans le conteneur",
+ "installCtCalloutTitle": "Important",
+ "installCtCalloutBody": "Cette partie s’exécute dans le conteneur, pas sur l’hôte.",
+ "installCtBody": "Le module du noyau est déjà chargé sur l’hôte. Le conteneur a seulement besoin des bibliothèques de l’espace utilisateur correspondant à la même version du pilote :",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Lisez les demandes et limitez cette installation aux bibliothèques de l’espace utilisateur. Ne compilez ni n’installez de module du noyau dans LXC.",
+ "installCtImageAlt": "Installation du pilote NVIDIA",
+ "verifyCtHeading": "5.4 Vérifier dans le conteneur",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI dans LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "Dispositifs NVIDIA dans LXC",
+ "verifyCtAfter": "Le GPU devrait être listé et ses nœuds de périphérique présents dans le système de fichiers du conteneur.",
+ "workloadHeading": "5.5 Vérifier l’utilisation du GPU avec une charge réelle",
+ "workloadBody": "Activez l’accélération NVIDIA dans Plex ou Jellyfin, lancez un transcodage et vérifiez l’utilisation réelle du GPU dans le tableau de bord ou les journaux. Installer le pilote ne l’active pas automatiquement dans l’application.",
+ "workloadImage1Alt": "Plex utilisant NVIDIA GPU",
+ "workloadImage2Alt": "Plex utilisant NVIDIA GPU - session active",
+ "repeatNote": "Répétez la section 5 pour chaque conteneur ayant besoin du GPU. Lors d’une mise à jour du pilote hôte, maintenez les bibliothèques de chaque conteneur à la version correspondante."
+ },
+ "docker": {
+ "heading": "6. (facultatif) NVIDIA Docker à l'intérieur d'un LXC",
+ "body": "Si Docker fonctionne déjà dans LXC, installez-y nvidia-container-toolkit pour donner accès au GPU à ses conteneurs Docker. L’accès au GPU depuis LXC doit déjà fonctionner. Ces commandes concernent Docker exécuté avec les droits root :",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Ces commandes configurent le dépôt NVIDIA, installent le toolkit, configurent le runtime Docker et redémarrent Docker. Les droits sur les périphériques et restrictions cgroup de LXC restent applicables ; vérifiez le GPU avec une charge de test."
+ },
+ "troubleshoot": {
+ "heading": "Dépannage",
+ "items": [
+ "nvidia-smi fonctionne sur l’hôte, mais affiche « No devices found » dans le conteneur : vérifiez les montages, droits et versions des bibliothèques. Si elles diffèrent, installez la même '<'VERSION'>' que l’hôte avec --no-kernel-module.",
+ "La compilation du pilote échoue : consultez le journal. « No precompiled kernel interface was found » peut simplement annoncer une compilation locale. Installez les en-têtes correspondant à uname -r avec apt-get install pve-headers-$(uname -r), ou le paquet proxmox-headers équivalent.",
+ "Les sessions NVENC restent limitées : vérifiez que le correctif prend en charge le pilote actif. Une mise à jour peut l’écraser. Pour une version compatible, réappliquez ./patch.sh depuis /opt/nvidia/nvidia-patch et consultez sa sortie.",
+ "Le GPU ne répond plus après une période d’inactivité : vérifiez systemctl status nvidia-persistenced et activez le service si nécessaire. Consultez aussi les journaux du noyau et du pilote : ce n’est pas la seule cause possible.",
+ "Le conteneur démarre, mais ls /dev/nv* n’affiche aucun périphérique NVIDIA : vérifiez les montages bind et chemins sur l’hôte. Utilisez ls -l /dev/nv* pour vérifier les numéros majeurs NVIDIA, puis les règles lxc.cgroup2.devices.allow et les droits."
+ ]
+ }
+}
diff --git a/web/messages/it/guides/backup-cloud.json b/web/messages/it/guides/backup-cloud.json
new file mode 100644
index 00000000..85d6d058
--- /dev/null
+++ b/web/messages/it/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Backup di Proxmox su cloud personale | ProxMenux",
+ "description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo.",
+ "ogTitle": "Backup di Proxmox su cloud personale",
+ "ogDescription": "Montare un cloud con rclone sull’host Proxmox VE e usarlo come destinazione vzdump per i backup di VM e container."
+ },
+ "header": {
+ "title": "Backup di Proxmox su cloud personale",
+ "description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo.",
+ "section": "Guide"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Valuta prima Proxmox Backup Server",
+ "pbsCalloutBody": "Su una seconda macchina che soddisfa i requisiti x86-64, Proxmox Backup Server offre backup incrementali e deduplicati con cifratura facoltativa lato client. È progettato per i backup delle VM. Questa guida spiega invece come montare un cloud personale, come Google Drive, Mega, OneDrive o Dropbox, come destinazione dei backup.",
+ "stepsTitle": "Cosa farai",
+ "steps": [
+ "Creare una directory sull’host Proxmox e registrarla come archivio per backup vzdump.",
+ "Installare e configurare rclone per il provider cloud.",
+ "Montare la cartella cloud nella directory.",
+ "Ripristinare il montaggio a ogni avvio con un’unità systemd."
+ ],
+ "vzdumpCalloutTitle": "Nota sui backup vzdump di Proxmox",
+ "vzdumpCalloutBody": "Gli archivi vzdump di Proxmox sono backup completi, non incrementali. La dimensione reale dipende dai dati inclusi e dalla compressione, non solo dalla capacità del disco virtuale. Se un archivio occupa 30 GB, conservarne cinque richiede circa 150 GB. Imposta una politica di conservazione per evitare di riempire il cloud."
+ },
+ "createDir": {
+ "heading": "1. Creare la directory sull’host e registrarla come archivio di backup",
+ "body": "Collegati all’host tramite SSH o apri la shell Proxmox e crea una directory come punto di montaggio in /mnt/. Scegli un nome che identifichi il fornitore:",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "Nel web UI di Proxmox: Datacenter → Storage → Aggiungere → Directory.",
+ "image1Alt": "Aggiunta di nuovo storage in Proxmox",
+ "configIntro": "Configuralo così:",
+ "configItems": [
+ "ID:gdrive (o qualsiasi cosa tu abbia usato per il nome della directory)",
+ "Directory:/mnt/gdrive",
+ "Contenuto: seleziona File di backup VZDump."
+ ],
+ "image2Alt": "Configurazione di nuovi storage in Proxmox",
+ "afterConfig": "Fai clic su Aggiungi:",
+ "image3Alt": "Nuovo storage aggiunto in Proxmox",
+ "afterAdd": "La directory è registrata come archivio Proxmox, ma è ancora vuota: il cloud non è ancora montato."
+ },
+ "installRclone": {
+ "heading": "2. Installare e configurare rclone",
+ "body": "rclone comunica con i servizi di archiviazione cloud. Installalo dai repository Debian:",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Se hai bisogno di un nuovo rclone",
+ "newerCalloutBody": "Se ti serve una versione più recente di quella fornita da Debian, usa il programma di installazione ufficiale:",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Autenticazione nel browser tramite tunnel SSH",
+ "tunnelBody": "Per i fornitori con accesso via browser, l’host Proxmox di solito non dispone di un browser. Segui la procedura di configurazione remota di rclone: usa il browser del portatile e inoltra la connessione di ritorno localhost tramite SSH a rclone sull’host.",
+ "tunnelFrom": "Dal portatile, sostituendo ip_proxmox con l’IP di Proxmox:",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "Questa sessione SSH apre la porta localhost 53682 sul portatile e inoltra le connessioni alla stessa porta dell’host Proxmox. Tienila aperta durante la configurazione di rclone.",
+ "runHeading": "2.2 Esegui rclone config",
+ "runBody": "Nella sessione SSH appena aperta, esegui:",
+ "runCode": "rclone config",
+ "runAfter": "Segui le istruzioni per aggiungere una nuova configurazione remota, o «remote». Le risposte dipendono dal fornitore: consulta la documentazione dei fornitori rclone per Google Drive, Mega, Dropbox, OneDrive e altri. Il passaggio chiave è la domanda sull’autenticazione:",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Rispondi Y. rclone mostra un URL locale. Aprilo nel browser del portatile: il tunnel SSH inoltra la connessione. Autorizza rclone presso il fornitore cloud per completare la configurazione.",
+ "nameRemote": "Come nome della configurazione remota usa un nome che corrisponda alla directory, ad esempio gdrive."
+ },
+ "mount": {
+ "heading": "3. Montare la cartella cloud",
+ "body": "Crea nel cloud una cartella per i backup, ad esempio PBC, abbreviazione di Proxmox Backup Cloud.",
+ "mountIntro": "Montala nella directory sull’host:",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC — la cartella nel cloud.",
+ "/mnt/gdrive — la directory host registrata come datastore."
+ ],
+ "mountFootnote": "Questo comando resta in primo piano. Lascialo in esecuzione in un terminale per provare un backup. Per ripristinare il montaggio a ogni avvio, configura un’unità systemd nella sezione seguente."
+ },
+ "systemd": {
+ "heading": "4. Montaggio automatico a ogni avvio con systemd",
+ "body": "Un’unità systemd offre più controllo di crontab @reboot: può attendere l’avvio della rete, riavviarsi in caso di errore e fornire log tramite journalctl.",
+ "createIntro": "Crea il file dell’unità:",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Incolla:",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Adatta gdrive:/PBC e /mnt/gdrive se hai scelto nomi diversi. Salva, esci dall’editor con Ctrl+X, poi abilita e avvia il servizio:",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Verifica:",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "L’unità richiede un riavvio dopo 10 secondi se il processo rclone termina con un errore. Non ripristina credenziali scadute e non garantisce il recupero da ogni errore di rete o del fornitore. Controlla /var/log/rclone-gdrive.log e journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Perché usare --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Con la cache di scrittura, operazioni come fwrite scrivono in una cache su disco locale. rclone carica il file dopo la chiusura e il ritardo di scrittura differita. Riserva spazio locale per i backup in corso e verifica che il caricamento sia terminato prima di considerare disponibile la copia nel cloud."
+ },
+ "configureBackup": {
+ "heading": "5. Configurare il cloud come destinazione dei backup",
+ "body": "In Proxmox, per un backup pianificato o manuale, scegli l’archivio registrato come destinazione:",
+ "image5Alt": "Selezione della destinazione di backup in Proxmox",
+ "after": "Dopo la fine di vzdump, attendi il completamento del caricamento rclone in background e verifica l’archivio nell’interfaccia del fornitore cloud:",
+ "image6Alt": "File di backup in cloud storage"
+ },
+ "retention": {
+ "heading": "6. Conservazione: tenere sotto controllo la quota cloud",
+ "body": "Gli archivi vzdump di Proxmox sono backup completi, non incrementali. La dimensione reale dipende dai dati inclusi e dalla compressione, non solo dalla capacità del disco virtuale. Se un archivio occupa 30 GB, conservarne cinque richiede circa 150 GB. Imposta una politica di conservazione per evitare di riempire il cloud.",
+ "uiPath": "Nell’interfaccia Proxmox: Datacenter → Backup → [la tua attività] → Conservazione:",
+ "image7Alt": "Impostazioni di conservazione di backup in Proxmox",
+ "starterIntro": "Possibili valori iniziali per un ambiente domestico o di prova:",
+ "starterItems": [
+ "Conservare gli ultimi 5 backup giornalieri",
+ "Conservare gli ultimi 4 backup settimanali",
+ "Conservare gli ultimi 6 backup mensili"
+ ],
+ "adjust": "Adatta i valori alla quota cloud e alla frequenza con cui cambiano le VM."
+ },
+ "troubleshoot": {
+ "heading": "Risoluzione dei problemi",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: la directory è già montata, forse da un’altra istanza rclone. Controlla che non siano in corso backup prima di rimuovere il vecchio montaggio con fusermount -uz /mnt/gdrive, poi riavvia l’unità systemd.",
+ "Il backup è molto lento: verifica che --vfs-cache-mode writes sia nella riga ExecStart. Controlla prestazioni della cache locale, banda di caricamento e limiti del fornitore. Il caricamento può continuare dopo la fine di vzdump.",
+ "Il backup segnala No space left on device: controlla spazio della cache locale e quota cloud. La cache usa normalmente ~/.cache/rclone/. Se è piena, scegli ad esempio --cache-dir /var/cache/rclone su un filesystem con spazio sufficiente. Un altro percorso sullo stesso filesystem pieno non risolve il problema.",
+ "Il token di autenticazione rclone è scaduto: ricollegati tramite SSH con il tunnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) ed esegui rclone config reconnect gdrive: per rinnovare l’autorizzazione.",
+ "I backup sono nel cloud, ma il ripristino fallisce: non usare il cloud come unica destinazione. Affiancagli PBS locale o backup vzdump su un altro disco."
+ ]
+ }
+}
diff --git a/web/messages/it/guides/index.json b/web/messages/it/guides/index.json
new file mode 100644
index 00000000..c16bcc1d
--- /dev/null
+++ b/web/messages/it/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Guide Proxmox VE — Coral TPU, NVIDIA, Kodi in LXC, Samba e backup cloud | ProxMenux",
+ "description": "Tutorial dettagliati per Proxmox VE: Kodi in LXC con accelerazione GPU, driver NVIDIA su PVE 9, dischi USB condivisi tramite Samba in un container e backup vzdump su Google Drive, Mega, Dropbox o OneDrive. Con risorse selezionate della comunità, glossario e guida ai comandi.",
+ "ogTitle": "Guide Proxmox VE — Coral TPU, NVIDIA, Kodi in LXC, Samba e backup cloud",
+ "ogDescription": "Tutorial dettagliati per Proxmox VE: passthrough GPU, centro multimediale Kodi in LXC, dischi USB condivisi tramite Samba, backup cloud con rclone e risorse selezionate della comunità.",
+ "twitterTitle": "Guide Proxmox VE | ProxMenux",
+ "twitterDescription": "Tutorial dettagliati per Proxmox VE: GPU, Kodi in LXC, Samba, backup cloud e altro.",
+ "ogImageAlt": "Guide ProxMenux — tutorial dettagliati per Proxmox VE"
+ },
+ "header": {
+ "title": "Guide ProxMenux",
+ "tagline": "Tutorial approfonditi, riferimenti rapidi e risorse selezionate della comunità per sfruttare al meglio Proxmox VE."
+ },
+ "inDepth": {
+ "heading": "Guide approfondite",
+ "intro": "Tutorial dettagliati per attività specifiche di Proxmox. Ogni guida descrive i passaggi manuali di un processo automatizzato da ProxMenux, per capire cosa avviene in ogni fase.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Installare Kodi in LXC con accelerazione GPU e collegarlo a un monitor o televisore",
+ "description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Backup di Proxmox su cloud personale",
+ "description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "Aggiungere un disco o una chiavetta USB a LXC e condividerli in rete con Samba",
+ "description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "Installazione dei driver di scheda grafica NVIDIA su Proxmox VE 9 (procedura manuale)",
+ "description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container."
+ }
+ ]
+ },
+ "references": {
+ "heading": "Riferimenti ProxMenux",
+ "intro": "Materiale di riferimento rapido dalla documentazione ProxMenux stessa.",
+ "cards": {
+ "glossary": {
+ "title": "Glossario",
+ "description": "Oltre 60 definizioni dei termini tecnici usati in ProxMenux: Proxmox, virtualizzazione, archiviazione, rete e Linux. Consultazione rapida con etichette di categoria e collegamenti."
+ },
+ "helpInfo": {
+ "title": "Aiuto e Info — Catalogo dei comandi",
+ "description": "Una selezione di comandi Linux e Proxmox per argomento, con copia negli appunti. Riprende la guida disponibile nel menu ProxMenux."
+ },
+ "linuxResources": {
+ "title": "Risorse Linux",
+ "description": "Risorse esterne per imparare la riga di comando Linux, le pratiche di sicurezza, gli strumenti di monitoraggio e ZFS, a complemento del catalogo dei comandi ProxMenux."
+ },
+ "externalRepos": {
+ "title": "Repository esterni",
+ "description": "Repository di script di terze parti integrati in ProxMenux come opzioni alternative del menu, come community-scripts/ProxmoxVE."
+ }
+ }
+ },
+ "official": {
+ "heading": "Risorse ufficiali Proxmox",
+ "intro": "Documentazione pubblicata da Proxmox Server Solutions, il riferimento ufficiale per la piattaforma.",
+ "cards": {
+ "pveDocs": {
+ "title": "Documentazione Proxmox VE",
+ "description": "La guida ufficiale di amministrazione: un riferimento completo su installazione, rete, archiviazione, cluster, alta disponibilità e API."
+ },
+ "pbsDocs": {
+ "title": "Documentazione di Proxmox Backup Server",
+ "description": "Documentazione per PBS — backup incrementali, deduplicati, crittografati per Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Formazione video ufficiale",
+ "description": "Tutorial video e corsi di formazione ufficiali di Proxmox."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Forum ufficiale della comunità per domande, risoluzione dei problemi e condivisione di esperienze, seguito dai responsabili del progetto."
+ }
+ }
+ },
+ "community": {
+ "heading": "Progetti e risorse comunitarie",
+ "intro": "Progetti open source e raccolte selezionate della comunità Proxmox. Non sono affiliati a Proxmox Server Solutions o a ProxMenux e sono inclusi perché si sono dimostrati utili.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "Catalogo di script mantenuto dalla comunità per distribuire facilmente container LXC, VM e modifiche PVE, ad esempio per Home Assistant, Plex o Frigate. Prosegue l’idea degli helper script di tteck."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (raccolta di risorse selezionate)",
+ "description": "Ampia raccolta di risorse Proxmox VE selezionate dalla comunità: strumenti, librerie, integrazioni, blog e video. Un buon punto di partenza per scoprire altro."
+ }
+ },
+ "suggestRich": "Conosci una risorsa valida da aggiungere? Apri una issue o una PR su GitHub. Vogliamo mantenere una selezione mirata, anziché un elenco esaustivo."
+ },
+ "discussion": {
+ "heading": "Discussione comunitaria",
+ "intro": "Dove la gente parla di Proxmox e ProxMenux.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "GitHub Discussions dedicato a ProxMenux: idee per nuove funzioni, domande e risposte e condivisione delle configurazioni. Il posto adatto per parlare di menu, Monitor e documentazione."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Forum ufficiale Proxmox (anche collegato sopra). Il posto giusto per risolvere i problemi in profondità e problemi specifici di configurazione."
+ },
+ "reddit": {
+ "title": "r/Proxmox su Reddit",
+ "description": "Subreddit attivo per discussioni, consigli e supporto tecnico. Più accessibile del forum, con risposte spesso più rapide alle domande informali."
+ }
+ }
+ }
+}
diff --git a/web/messages/it/guides/kodi-lxc.json b/web/messages/it/guides/kodi-lxc.json
new file mode 100644
index 00000000..687addb3
--- /dev/null
+++ b/web/messages/it/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Installare Kodi in LXC con accelerazione GPU | Guide ProxMenux",
+ "description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore.",
+ "ogTitle": "Installare Kodi in LXC con accelerazione GPU",
+ "ogDescription": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE con accesso all’iGPU e ai dispositivi di input USB dell’host e trasformare il server in un centro multimediale."
+ },
+ "header": {
+ "title": "Installare Kodi in LXC con accelerazione GPU e collegarlo a un monitor o televisore",
+ "description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore.",
+ "section": "Guide"
+ },
+ "intro": {
+ "calloutTitle": "Attenzione",
+ "calloutBody": "Questa guida usa uno script esterno della comunità per preparare il container Kodi. ProxMenux può configurare l’accesso all’iGPU dell’host: GPU e Coral-TPU → Aggiungi GPU a LXC configura /dev/dri e installa i driver nel container. Lo script seguente installa anche Kodi e l’avvio automatico su tty7. Usalo per un centro multimediale LXC già pronto; scegli la procedura ProxMenux se serve solo l’accesso alla GPU per un container configurato manualmente.",
+ "credit": "Lo script originale di Kodi per LXC è stato creato da mrrudy.",
+ "stepsTitle": "Cosa farai",
+ "steps": [
+ "Creare un container LXC privilegiato con Kodi tramite lo script.",
+ "Rendere accessibili nel container tastiera, mouse o controller USB.",
+ "Facoltativo: aggiornare Kodi dai repository configurati nel container."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Creare il Kodi LXC",
+ "body": "Per questa procedura seleziona Privileged nelle impostazioni avanzate dello script. Per impostazione predefinita crea container non privilegiati, che richiedono permessi sui dispositivi e mappatura degli ID appropriati. Configura l’accesso alla GPU, Kodi e l’avvio automatico su tty7:",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "L’installazione richiede un po’ di tempo. Quando Kodi si avvia su tty7, collega il monitor o il televisore all’uscita HDMI/DisplayPort dell’host: dovrebbe comparire l’interfaccia di Kodi."
+ },
+ "addInput": {
+ "heading": "2. Aggiungere tastiera, mouse o controller USB",
+ "body": "I dispositivi di input si trovano in /dev/input/ sull’host. Individua il loro numero major:",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Elenco dei dispositivi di input",
+ "afterList": "Per i dispositivi a caratteri usa il numero major prima della virgola, nell’esempio 13. Arresta il container Kodi e modifica la configurazione, sostituendo '<'CTID'>' con il suo ID, ad esempio 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Aggiungi le righe seguenti, adattando 13 al numero rilevato sul tuo host:",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "Configurazione LXC",
+ "save": "Salva il file, esci dall’editor con Ctrl+X e riavvia solo il container. Non occorre riavviare l’host Proxmox:",
+ "restartCode": "pct reboot CTID",
+ "plug": "Collega tastiera, mouse o controller USB. Kodi dovrebbe rispondere."
+ },
+ "updateKodi": {
+ "heading": "3. Facoltativo: aggiornare Kodi dai repository configurati",
+ "calloutTitle": "Importante",
+ "calloutBody": "Il PPA team-xbmc è solo per Ubuntu e Kodi segnala che non è più mantenuto. L’assenza di add-apt-repository non identifica la distribuzione. Controlla cat /etc/os-release e cerca NAME=\"Ubuntu\"; non aggiungere PPA Ubuntu a Debian. I comandi seguenti aggiornano i pacchetti dai repository configurati nel container.",
+ "body": "Nel container (pct enter '<'CTID'>'):",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Riavvia il container dopo l’aggiornamento. Kodi userà la versione disponibile nei repository configurati, che può differire dall’ultima versione del progetto."
+ },
+ "screenshots": {
+ "heading": "Schermate",
+ "image1Alt": "Interfaccia Kodi 1",
+ "image2Alt": "Interfaccia Kodi 2"
+ },
+ "troubleshoot": {
+ "heading": "Risoluzione dei problemi",
+ "items": [
+ "Il container Kodi si avvia, ma sul televisore non appare nulla: potrebbe non avere accesso all’iGPU. Controlla ls /dev/dri nel container: dovrebbero apparire card0 e renderD128. Se la directory è vuota, controlla il passthrough GPU o usa Aggiungi GPU a LXC in ProxMenux.",
+ "Tastiera o mouse non rilevati dopo il riavvio: controlla che /dev/input sia montato e che Kodi possa leggere i dispositivi. Esegui ls -l /dev/input sull’host e nel container e verifica la regola lxc.cgroup2.devices.allow.",
+ "La riproduzione con accelerazione hardware usa la CPU invece della GPU: installa o aggiorna i driver VA-API nel container: intel-media-va-driver per le iGPU Intel recenti, i965-va-driver per quelle meno recenti e mesa-va-drivers per AMD.",
+ "add-apt-repository: command not found: il comando non è installato; questo non dimostra che il container usi Debian. Controlla distribuzione e pacchetti disponibili. Su Debian usa i pacchetti Kodi di Debian senza aggiungere il PPA Ubuntu."
+ ]
+ },
+ "further": {
+ "heading": "Ulteriori informazioni",
+ "konpatRich": "Articolo di Konpat per approfondire l’accesso all’iGPU Intel da LXC."
+ }
+}
diff --git a/web/messages/it/guides/lxc-samba.json b/web/messages/it/guides/lxc-samba.json
new file mode 100644
index 00000000..a8e66896
--- /dev/null
+++ b/web/messages/it/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Aggiungere un disco USB a LXC e condividerlo con Samba | ProxMenux",
+ "description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete.",
+ "ogTitle": "Aggiungere un disco USB a LXC e condividerlo con Samba",
+ "ogDescription": "Rendere accessibile un disco USB in un container LXC privilegiato su Proxmox VE, installare Samba e condividerne il contenuto sulla LAN."
+ },
+ "header": {
+ "title": "Aggiungere un disco o una chiavetta USB a LXC e condividerli in rete con Samba",
+ "description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete.",
+ "section": "Guide"
+ },
+ "recommended": {
+ "calloutTitle": "Consigliato",
+ "calloutIntro": "ProxMenux offre entrambe le parti della procedura tramite menu guidati:",
+ "items": [
+ "Gestione dischi → Formatta/cancella disco fisico per la formattazione.",
+ "Archiviazione e condivisione → Condivisione di rete LXC → Server Samba in LXC per l’installazione nel container privilegiato e la configurazione di Samba."
+ ],
+ "calloutOutro": "Le procedure guidate gestiscono i permessi dei container non privilegiati, i profili di condivisione in lettura-scrittura, sola lettura o personalizzati e il gruppo sharedfiles. Questa guida descrive i passaggi manuali per comprenderli o configurarli direttamente."
+ },
+ "intro": {
+ "body": "Un disco o una chiavetta USB può essere utile su un host Proxmox, soprattutto sui mini PC con poche possibilità di espansione interna. Questa guida spiega:",
+ "stepsTitle": "Cosa farai",
+ "steps": [
+ "Collegamento del disco USB a un LXC privilegiato.",
+ "Installare Samba all'interno del contenitore.",
+ "Condivisione del contenuto del disco sulla LAN."
+ ],
+ "useCasesTitle": "Casi di utilizzo",
+ "useCases": [
+ "Archiviare file torrent e renderli disponibili in rete.",
+ "Fornire spazio a un server multimediale come Plex, Jellyfin o Emby.",
+ "Conservare documenti elaborati automaticamente da Paperless.",
+ "Memorizzazione generica in stile NAS per la rete domestica."
+ ],
+ "privilegedCalloutTitle": "Container privilegiato per questa procedura",
+ "privilegedCalloutBody": "Questa procedura usa un container LXC privilegiato con un dispositivo a blocchi come mp0. Per un container non privilegiato puoi montare il filesystem sull’host e condividerne la directory tramite bind mount, con permessi e mappatura degli ID appropriati. Vedi Archiviazione e condivisione → Punti di montaggio LXC in ProxMenux."
+ },
+ "attach": {
+ "heading": "1. Collegare il disco USB a LXC",
+ "identifyHeading": "1.1 Identificare il dispositivo",
+ "identifyBody": "Confronta l’elenco dei dischi prima e dopo il collegamento USB. Il nuovo dispositivo è il disco da usare.",
+ "beforeLabel": "Prima:",
+ "afterLabel": "Dopo:",
+ "imageBeforeAlt": "Lista disco prima di aggiungere l'unità USB",
+ "imageAfterAlt": "Lista disco dopo aver aggiunto l'unità USB",
+ "lsblkBody": "Puoi anche usare lsblk -o NAME,SIZE,MODEL,SERIAL per elencare i dispositivi a blocchi con modello e numero di serie.",
+ "stableCalloutTitle": "Importante — utilizzare un identificatore stabile",
+ "stableCalloutBody": "Il nome /dev/sdb1 può cambiare dopo un riavvio, soprattutto con più dischi USB. Cerca l’identificatore persistente:",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Usa nella configurazione LXC la voce /dev/disk/by-id/usb-... della partizione scelta, al posto di /dev/sdb1. Scegli la partizione, non l’intero disco: resterà identificabile se cambia l’ordine dei dispositivi.",
+ "formatHeading": "1.2 Formattare il disco",
+ "formatBody": "ext4 è adatto alle condivisioni Linux: distingue maiuscole e minuscole e supporta ACL POSIX e file grandi. La formattazione distrugge il contenuto del filesystem esistente. Verifica la partizione ed esegui il comando sull’host Proxmox:",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Sostituisci /dev/sdb1 con la partizione effettiva o il suo percorso persistente /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Creare il punto di montaggio nel container LXC",
+ "mkdirBody": "All'interno del LXC, creare la directory in cui apparirà il disco (qualsiasi nome funziona):",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Configurare il dispositivo in LXC",
+ "wireBody": "Sull’host Proxmox, modifica la configurazione del container. Sostituisci '<'CTID'>' con il suo ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Aggiungi questa linea:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Puoi anche usare la voce breve mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0 se accetti il rischio che il percorso del dispositivo cambi.",
+ "wireBackupNote": "L’esempio usa backup=0. I contenuti dei montaggi di dispositivi e dei bind mount non sono inclusi nei backup vzdump del container. Prevedi un backup separato dei dati sul disco esterno.",
+ "restartHeading": "1.5 Riavviare il LXC e impostare le autorizzazioni",
+ "restartBody": "Riavviare il CT per applicare il punto di montaggio:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Nel container LXC crea l’account della condivisione prima di assegnargli la proprietà, poi imposta i permessi della directory:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Nota",
+ "permsNote": "Sostituisci proxmenux con il nome scelto. Il modo 770 consente l’accesso a proprietario e gruppo, escludendo gli altri; è più restrittivo di chmod -R 777. L’account viene creato qui e registrato in Samba al punto 2.2."
+ },
+ "samba": {
+ "heading": "2. Installare Samba",
+ "installHeading": "2.1 Installare il pacchetto all'interno del LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Confermare il servizio in esecuzione:",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Verificare l’utente della condivisione",
+ "userBody": "L’account di sistema proxmenux è stato creato senza shell di accesso al punto 1.5. Verificalo prima di impostare la password Samba e usa sempre il nome scelto:",
+ "userCode": "id proxmenux",
+ "passwordBody": "Imposta la password Samba, separata da quella di sistema: Samba mantiene un proprio archivio di credenziali.",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Impostare proprietà e ACL",
+ "aclBody": "Se il chown del punto 1.5 è sufficiente, i permessi sono pronti. Per più utenti con diritti diversi sullo stesso percorso puoi usare le ACL:",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Configurare la condivisione Samba",
+ "editHeading": "3.1 Modifica smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Aggiungi una definizione della condivisione alla fine del file:",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Nota",
+ "validUsersNote": "La linea valid users = proxmenux limita l'accesso a quel singolo utente Samba. Per l'accesso basato su gruppo, utilizzare valid users = @samba_users dopo aver aggiunto l'utente(i) a un gruppo chiamato samba_users.",
+ "reloadHeading": "3.2 Ricaricare Samba",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Verificare l'accesso",
+ "body": "Da qualsiasi client LAN, navigare in \\\\'<'CT_IP'>' (Windows) o smb://'<'CT_IP'>' (macOS / Linux file manager). Autentica con l'utente Samba (proxmenux) e la password impostata con smbpasswd.",
+ "image1Alt": "Accesso server Samba da un client",
+ "image2Alt": "Richiesta di autenticazione Samba",
+ "usageBody": "Puoi usare la condivisione sia nel container sia attraverso la rete:",
+ "image3Alt": "Uso del disco USB tramite la condivisione"
+ },
+ "troubleshoot": {
+ "heading": "Risoluzione dei problemi",
+ "items": [
+ "pct reboot segnala “device not found”: verifica che il percorso in mp0 esista sull’host. Controlla ls -l /dev/disk/by-id/ e correggi il percorso.",
+ "Il container si avvia, ma /mnt/lxc_USB è vuoto: il disco potrebbe non essere montato oppure il filesystem è vuoto. Controlla dall’host con pct exec '<'CTID'>' -- mount | grep lxc_USB. Se il montaggio manca, verifica configurazione, percorso del dispositivo ed errori di avvio.",
+ "L’autenticazione Samba riesce, ma la scrittura segnala “Permission denied”: controlla i permessi Linux della directory e le impostazioni di scrittura della condivisione. Rivedi chown e setfacl nelle sezioni 1.5 e 2.3.",
+ "La condivisione non compare, ma smb://'<'ip'>'/lxc_usb funziona: il vecchio rilevamento NetBIOS usa nmbd. Windows moderno usa WS-Discovery: su Debian 12/13 installa apt-get install -y wsdd e controlla servizio e firewall. Attivare solo nmbd non fornisce WS-Discovery.",
+ "Per aggiungere un altro utente alla condivisione: crea l’account con adduser, registralo con smbpasswd -a e aggiungilo all’elenco valid users =, separato da virgole. Assegna anche i permessi o le ACL necessari sul filesystem."
+ ]
+ }
+}
diff --git a/web/messages/it/guides/nvidia-manual.json b/web/messages/it/guides/nvidia-manual.json
new file mode 100644
index 00000000..5f48b799
--- /dev/null
+++ b/web/messages/it/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "Installazione dei driver NVIDIA su Proxmox VE 9 (procedura manuale) | Guide ProxMenux",
+ "description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container.",
+ "ogTitle": "Installazione dei driver NVIDIA su Proxmox VE 9 (procedura manuale)",
+ "ogDescription": "Installazione manuale NVIDIA su PVE 9: driver host, servizio di persistenza, patch NVENC facoltativa e accesso alla GPU per ogni container LXC."
+ },
+ "header": {
+ "title": "Installazione dei driver di scheda grafica NVIDIA su Proxmox VE 9 (procedura manuale)",
+ "description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container.",
+ "section": "Guide"
+ },
+ "intro": {
+ "calloutTitle": "Nota",
+ "calloutBody": "Questa procedura manuale resta come riferimento. Per la maggior parte degli utenti è consigliato l’assistente ProxMenux: Installa driver NVIDIA sull’host in GPU e Coral-TPU, quindi Aggiungi GPU a LXC o Aggiungi GPU a VM per configurare l’ospite. L’assistente esegue gli stessi passaggi con controlli aggiuntivi su header del kernel, IOMMU e conflitti VFIO. Questa pagina aiuta a capire ogni comando o ad adattare la configurazione.",
+ "targetNote": "Destinato a Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) e PVE 8 (Bookworm) non sono più coperti.",
+ "stepsTitle": "Cosa farai",
+ "steps": [
+ "Preparare l’host Proxmox VE 9: bloccare nouveau e verificare repository e prerequisiti.",
+ "Installare il driver NVIDIA sull'host.",
+ "Installare il servizio di persistenza NVIDIA.",
+ "Facoltativo: applicare la patch keylase per rimuovere il limite di sessioni NVENC simultanee sulle GPU consumer.",
+ "Rendere la GPU accessibile a uno o più container LXC e installare in ognuno la versione corrispondente del driver."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Preparare l'host (PVE 9)",
+ "blacklistHeading": "1.1 Bloccare nouveau",
+ "blacklistBody": "Controlla se il driver open source nouveau è già bloccato:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Se blacklist nouveau non appare, aggiungerlo e riavviare:",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Controllo della lista nera",
+ "reposHeading": "1.2 Verificare i repository (PVE 9 / Trixie)",
+ "reposBody": "Gli strumenti di post-installazione potrebbero aver già configurato i repository. Controlla prima le fonti esistenti e salta le modifiche già presenti, senza duplicare le voci.",
+ "reposOtherwise": "Altrimenti, su una nuova installazione PVE 9 senza abbonamento Enterprise:",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Assicurarsi che contenga la fonte di non abbonamento per Trixie:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "E le fonti Debian a /etc/apt/sources.list.d/debian.sources:",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Aggiornare il sistema e installare prerequisiti",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Installare gli strumenti di compilazione e le intestazioni del kernel necessari per compilare il modulo del kernel NVIDIA:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Installare il driver NVIDIA sull'host",
+ "pickHeading": "2.1 Scegli una versione del driver",
+ "pickBody": "Scegli un ramo del driver compatibile con GPU e kernel in uso. Il più recente potrebbe non supportare le vecchie GPU: controlla l’elenco dei prodotti della versione NVIDIA scelta.",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Se si prevede di applicare la patch NVENC (step 4), verificare che la patch supporta prima la versione del driver scelto: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Attenzione",
+ "pickReplace": "Sostituisci latest.txt nell’URL con il numero di versione per trovare il programma di installazione con estensione .run. Elenco completo dei driver:",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "Scarica il driver NVIDIA",
+ "pickVersionNote": "Durante il resto di questa guida, sostituire '<'VERSION'>' con la versione attuale (ad esempio 580.95.05).",
+ "downloadHeading": "2.2 Scaricare ed eseguire l'installatore",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Esegui il programma di installazione. L’opzione seguente può disattivare nouveau se necessario; potrebbe servire un riavvio prima di completare l’installazione:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "Dopo il ritorno dell'host, eseguire nuovamente l'installatore per compilare e installare il modulo del kernel:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 Carica moduli NVIDIA all'avvio",
+ "modulesBody": "Modifica la configurazione di caricamento dei moduli:",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Aggiungi i moduli NVIDIA per host e LXC. I moduli VFIO servono al passthrough verso le VM e non sono necessari qui:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Salvare (Ctrl+X) e ricostruire initramfs:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Creare regole di udev",
+ "udevBody": "Per creare i nodi dei dispositivi /dev/nvidia* al caricamento dei moduli:",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Salvare (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. Servizio di persistenza NVIDIA",
+ "body": "Il servizio di persistenza mantiene inizializzata la GPU quando nessun’altra applicazione la usa. Riduce la latenza di reinizializzazione e conserva lo stato di inizializzazione tra i client:",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Dopo il riavvio verifica che il driver sia caricato e il servizio attivo:",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "Uscita NVIDIA SMI",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "Stato del servizio di persistenza NVIDIA"
+ },
+ "nvenc": {
+ "heading": "4. Facoltativo: rimuovere il limite di sessioni NVENC simultanee",
+ "body": "Il limite di sessioni NVENC dipende da GPU e versione del driver. Consulta la matrice NVIDIA, senza presumere un numero per generazione. La patch keylase rimuove il limite software nei driver supportati e può aiutare nella transcodifica Plex o Jellyfin.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "Applicazione patch NVIDIA",
+ "after": "Riapplica la patch dopo ogni aggiornamento del driver. Il repository keylase include anche patch-fbc.sh per FBC, la cattura del framebuffer."
+ },
+ "lxcSetup": {
+ "heading": "5. Configurare l’accesso alla GPU in un container LXC",
+ "identifyHeading": "5.1 Identificare i numeri del dispositivo",
+ "identifyBody": "Sull'host:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "Elenco dei dispositivi NVIDIA",
+ "identifyNote": "Annota i numeri major dei dispositivi: possono variare tra sistemi. Valori tipici:",
+ "tableHeaders": {
+ "device": "Dispositivo",
+ "major": "Numero major tipico"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (variabile)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (condiviso con nvidia)"
+ }
+ ],
+ "editHeading": "5.2 Modificare la configurazione LXC",
+ "editBody": "Arresta il container se è in esecuzione. Apri la configurazione sostituendo '<'CTID'>' con il suo ID:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Commenta solo le righe lxc.cgroup2.devices.allow o /dev/dri effettivamente in conflitto. Aggiungi la configurazione NVIDIA e adatta i numeri major ai dispositivi NVIDIA mostrati da ls -l /dev/nv* sul tuo host:",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "Configurazione LXC",
+ "editSave": "Salvare (Ctrl+X) e avviare il contenitore.",
+ "installCtHeading": "5.3 Installare il driver all'interno del contenitore",
+ "installCtCalloutTitle": "Importante",
+ "installCtCalloutBody": "Questa parte va eseguita nel container, non sull’host.",
+ "installCtBody": "Il modulo del kernel è già caricato sull’host. Il container richiede solo le librerie nello spazio utente della stessa versione del driver:",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Leggi le richieste e limita l’installazione alle librerie nello spazio utente. Non compilare né installare moduli del kernel nel container LXC.",
+ "installCtImageAlt": "Installazione driver NVIDIA",
+ "verifyCtHeading": "5.4 Verifica all'interno del contenitore",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI in LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "Dispositivi NVIDIA in LXC",
+ "verifyCtAfter": "La GPU dovrebbe comparire nell’elenco e i nodi dei dispositivi nel filesystem del container.",
+ "workloadHeading": "5.5 Verificare l’uso della GPU con un carico reale",
+ "workloadBody": "Attiva l’accelerazione NVIDIA in Plex o Jellyfin, avvia una transcodifica e verifica l’uso effettivo della GPU nella dashboard o nei log. Installare il driver non la abilita automaticamente nell’applicazione.",
+ "workloadImage1Alt": "Plex usando NVIDIA GPU",
+ "workloadImage2Alt": "Plex con NVIDIA GPU - sessione attiva",
+ "repeatNote": "Ripeti la sezione 5 per ogni altro container che richiede la GPU. Quando aggiorni il driver host, mantieni allineate le librerie nello spazio utente di tutti i container."
+ },
+ "docker": {
+ "heading": "6. (opzionale) NVIDIA Docker all'interno di un LXC",
+ "body": "Se Docker è già installato nel container LXC, installa al suo interno nvidia-container-toolkit per dare accesso alla GPU ai container Docker. L’accesso alla GPU da LXC deve già funzionare. Questi comandi riguardano Docker eseguito come root:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "I comandi configurano il repository NVIDIA, installano il toolkit, configurano il runtime Docker e riavviano Docker. Restano validi i permessi dei dispositivi e i limiti cgroup di LXC: verifica la GPU con un carico di prova."
+ },
+ "troubleshoot": {
+ "heading": "Risoluzione dei problemi",
+ "items": [
+ "nvidia-smi funziona sull’host, ma segnala “No devices found” nel container: controlla montaggi, permessi e versioni delle librerie. Se differiscono, installa nel container la stessa '<'VERSION'>' dell’host con --no-kernel-module.",
+ "La compilazione del driver fallisce: consulta il log. “No precompiled kernel interface was found” può semplicemente indicare che serve la compilazione locale. Installa gli header corrispondenti a uname -r con apt-get install pve-headers-$(uname -r) o il pacchetto proxmox-headers equivalente.",
+ "Le sessioni NVENC restano limitate: verifica che la patch supporti il driver attivo. Un aggiornamento può sovrascriverla. Per una versione compatibile riapplica ./patch.sh da /opt/nvidia/nvidia-patch e controlla l’output.",
+ "La GPU smette di rispondere dopo l’inattività: controlla systemctl status nvidia-persistenced e abilita il servizio se previsto. Esamina anche i log del kernel e del driver: non è l’unica causa possibile.",
+ "Il container si avvia, ma ls /dev/nv* non mostra dispositivi NVIDIA: controlla bind mount e percorsi sull’host. Usa ls -l /dev/nv* per verificare i numeri major NVIDIA, poi controlla le regole lxc.cgroup2.devices.allow e i permessi."
+ ]
+ }
+}
diff --git a/web/messages/pt/guides/backup-cloud.json b/web/messages/pt/guides/backup-cloud.json
new file mode 100644
index 00000000..6ccf5880
--- /dev/null
+++ b/web/messages/pt/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Cópias de segurança do Proxmox para a nuvem pessoal | ProxMenux",
+ "description": "Utilize rclone para montar uma nuvem pessoal, como Google Drive, Mega, Dropbox ou OneDrive, num diretório do anfitrião Proxmox VE, registe-o como armazenamento de cópias vzdump e faça cópias de VM e contentores diretamente para a nuvem, sem um script de cópias adicional.",
+ "ogTitle": "Cópias de segurança do Proxmox para a nuvem pessoal",
+ "ogDescription": "Monte uma nuvem com rclone no anfitrião Proxmox VE e utilize-a como destino vzdump para cópias de VM e contentores."
+ },
+ "header": {
+ "title": "Cópias de segurança do Proxmox para a nuvem pessoal",
+ "description": "Utilize rclone para montar uma nuvem pessoal, como Google Drive, Mega, Dropbox ou OneDrive, num diretório do anfitrião Proxmox VE, registe-o como armazenamento de cópias vzdump e faça cópias de VM e contentores diretamente para a nuvem, sem um script de cópias adicional.",
+ "section": "Guias"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Considere primeiro o Proxmox Backup Server",
+ "pbsCalloutBody": "Numa segunda máquina que cumpra os requisitos x86-64, Proxmox Backup Server oferece cópias incrementais e desduplicadas com encriptação opcional no cliente. Foi concebido para cópias de VM. Este guia explica como montar uma nuvem pessoal, como Google Drive, Mega, OneDrive ou Dropbox, como destino das cópias.",
+ "stepsTitle": "O que vai fazer",
+ "steps": [
+ "Criar um diretório no anfitrião Proxmox e registá-lo como armazenamento de cópias vzdump.",
+ "Instale e configure rclone para o seu provedor de nuvem.",
+ "Montar a pasta da nuvem no diretório do anfitrião.",
+ "Restabelecer a montagem em cada arranque com uma unidade systemd."
+ ],
+ "vzdumpCalloutTitle": "Nota sobre as cópias vzdump do Proxmox",
+ "vzdumpCalloutBody": "Os arquivos vzdump do Proxmox são cópias completas, não incrementais. O tamanho real depende dos dados incluídos e da compressão, não apenas da capacidade do disco virtual. Se um arquivo ocupar 30 GB, guardar cinco requer cerca de 150 GB. Defina uma política de retenção para evitar encher a nuvem."
+ },
+ "createDir": {
+ "heading": "1. Criar o diretório no anfitrião e registá-lo como armazenamento de cópias",
+ "body": "Ligue-se ao anfitrião por SSH ou abra a shell Proxmox e crie um diretório como ponto de montagem em /mnt/. Escolha um nome que identifique o fornecedor:",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "Na interface web do Proxmox: Datacenter → Armazenamento → Adicionar → Diretório.",
+ "image1Alt": "Adicionando novo armazenamento no Proxmox",
+ "configIntro": "Configure assim:",
+ "configItems": [
+ "ID:gdrive (ou o que você usou para o nome do diretório)",
+ "Diretório:/mnt/gdrive",
+ "Conteúdo: selecione Ficheiro de cópia VZDump."
+ ],
+ "image2Alt": "Configurando novo armazenamento no Proxmox",
+ "afterConfig": "Clique em Adicionar:",
+ "image3Alt": "Novo armazenamento adicionado no Proxmox",
+ "afterAdd": "O diretório está registado como armazenamento Proxmox, mas continua vazio: a nuvem ainda não está montada."
+ },
+ "installRclone": {
+ "heading": "2. Instalar e configurar o rclone",
+ "body": "rclone comunica com os serviços de armazenamento na nuvem. Instale-o a partir dos repositórios Debian:",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Se precisar de um rclone mais novo",
+ "newerCalloutBody": "Se precisar de uma versão mais recente do que a disponibilizada pelo Debian, utilize o instalador oficial:",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Autenticação no navegador através de túnel SSH",
+ "tunnelBody": "Para fornecedores com autenticação web, o anfitrião Proxmox normalmente não tem navegador. Siga o procedimento de configuração remota do rclone: utilize o navegador do portátil e encaminhe a ligação de retorno localhost por SSH para o rclone no anfitrião.",
+ "tunnelFrom": "No seu portátil, substituindo ip_proxmox pelo IP do Proxmox:",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "Esta sessão SSH abre a porta localhost 53682 no portátil e encaminha as ligações para a mesma porta do anfitrião Proxmox. Mantenha-a aberta durante a configuração do rclone.",
+ "runHeading": "2.2 Executar rclone config",
+ "runBody": "Na sessão SSH que acabou de abrir, execute:",
+ "runCode": "rclone config",
+ "runAfter": "Siga as instruções para adicionar uma configuração remota, ou «remote». As respostas dependem do fornecedor; consulte a documentação dos fornecedores rclone para Google Drive, Mega, Dropbox, OneDrive e outros. O passo principal é a pergunta sobre autenticação:",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Responda Y. O rclone apresenta um URL local. Abra-o no navegador do portátil; o túnel SSH encaminha a ligação. Autorize o acesso do rclone no fornecedor da nuvem para concluir a configuração.",
+ "nameRemote": "Para o nome da configuração remota, utilize um nome que corresponda ao diretório, por exemplo gdrive."
+ },
+ "mount": {
+ "heading": "3. Montar a pasta na nuvem",
+ "body": "Crie uma pasta na nuvem para as cópias, por exemplo PBC, abreviatura de Proxmox Backup Cloud.",
+ "mountIntro": "Monte-a no diretório do anfitrião:",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC — a pasta na sua nuvem.",
+ "/mnt/gdrive — o diretório host que você registrou como datastore."
+ ],
+ "mountFootnote": "Este comando permanece em primeiro plano. Deixe-o a executar num terminal para testar uma cópia. Para restabelecer a montagem em cada arranque, configure uma unidade systemd na secção seguinte."
+ },
+ "systemd": {
+ "heading": "4. Montagem automática em cada arranque com systemd",
+ "body": "Uma unidade systemd oferece mais controlo do que crontab @reboot: pode aguardar o arranque da rede, reiniciar em caso de erro e fornecer registos através de journalctl.",
+ "createIntro": "Crie o ficheiro da unidade:",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Cole:",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Ajuste gdrive:/PBC e /mnt/gdrive se escolheu outros nomes. Guarde, saia do editor com Ctrl+X e ative e inicie o serviço:",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Verificar:",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "A unidade solicita um reinício após 10 segundos se o processo rclone terminar com erro. Não repara credenciais expiradas nem garante recuperação de qualquer falha de rede ou do fornecedor. Consulte /var/log/rclone-gdrive.log e journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Porquê utilizar --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Com cache de escrita, operações como fwrite escrevem numa cache local em disco. O rclone envia o ficheiro após ser fechado e decorrido o intervalo de escrita diferida. Reserve espaço local para as cópias em curso e confirme o fim do envio antes de considerar a cópia remota disponível."
+ },
+ "configureBackup": {
+ "heading": "5. Configurar a nuvem como destino das cópias",
+ "body": "No Proxmox, para uma cópia agendada ou manual, escolha o armazenamento registado como destino:",
+ "image5Alt": "Selecionar destino de backup no Proxmox",
+ "after": "Após terminar o vzdump, aguarde o fim do envio do rclone em segundo plano e confirme o arquivo na interface do fornecedor da nuvem:",
+ "image6Alt": "Arquivo de backup no armazenamento em nuvem"
+ },
+ "retention": {
+ "heading": "6. Retenção: manter a quota da nuvem sob controlo",
+ "body": "Os arquivos vzdump do Proxmox são cópias completas, não incrementais. O tamanho real depende dos dados incluídos e da compressão, não apenas da capacidade do disco virtual. Se um arquivo ocupar 30 GB, guardar cinco requer cerca de 150 GB. Defina uma política de retenção para evitar encher a nuvem.",
+ "uiPath": "Na interface Proxmox: Datacenter → Cópia de segurança → [a sua tarefa] → Retenção:",
+ "image7Alt": "Configurações de retenção de backup no Proxmox",
+ "starterIntro": "Valores iniciais possíveis para um ambiente doméstico ou de testes:",
+ "starterItems": [
+ "Guardar as últimas 5 cópias diárias",
+ "Guardar as últimas 4 cópias semanais",
+ "Guardar as últimas 6 cópias mensais"
+ ],
+ "adjust": "Ajuste os valores à quota da nuvem e à frequência com que as VM mudam."
+ },
+ "troubleshoot": {
+ "heading": "Resolução de Problemas",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: o diretório já está montado, possivelmente por outra instância rclone. Confirme que não há cópias em curso antes de remover a montagem anterior com fusermount -uz /mnt/gdrive e reinicie a unidade systemd.",
+ "A cópia é muito lenta: confirme --vfs-cache-mode writes na linha ExecStart. Verifique o desempenho da cache local, a velocidade de envio e os limites do fornecedor. O envio pode continuar após terminar o vzdump.",
+ "A cópia falha com No space left on device: verifique o espaço da cache local e a quota da nuvem. A cache utiliza normalmente ~/.cache/rclone/. Se estiver cheia, escolha por exemplo --cache-dir /var/cache/rclone num sistema de ficheiros com espaço. Outro caminho no mesmo sistema cheio não resolve o problema.",
+ "O token de autenticação do rclone expirou: volte a ligar-se por SSH com o túnel (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) e execute rclone config reconnect gdrive: para renovar a autorização.",
+ "As cópias estão na nuvem, mas falham ao restaurar: não utilize a nuvem como único destino. Combine-a com PBS local ou cópias vzdump noutro disco."
+ ]
+ }
+}
diff --git a/web/messages/pt/guides/index.json b/web/messages/pt/guides/index.json
new file mode 100644
index 00000000..56837dd1
--- /dev/null
+++ b/web/messages/pt/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Guias Proxmox VE — Coral TPU, NVIDIA, Kodi em LXC, Samba e cópias na nuvem | ProxMenux",
+ "description": "Tutoriais detalhados para Proxmox VE: Kodi em LXC com aceleração por GPU, drivers NVIDIA no PVE 9, disco USB partilhado por Samba num contentor e cópias vzdump para Google Drive, Mega, Dropbox ou OneDrive. Inclui recursos selecionados da comunidade, glossário e referência de comandos.",
+ "ogTitle": "Guias Proxmox VE — Coral TPU, NVIDIA, Kodi em LXC, Samba e cópias na nuvem",
+ "ogDescription": "Tutoriais detalhados para Proxmox VE: passagem direta de GPU, centro multimédia Kodi em LXC, disco USB partilhado por Samba, cópias na nuvem com rclone e recursos selecionados da comunidade.",
+ "twitterTitle": "Guias Proxmox VE | ProxMenux",
+ "twitterDescription": "Tutoriais detalhados para Proxmox VE: GPU, Kodi em LXC, Samba, cópias na nuvem e outros temas.",
+ "ogImageAlt": "Guias ProxMenux — tutoriais detalhados para Proxmox VE"
+ },
+ "header": {
+ "title": "Guias do ProxMenux",
+ "tagline": "Tutoriais aprofundados, referências rápidas e recursos selecionados da comunidade para tirar o máximo partido do Proxmox VE."
+ },
+ "inDepth": {
+ "heading": "Guias aprofundados",
+ "intro": "Tutoriais detalhados para tarefas específicas do Proxmox. Cada um descreve os passos manuais de um processo automatizado pelo ProxMenux, para compreender o que acontece em cada etapa.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Instalar Kodi em LXC com aceleração por GPU e ligá-lo a um monitor ou televisor",
+ "description": "Execute Kodi num contentor LXC privilegiado no Proxmox VE, disponibilize a iGPU e os dispositivos de entrada USB do anfitrião e utilize o servidor como centro multimédia ligado diretamente ao televisor."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Cópias de segurança do Proxmox para a nuvem pessoal",
+ "description": "Utilize rclone para montar uma nuvem pessoal, como Google Drive, Mega, Dropbox ou OneDrive, num diretório do anfitrião Proxmox VE, registe-o como armazenamento de cópias vzdump e faça cópias de VM e contentores diretamente para a nuvem, sem um script de cópias adicional."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "Adicionar um disco ou uma pen USB a LXC e partilhá-los na rede com Samba",
+ "description": "Disponibilize um disco ou uma pen USB num contentor LXC privilegiado no Proxmox VE, instale Samba no contentor e partilhe o conteúdo na rede."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "Instalação de drivers de placas gráficas NVIDIA no Proxmox VE 9 (procedimento manual)",
+ "description": "Instale e configure manualmente os drivers NVIDIA num anfitrião Proxmox VE 9 e disponibilize a GPU a um ou mais contentores LXC. Inclui os drivers, o serviço de persistência, a correção NVENC opcional e a configuração de cada contentor."
+ }
+ ]
+ },
+ "references": {
+ "heading": "Referências ProxMenux",
+ "intro": "Material de referência rápida da própria documentação ProxMenux.",
+ "cards": {
+ "glossary": {
+ "title": "Glossário",
+ "description": "Mais de 60 definições dos termos técnicos usados no ProxMenux: Proxmox, virtualização, armazenamento, rede e Linux. Consulta rápida com etiquetas de categoria e ligações relacionadas."
+ },
+ "helpInfo": {
+ "title": "Ajuda e Informações — Catálogo de comandos",
+ "description": "Uma seleção de comandos Linux e Proxmox por tema, com cópia para a área de transferência. Corresponde à referência disponível no menu ProxMenux."
+ },
+ "linuxResources": {
+ "title": "Recursos Linux",
+ "description": "Recursos externos para aprender a linha de comandos Linux, práticas de segurança, ferramentas de monitorização e ZFS, como complemento do catálogo de comandos ProxMenux."
+ },
+ "externalRepos": {
+ "title": "Repositórios Externos",
+ "description": "Repositórios de scripts de terceiros integrados no ProxMenux como opções alternativas do menu, como community-scripts/ProxmoxVE."
+ }
+ }
+ },
+ "official": {
+ "heading": "Recursos oficiais da Proxmox",
+ "intro": "Documentação publicada pela Proxmox Server Solutions, a referência oficial da plataforma.",
+ "cards": {
+ "pveDocs": {
+ "title": "Documentação Proxmox VE",
+ "description": "O guia oficial de administração: uma referência completa sobre instalação, rede, armazenamento, clusters, alta disponibilidade e API."
+ },
+ "pbsDocs": {
+ "title": "Documentação do Proxmox Backup Server",
+ "description": "Documentação para PBS — backups incrementais, desduplicados e criptografados para Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Formação em vídeo oficial",
+ "description": "Tutoriais em vídeo e cursos de formação oficiais da Proxmox."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Fórum oficial da comunidade para perguntas, resolução de problemas e partilha de experiências, acompanhado pelos responsáveis do projeto."
+ }
+ }
+ },
+ "community": {
+ "heading": "Projectos e recursos comunitários",
+ "intro": "Projetos de código aberto e listas selecionadas da comunidade Proxmox. Não são afiliados à Proxmox Server Solutions nem ao ProxMenux; estão aqui porque demonstraram ser úteis.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "Catálogo de scripts mantido pela comunidade para disponibilizar facilmente contentores LXC, VM e ajustes PVE, por exemplo para Home Assistant, Plex ou Frigate. Dá continuidade à ideia dos helper scripts de tteck."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (lista de recursos selecionados)",
+ "description": "Ampla coleção de recursos Proxmox VE selecionados pela comunidade: ferramentas, bibliotecas, integrações, blogs e vídeos. Um bom ponto de partida para descobrir mais."
+ }
+ },
+ "suggestRich": "Conhece um recurso de qualidade que devemos adicionar? Abra uma issue ou um PR no GitHub. Pretendemos manter uma seleção criteriosa, em vez de uma lista exaustiva."
+ },
+ "discussion": {
+ "heading": "Discussão comunitária",
+ "intro": "Onde as pessoas falam sobre Proxmox e ProxMenux.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "GitHub Discussions dedicado ao ProxMenux: ideias de funcionalidades, perguntas e respostas e partilha de configurações. O local adequado para temas sobre o menu, o Monitor e a documentação."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Fórum oficial do Proxmox (também ligado acima). O lugar certo para solucionar problemas em profundidade e problemas específicos de configuração."
+ },
+ "reddit": {
+ "title": "r/Proxmox no Reddit",
+ "description": "Subreddit ativo para discussões, dicas e apoio técnico. Mais acessível do que o fórum, com respostas frequentemente mais rápidas a perguntas informais."
+ }
+ }
+ }
+}
diff --git a/web/messages/pt/guides/kodi-lxc.json b/web/messages/pt/guides/kodi-lxc.json
new file mode 100644
index 00000000..d0017a1f
--- /dev/null
+++ b/web/messages/pt/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Instalar Kodi em LXC com aceleração por GPU | Guias ProxMenux",
+ "description": "Execute Kodi num contentor LXC privilegiado no Proxmox VE, disponibilize a iGPU e os dispositivos de entrada USB do anfitrião e utilize o servidor como centro multimédia ligado diretamente ao televisor.",
+ "ogTitle": "Instalar Kodi em LXC com aceleração por GPU",
+ "ogDescription": "Execute Kodi num contentor LXC privilegiado no Proxmox VE com acesso à iGPU e aos dispositivos de entrada USB do anfitrião e transforme o servidor num centro multimédia."
+ },
+ "header": {
+ "title": "Instalar Kodi em LXC com aceleração por GPU e ligá-lo a um monitor ou televisor",
+ "description": "Execute Kodi num contentor LXC privilegiado no Proxmox VE, disponibilize a iGPU e os dispositivos de entrada USB do anfitrião e utilize o servidor como centro multimédia ligado diretamente ao televisor.",
+ "section": "Guias"
+ },
+ "intro": {
+ "calloutTitle": "Aviso",
+ "calloutBody": "Este guia utiliza um script externo da comunidade para preparar o contentor Kodi. O ProxMenux também pode configurar o acesso à iGPU do anfitrião: GPU e Coral-TPU → Adicionar GPU a LXC configura /dev/dri e instala os drivers no contentor. O script seguinte instala ainda Kodi e o arranque automático em tty7. Utilize-o para obter um centro multimédia LXC pronto a usar; escolha o procedimento ProxMenux se apenas precisar de acesso à GPU num contentor configurado manualmente.",
+ "credit": "O script original do Kodi para LXC foi criado por mrrudy.",
+ "stepsTitle": "O que vai fazer",
+ "steps": [
+ "Criar um contentor LXC privilegiado com Kodi através do script.",
+ "Disponibilizar teclado, rato ou comando USB no contentor.",
+ "Opcional: atualizar Kodi a partir dos repositórios configurados no contentor."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Criar o Kodi LXC",
+ "body": "Para este procedimento, selecione Privileged nas definições avançadas do script. Por predefinição cria contentores sem privilégios, que exigem permissões de dispositivos e mapeamento de identificadores adequados. Configura o acesso à GPU, Kodi e o arranque automático em tty7:",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "A instalação demora algum tempo. Quando Kodi arrancar em tty7, ligue o monitor ou televisor à saída HDMI/DisplayPort do anfitrião. Deverá aparecer a interface do Kodi."
+ },
+ "addInput": {
+ "heading": "2. Adicionar teclado, rato ou comando USB",
+ "body": "Os dispositivos de entrada encontram-se em /dev/input/ no anfitrião. Identifique o número major:",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Lista de dispositivos de entrada",
+ "afterList": "Nos dispositivos de caracteres, utilize o número major antes da vírgula, neste exemplo 13. Pare o contentor Kodi e edite a configuração, substituindo '<'CTID'>' pelo respetivo ID, por exemplo 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Adicione as linhas seguintes, ajustando 13 ao número encontrado no seu anfitrião:",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "Configuração do LXC",
+ "save": "Guarde o ficheiro, saia do editor com Ctrl+X e reinicie apenas o contentor. Não é necessário reiniciar o anfitrião Proxmox:",
+ "restartCode": "pct reboot CTID",
+ "plug": "Ligue o teclado, rato ou comando USB. Kodi deverá responder."
+ },
+ "updateKodi": {
+ "heading": "3. Opcional: atualizar Kodi a partir dos repositórios configurados",
+ "calloutTitle": "Importante",
+ "calloutBody": "O PPA team-xbmc destina-se apenas ao Ubuntu e o Kodi indica que já não é mantido. A ausência de add-apt-repository não identifica a distribuição. Verifique cat /etc/os-release e procure NAME=\"Ubuntu\"; não adicione PPA Ubuntu ao Debian. Os comandos seguintes atualizam pacotes a partir dos repositórios configurados no contentor.",
+ "body": "No contentor (pct enter '<'CTID'>'):",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Reinicie o contentor após a atualização. Kodi utilizará a versão disponível nos repositórios configurados, que pode diferir da versão mais recente do projeto."
+ },
+ "screenshots": {
+ "heading": "Imagens",
+ "image1Alt": "Interface Kodi 1",
+ "image2Alt": "Interface Kodi 2"
+ },
+ "troubleshoot": {
+ "heading": "Resolução de Problemas",
+ "items": [
+ "O contentor Kodi arranca, mas não aparece nada no televisor: pode não ter acesso à iGPU. Verifique ls /dev/dri no contentor: deverão aparecer card0 e renderD128. Se o diretório estiver vazio, verifique a passagem direta da GPU ou utilize Adicionar GPU a LXC no ProxMenux.",
+ "Teclado ou rato não detetado após reiniciar: verifique se /dev/input está montado e se Kodi tem permissão para ler os dispositivos. Execute ls -l /dev/input no anfitrião e no contentor e verifique a regra lxc.cgroup2.devices.allow.",
+ "A reprodução com aceleração por hardware utiliza a CPU em vez da GPU: instale ou atualize os drivers VA-API no contentor: intel-media-va-driver para iGPU Intel recentes, i965-va-driver para as antigas e mesa-va-drivers para AMD.",
+ "add-apt-repository: command not found: o comando não está instalado; isso não prova que o contentor utiliza Debian. Verifique a distribuição e os pacotes disponíveis. Em Debian utilize os respetivos pacotes Kodi, sem adicionar o PPA Ubuntu."
+ ]
+ },
+ "further": {
+ "heading": "Mais informações",
+ "konpatRich": "Artigo de Konpat com mais contexto sobre o acesso à iGPU Intel a partir de LXC."
+ }
+}
diff --git a/web/messages/pt/guides/lxc-samba.json b/web/messages/pt/guides/lxc-samba.json
new file mode 100644
index 00000000..38fc8f4d
--- /dev/null
+++ b/web/messages/pt/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Adicionar um disco USB a LXC e partilhá-lo com Samba | ProxMenux",
+ "description": "Disponibilize um disco ou uma pen USB num contentor LXC privilegiado no Proxmox VE, instale Samba no contentor e partilhe o conteúdo na rede.",
+ "ogTitle": "Adicionar um disco USB a LXC e partilhá-lo com Samba",
+ "ogDescription": "Disponibilize um disco USB num contentor LXC privilegiado no Proxmox VE, instale Samba e partilhe o conteúdo na rede local."
+ },
+ "header": {
+ "title": "Adicionar um disco ou uma pen USB a LXC e partilhá-los na rede com Samba",
+ "description": "Disponibilize um disco ou uma pen USB num contentor LXC privilegiado no Proxmox VE, instale Samba no contentor e partilhe o conteúdo na rede.",
+ "section": "Guias"
+ },
+ "recommended": {
+ "calloutTitle": "Recomendado",
+ "calloutIntro": "O ProxMenux disponibiliza ambas as partes deste procedimento através de menus guiados:",
+ "items": [
+ "Gestão de discos → Formatar/apagar disco físico para a formatação.",
+ "Armazenamento e partilha → Partilha de rede LXC → Servidor Samba em LXC para a instalação no contentor privilegiado e a configuração do Samba."
+ ],
+ "calloutOutro": "Os procedimentos guiados tratam das permissões dos contentores sem privilégios, dos perfis de partilha com leitura e escrita, só leitura ou personalizados e do grupo sharedfiles. Este guia descreve os passos manuais para os compreender ou configurar diretamente."
+ },
+ "intro": {
+ "body": "Um disco ou uma pen USB pode ser útil num anfitrião Proxmox, sobretudo num mini PC com poucas opções de expansão interna. Este guia explica:",
+ "stepsTitle": "O que vai fazer",
+ "steps": [
+ "Anexando o disco USB a um LXC privilegiado.",
+ "A instalar o Samba dentro do contentor.",
+ "Partilhar o conteúdo do disco pela LAN."
+ ],
+ "useCasesTitle": "Casos de uso",
+ "useCases": [
+ "Guardar ficheiros torrent e disponibilizá-los na rede.",
+ "Fornecer armazenamento a um servidor multimédia como Plex, Jellyfin ou Emby.",
+ "Guardar documentos processados automaticamente pelo Paperless.",
+ "Armazenamento genérico estilo NAS para a rede doméstica."
+ ],
+ "privilegedCalloutTitle": "Contentor privilegiado para este procedimento",
+ "privilegedCalloutBody": "Este procedimento utiliza um contentor LXC privilegiado com um dispositivo de blocos como mp0. Para contentores sem privilégios, pode montar o sistema de ficheiros no anfitrião e disponibilizar o diretório por bind mount, com permissões e mapeamento de identificadores adequados. Consulte Armazenamento e partilha → Pontos de montagem LXC no ProxMenux."
+ },
+ "attach": {
+ "heading": "1. Disponibilizar o disco USB em LXC",
+ "identifyHeading": "1.1 Identificar o dispositivo",
+ "identifyBody": "Compare a lista de discos antes e depois da ligação USB. O novo dispositivo é o disco pretendido.",
+ "beforeLabel": "Antes:",
+ "afterLabel": "Após:",
+ "imageBeforeAlt": "Lista de disco antes de adicionar unidade USB",
+ "imageAfterAlt": "Lista de disco depois de adicionar unidade USB",
+ "lsblkBody": "Pode também utilizar lsblk -o NAME,SIZE,MODEL,SERIAL para listar dispositivos de blocos com modelo e número de série.",
+ "stableCalloutTitle": "Importante — utilizar um identificador estável",
+ "stableCalloutBody": "O nome /dev/sdb1 pode mudar após um reinício, sobretudo com vários discos USB. Procure o identificador persistente:",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Utilize a entrada /dev/disk/by-id/usb-... da partição pretendida na configuração LXC, em vez de /dev/sdb1. Escolha a partição, não o disco completo: continuará identificável se a ordem dos dispositivos mudar.",
+ "formatHeading": "1.2 Formatar o disco",
+ "formatBody": "ext4 é adequado para partilhas Linux: distingue maiúsculas e suporta ACL POSIX e ficheiros grandes. A formatação destrói o conteúdo do sistema de ficheiros existente. Confirme a partição e execute o comando no anfitrião Proxmox:",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Substitua /dev/sdb1 pela partição real ou pelo respetivo caminho persistente /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Criar o ponto de montagem no contentor LXC",
+ "mkdirBody": "Dentro do LXC, crie o diretório onde o disco irá aparecer (qualquer nome funciona):",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Configurar o dispositivo em LXC",
+ "wireBody": "No anfitrião Proxmox, edite a configuração do contentor. Substitua '<'CTID'>' pelo respetivo ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Adicionar esta linha:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Pode também utilizar a entrada curta mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0 se aceitar o risco de alteração do caminho do dispositivo.",
+ "wireBackupNote": "O exemplo utiliza backup=0. O conteúdo dos pontos de montagem de dispositivos e dos bind mounts não é incluído nas cópias vzdump do contentor. Prepare uma cópia separada dos dados do disco externo.",
+ "restartHeading": "1.5 Reinicie o LXC e defina permissões",
+ "restartBody": "Reinicie o CT para aplicar o ponto de montagem:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "No contentor LXC, crie a conta da partilha antes de lhe atribuir a propriedade e defina as permissões do diretório:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Observação",
+ "permsNote": "Substitua proxmenux pelo nome escolhido. O modo 770 permite o acesso ao proprietário e ao grupo, sem acesso para outros; é mais restritivo do que chmod -R 777. A conta é criada aqui e registada no Samba no passo 2.2."
+ },
+ "samba": {
+ "heading": "2. Instalar o Samba",
+ "installHeading": "2.1 Instale o pacote dentro do LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Confirme que o serviço está em execução:",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Verificar a conta da partilha",
+ "userBody": "A conta de sistema proxmenux foi criada sem shell de início de sessão no passo 1.5. Verifique-a antes de definir a palavra-passe Samba e utilize sempre o nome escolhido:",
+ "userCode": "id proxmenux",
+ "passwordBody": "Defina a palavra-passe Samba, separada da palavra-passe do sistema, pois o Samba mantém o seu próprio armazenamento de credenciais:",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Definir propriedade e ACL",
+ "aclBody": "Se o chown do passo 1.5 for suficiente, as permissões estão prontas. Para vários utilizadores com direitos diferentes no mesmo caminho, utilize ACL:",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Configurar a partilha Samba",
+ "editHeading": "3.1 Editar smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Adicione uma definição da partilha no fim do ficheiro:",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Observação",
+ "validUsersNote": "A linha valid users = proxmenux restringe o acesso ao único usuário do Samba. Para acesso baseado em grupo, use valid users = @samba_users após adicionar o(s) usuário(s) a um grupo chamado samba_users.",
+ "reloadHeading": "3.2 Recarregar Samba",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Verificar o acesso",
+ "body": "De qualquer cliente da LAN, navegue até \\\\'<'CT_IP'>' (Windows) ou smb://'<'CT_IP'>' (macOS / gerenciadores de arquivos Linux). Autentique com o usuário Samba (proxmenux) e a senha que você definiu com smbpasswd.",
+ "image1Alt": "Acesso ao servidor Samba de um cliente",
+ "image2Alt": "Pedido de autenticação Samba",
+ "usageBody": "Pode utilizar a partilha no contentor e através da rede:",
+ "image3Alt": "Utilização do disco USB através da partilha"
+ },
+ "troubleshoot": {
+ "heading": "Resolução de Problemas",
+ "items": [
+ "pct reboot falha com “device not found”: confirme que o caminho em mp0 existe no anfitrião. Verifique ls -l /dev/disk/by-id/ e corrija o caminho.",
+ "O contentor arranca, mas /mnt/lxc_USB está vazio: o disco pode não estar montado ou o sistema de ficheiros pode estar vazio. Verifique no anfitrião com pct exec '<'CTID'>' -- mount | grep lxc_USB. Se a montagem faltar, examine a configuração, o caminho do dispositivo e os erros de arranque.",
+ "A autenticação Samba funciona, mas a escrita falha com “Permission denied”: verifique as permissões Linux do diretório e as definições de escrita da partilha. Reveja chown e setfacl nas secções 1.5 e 2.3.",
+ "A partilha não aparece, mas smb://'<'ip'>'/lxc_usb funciona: a descoberta NetBIOS antiga utiliza nmbd. O Windows moderno utiliza WS-Discovery; em Debian 12/13 instale apt-get install -y wsdd e verifique o serviço e a firewall. Ativar apenas nmbd não fornece WS-Discovery.",
+ "Para adicionar outro utilizador à partilha: crie a conta com adduser, registe-a com smbpasswd -a e adicione-a à lista valid users =, separada por vírgulas. Atribua também as permissões ou ACL necessárias no sistema de ficheiros."
+ ]
+ }
+}
diff --git a/web/messages/pt/guides/nvidia-manual.json b/web/messages/pt/guides/nvidia-manual.json
new file mode 100644
index 00000000..dd97cd62
--- /dev/null
+++ b/web/messages/pt/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "Instalar controladores NVIDIA no Proxmox VE 9 — procedimento manual | Guias ProxMenux",
+ "description": "Instale e configure manualmente os drivers NVIDIA num anfitrião Proxmox VE 9 e disponibilize a GPU a um ou mais contentores LXC. Inclui os drivers, o serviço de persistência, a correção NVENC opcional e a configuração de cada contentor.",
+ "ogTitle": "Instalação de drivers NVIDIA no Proxmox VE 9 (procedimento manual)",
+ "ogDescription": "Instalação manual NVIDIA no PVE 9: driver do anfitrião, serviço de persistência, correção NVENC opcional e acesso à GPU em cada contentor LXC."
+ },
+ "header": {
+ "title": "Instalação de drivers de placas gráficas NVIDIA no Proxmox VE 9 (procedimento manual)",
+ "description": "Instale e configure manualmente os drivers NVIDIA num anfitrião Proxmox VE 9 e disponibilize a GPU a um ou mais contentores LXC. Inclui os drivers, o serviço de persistência, a correção NVENC opcional e a configuração de cada contentor.",
+ "section": "Guias"
+ },
+ "intro": {
+ "calloutTitle": "Observação",
+ "calloutBody": "Este procedimento manual fica como referência. Para a maioria dos utilizadores recomenda-se o assistente ProxMenux: Instalar drivers NVIDIA no anfitrião em GPU e Coral-TPU, seguido de Adicionar GPU a LXC ou Adicionar GPU a VM para configurar o convidado. O assistente executa os mesmos passos com verificações adicionais de cabeçalhos do kernel, IOMMU e conflitos VFIO. Esta página ajuda a compreender cada comando ou a adaptar a configuração.",
+ "targetNote": "Destina-se ao Proxmox VE 9 (Debian Trixie). O PVE 7 (Bullseye) e o PVE 8 (Bookworm) já não são abrangidos.",
+ "stepsTitle": "O que vai fazer",
+ "steps": [
+ "Preparar o anfitrião Proxmox VE 9: bloquear nouveau e verificar repositórios e pré-requisitos.",
+ "Instale o driver NVIDIA no host.",
+ "Instale o serviço de persistência NVIDIA.",
+ "Opcional: aplicar a correção keylase para remover o limite de sessões NVENC simultâneas nas GPU de consumo.",
+ "Disponibilizar a GPU a um ou mais contentores LXC e instalar em cada um a versão correspondente do driver."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Preparar a máquina (PVE 9)",
+ "blacklistHeading": "1.1 Bloquear nouveau",
+ "blacklistBody": "Verifique se o driver nouveau de código aberto já está na lista negra:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Se o blacklist nouveau não aparecer, adicione-o e reinicie:",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Verificação da lista negra",
+ "reposHeading": "1.2 Verificar repositórios (PVE 9 / Trixie)",
+ "reposBody": "As ferramentas de pós-instalação podem já ter configurado os repositórios. Verifique primeiro as fontes existentes e ignore alterações já feitas, sem duplicar entradas.",
+ "reposOtherwise": "Caso contrário, numa instalação PVE 9 de origem sem subscrição Enterprise:",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Certifique-se de que contém a fonte sem assinatura para Trixie:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "E as fontes Debian em /etc/apt/sources.list.d/debian.sources:",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Atualizar o sistema e instalar pré-requisitos",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Instale as ferramentas de compilação e os cabeçalhos do kernel necessários para compilar o módulo do kernel NVIDIA:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Instale o driver NVIDIA na máquina",
+ "pickHeading": "2.1 Escolha uma versão do driver",
+ "pickBody": "Escolha um ramo do driver compatível com a GPU e o kernel em execução. O mais recente pode não suportar GPU antigas; verifique a lista de produtos da versão NVIDIA escolhida:",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Se você planeja aplicar o patch NVENC (passo 4), verifique se o patch suporta sua versão escolhida primeiro: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Aviso",
+ "pickReplace": "Substitua latest.txt no URL pelo número de versão para encontrar o instalador terminado em .run. Lista completa dos drivers:",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "Transferência do driver NVIDIA",
+ "pickVersionNote": "Ao longo do resto deste guia, substitua '<'VERSION'>' pela versão atual (por exemplo 580.95.05).",
+ "downloadHeading": "2.2 Baixe e execute o instalador",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Execute o instalador. A opção seguinte pode desativar nouveau se necessário; poderá ser preciso reiniciar antes de concluir a instalação:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "Depois que o host voltar, execute o instalador novamente para compilar e instalar o módulo do kernel:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 Carregar módulos NVIDIA no arranque",
+ "modulesBody": "Edite a configuração de carregamento dos módulos:",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Adicione os módulos NVIDIA para o anfitrião e LXC. Os módulos VFIO destinam-se à passagem direta para VM e não são necessários aqui:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Salvar (Ctrl+X) e reconstruir initramfs:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Criar regras udev",
+ "udevBody": "Para criar os nós dos dispositivos /dev/nvidia* quando os módulos são carregados:",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Gravar (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. Serviço de persistência NVIDIA",
+ "body": "O serviço de persistência mantém a GPU inicializada quando nenhuma outra aplicação a utiliza. Reduz a latência de reinicialização e conserva esse estado entre clientes:",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Após reiniciar, confirme que o driver está carregado e o serviço ativo:",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "Saída NVIDIA SMI",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "Estado do serviço de persistência NVIDIA"
+ },
+ "nvenc": {
+ "heading": "4. Opcional: remover o limite de sessões NVENC simultâneas",
+ "body": "O limite de sessões NVENC depende do modelo de GPU e da versão do driver. Consulte a matriz NVIDIA, em vez de presumir um número por geração. A correção keylase remove o limite de software nos drivers suportados e pode ajudar na transcodificação Plex ou Jellyfin.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "Aplicação de patch NVIDIA",
+ "after": "Volte a aplicar a correção após cada atualização do driver. O repositório keylase inclui ainda patch-fbc.sh para FBC, a captura do framebuffer."
+ },
+ "lxcSetup": {
+ "heading": "5. Configurar o acesso à GPU num contentor LXC",
+ "identifyHeading": "5.1 Identificar os números de dispositivo",
+ "identifyBody": "Na máquina:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "Lista de dispositivos NVIDIA",
+ "identifyNote": "Anote os números major dos dispositivos: podem variar entre sistemas. Valores típicos:",
+ "tableHeaders": {
+ "device": "Dispositivo",
+ "major": "Número major típico"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (variável)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (partilhado com nvidia)"
+ }
+ ],
+ "editHeading": "5.2 Editar a configuração do LXC",
+ "editBody": "Pare o contentor se estiver em execução. Abra a configuração, substituindo '<'CTID'>' pelo respetivo ID:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Comente apenas as linhas lxc.cgroup2.devices.allow ou /dev/dri que realmente entrem em conflito. Adicione a configuração NVIDIA e ajuste os números major aos dispositivos NVIDIA mostrados por ls -l /dev/nv* no seu anfitrião:",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "Configuração do LXC",
+ "editSave": "Guarde o ficheiro, saia com Ctrl+X e inicie o contentor.",
+ "installCtHeading": "5.3 Instalar o driver no contentor",
+ "installCtCalloutTitle": "Importante",
+ "installCtCalloutBody": "Esta parte é executada no contentor, não no anfitrião.",
+ "installCtBody": "O módulo do kernel já está carregado no anfitrião. O contentor só precisa das bibliotecas em espaço de utilizador da mesma versão do driver:",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Leia as perguntas e limite esta instalação às bibliotecas em espaço de utilizador. Não compile nem instale módulos do kernel dentro do LXC.",
+ "installCtImageAlt": "Instalação do driver NVIDIA",
+ "verifyCtHeading": "5.4 Verificar no contentor",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI em LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "Dispositivos NVIDIA em LXC",
+ "verifyCtAfter": "A GPU deverá aparecer na lista e os nós dos dispositivos no sistema de ficheiros do contentor.",
+ "workloadHeading": "5.5 Confirmar a utilização da GPU com uma carga real",
+ "workloadBody": "Ative a aceleração NVIDIA no Plex ou Jellyfin, inicie uma transcodificação e confirme a utilização real da GPU no painel ou nos registos. Instalar o driver não ativa automaticamente a aceleração na aplicação.",
+ "workloadImage1Alt": "Plex usando NVIDIA GPU",
+ "workloadImage2Alt": "Plex usando NVIDIA GPU - sessão ativa",
+ "repeatNote": "Repita a secção 5 para cada contentor adicional que precise da GPU. Quando atualizar o driver do anfitrião, mantenha alinhadas as bibliotecas em espaço de utilizador de todos os contentores."
+ },
+ "docker": {
+ "heading": "6. (Opcional) NVIDIA Docker dentro de um LXC",
+ "body": "Se o Docker já funciona no LXC, instale aí nvidia-container-toolkit para disponibilizar a GPU aos contentores Docker. O acesso à GPU a partir do LXC deve funcionar primeiro. Estes comandos destinam-se a Docker executado como root:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Os comandos configuram o repositório NVIDIA, instalam o toolkit, configuram o runtime Docker e reiniciam o Docker. Mantêm-se as permissões dos dispositivos e as restrições cgroup do LXC; confirme a GPU com uma carga de teste."
+ },
+ "troubleshoot": {
+ "heading": "Resolução de Problemas",
+ "items": [
+ "nvidia-smi funciona no anfitrião, mas apresenta “No devices found” no contentor: verifique montagens, permissões e versões das bibliotecas. Se diferirem, instale no contentor a mesma '<'VERSION'>' do anfitrião com --no-kernel-module.",
+ "A compilação do driver falha: consulte o registo. “No precompiled kernel interface was found” pode apenas indicar que é necessária compilação local. Instale os cabeçalhos correspondentes a uname -r com apt-get install pve-headers-$(uname -r) ou o pacote proxmox-headers equivalente.",
+ "As sessões NVENC continuam limitadas: confirme que a correção suporta o driver ativo. Uma atualização pode substituí-la. Para uma versão compatível, volte a executar ./patch.sh em /opt/nvidia/nvidia-patch e verifique a saída.",
+ "A GPU deixa de responder após inatividade: verifique systemctl status nvidia-persistenced e ative o serviço se necessário. Consulte também os registos do kernel e do driver; não é a única causa possível.",
+ "O contentor arranca, mas ls /dev/nv* não mostra dispositivos NVIDIA: verifique os bind mounts e os caminhos no anfitrião. Utilize ls -l /dev/nv* para confirmar os números major NVIDIA e verifique as regras lxc.cgroup2.devices.allow e as permissões."
+ ]
+ }
+}
diff --git a/web/messages/sk/guides/backup-cloud.json b/web/messages/sk/guides/backup-cloud.json
new file mode 100644
index 00000000..6e1424cb
--- /dev/null
+++ b/web/messages/sk/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Zálohy Proxmoxu na osobné cloudové úložisko | ProxMenux",
+ "description": "Pomocou rclone pripojte osobné cloudové úložisko, napríklad Google Drive, Mega, Dropbox alebo OneDrive, ako adresár na hostiteľovi Proxmox VE, zaregistrujte ho ako úložisko záloh pre vzdump a zálohujte VM aj kontajnery priamo do cloudu bez ďalšieho zálohovacieho skriptu.",
+ "ogTitle": "Zálohy Proxmoxu na osobné cloudové úložisko",
+ "ogDescription": "Pripojte cloudové úložisko cez rclone na hostiteľovi Proxmox VE a používajte ho ako cieľ záloh vzdump pre VM a kontajnery."
+ },
+ "header": {
+ "title": "Zálohy Proxmoxu na osobné cloudové úložisko",
+ "description": "Pomocou rclone pripojte osobné cloudové úložisko, napríklad Google Drive, Mega, Dropbox alebo OneDrive, ako adresár na hostiteľovi Proxmox VE, zaregistrujte ho ako úložisko záloh pre vzdump a zálohujte VM aj kontajnery priamo do cloudu bez ďalšieho zálohovacieho skriptu.",
+ "section": "Návody"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Najprv zvážte Proxmox Backup Server",
+ "pbsCalloutBody": "Na druhom stroji, ktorý spĺňa požiadavky x86-64, poskytuje Proxmox Backup Server inkrementálne a deduplikované zálohy s voliteľným šifrovaním na strane klienta. Je určený na zálohy VM. Tento návod namiesto toho opisuje pripojenie osobného cloudu, napríklad Google Drive, Mega, OneDrive alebo Dropbox, ako cieľa záloh.",
+ "stepsTitle": "Čo budete robiť",
+ "steps": [
+ "Vytvoriť adresár na hostiteľovi Proxmox a zaregistrovať ho ako úložisko záloh vzdump.",
+ "Nainštalujte a nakonfigurujte rclone pre svojho poskytovateľa cloudu.",
+ "Pripojiť cloudový priečinok do vytvoreného adresára.",
+ "Obnovovať pripojenie po každom reštarte pomocou jednotky systemd."
+ ],
+ "vzdumpCalloutTitle": "Upozornenie k zálohám vzdump v Proxmoxe",
+ "vzdumpCalloutBody": "Archívy Proxmox vzdump sú úplné zálohy, nie prírastkové. Ich skutočná veľkosť závisí od zahrnutých údajov a kompresie, nie iba od kapacity virtuálneho disku. Ak jeden archív zaberá 30 GB, päť uchovaných archívov potrebuje približne 150 GB. Nastavte pravidlá uchovávania, aby sa cloudové úložisko nezaplnilo."
+ },
+ "createDir": {
+ "heading": "1. Vytvorenie adresára na hostiteľovi a registrácia úložiska záloh",
+ "body": "Pripojte sa k hostiteľovi cez SSH alebo otvorte shell Proxmoxu a vytvorte prípojný adresár v /mnt/. Zvoľte názov, podľa ktorého spoznáte poskytovateľa:",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "V webe Proxmox UI: Datacentrum → Úložisko → Pridať → Directory.",
+ "image1Alt": "Pridanie nového úložiska v Proxmoxe",
+ "configIntro": "Nastaviť to takto:",
+ "configItems": [
+ "ID:gdrive (alebo čokoľvek ste použili pre názov adresára)",
+ "Adresár:/mnt/gdrive",
+ "Obsah: vyberte Súbor zálohy VZDump."
+ ],
+ "image2Alt": "Nastavenie nového úložiska v Proxmoxe",
+ "afterConfig": "Kliknite na Pridať:",
+ "image3Alt": "Nové úložisko pridané v Proxmoxe",
+ "afterAdd": "Adresár je zaregistrovaný ako úložisko Proxmoxu, ale zatiaľ je prázdny: cloud ešte nie je pripojený."
+ },
+ "installRclone": {
+ "heading": "2. Nainštalujte a nakonfigurujte rclone",
+ "body": "rclone komunikuje so službami cloudového úložiska. Nainštalujte ho z repozitárov Debianu:",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Ak potrebujete novší rclone",
+ "newerCalloutBody": "Ak potrebujete novšiu verziu než tú z Debianu, použite oficiálny inštalátor:",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Overenie založené na prehliadači cez tunel SSH",
+ "tunnelBody": "Pri poskytovateľoch s prihlásením cez prehliadač hostiteľ Proxmox zvyčajne prehliadač nemá. Postupujte podľa návodu na vzdialenú konfiguráciu rclone: použite prehliadač notebooku a jeho spätné spojenie na localhost presmerujte cez SSH k rclone na hostiteľovi.",
+ "tunnelFrom": "Na notebooku nahraďte ip_proxmox IP adresou Proxmoxu:",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "Táto relácia SSH otvorí lokálny port 53682 na notebooku a presmeruje spojenia na rovnaký port hostiteľa Proxmox. Nechajte ju otvorenú počas konfigurácie rclone.",
+ "runHeading": "2.2 Spustiť rclone config",
+ "runBody": "V práve otvorenej relácii SSH spustite:",
+ "runCode": "rclone config",
+ "runAfter": "Podľa pokynov pridajte novú vzdialenú konfiguráciu, tzv. remote. Odpovede závisia od poskytovateľa; pozrite si dokumentáciu poskytovateľov rclone pre Google Drive, Mega, Dropbox, OneDrive a ďalších. Kľúčová je otázka na overenie:",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Odpovedzte Y. rclone zobrazí lokálnu URL. Otvorte ju v prehliadači notebooku; tunel SSH presmeruje spojenie. Povoľte rclone prístup u poskytovateľa cloudu a dokončite konfiguráciu.",
+ "nameRemote": "Ako názov vzdialenej konfigurácie použite názov zodpovedajúci adresáru, napríklad gdrive."
+ },
+ "mount": {
+ "heading": "3. Pripojenie cloudového priečinka",
+ "body": "Vytvorte v cloude priečinok na zálohy, napríklad PBC, skratku pre Proxmox Backup Cloud.",
+ "mountIntro": "Pripojte ho do adresára na hostiteľovi:",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC — priečinok vo vašom cloude.",
+ "/mnt/gdrive — adresár hostiteľa zaregistrovaný ako úložisko záloh."
+ ],
+ "mountFootnote": "Tento príkaz beží v popredí. Pri testovaní ho nechajte spustený v termináli a vyskúšajte zálohu. Na obnovenie pripojenia pri každom štarte nastavte jednotku systemd podľa ďalšej časti."
+ },
+ "systemd": {
+ "heading": "4. Automatické pripojenie pri každom štarte cez systemd",
+ "body": "Jednotka systemd ponúka viac možností než crontab @reboot: dokáže počkať na spustenie siete, reštartovať sa pri chybe a poskytnúť protokoly cez journalctl.",
+ "createIntro": "Vytvorte súbor jednotky:",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Vložte:",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Ak ste zvolili iné názvy, upravte gdrive:/PBC a /mnt/gdrive. Uložte súbor, ukončite editor cez Ctrl+X a zapnite aj spustite službu:",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Overiť:",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "Jednotka požiada o reštart po 10 sekundách, ak sa proces rclone skončí chybou. Neopraví expirované prihlasovacie údaje ani nezaručí zotavenie zo všetkých chýb siete či poskytovateľa. Skontrolujte /var/log/rclone-gdrive.log a journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Prečo použiť --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Pri ukladaní zápisov do cache sa operácie ako fwrite zapisujú do lokálnej diskovej cache. rclone odošle súbor po jeho zatvorení a uplynutí oneskorenia zápisu. Vyhraďte dosť lokálneho miesta na prebiehajúce zálohy a overte dokončenie odoslania, skôr než budete cloudovú kópiu považovať za dostupnú."
+ },
+ "configureBackup": {
+ "heading": "5. Nastavenie cloudu ako cieľa záloh",
+ "body": "V Proxmoxe pri plánovanej alebo ručnej zálohe vyberte zaregistrované úložisko ako cieľ:",
+ "image5Alt": "Výber cieľa zálohy v Proxmoxe",
+ "after": "Po dokončení vzdump počkajte na dokončenie odosielania rclone na pozadí a overte archív v rozhraní poskytovateľa cloudu:",
+ "image6Alt": "Záložný súbor v cloudovom úložisku"
+ },
+ "retention": {
+ "heading": "6. Uchovávanie záloh — kontrola cloudovej kvóty",
+ "body": "Archívy Proxmox vzdump sú úplné zálohy, nie prírastkové. Ich skutočná veľkosť závisí od zahrnutých údajov a kompresie, nie iba od kapacity virtuálneho disku. Ak jeden archív zaberá 30 GB, päť uchovaných archívov potrebuje približne 150 GB. Nastavte pravidlá uchovávania, aby sa cloudové úložisko nezaplnilo.",
+ "uiPath": "V rozhraní Proxmox: Dátové centrum → Zálohovanie → [vaša úloha] → Uchovávanie:",
+ "image7Alt": "Nastavenia uchovávania záloh v Proxmoxe",
+ "starterIntro": "Možné počiatočné hodnoty pre domáce alebo testovacie prostredie:",
+ "starterItems": [
+ "Uchovať posledných 5 denných záloh",
+ "Uchovať posledné 4 týždenné zálohy",
+ "Uchovať posledných 6 mesačných záloh"
+ ],
+ "adjust": "Hodnoty prispôsobte cloudovej kvóte a frekvencii zmien VM."
+ },
+ "troubleshoot": {
+ "heading": "Riešenie problémov",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: adresár je už pripojený, možno inou inštanciou rclone. Pred odstránením starého pripojenia cez fusermount -uz /mnt/gdrive overte, že neprebieha záloha, a potom reštartujte jednotku systemd.",
+ "Záloha je veľmi pomalá: overte --vfs-cache-mode writes v riadku ExecStart. Skontrolujte výkon lokálnej cache, rýchlosť odosielania a limity poskytovateľa. Odosielanie môže pokračovať aj po dokončení vzdump.",
+ "Záloha hlási No space left on device: overte miesto v lokálnej cache a cloudovú kvótu. Cache bežne používa ~/.cache/rclone/. Ak je plná, zvoľte napríklad --cache-dir /var/cache/rclone na súborovom systéme s dostatkom miesta. Iná cesta na tom istom plnom systéme nepomôže.",
+ "Platnosť overovacieho tokenu rclone vypršala: pripojte sa znova cez SSH s tunelom (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) a spustite rclone config reconnect gdrive: na obnovenie autorizácie.",
+ "Zálohy sú v cloude, ale obnova zlyháva: nepoužívajte cloud ako jediný cieľ záloh. Doplňte ho lokálnym PBS alebo zálohami vzdump na inom disku."
+ ]
+ }
+}
diff --git a/web/messages/sk/guides/index.json b/web/messages/sk/guides/index.json
new file mode 100644
index 00000000..d6a8b390
--- /dev/null
+++ b/web/messages/sk/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Návody pre Proxmox VE — Coral TPU, NVIDIA, Kodi v LXC, Samba a cloudové zálohy | ProxMenux",
+ "description": "Podrobné návody pre Proxmox VE: Kodi v LXC s akceleráciou GPU, ovládače NVIDIA na PVE 9, USB disk zdieľaný cez Sambu v kontajneri a zálohy vzdump na Google Drive, Mega, Dropbox alebo OneDrive. Navyše vybrané komunitné zdroje, slovník pojmov a prehľad príkazov.",
+ "ogTitle": "Návody pre Proxmox VE — Coral TPU, NVIDIA, Kodi v LXC, Samba a cloudové zálohy",
+ "ogDescription": "Podrobné návody pre Proxmox VE: priame priradenie GPU, multimediálne centrum Kodi v LXC, USB disk zdieľaný cez Sambu, cloudové zálohy pomocou rclone a vybrané komunitné zdroje.",
+ "twitterTitle": "Návody pre Proxmox VE | ProxMenux",
+ "twitterDescription": "Podrobné návody pre Proxmox VE — GPU, Kodi v LXC, Samba, cloudové zálohy a ďalšie témy.",
+ "ogImageAlt": "Návody ProxMenux — podrobné postupy pre Proxmox VE"
+ },
+ "header": {
+ "title": "Návody ProxMenux",
+ "tagline": "Podrobné návody, stručné prehľady a vybrané komunitné zdroje na lepšie využitie Proxmox VE."
+ },
+ "inDepth": {
+ "heading": "Hĺbkové príručky",
+ "intro": "Podrobné návody na konkrétne úlohy v Proxmoxe. Každý opisuje manuálne kroky postupu, ktorý ProxMenux automatizuje, aby ste vedeli, čo sa v každom kroku deje.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Inštalácia Kodi v LXC s akceleráciou GPU a pripojením k monitoru alebo televízoru",
+ "description": "Spustite Kodi v privilegovanom kontajneri LXC na Proxmox VE, sprístupnite mu iGPU a vstupné USB zariadenia hostiteľa a používajte server ako multimediálne centrum pripojené priamo k televízoru."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Zálohy Proxmoxu na osobné cloudové úložisko",
+ "description": "Pomocou rclone pripojte osobné cloudové úložisko, napríklad Google Drive, Mega, Dropbox alebo OneDrive, ako adresár na hostiteľovi Proxmox VE, zaregistrujte ho ako úložisko záloh pre vzdump a zálohujte VM aj kontajnery priamo do cloudu bez ďalšieho zálohovacieho skriptu."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "Pripojenie USB disku alebo kľúča ku kontajneru LXC a zdieľanie cez Sambu",
+ "description": "Sprístupnite USB disk alebo kľúč privilegovanému kontajneru LXC na Proxmox VE, nainštalujte v ňom Sambu a zdieľajte obsah cez sieť."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "Inštalácia NVIDIA ovládačov grafickej karty na Proxmox VE 9 (manuálny postup)",
+ "description": "Manuálna inštalácia a konfigurácia ovládačov NVIDIA na hostiteľovi Proxmox VE 9 a sprístupnenie GPU jednému alebo viacerým kontajnerom LXC. Zahŕňa ovládače, službu perzistencie, voliteľnú úpravu NVENC a konfiguráciu jednotlivých kontajnerov."
+ }
+ ]
+ },
+ "references": {
+ "heading": "Odkazy na ProxMenux",
+ "intro": "Rýchly referenčný materiál z dokumentácie ProxMenux.",
+ "cards": {
+ "glossary": {
+ "title": "Slovník pojmov",
+ "description": "Viac než 60 definícií technických pojmov z ProxMenuxu: Proxmox, virtualizácia, úložiská, sieť a Linux. Rýchle vyhľadanie pomocou kategórií a súvisiacich odkazov."
+ },
+ "helpInfo": {
+ "title": "Pomoc a informácie — katalóg príkazov",
+ "description": "Výber príkazov Linuxu a Proxmoxu podľa tém s kopírovaním do schránky. Zodpovedá prehľadu v ponuke ProxMenuxu."
+ },
+ "linuxResources": {
+ "title": "Zdroje Linuxu",
+ "description": "Externé zdroje na učenie príkazového riadka Linuxu, bezpečnostných postupov, monitorovacích nástrojov a ZFS — dopĺňajú katalóg príkazov ProxMenuxu."
+ },
+ "externalRepos": {
+ "title": "Externé repozitáre",
+ "description": "Repozitáre skriptov tretích strán začlenené do ProxMenuxu ako alternatívne voľby ponuky, napríklad community-scripts/ProxmoxVE."
+ }
+ }
+ },
+ "official": {
+ "heading": "Oficiálne zdroje Proxmoxu",
+ "intro": "Dokumentácia priamo od Proxmox Server Solutions — rozhodujúci zdroj informácií o platforme.",
+ "cards": {
+ "pveDocs": {
+ "title": "Dokumentácia Proxmox VE",
+ "description": "Oficiálna príručka správcu. Komplexný prehľad inštalácie, siete, úložísk, klastrov, vysokej dostupnosti a API."
+ },
+ "pbsDocs": {
+ "title": "Dokumentácia Proxmox Backup Server",
+ "description": "Dokumentácia PBS — inkrementálne, deduplikované a šifrované zálohy pre Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Oficiálne videoškolenie",
+ "description": "Oficiálne videonávody a školenia od Proxmoxu."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Oficiálne komunitné fórum na otázky, riešenie problémov a zdieľanie skúseností. Sledujú ho správcovia projektu."
+ }
+ }
+ },
+ "community": {
+ "heading": "Komunitné projekty a zdroje",
+ "intro": "Open-source projekty a vybrané zoznamy zo širšej komunity Proxmox. Nie sú pridružené k Proxmox Server Solutions ani k ProxMenuxu; sú tu uvedené, pretože sa osvedčili.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "Komunitou udržiavaný katalóg skriptov na jednoduché nasadenie kontajnerov LXC, VM a úprav PVE, napríklad pre Home Assistant, Plex či Frigate. Nadväzuje na pomocné skripty od ttecka."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (výber zdrojov)",
+ "description": "Rozsiahly komunitný výber zdrojov pre Proxmox VE: nástroje, knižnice, integrácie, blogy a videá. Dobrý východiskový bod na ďalšie objavovanie."
+ }
+ },
+ "suggestRich": "Poznáte kvalitný zdroj, ktorý by sme mali pridať? Otvorte issue alebo PR na GitHub. Chceme zachovať premyslený výber, nie úplný zoznam všetkého."
+ },
+ "discussion": {
+ "heading": "Komunitná diskusia",
+ "intro": "Kde ľudia hovoria o Proxmoxe a ProxMenux.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "GitHub Discussions venované ProxMenuxu: nápady na funkcie, otázky a odpovede a zdieľanie konfigurácií. Vhodné miesto na témy o ponuke, Monitore a dokumentácii."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Oficiálne fórum Proxmoxu, uvedené aj vyššie. Vhodné na podrobné riešenie problémov a otázky ku konkrétnym konfiguráciám."
+ },
+ "reddit": {
+ "title": "r/Proxmox na Reddite",
+ "description": "Aktívny subreddit na diskusie, tipy a technickú pomoc. Jednoduchšie zapojenie než na fóre a často rýchlejšie odpovede na neformálne otázky."
+ }
+ }
+ }
+}
diff --git a/web/messages/sk/guides/kodi-lxc.json b/web/messages/sk/guides/kodi-lxc.json
new file mode 100644
index 00000000..0582555c
--- /dev/null
+++ b/web/messages/sk/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Inštalácia Kodi v LXC s akceleráciou GPU | Návody ProxMenux",
+ "description": "Spustite Kodi v privilegovanom kontajneri LXC na Proxmox VE, sprístupnite mu iGPU a vstupné USB zariadenia hostiteľa a používajte server ako multimediálne centrum pripojené priamo k televízoru.",
+ "ogTitle": "Inštalácia Kodi v LXC s akceleráciou GPU",
+ "ogDescription": "Spustite Kodi v privilegovanom kontajneri LXC na Proxmox VE s prístupom k iGPU a vstupným USB zariadeniam hostiteľa a vytvorte zo servera multimediálne centrum."
+ },
+ "header": {
+ "title": "Inštalácia Kodi v LXC s akceleráciou GPU a pripojením k monitoru alebo televízoru",
+ "description": "Spustite Kodi v privilegovanom kontajneri LXC na Proxmox VE, sprístupnite mu iGPU a vstupné USB zariadenia hostiteľa a používajte server ako multimediálne centrum pripojené priamo k televízoru.",
+ "section": "Návody"
+ },
+ "intro": {
+ "calloutTitle": "Upozornenie",
+ "calloutBody": "Tento návod používa externý komunitný skript na prípravu kontajnera Kodi. Prístup k iGPU hostiteľa dokáže nastaviť aj ProxMenux: GPU a Coral-TPU → Pridať GPU do LXC nakonfiguruje /dev/dri a nainštaluje ovládače v kontajneri. Skript nižšie navyše nainštaluje Kodi a nastaví automatické spustenie na tty7. Použite ho na hotové multimediálne centrum v LXC; postup ProxMenuxu zvoľte, ak potrebujete iba prístup ku GPU pre ručne nastavený kontajner.",
+ "credit": "Pôvodný skript Kodi pre LXC vytvoril mrrudy.",
+ "stepsTitle": "Čo budete robiť",
+ "steps": [
+ "Pomocou skriptu vytvoriť privilegovaný kontajner LXC s Kodi.",
+ "Sprístupniť kontajneru USB klávesnicu, myš alebo herný ovládač.",
+ "Voliteľne aktualizovať Kodi z repozitárov nastavených v kontajneri."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Vytvoriť kodi LXC",
+ "body": "Pre tento postup zvoľte Privileged v rozšírených nastaveniach skriptu. Skript predvolene vytvára neprivilegované kontajnery, ktoré potrebujú vhodné oprávnenia zariadení a mapovanie identifikátorov. Nastaví prístup ku GPU, Kodi a automatické spustenie na tty7:",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "Inštalácia chvíľu trvá. Keď sa Kodi spustí na tty7, pripojte monitor alebo televízor k výstupu HDMI/DisplayPort hostiteľa. Malo by sa zobraziť rozhranie Kodi."
+ },
+ "addInput": {
+ "heading": "2. Pridanie klávesnice, myši alebo USB ovládača",
+ "body": "Vstupné zariadenia nájdete na hostiteľovi v /dev/input/. Zistite ich hlavné číslo zariadenia (major):",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Zoznam vstupných zariadení",
+ "afterList": "Pri znakových zariadeniach použite hlavné číslo pred čiarkou, v príklade 13. Zastavte kontajner Kodi a upravte jeho konfiguráciu. Nahraďte '<'CTID'>' jeho ID, napríklad 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Pridajte nasledujúce riadky a upravte 13 podľa čísla na vašom hostiteľovi:",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "Konfigurácia LXC",
+ "save": "Uložte súbor, ukončite editor pomocou Ctrl+X a reštartujte iba kontajner. Hostiteľa Proxmox reštartovať netreba:",
+ "restartCode": "pct reboot CTID",
+ "plug": "Pripojte klávesnicu, myš alebo USB ovládač. Kodi by mal reagovať."
+ },
+ "updateKodi": {
+ "heading": "3. Voliteľná aktualizácia Kodi z nastavených repozitárov",
+ "calloutTitle": "Dôležité",
+ "calloutBody": "PPA team-xbmc je iba pre Ubuntu a Kodi uvádza, že už nie je udržiavaný. Chýbajúci príkaz add-apt-repository neurčuje distribúciu. Skontrolujte cat /etc/os-release a hľadajte NAME=\"Ubuntu\"; nepridávajte Ubuntu PPA do Debianu. Príkazy nižšie aktualizujú balíky z repozitárov nastavených v kontajneri.",
+ "body": "V kontajneri (pct enter '<'CTID'>'):",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Po aktualizácii reštartujte kontajner. Kodi použije verziu dostupnú v nastavených repozitároch, ktorá sa môže líšiť od najnovšieho vydania projektu."
+ },
+ "screenshots": {
+ "heading": "Snímky obrazovky",
+ "image1Alt": "Kodi rozhranie 1",
+ "image2Alt": "Kodi rozhranie 2"
+ },
+ "troubleshoot": {
+ "heading": "Riešenie problémov",
+ "items": [
+ "Kontajner Kodi sa spustí, ale na televízore nič nevidno: možno nemá prístup k iGPU. V kontajneri skontrolujte ls /dev/dri; mali by sa zobraziť card0 a renderD128. Ak je adresár prázdny, skontrolujte priame priradenie GPU alebo použite Pridať GPU do LXC v ProxMenuxe.",
+ "Klávesnica alebo myš sa po reštarte nezistí: skontrolujte pripojenie /dev/input a oprávnenie Kodi čítať zariadenia. Spustite ls -l /dev/input na hostiteľovi aj v kontajneri a overte pravidlo lxc.cgroup2.devices.allow.",
+ "Prehrávanie s hardvérovou akceleráciou používa CPU namiesto GPU: nainštalujte alebo aktualizujte ovládače VA-API v kontajneri: intel-media-va-driver pre novšie Intel iGPU, i965-va-driver pre staršie a mesa-va-drivers pre AMD.",
+ "add-apt-repository: command not found: príkaz nie je nainštalovaný; to nedokazuje, že kontajner používa Debian. Skontrolujte distribúciu a dostupné balíky. Na Debiane použite jeho balíky Kodi bez pridávania Ubuntu PPA."
+ ]
+ },
+ "further": {
+ "heading": "Ďalšie informácie",
+ "konpatRich": "Konpatov blogový príspevok s ďalšími informáciami o sprístupnení Intel iGPU v LXC."
+ }
+}
diff --git a/web/messages/sk/guides/lxc-samba.json b/web/messages/sk/guides/lxc-samba.json
new file mode 100644
index 00000000..5056af3e
--- /dev/null
+++ b/web/messages/sk/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Pripojenie USB disku k LXC a zdieľanie cez Sambu | ProxMenux",
+ "description": "Sprístupnite USB disk alebo kľúč privilegovanému kontajneru LXC na Proxmox VE, nainštalujte v ňom Sambu a zdieľajte obsah cez sieť.",
+ "ogTitle": "Pripojenie USB disku k LXC a zdieľanie cez Sambu",
+ "ogDescription": "Sprístupnite USB disk privilegovanému kontajneru LXC na Proxmox VE, nainštalujte Sambu a zdieľajte obsah v lokálnej sieti."
+ },
+ "header": {
+ "title": "Pripojenie USB disku alebo kľúča ku kontajneru LXC a zdieľanie cez Sambu",
+ "description": "Sprístupnite USB disk alebo kľúč privilegovanému kontajneru LXC na Proxmox VE, nainštalujte v ňom Sambu a zdieľajte obsah cez sieť.",
+ "section": "Návody"
+ },
+ "recommended": {
+ "calloutTitle": "Odporúčané",
+ "calloutIntro": "ProxMenux ponúka obe časti tohto postupu prostredníctvom sprievodcov v ponukách:",
+ "items": [
+ "Správca diskov → Formátovať/vymazať fyzický disk na formátovanie.",
+ "Úložiská a zdieľanie → Sieťové zdieľanie LXC → Server Samba v LXC na inštaláciu v privilegovanom kontajneri a konfiguráciu Samby."
+ ],
+ "calloutOutro": "Sprievodcovia riešia osobitosti oprávnení neprivilegovaných kontajnerov, profily zdieľania na čítanie a zápis, iba na čítanie či vlastné nastavenia a skupinu sharedfiles. Tento návod opisuje manuálne kroky, aby ste im rozumeli alebo ich mohli nastaviť sami."
+ },
+ "intro": {
+ "body": "USB disk alebo kľúč môže byť užitočným doplnkom hostiteľa Proxmox, najmä pri mini PC s obmedzenými možnosťami rozšírenia. Tento návod vysvetľuje:",
+ "stepsTitle": "Čo budete robiť",
+ "steps": [
+ "Pripojenie USB disku k privilegovanému LXC.",
+ "Inštalácia Samby vnútri kontajnera.",
+ "Zdieľanie obsahu disku cez LAN."
+ ],
+ "useCasesTitle": "Prípady použitia",
+ "useCases": [
+ "Ukladať torrentové súbory a sprístupňovať ich cez sieť.",
+ "Poskytovať úložisko multimediálnemu serveru, napríklad Plex, Jellyfin alebo Emby.",
+ "Ukladať dokumenty, ktoré Paperless automaticky spracúva.",
+ "Všeobecné úložisko typu NAS pre domácu sieť."
+ ],
+ "privilegedCalloutTitle": "Privilegovaný kontajner pre tento postup",
+ "privilegedCalloutBody": "Tento postup používa privilegovaný kontajner LXC s blokovým zariadením ako mp0. Pri neprivilegovanom kontajneri môžete pripojiť súborový systém na hostiteľovi a sprístupniť jeho adresár cez bind mount s vhodnými oprávneniami a mapovaním identifikátorov. Pozrite Úložiská a zdieľanie → Prípojné body LXC v ProxMenuxe."
+ },
+ "attach": {
+ "heading": "1. Pripojenie USB disku k LXC",
+ "identifyHeading": "1.1 Identifikujte zariadenie",
+ "identifyBody": "Porovnajte zoznam diskov pred a po pripojení USB disku. Nové zariadenie je hľadaný disk.",
+ "beforeLabel": "Pred:",
+ "afterLabel": "Po:",
+ "imageBeforeAlt": "Zoznam diskov pred pridaním USB disku",
+ "imageAfterAlt": "Zoznam diskov po pridaní USB disku",
+ "lsblkBody": "Príkazom lsblk -o NAME,SIZE,MODEL,SERIAL zobrazíte blokové zariadenia s modelom a sériovým číslom.",
+ "stableCalloutTitle": "Dôležité — použite stabilný identifikátor",
+ "stableCalloutBody": "Názov /dev/sdb1 sa môže po reštarte zmeniť, najmä pri viacerých USB diskoch. Nájdite trvalý identifikátor:",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "V konfigurácii LXC použite záznam /dev/disk/by-id/usb-... pre požadovaný oddiel namiesto /dev/sdb1. Vyberte oddiel, nie celý disk; zostane identifikovateľný aj pri zmene poradia zariadení.",
+ "formatHeading": "1.2 Formát disku",
+ "formatBody": "ext4 je vhodný pre zdieľanie z Linuxu: rozlišuje veľké a malé písmená, podporuje POSIX ACL a veľké súbory. Formátovanie zničí obsah existujúceho súborového systému. Overte oddiel a spustite príkaz na hostiteľovi Proxmox:",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Nahraďte /dev/sdb1 skutočným oddielom alebo jeho trvalou cestou /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Vytvorenie prípojného bodu v kontajneri LXC",
+ "mkdirBody": "V kontajneri LXC vytvorte adresár, v ktorom sa disk sprístupní; názov si môžete zvoliť.",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Nastavenie zariadenia v LXC",
+ "wireBody": "Na hostiteľovi Proxmox upravte konfiguráciu kontajnera. Nahraďte '<'CTID'>' jeho ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Pridať tento riadok:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Môžete použiť aj kratší záznam mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0, ak prijmete riziko zmeny cesty zariadenia.",
+ "wireBackupNote": "Príklad používa backup=0. Obsah pripojených zariadení a bind mountov sa nezahŕňa do záloh kontajnera cez vzdump. Údaje na externom disku zálohujte samostatne.",
+ "restartHeading": "1.5 Reštart LXC a nastaviť práva",
+ "restartBody": "Reštartovanie CT na použitie bodu pripojenia:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "V kontajneri LXC najprv vytvorte účet pre zdieľanie, potom mu priraďte vlastníctvo a nastavte oprávnenia adresára:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Poznámka",
+ "permsNote": "Nahraďte proxmenux zvoleným názvom účtu. Režim 770 povoľuje prístup vlastníkovi a skupine a ostatným ho odopiera; je prísnejší než chmod -R 777. Účet sa vytvorí tu a v kroku 2.2 sa zaregistruje v Sambe."
+ },
+ "samba": {
+ "heading": "2. Inštalovať Sambu",
+ "installHeading": "2.1 Nainštalujte balík vo vnútri LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Potvrďte, že služba beží:",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Overenie účtu pre zdieľanie",
+ "userBody": "Systémový účet proxmenux bol vytvorený bez prihlasovacieho shellu v kroku 1.5. Pred nastavením hesla Samba ho skontrolujte a všade používajte zvolený názov:",
+ "userCode": "id proxmenux",
+ "passwordBody": "Nastavte heslo Samba, ktoré je oddelené od systémového hesla: Samba má vlastné úložisko prihlasovacích údajov.",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Nastavenie vlastníctva a ACL",
+ "aclBody": "Ak stačí chown z kroku 1.5, oprávnenia sú nastavené. Pre viacerých používateľov s rôznymi právami k tej istej ceste použite ACL:",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Konfigurácia zdieľania Samba",
+ "editHeading": "3.1 Úprava smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Na koniec súboru pridajte definíciu zdieľania:",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Poznámka",
+ "validUsersNote": "Linka valid users = proxmenux obmedzuje prístup k tomu jedinému používateľovi Samby. Pre skupinový prístup použite valid users = @samba_users po pridaní užívateľa (-ov) do skupiny s názvom samba_users.",
+ "reloadHeading": "3.2 Znova načítať Sambu",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Overiť prístup",
+ "body": "Z ľubovoľného klienta LAN prejdite na \\\\'<'CT_IP'>' (Windows) alebo smb://'<'CT_IP'>' (macOS / Linux správcovia súborov). Overte si to s používateľom Samby (proxmenux) a heslom, ktoré ste nastavili s smbpasswd.",
+ "image1Alt": "Prístup k serveru Samba od klienta",
+ "image2Alt": "Výzva na overenie Samba",
+ "usageBody": "Zdieľaný obsah môžete používať v kontajneri aj cez sieť:",
+ "image3Alt": "Používanie USB disku cez zdieľanie"
+ },
+ "troubleshoot": {
+ "heading": "Riešenie problémov",
+ "items": [
+ "pct reboot hlási „device not found“: overte, či cesta v mp0 existuje na hostiteľovi. Skontrolujte ls -l /dev/disk/by-id/ a opravte cestu.",
+ "Kontajner sa spustí, ale /mnt/lxc_USB je prázdny: disk nemusí byť pripojený alebo je jeho súborový systém prázdny. Na hostiteľovi overte pct exec '<'CTID'>' -- mount | grep lxc_USB. Ak pripojenie chýba, skontrolujte konfiguráciu, cestu zariadenia a chyby pri štarte.",
+ "Overenie Samba prejde, ale zápis hlási „Permission denied“: overte oprávnenia adresára v Linuxe a nastavenie zápisu zdieľania. Pozrite chown a setfacl v častiach 1.5 a 2.3.",
+ "Zdieľanie sa nezobrazuje, ale smb://'<'ip'>'/lxc_usb funguje: staršie vyhľadávanie NetBIOS používa nmbd. Moderný Windows používa WS-Discovery; na Debiane 12/13 nainštalujte apt-get install -y wsdd a skontrolujte službu aj firewall. Samotné zapnutie nmbd neposkytuje WS-Discovery.",
+ "Pridanie ďalšieho používateľa k zdieľaniu: vytvorte účet cez adduser, zaregistrujte ho cez smbpasswd -a a pridajte ho do zoznamu valid users = oddeleného čiarkami. Prideľte mu aj potrebné oprávnenia alebo ACL v súborovom systéme."
+ ]
+ }
+}
diff --git a/web/messages/sk/guides/nvidia-manual.json b/web/messages/sk/guides/nvidia-manual.json
new file mode 100644
index 00000000..b826cabc
--- /dev/null
+++ b/web/messages/sk/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "Inštalácia ovládačov NVIDIA v Proxmox VE 9 — ručný postup | Príručky ProxMenux",
+ "description": "Manuálna inštalácia a konfigurácia ovládačov NVIDIA na hostiteľovi Proxmox VE 9 a sprístupnenie GPU jednému alebo viacerým kontajnerom LXC. Zahŕňa ovládače, službu perzistencie, voliteľnú úpravu NVENC a konfiguráciu jednotlivých kontajnerov.",
+ "ogTitle": "Inštalácia ovládačov NVIDIA na Proxmox VE 9 (manuálny postup)",
+ "ogDescription": "Manuálna inštalácia NVIDIA na PVE 9: ovládač hostiteľa, služba perzistencie, voliteľná úprava NVENC a prístup ku GPU v jednotlivých kontajneroch LXC."
+ },
+ "header": {
+ "title": "Inštalácia NVIDIA ovládačov grafickej karty na Proxmox VE 9 (manuálny postup)",
+ "description": "Manuálna inštalácia a konfigurácia ovládačov NVIDIA na hostiteľovi Proxmox VE 9 a sprístupnenie GPU jednému alebo viacerým kontajnerom LXC. Zahŕňa ovládače, službu perzistencie, voliteľnú úpravu NVENC a konfiguráciu jednotlivých kontajnerov.",
+ "section": "Návody"
+ },
+ "intro": {
+ "calloutTitle": "Poznámka",
+ "calloutBody": "Tento manuálny postup slúži ako referencia. Väčšine používateľov odporúčame sprievodcu ProxMenuxu: Inštalovať ovládače NVIDIA na hostiteľovi v ponuke GPU a Coral-TPU a potom Pridať GPU do LXC alebo Pridať GPU do VM pre nastavenie hosťa. Sprievodca vykonáva rovnaké kroky s ďalšími kontrolami hlavičiek jadra, IOMMU a konfliktov VFIO. Táto stránka pomôže pochopiť jednotlivé príkazy alebo prispôsobiť konfiguráciu.",
+ "targetNote": "Návod je určený pre Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) a PVE 8 (Bookworm) už nie sú zahrnuté.",
+ "stepsTitle": "Čo budete robiť",
+ "steps": [
+ "Pripraviť hostiteľa Proxmox VE 9: zablokovať nouveau a overiť repozitáre aj požiadavky.",
+ "Nainštalujte ovládač NVIDIA na hostiteľa.",
+ "Nainštalovať službu perzistencie NVIDIA.",
+ "Voliteľne použiť úpravu keylase na odstránenie limitu súbežných relácií NVENC na spotrebiteľských GPU.",
+ "Sprístupniť GPU jednému alebo viacerým kontajnerom LXC a v každom nainštalovať zodpovedajúcu verziu ovládača."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Pripravte hostiteľa (PVE 9)",
+ "blacklistHeading": "1.1 Zablokovať nouveau",
+ "blacklistBody": "Skontrolujte, či ovládač Open-source nouveau je už na čiernom zozname:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Ak sa neobjaví blacklist nouveau, pridajte ho a reštartujte:",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Kontrola čiernej listiny",
+ "reposHeading": "1.2 Overenie repozitárov (PVE 9 / Trixie)",
+ "reposBody": "Nástroje po inštalácii už mohli nastaviť repozitáre. Najprv skontrolujte existujúce zdroje a vynechajte hotové zmeny; nevytvárajte duplicitné záznamy.",
+ "reposOtherwise": "Inak pri základnej inštalácii PVE 9 bez predplatného Enterprise:",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Overte, že obsahuje zdroj no-subscription pre Trixie:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "A zdroje Debianu na /etc/apt/sources.list.d/debian.sources:",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Aktualizovať systém a inštalovať predpoklady",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Nainštalujte nástroje a hlavičky jadra potrebné na zostavenie modulu jadra NVIDIA:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Nainštalujte ovládač NVIDIA na hostiteľa",
+ "pickHeading": "2.1 Vyberte si verziu ovládača",
+ "pickBody": "Vyberte vetvu ovládača podporujúcu GPU a bežiace jadro. Najnovšia vetva nemusí podporovať staršie GPU; overte zoznam podporovaných produktov pre vybrané vydanie NVIDIA:",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Ak chcete použiť úpravu NVENC v kroku 4, najprv overte podporu zvolenej verzie ovládača: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Upozornenie",
+ "pickReplace": "Nahraďte latest.txt v URL číslom verzie a vyhľadajte inštalátor s príponou .run. Úplný zoznam ovládačov:",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "Sťahovanie ovládača NVIDIA",
+ "pickVersionNote": "V priebehu zvyšku tejto príručky, nahradiť '<'VERSION'>' s aktuálnou verziou (napríklad 580.95.05).",
+ "downloadHeading": "2.2 Stiahnite si a spustite inštalátor",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Spustite inštalátor. Nasledujúca voľba môže podľa potreby vypnúť nouveau; pred dokončením môže byť nutný reštart:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "Po návrate hostiteľa znovu spustite inštalátor a nainštalujte modul jadra:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 Načítanie modulov NVIDIA pri štarte",
+ "modulesBody": "Upravte konfiguráciu načítavania modulov:",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Pridajte moduly NVIDIA pre hostiteľa a LXC. Moduly VFIO slúžia na priame priradenie do VM a v tomto postupe nie sú potrebné:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Uložiť (Ctrl+X) a prestavať initramfs:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Vytvoriť pravidlá udev",
+ "udevBody": "Aby sa pri načítaní modulov vytvorili uzly zariadení /dev/nvidia*:",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Uložiť (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. Služba perzistencie NVIDIA",
+ "body": "Služba perzistencie udržiava GPU inicializovaný, keď ho nepoužíva iná aplikácia. Znižuje latenciu opakovanej inicializácie a zachováva inicializačný stav medzi klientmi:",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Po reštarte overte, že ovládač je načítaný a služba beží:",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "NVIDIA SMI výstup",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "Stav služby perzistencie NVIDIA"
+ },
+ "nvenc": {
+ "heading": "4. Voliteľné odstránenie limitu súbežných relácií NVENC",
+ "body": "Limit relácií NVENC závisí od modelu GPU a verzie ovládača. Overte maticu NVIDIA, nepredpokladajte pevnú hodnotu podľa generácie. Úprava keylase odstraňuje softvérový limit pri podporovaných ovládačoch a môže pomôcť pri transkódovaní Plex či Jellyfin.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "Použitie úpravy NVIDIA",
+ "after": "Po každej aktualizácii ovládača použite úpravu znova. Repozitár keylase obsahuje aj patch-fbc.sh pre FBC, zachytávanie obrazovej pamäte."
+ },
+ "lxcSetup": {
+ "heading": "5. Nastavenie prístupu ku GPU v kontajneri LXC",
+ "identifyHeading": "5.1 Identifikovať čísla zariadenia",
+ "identifyBody": "Na hostiteľovi:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "Zoznam zariadení NVIDIA",
+ "identifyNote": "Poznačte si hlavné čísla zariadení (major); môžu sa medzi systémami líšiť. Typické hodnoty:",
+ "tableHeaders": {
+ "device": "Zariadenie",
+ "major": "Typické hlavné číslo"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (premenlivé)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (zdieľané s nvidia)"
+ }
+ ],
+ "editHeading": "5.2 Úprava konfigurácie LXC",
+ "editBody": "Ak kontajner beží, zastavte ho. Otvorte konfiguráciu a nahraďte '<'CTID'>' jeho ID:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Zakomentujte iba skutočne konfliktné riadky lxc.cgroup2.devices.allow alebo /dev/dri. Pridajte konfiguráciu NVIDIA a upravte hlavné čísla podľa zariadení NVIDIA, ktoré ukazuje ls -l /dev/nv* na vašom hostiteľovi:",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "Konfigurácia LXC",
+ "editSave": "Uložiť (Ctrl+X) a spustiť kontajner.",
+ "installCtHeading": "5.3 Nainštalujte ovládač vo vnútri kontajnera",
+ "installCtCalloutTitle": "Dôležité",
+ "installCtCalloutBody": "Táto časť sa vykonáva v kontajneri, nie na hostiteľovi.",
+ "installCtBody": "Modul jadra je už načítaný na hostiteľovi. Kontajner potrebuje iba knižnice používateľského priestoru s rovnakou verziou ovládača:",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Skontrolujte otázky a inštalujte iba knižnice používateľského priestoru. V LXC nekompilujte ani neinštalujte modul jadra.",
+ "installCtImageAlt": "Inštalácia ovládača NVIDIA",
+ "verifyCtHeading": "5.4 Overenie vo vnútri kontajnera",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI v LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "Zariadenia NVIDIA v LXC",
+ "verifyCtAfter": "GPU by sa mal zobraziť v zozname a uzly zariadení v súborovom systéme kontajnera.",
+ "workloadHeading": "5.5 Overenie využitia GPU pri skutočnej záťaži",
+ "workloadBody": "Zapnite hardvérovú akceleráciu NVIDIA v Plexe alebo Jellyfine, spustite transkódovanie a overte skutočné využitie GPU v paneli či protokoloch. Samotná inštalácia ovládača akceleráciu v aplikácii nezapne.",
+ "workloadImage1Alt": "Plex používajúci NVIDIA GPU",
+ "workloadImage2Alt": "Plex využívajúci GPU NVIDIA — aktívna relácia",
+ "repeatNote": "Zopakujte časť 5 pre každý ďalší kontajner vyžadujúci GPU. Pri aktualizácii ovládača hostiteľa udržujte zodpovedajúcu verziu knižníc používateľského priestoru vo všetkých kontajneroch."
+ },
+ "docker": {
+ "heading": "6 (nepovinné) NVIDIA Docker vnútri LXC",
+ "body": "Ak Docker už beží v LXC, nainštalujte v ňom nvidia-container-toolkit na sprístupnenie GPU kontajnerom Docker. Prístup ku GPU zo samotného LXC musí už fungovať. Nasledujúce príkazy sú pre Docker spustený ako root:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Príkazy nastavia repozitár NVIDIA, nainštalujú toolkit, nastavia runtime Docker a reštartujú Docker. Oprávnenia zariadení a obmedzenia cgroup v LXC naďalej platia; overte GPU pomocou testovacej záťaže."
+ },
+ "troubleshoot": {
+ "heading": "Riešenie problémov",
+ "items": [
+ "nvidia-smi funguje na hostiteľovi, ale v kontajneri hlási „No devices found“: overte pripojenia zariadení, oprávnenia a verzie knižníc. Ak sa líšia, nainštalujte v kontajneri rovnakú '<'VERSION'>' ako na hostiteľovi s --no-kernel-module.",
+ "Kompilácia ovládača zlyhá: pozrite protokol zostavenia. „No precompiled kernel interface was found“ môže len oznamovať potrebu lokálnej kompilácie. Nainštalujte hlavičky pre uname -r cez apt-get install pve-headers-$(uname -r) alebo zodpovedajúci balík proxmox-headers.",
+ "Relácie NVENC zostávajú obmedzené: overte podporu aktívneho ovládača úpravou. Aktualizácia ju môže prepísať. Pri podporovanej verzii znova spustite ./patch.sh z /opt/nvidia/nvidia-patch a skontrolujte výstup.",
+ "GPU po nečinnosti prestane reagovať: overte systemctl status nvidia-persistenced a podľa potreby zapnite službu. Skontrolujte aj protokoly jadra a ovládača; zastavená služba nie je jediná možná príčina.",
+ "Kontajner sa spustí, ale ls /dev/nv* neukazuje zariadenia NVIDIA: overte bind mounty a cesty na hostiteľovi. Cez ls -l /dev/nv* overte hlavné čísla NVIDIA, potom pravidlá lxc.cgroup2.devices.allow aj oprávnenia."
+ ]
+ }
+}
diff --git a/web/messages/sv/guides/backup-cloud.json b/web/messages/sv/guides/backup-cloud.json
new file mode 100644
index 00000000..ec9d741a
--- /dev/null
+++ b/web/messages/sv/guides/backup-cloud.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Säkerhetskopiera Proxmox till personlig molnlagring | ProxMenux",
+ "description": "Montera personlig molnlagring, som Google Drive, Mega, Dropbox eller OneDrive, som en katalog på Proxmox VE-värdsystemet med rclone, registrera den som säkerhetskopieringslagring för vzdump och säkerhetskopiera virtuella maskiner och containrar direkt till molnet utan extra säkerhetskopieringsskript.",
+ "ogTitle": "Säkerhetskopiera Proxmox till personlig molnlagring",
+ "ogDescription": "Montera molnlagring med rclone på Proxmox VE-värdsystemet och använd den som vzdump-mål för säkerhetskopior av virtuella maskiner och containrar."
+ },
+ "header": {
+ "title": "Säkerhetskopiera Proxmox till personlig molnlagring",
+ "description": "Montera personlig molnlagring, som Google Drive, Mega, Dropbox eller OneDrive, som en katalog på Proxmox VE-värdsystemet med rclone, registrera den som säkerhetskopieringslagring för vzdump och säkerhetskopiera virtuella maskiner och containrar direkt till molnet utan extra säkerhetskopieringsskript.",
+ "section": "Guider"
+ },
+ "intro": {
+ "pbsCalloutTitle": "Överväg Proxmox Backup Server först",
+ "pbsCalloutBody": "På en andra dator som uppfyller x86-64-kraven ger Proxmox Backup Server inkrementella och deduplicerade säkerhetskopior med valfri kryptering på klientsidan. Det är utformat för virtuella maskiner. Den här guiden beskriver i stället hur personlig molnlagring, som Google Drive, Mega, OneDrive eller Dropbox, monteras som mål för säkerhetskopior.",
+ "stepsTitle": "Vad du ska göra",
+ "steps": [
+ "Skapa en katalog på Proxmox-värdsystemet och registrera den som lagring för vzdump-säkerhetskopior.",
+ "Installera och konfigurera rclone för din molnleverantör.",
+ "Montera molnmappen på katalogen.",
+ "Återställa monteringen vid varje start med en systemd-enhet."
+ ],
+ "vzdumpCalloutTitle": "Om Proxmox-säkerhetskopior med vzdump",
+ "vzdumpCalloutBody": "Proxmox vzdump-arkiv är fullständiga säkerhetskopior, inte inkrementella. Den faktiska storleken beror på vilka data som ingår och komprimeringen, inte bara på den virtuella diskens kapacitet. Om ett arkiv tar 30 GB kräver fem sparade arkiv ungefär 150 GB. Ange en gallringspolicy så att molnlagringen inte fylls."
+ },
+ "createDir": {
+ "heading": "1. Skapa katalogen på värdsystemet och registrera den som säkerhetskopieringslagring",
+ "body": "Anslut till värdsystemet via SSH eller öppna Proxmox-skalet och skapa en katalog som monteringspunkt under /mnt/. Välj ett namn som visar vilken leverantör det gäller:",
+ "mkdirCode": "mkdir -p /mnt/gdrive",
+ "afterMkdir": "I Proxmox webb UI: Datacenter → Lagring → Lägg till → Directory.",
+ "image1Alt": "Lägga till ny lagring i Proxmox",
+ "configIntro": "Konfigurera det så här:",
+ "configItems": [
+ "ID:gdrive (eller vad du använde för katalogens namn)",
+ "Katalog:/mnt/gdrive",
+ "Innehåll: välj VZDump-säkerhetskopieringsfil."
+ ],
+ "image2Alt": "Konfigurera ny lagring i Proxmox",
+ "afterConfig": "Klicka på Lägg till:",
+ "image3Alt": "Ny lagring läggs till i Proxmox",
+ "afterAdd": "Katalogen är registrerad som Proxmox-lagring men är fortfarande tom, eftersom molnlagringen inte är monterad än."
+ },
+ "installRclone": {
+ "heading": "2. Installera och konfigurera rclone",
+ "body": "rclone ansluter till molnlagringstjänster. Installera det från Debians paketförråd:",
+ "installCode": "apt-get update\napt-get install -y rclone",
+ "newerCalloutTitle": "Om du behöver en nyare rclone",
+ "newerCalloutBody": "Om du behöver en nyare version än den som ingår i Debian använder du det officiella installationsprogrammet:",
+ "newerCode": "curl https://rclone.org/install.sh | bash",
+ "tunnelHeading": "2.1 Browser-baserad autentisering via SSH tunnel",
+ "tunnelBody": "För leverantörer med webbinloggning saknar Proxmox-värdsystemet vanligtvis en webbläsare. Följ rclones guide för fjärrkonfiguration: använd webbläsaren på din bärbara dator och vidarebefordra dess localhost-anslutning för återkopplingen via SSH till rclone på värdsystemet.",
+ "tunnelFrom": "På din bärbara dator, där du ersätter ip_proxmox med Proxmox IP-adress:",
+ "tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
+ "tunnelAfter": "SSH-sessionen öppnar localhost-port 53682 på din bärbara dator och vidarebefordrar anslutningar till samma port på Proxmox-värdsystemet. Låt den vara öppen under rclone-konfigurationen.",
+ "runHeading": "2.2 Kör rclone config",
+ "runBody": "Kör följande i SSH-sessionen som du just öppnade:",
+ "runCode": "rclone config",
+ "runAfter": "Följ anvisningarna för att lägga till en fjärrkonfiguration, en så kallad remote. Svaren beror på leverantören; se rclones leverantörsdokumentation för Google Drive, Mega, Dropbox, OneDrive med flera. Det viktiga steget är autentiseringsfrågan:",
+ "authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
+ "authAfter": "Svara Y. rclone visar en lokal URL. Öppna den i webbläsaren på din bärbara dator; SSH-tunneln vidarebefordrar anslutningen. Ge rclone åtkomst hos molnleverantören för att slutföra konfigurationen.",
+ "nameRemote": "Välj ett namn på fjärrkonfigurationen som motsvarar katalogen, till exempel gdrive."
+ },
+ "mount": {
+ "heading": "3. Montera molnmappen",
+ "body": "Skapa en mapp i molnlagringen för säkerhetskopiorna, till exempel PBC för Proxmox Backup Cloud.",
+ "mountIntro": "Montera den i katalogen på värdsystemet:",
+ "mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
+ "mountItems": [
+ "gdrive:/PBC - mappen i ditt moln.",
+ "/mnt/gdrive — katalogen på värdsystemet som du registrerade som lagring."
+ ],
+ "mountFootnote": "Kommandot körs i förgrunden. Låt det vara igång i en terminal när du testar en säkerhetskopia. Konfigurera en systemd-enhet enligt nästa avsnitt för automatisk montering vid varje start."
+ },
+ "systemd": {
+ "heading": "4. Automatisk montering vid varje start med systemd",
+ "body": "En systemd-enhet ger mer kontroll än crontab @reboot: den kan invänta nätverksstart, starta om vid fel och ge loggar via journalctl.",
+ "createIntro": "Skapa enhetsfilen:",
+ "createCode": "nano /etc/systemd/system/rclone-gdrive.service",
+ "pasteIntro": "Klistra in:",
+ "unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
+ "adjust": "Anpassa gdrive:/PBC och /mnt/gdrive om du valde andra namn. Spara, avsluta redigeraren med Ctrl+X och aktivera och starta tjänsten:",
+ "enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
+ "verifyIntro": "Verifiera:",
+ "verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
+ "verifyAfter": "Enheten begär en omstart efter 10 sekunder om rclone-processen avslutas med fel. Det åtgärdar inte utgångna autentiseringsuppgifter och garanterar inte återhämtning från alla nätverks- eller leverantörsfel. Kontrollera /var/log/rclone-gdrive.log och journalctl -u rclone-gdrive.service -f.",
+ "vfsCalloutTitle": "Varför använda --vfs-cache-mode writes?",
+ "vfsCalloutBody": "Med skrivcache går skrivningar som fwrite till en lokal diskcache. rclone laddar upp filen när den stängts och fördröjningen för återskrivning har passerat. Reservera lokalt utrymme för pågående säkerhetskopior och kontrollera att uppladdningen är klar innan molnkopian räknas som tillgänglig."
+ },
+ "configureBackup": {
+ "heading": "5. Ange molnlagringen som säkerhetskopieringsmål",
+ "body": "Välj den registrerade lagringen som mål i Proxmox när du schemalägger eller startar en säkerhetskopia manuellt:",
+ "image5Alt": "Välja mål för säkerhetskopiering i Proxmox",
+ "after": "När vzdump är klart väntar du tills rclones bakgrundsuppladdning är färdig och kontrollerar arkivet i molnleverantörens gränssnitt:",
+ "image6Alt": "Backup-fil i molnlagring"
+ },
+ "retention": {
+ "heading": "6. Gallring — håll molnkvoten under kontroll",
+ "body": "Proxmox vzdump-arkiv är fullständiga säkerhetskopior, inte inkrementella. Den faktiska storleken beror på vilka data som ingår och komprimeringen, inte bara på den virtuella diskens kapacitet. Om ett arkiv tar 30 GB kräver fem sparade arkiv ungefär 150 GB. Ange en gallringspolicy så att molnlagringen inte fylls.",
+ "uiPath": "I Proxmox-gränssnittet: Datacenter → Säkerhetskopiering → [ditt jobb] → Bevarande:",
+ "image7Alt": "Gallringsinställningar för säkerhetskopior i Proxmox",
+ "starterIntro": "Möjliga startvärden för en hemma- eller testmiljö:",
+ "starterItems": [
+ "Behåll de senaste 5 dagliga säkerhetskopiorna",
+ "Behåll de senaste 4 veckovisa säkerhetskopiorna",
+ "Behåll de senaste 6 månatliga säkerhetskopiorna"
+ ],
+ "adjust": "Anpassa värdena efter molnkvoten och hur ofta de virtuella maskinerna ändras."
+ },
+ "troubleshoot": {
+ "heading": "Felsökning",
+ "items": [
+ "Mount point /mnt/gdrive is itself on a fuse.rclone filesystem: katalogen är redan monterad, kanske av en annan rclone-instans. Kontrollera att ingen säkerhetskopiering pågår innan du tar bort den gamla monteringen med fusermount -uz /mnt/gdrive och starta sedan om systemd-enheten.",
+ "Säkerhetskopieringen är mycket långsam: kontrollera --vfs-cache-mode writes på raden ExecStart, den lokala cachens prestanda, uppladdningshastigheten och leverantörens gränser. Uppladdningen kan fortsätta efter att vzdump är klart.",
+ "Säkerhetskopieringen ger No space left on device: kontrollera lokalt cacheutrymme och molnkvoten. Cachen använder vanligtvis ~/.cache/rclone/. Välj vid behov till exempel --cache-dir /var/cache/rclone på ett filsystem med tillräckligt utrymme. En annan sökväg på samma fulla filsystem hjälper inte.",
+ "rclones autentiseringstoken har gått ut: anslut igen via SSH med tunneln (ssh -L localhost:53682:localhost:53682 root@ip_proxmox) och kör rclone config reconnect gdrive: för att förnya behörigheten.",
+ "Säkerhetskopiorna finns i molnet men kan inte återställas korrekt: använd inte molnlagring som enda mål. Komplettera med lokalt PBS eller vzdump på en annan disk."
+ ]
+ }
+}
diff --git a/web/messages/sv/guides/index.json b/web/messages/sv/guides/index.json
new file mode 100644
index 00000000..548e10cf
--- /dev/null
+++ b/web/messages/sv/guides/index.json
@@ -0,0 +1,118 @@
+{
+ "meta": {
+ "title": "Guider för Proxmox VE — Coral TPU, NVIDIA, Kodi i LXC, Samba och molnsäkerhetskopiering | ProxMenux",
+ "description": "Utförliga guider för Proxmox VE: Kodi i LXC med GPU-acceleration, NVIDIA-drivrutiner på PVE 9, USB-disk delad via Samba i en container samt vzdump-säkerhetskopior till Google Drive, Mega, Dropbox eller OneDrive. Dessutom utvalda gemenskapsresurser, ordlista och kommandoreferens.",
+ "ogTitle": "Guider för Proxmox VE — Coral TPU, NVIDIA, Kodi i LXC, Samba och molnsäkerhetskopiering",
+ "ogDescription": "Utförliga Proxmox VE-guider: GPU-genomkoppling, Kodi som mediecenter i LXC, USB-diskar delade via Samba, molnsäkerhetskopiering med rclone och utvalda gemenskapsresurser.",
+ "twitterTitle": "Guider för Proxmox VE | ProxMenux",
+ "twitterDescription": "Utförliga guider för Proxmox VE — GPU, Kodi i LXC, Samba, molnsäkerhetskopiering och annat.",
+ "ogImageAlt": "ProxMenux-guider — utförliga instruktioner för Proxmox VE"
+ },
+ "header": {
+ "title": "ProxMenux-guider",
+ "tagline": "Utförliga guider, snabbreferenser och utvalda gemenskapsresurser för att få ut mer av Proxmox VE."
+ },
+ "inDepth": {
+ "heading": "Fördjupade guider",
+ "intro": "Utförliga guider för specifika Proxmox-uppgifter. Varje guide visar de manuella stegen i ett automatiserat ProxMenux-flöde, så att du kan se vad som sker i varje steg.",
+ "items": [
+ {
+ "slug": "kodi-lxc",
+ "title": "Installera Kodi i LXC med GPU-acceleration och anslut till bildskärm eller TV",
+ "description": "Kör Kodi i en privilegierad LXC-container på Proxmox VE, ge den tillgång till värdsystemets iGPU och USB-inmatningsenheter och använd servern som mediecenter direkt anslutet till en TV."
+ },
+ {
+ "slug": "backup-cloud",
+ "title": "Säkerhetskopiera Proxmox till personlig molnlagring",
+ "description": "Montera personlig molnlagring, som Google Drive, Mega, Dropbox eller OneDrive, som en katalog på Proxmox VE-värdsystemet med rclone, registrera den som säkerhetskopieringslagring för vzdump och säkerhetskopiera virtuella maskiner och containrar direkt till molnet utan extra säkerhetskopieringsskript."
+ },
+ {
+ "slug": "lxc-samba",
+ "title": "Anslut en USB-disk eller ett USB-minne till LXC och dela via Samba i nätverket",
+ "description": "Ge en privilegierad LXC-container på Proxmox VE tillgång till en USB-disk eller ett USB-minne, installera Samba i containern och dela innehållet i nätverket."
+ },
+ {
+ "slug": "nvidia-manual",
+ "title": "Installera NVIDIA-grafikdrivrutiner på Proxmox VE 9 manuellt",
+ "description": "Installera och konfigurera NVIDIA-drivrutiner manuellt på ett Proxmox VE 9-värdsystem och ge en eller flera LXC-containrar tillgång till GPU:n. Guiden täcker drivrutiner, persistenstjänsten, en valfri NVENC-patch och inställningar för varje container."
+ }
+ ]
+ },
+ "references": {
+ "heading": "ProxMenux referenser",
+ "intro": "Snabbreferensmaterial från själva ProxMenux-dokumentationen.",
+ "cards": {
+ "glossary": {
+ "title": "Ordlista",
+ "description": "Över 60 definitioner av tekniska termer i ProxMenux: Proxmox, virtualisering, lagring, nätverk och Linux. Snabb uppslagning med kategorietiketter och korslänkar."
+ },
+ "helpInfo": {
+ "title": "Hjälp och information — kommandokatalog",
+ "description": "Utvalda Linux- och Proxmox-kommandon efter ämne med kopiering till urklipp. Motsvarar referensen i ProxMenux-menyn."
+ },
+ "linuxResources": {
+ "title": "Linux-resurser",
+ "description": "Externa resurser för att lära sig Linux-kommandoraden, säkerhetsrutiner, övervakningsverktyg och ZFS — ett komplement till ProxMenux kommandokatalog."
+ },
+ "externalRepos": {
+ "title": "Externa repositorier",
+ "description": "Skriptrepositorier från tredje part som är integrerade i ProxMenux som alternativa menyval, till exempel community-scripts/ProxmoxVE."
+ }
+ }
+ },
+ "official": {
+ "heading": "Officiella Proxmox resurser",
+ "intro": "Dokumentation direkt från Proxmox Server Solutions — den officiella referensen för plattformen.",
+ "cards": {
+ "pveDocs": {
+ "title": "Proxmox VE Dokumentation",
+ "description": "Den officiella administratörsguiden med utförlig information om installation, nätverk, lagring, kluster, hög tillgänglighet och API."
+ },
+ "pbsDocs": {
+ "title": "Dokumentation för Proxmox Backup Server",
+ "description": "Dokumentation för PBS - stegvisa, deduplicerade, krypterade säkerhetskopior för Proxmox VE."
+ },
+ "videoTraining": {
+ "title": "Officiell videoutbildning",
+ "description": "Officiella videoguider och utbildningar från Proxmox."
+ },
+ "forum": {
+ "title": "Proxmox Forum",
+ "description": "Officiellt gemenskapsforum för frågor, felsökning och erfarenhetsutbyte. Projektets ansvariga följer diskussionerna."
+ }
+ }
+ },
+ "community": {
+ "heading": "Gemenskapsprojekt och resurser",
+ "intro": "Projekt med öppen källkod och utvalda listor från Proxmox-gemenskapen. De är fristående från Proxmox Server Solutions och ProxMenux och finns med eftersom de visat sig användbara.",
+ "cards": {
+ "helperScripts": {
+ "title": "Proxmox VE Helper-Scripts",
+ "description": "En gemenskapsunderhållen skriptkatalog för att enkelt skapa LXC-containrar, virtuella maskiner och PVE-anpassningar, till exempel för Home Assistant, Plex och Frigate. För vidare idén bakom ttecks hjälpskript."
+ },
+ "awesome": {
+ "title": "awesome-proxmox-ve (utvald lista)",
+ "description": "En stor gemenskapsvald samling Proxmox VE-resurser: verktyg, bibliotek, integrationer, bloggar och videor. En bra utgångspunkt för att upptäcka mer."
+ }
+ },
+ "suggestRich": "Känner du till en bra resurs som vi borde lägga till? Öppna en issue eller PR på GitHub. Vi vill behålla ett genomtänkt urval snarare än en fullständig förteckning."
+ },
+ "discussion": {
+ "heading": "Diskussioner i gemenskapen",
+ "intro": "Där folk pratar om Proxmox och ProxMenux.",
+ "cards": {
+ "proxmenuxDiscussions": {
+ "title": "ProxMenux Discussions",
+ "description": "GitHub Discussions för ProxMenux: funktionsidéer, frågor och svar samt delning av egna installationer. Rätt plats för ämnen om menyn, Monitor och dokumentationen."
+ },
+ "proxmoxForum": {
+ "title": "Proxmox Forum",
+ "description": "Proxmox forum (även länkat ovan). Rätt plats för fördjupad felsökning och konfig-specifika frågor."
+ },
+ "reddit": {
+ "title": "r/Proxmox på Reddit",
+ "description": "Aktiv subreddit för diskussioner, tips och teknisk hjälp. Lägre tröskel än forumet och ofta snabbare svar på enklare frågor."
+ }
+ }
+ }
+}
diff --git a/web/messages/sv/guides/kodi-lxc.json b/web/messages/sv/guides/kodi-lxc.json
new file mode 100644
index 00000000..dc1fec48
--- /dev/null
+++ b/web/messages/sv/guides/kodi-lxc.json
@@ -0,0 +1,70 @@
+{
+ "meta": {
+ "title": "Installera Kodi i LXC med GPU-acceleration | ProxMenux-guider",
+ "description": "Kör Kodi i en privilegierad LXC-container på Proxmox VE, ge den tillgång till värdsystemets iGPU och USB-inmatningsenheter och använd servern som mediecenter direkt anslutet till en TV.",
+ "ogTitle": "Installera Kodi i LXC med GPU-acceleration",
+ "ogDescription": "Kör Kodi i en privilegierad LXC-container på Proxmox VE med tillgång till värdsystemets iGPU och USB-inmatningsenheter och använd servern som mediecenter."
+ },
+ "header": {
+ "title": "Installera Kodi i LXC med GPU-acceleration och anslut till bildskärm eller TV",
+ "description": "Kör Kodi i en privilegierad LXC-container på Proxmox VE, ge den tillgång till värdsystemets iGPU och USB-inmatningsenheter och använd servern som mediecenter direkt anslutet till en TV.",
+ "section": "Guider"
+ },
+ "intro": {
+ "calloutTitle": "Observera",
+ "calloutBody": "Den här guiden använder ett externt gemenskapsskript för att konfigurera Kodi-containern. ProxMenux kan också ge tillgång till värdsystemets iGPU: GPU:er och Coral-TPU → Lägg till GPU i LXC konfigurerar /dev/dri och installerar drivrutiner i containern. Skriptet nedan installerar dessutom Kodi och automatisk start på tty7. Använd det för ett färdigt mediecenter i LXC; välj ProxMenux-flödet om du bara behöver GPU-åtkomst i en manuellt konfigurerad container.",
+ "credit": "Det ursprungliga Kodi-skriptet för LXC skapades av mrrudy.",
+ "stepsTitle": "Vad du ska göra",
+ "steps": [
+ "Skapa en privilegierad LXC-container med Kodi med hjälp av skriptet.",
+ "Ge containern tillgång till USB-tangentbord, mus eller handkontroll.",
+ "Valfritt: uppdatera Kodi från containerns konfigurerade paketförråd."
+ ]
+ },
+ "createCt": {
+ "heading": "1. Skapa Kodi LXC",
+ "body": "Välj Privileged i skriptets avancerade inställningar för den här guiden. Skriptet skapar som standard oprivilegierade containrar, som kräver lämpliga enhetsbehörigheter och ID-mappningar. Det konfigurerar GPU-åtkomst, Kodi och automatisk start på tty7:",
+ "code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
+ "after": "Installationen tar en stund. När Kodi startar på tty7 ansluter du bildskärmen eller TV:n till värdsystemets HDMI-/DisplayPort-utgång. Kodi-gränssnittet bör då visas."
+ },
+ "addInput": {
+ "heading": "2. Lägg till tangentbord, mus eller USB-handkontroll",
+ "body": "Inmatningsenheterna finns under /dev/input/ på värdsystemet. Identifiera deras major-nummer:",
+ "listCode": "ls -l /dev/input",
+ "imageAlt": "Lista över inmatningsenheter",
+ "afterList": "För teckenenheter använder du major-numret före kommatecknet, här 13. Stoppa Kodi-containern och redigera konfigurationen. Ersätt '<'CTID'>' med dess ID, till exempel 102:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "addLines": "Lägg till följande och anpassa 13 till numret på ditt värdsystem:",
+ "configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
+ "imageConfigAlt": "LXC konfiguration",
+ "save": "Spara filen, avsluta redigeraren med Ctrl+X och starta om bara containern. Proxmox-värdsystemet behöver inte startas om:",
+ "restartCode": "pct reboot CTID",
+ "plug": "Anslut tangentbordet, musen eller handkontrollen. Kodi bör reagera."
+ },
+ "updateKodi": {
+ "heading": "3. Valfritt: uppdatera Kodi från konfigurerade paketförråd",
+ "calloutTitle": "Viktigt",
+ "calloutBody": "PPA:t team-xbmc är endast för Ubuntu och enligt Kodi underhålls det inte längre. Att add-apt-repository saknas identifierar inte distributionen. Kontrollera cat /etc/os-release och leta efter NAME=\"Ubuntu\"; lägg inte till Ubuntu-PPA:er i Debian. Kommandona nedan uppdaterar paket från containerns konfigurerade paketförråd.",
+ "body": "Inne i containern (pct enter '<'CTID'>'):",
+ "code": "apt update\napt install --only-upgrade kodi kodi-bin",
+ "after": "Starta om containern efter uppdateringen. Kodi använder versionen i de konfigurerade paketförråden, som kan skilja sig från projektets senaste version."
+ },
+ "screenshots": {
+ "heading": "Skärmdumpar",
+ "image1Alt": "Kodi gränssnitt 1",
+ "image2Alt": "Kodi gränssnitt 2"
+ },
+ "troubleshoot": {
+ "heading": "Felsökning",
+ "items": [
+ "Kodi-containern startar men TV:n visar inget: containern kanske saknar tillgång till iGPU:n. Kontrollera ls /dev/dri i containern; där bör card0 och renderD128 finnas. Om katalogen är tom kontrollerar du GPU-genomkopplingen eller väljer Lägg till GPU i LXC i ProxMenux.",
+ "Tangentbord eller mus identifieras inte efter omstart: kontrollera att /dev/input är monterad och att Kodi kan läsa enheterna. Kör ls -l /dev/input på värdsystemet och i containern och kontrollera regeln lxc.cgroup2.devices.allow.",
+ "Hårdvaruaccelererad uppspelning använder CPU:n i stället för GPU:n: installera eller uppdatera VA-API-drivrutiner i containern: intel-media-va-driver för nyare Intel-iGPU:er, i965-va-driver för äldre och mesa-va-drivers för AMD.",
+ "add-apt-repository: command not found: kommandot är inte installerat; det bevisar inte att containern kör Debian. Kontrollera distribution och tillgängliga paket. Använd Debians Kodi-paket på Debian utan att lägga till Ubuntu-PPA:t."
+ ]
+ },
+ "further": {
+ "heading": "Läs mer",
+ "konpatRich": "Konpats blogginlägg med mer information om åtkomst till Intel-iGPU:n från LXC."
+ }
+}
diff --git a/web/messages/sv/guides/lxc-samba.json b/web/messages/sv/guides/lxc-samba.json
new file mode 100644
index 00000000..8f16d33e
--- /dev/null
+++ b/web/messages/sv/guides/lxc-samba.json
@@ -0,0 +1,119 @@
+{
+ "meta": {
+ "title": "Anslut en USB-disk till LXC och dela den med Samba | ProxMenux",
+ "description": "Ge en privilegierad LXC-container på Proxmox VE tillgång till en USB-disk eller ett USB-minne, installera Samba i containern och dela innehållet i nätverket.",
+ "ogTitle": "Anslut en USB-disk till LXC och dela den med Samba",
+ "ogDescription": "Ge en privilegierad LXC-container på Proxmox VE tillgång till en USB-disk, installera Samba och dela innehållet i det lokala nätverket."
+ },
+ "header": {
+ "title": "Anslut en USB-disk eller ett USB-minne till LXC och dela via Samba i nätverket",
+ "description": "Ge en privilegierad LXC-container på Proxmox VE tillgång till en USB-disk eller ett USB-minne, installera Samba i containern och dela innehållet i nätverket.",
+ "section": "Guider"
+ },
+ "recommended": {
+ "calloutTitle": "Rekommenderas",
+ "calloutIntro": "ProxMenux erbjuder båda delarna av det här arbetsflödet via guidade menyer:",
+ "items": [
+ "Diskhantering → Formatera/radera fysisk disk för formatering.",
+ "Lagring och delning → Nätverksdelning i LXC → Samba-server i LXC för installation i en privilegierad container och konfiguration av Samba."
+ ],
+ "calloutOutro": "De guidade flödena hanterar behörigheter för oprivilegierade containrar, delningsprofiler för läsning/skrivning, enbart läsning eller egna inställningar samt gruppen sharedfiles. Guiden visar de manuella stegen så att du kan förstå dem eller konfigurera dem själv."
+ },
+ "intro": {
+ "body": "En USB-disk eller ett USB-minne kan vara användbart på ett Proxmox-värdsystem, särskilt en minidator med begränsade utbyggnadsmöjligheter. Guiden visar hur du:",
+ "stepsTitle": "Vad du ska göra",
+ "steps": [
+ "Ger en privilegierad LXC-container tillgång till USB-disken.",
+ "Installera Samba i containern.",
+ "Delar diskens innehåll i det lokala nätverket."
+ ],
+ "useCasesTitle": "Användningsområden",
+ "useCases": [
+ "Lagrar torrentfiler och delar dem i nätverket.",
+ "Ger en medieserver som Plex, Jellyfin eller Emby lagringsutrymme.",
+ "Lagrar dokument som Paperless behandlar automatiskt.",
+ "Använder disken som NAS-lagring för hemnätverket."
+ ],
+ "privilegedCalloutTitle": "Privilegierad container för den här guiden",
+ "privilegedCalloutBody": "Guiden använder en privilegierad LXC-container med en blockenhet som mp0. För en oprivilegierad container kan du i stället montera filsystemet på värdsystemet och bind-montera katalogen med lämpliga behörigheter och ID-mappningar. Se Lagring och delning → LXC-monteringspunkter i ProxMenux."
+ },
+ "attach": {
+ "heading": "1. Ge LXC tillgång till USB-disken",
+ "identifyHeading": "1.1 Identifiera enheten",
+ "identifyBody": "Jämför disklistan före och efter anslutningen av USB-disken. Den nya enheten är disken du söker.",
+ "beforeLabel": "Före:",
+ "afterLabel": "Efter:",
+ "imageBeforeAlt": "Disk lista innan du lägger till USB-enhet",
+ "imageAfterAlt": "Disk lista efter att ha lagt till USB-enhet",
+ "lsblkBody": "Med lsblk -o NAME,SIZE,MODEL,SERIAL listar du blockenheter med modell och serienummer.",
+ "stableCalloutTitle": "Viktigt – använd en stabil identifierare",
+ "stableCalloutBody": "Enhetsnamnet /dev/sdb1 kan ändras efter en omstart, särskilt med flera USB-diskar. Hitta den beständiga identifieraren:",
+ "stableCalloutCode": "ls -l /dev/disk/by-id/",
+ "stableCalloutAfter": "Använd posten /dev/disk/by-id/usb-... för den avsedda partitionen i LXC-konfigurationen i stället för /dev/sdb1. Välj partitionen, inte hela disken; den kan då identifieras även om enheternas ordning ändras.",
+ "formatHeading": "1.2 Formatera disken",
+ "formatBody": "ext4 passar för Linux-delningar: det skiljer på stora och små bokstäver och stöder POSIX-ACL:er och stora filer. Formatering förstör innehållet i det befintliga filsystemet. Kontrollera partitionen och kör kommandot på Proxmox-värdsystemet:",
+ "formatCode": "mkfs.ext4 /dev/sdb1",
+ "formatAfter": "Ersätt /dev/sdb1 med den faktiska partitionen eller dess beständiga sökväg /dev/disk/by-id/usb-...-part1.",
+ "mkdirHeading": "1.3 Skapa monteringspunkten i LXC-containern",
+ "mkdirBody": "Skapa katalogen där disken ska visas inne i LXC-containern. Du kan välja valfritt namn.",
+ "mkdirCode": "mkdir /mnt/lxc_USB",
+ "wireHeading": "1.4 Konfigurera enheten i LXC",
+ "wireBody": "Redigera containerkonfigurationen på Proxmox-värdsystemet. Ersätt '<'CTID'>' med containerns ID:",
+ "wireEditCode": "nano /etc/pve/lxc/CTID.conf",
+ "wireAddLine": "Lägg till denna linje:",
+ "wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
+ "wireShortForm": "Du kan även använda den kortare posten mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0 om du accepterar risken att enhetssökvägen ändras.",
+ "wireBackupNote": "Exemplet använder backup=0. Innehållet i enhets- och bind-monteringar ingår inte i containerns vzdump-säkerhetskopior. Ordna en separat säkerhetskopia av den externa diskens data.",
+ "restartHeading": "1.5 Starta om LXC och ställ in behörigheter",
+ "restartBody": "Starta om CT för att tillämpa monteringspunkten:",
+ "restartCode": "pct reboot CTID",
+ "permsBody": "Skapa först delningskontot i LXC-containern innan du tilldelar ägarskap och ange sedan katalogbehörigheterna:",
+ "permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
+ "permsNoteTitle": "Notera",
+ "permsNote": "Ersätt proxmenux med ditt valda kontonamn. Läget 770 ger ägare och grupp åtkomst men utestänger andra; det är mer begränsat än chmod -R 777. Kontot skapas här och registreras i Samba i steg 2.2."
+ },
+ "samba": {
+ "heading": "2. Installera Samba",
+ "installHeading": "2.1 Installera paketet inne i LXC",
+ "installCode": "apt-get update\napt-get install -y samba",
+ "confirmBody": "Bekräfta att tjänsten körs:",
+ "confirmCode": "systemctl status smbd.service",
+ "userHeading": "2.2 Kontrollera delningskontot",
+ "userBody": "Systemkontot proxmenux skapades utan inloggningsskal i steg 1.5. Kontrollera det innan du anger Samba-lösenordet och använd det valda namnet genomgående:",
+ "userCode": "id proxmenux",
+ "passwordBody": "Ange Samba-lösenordet. Det är separat från systemlösenordet eftersom Samba har ett eget lager för autentiseringsuppgifter:",
+ "passwordCode": "smbpasswd -a proxmenux",
+ "aclHeading": "2.3 Ange ägarskap och ACL:er",
+ "aclBody": "Om chown från steg 1.5 räcker är behörigheterna klara. Använd ACL:er om flera användare behöver olika rättigheter till samma sökväg:",
+ "aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
+ },
+ "configure": {
+ "heading": "3. Konfigurera Samba-delningen",
+ "editHeading": "3.1 Redigera smb.conf",
+ "editCode": "nano /etc/samba/smb.conf",
+ "appendBody": "Lägg till en delningsdefinition i slutet av filen:",
+ "shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
+ "validUsersNoteTitle": "Notera",
+ "validUsersNote": "valid users = proxmenux-linjen begränsar åtkomsten till den enda Samba-användaren. För gruppbaserad åtkomst, använd valid users = @samba_users efter att ha lagt till användaren till en grupp som heter samba_users.",
+ "reloadHeading": "3.2 Läs in Samba på nytt",
+ "reloadCode": "systemctl restart smbd"
+ },
+ "verify": {
+ "heading": "4. Verifiera åtkomst",
+ "body": "Från någon LAN-klient, bläddra till \\\\'<'CT_IP'>' (Windows) eller smb://'<'CT_IP'>' (macOS / Linux filhanterare). Autentisera med Samba-användaren (proxmenux) och lösenordet du ställer in med smbpasswd.",
+ "image1Alt": "Samba server åtkomst från en klient",
+ "image2Alt": "Sambas autentiseringsfråga",
+ "usageBody": "Du kan använda delningen både inne i containern och via nätverket:",
+ "image3Alt": "Använda USB-disken via delningen"
+ },
+ "troubleshoot": {
+ "heading": "Felsökning",
+ "items": [
+ "pct reboot ger ”device not found”: kontrollera att sökvägen i mp0 finns på värdsystemet. Granska ls -l /dev/disk/by-id/ och rätta sökvägen.",
+ "Containern startar men /mnt/lxc_USB är tom: disken kanske inte är monterad, eller filsystemet är tomt. Kontrollera från värdsystemet med pct exec '<'CTID'>' -- mount | grep lxc_USB. Om monteringen saknas granskar du konfiguration, enhetssökväg och startfel.",
+ "Samba-inloggningen fungerar men skrivning ger ”Permission denied”: kontrollera katalogens Linux-behörigheter och delningens skrivinställningar. Granska chown och setfacl i avsnitt 1.5 och 2.3.",
+ "Delningen hittas inte men smb://'<'ip'>'/lxc_usb fungerar: äldre NetBIOS-identifiering använder nmbd. Modern Windows använder WS-Discovery. Installera apt-get install -y wsdd på Debian 12/13 och kontrollera tjänst och brandvägg. Att bara aktivera nmbd ger inte WS-Discovery.",
+ "För att lägga till en användare i delningen: skapa kontot med adduser, registrera det med smbpasswd -a och lägg till det i den kommaseparerade listan valid users =. Ge även nödvändiga filsystembehörigheter eller ACL:er."
+ ]
+ }
+}
diff --git a/web/messages/sv/guides/nvidia-manual.json b/web/messages/sv/guides/nvidia-manual.json
new file mode 100644
index 00000000..1a054c79
--- /dev/null
+++ b/web/messages/sv/guides/nvidia-manual.json
@@ -0,0 +1,165 @@
+{
+ "meta": {
+ "title": "NVIDIA-drivrutiner på Proxmox VE 9 — manuell installation | ProxMenux-guider",
+ "description": "Installera och konfigurera NVIDIA-drivrutiner manuellt på ett Proxmox VE 9-värdsystem och ge en eller flera LXC-containrar tillgång till GPU:n. Guiden täcker drivrutiner, persistenstjänsten, en valfri NVENC-patch och inställningar för varje container.",
+ "ogTitle": "Installera NVIDIA-drivrutiner på Proxmox VE 9 manuellt",
+ "ogDescription": "Manuell NVIDIA-installation på PVE 9: värdsystemets drivrutin, persistenstjänst, valfri NVENC-patch och GPU-åtkomst i varje LXC-container."
+ },
+ "header": {
+ "title": "Installera NVIDIA-grafikdrivrutiner på Proxmox VE 9 manuellt",
+ "description": "Installera och konfigurera NVIDIA-drivrutiner manuellt på ett Proxmox VE 9-värdsystem och ge en eller flera LXC-containrar tillgång till GPU:n. Guiden täcker drivrutiner, persistenstjänsten, en valfri NVENC-patch och inställningar för varje container.",
+ "section": "Guider"
+ },
+ "intro": {
+ "calloutTitle": "Notera",
+ "calloutBody": "Den här manuella proceduren finns som referens. För de flesta användare rekommenderas ProxMenux-guiden: Installera NVIDIA-drivrutiner på värdsystemet under GPU:er och Coral-TPU och sedan Lägg till GPU i LXC eller Lägg till GPU i VM för gästens inställningar. Guiden utför samma steg med extra kontroller av kärnheaders, IOMMU och VFIO-konflikter. Den här sidan hjälper dig att förstå kommandona eller anpassa konfigurationen.",
+ "targetNote": "Riktad på Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) och PVE 8 (Bookworm) täcks inte längre.",
+ "stepsTitle": "Vad du ska göra",
+ "steps": [
+ "Förbered Proxmox VE 9-värdsystemet: blockera nouveau och kontrollera paketförråd och förutsättningar.",
+ "Installera NVIDIA-drivrutinen på värdsystemet.",
+ "Installera NVIDIAs persistenstjänst.",
+ "Valfritt: använd keylase-patchen för att ta bort gränsen för samtidiga NVENC-sessioner på konsument-GPU:er.",
+ "Ge en eller flera LXC-containrar tillgång till GPU:n och installera rätt drivrutinsversion i varje container."
+ ]
+ },
+ "prepareHost": {
+ "heading": "1. Förbered värden (PVE 9)",
+ "blacklistHeading": "1.1 Blockera nouveau",
+ "blacklistBody": "Kontrollera om drivrutinen med öppen källkod nouveau redan är blockerad:",
+ "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
+ "blacklistAdd": "Om blacklist nouveau inte visas, lägg till den och starta om:",
+ "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
+ "blacklistImageAlt": "Kontroll av blockeringslista",
+ "reposHeading": "1.2 Verifiera repositorier (PVE 9 / Trixie)",
+ "reposBody": "Verktyg för efterinstallation kan redan ha konfigurerat paketförråden. Granska befintliga källor först och hoppa över ändringar som redan är gjorda. Skapa inte dubbla poster.",
+ "reposOtherwise": "Annars, på en ursprunglig PVE 9-installation utan Enterprise-prenumeration:",
+ "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
+ "reposPveBody": "Se till att den innehåller no-subscription-källan för Trixie:",
+ "reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
+ "reposDebianBody": "Och Debian källor på /etc/apt/sources.list.d/debian.sources:",
+ "reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
+ "updateHeading": "1.3 Uppdatera systemet och installera förutsättningar",
+ "updateCode": "apt update && apt dist-upgrade -y",
+ "buildToolsBody": "Installera byggverktygen och de kärnheaders som behövs för att kompilera NVIDIAs kärnmodul:",
+ "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
+ },
+ "installDriver": {
+ "heading": "2. Installera NVIDIA-drivrutinen på värdsystemet",
+ "pickHeading": "2.1 Välj drivrutinsversion",
+ "pickBody": "Välj en drivrutinsgren som stöder GPU:n och den körande kärnan. Den senaste grenen kanske inte stöder äldre GPU-modeller; kontrollera NVIDIAs produktlista för den valda versionen:",
+ "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
+ "nvencCallout": "Om du planerar att tillämpa NVENC-patchen (steg 4), verifiera patchen stöder din valda förarversion först: github.com/keylase/nvidia-patch",
+ "nvencCalloutTitle": "Observera",
+ "pickReplace": "Ersätt latest.txt i URL:en med versionsnumret för att hitta installationsfilen som slutar med .run. Fullständig drivrutinslista:",
+ "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
+ "pickImageAlt": "Hämta NVIDIA-drivrutin",
+ "pickVersionNote": "Under resten av denna guide, ersätt '<'VERSION'>' med den faktiska versionen (till exempel 580.95.05).",
+ "downloadHeading": "2.2 Ladda ner och kör installationsprogrammet",
+ "downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
+ "firstPassBody": "Kör installationsprogrammet. Alternativet nedan kan inaktivera nouveau vid behov; en omstart kan krävas innan installationen kan slutföras:",
+ "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
+ "secondPassBody": "När värden kommer tillbaka, kör installationsprogrammet igen för att sammanställa och installera kärnmodulen:",
+ "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
+ "modulesHeading": "2.3 Läs in NVIDIA-moduler vid start",
+ "modulesBody": "Redigera konfigurationen för modulinläsning:",
+ "modulesEditCode": "nano /etc/modules-load.d/modules.conf",
+ "modulesAddBody": "Lägg till NVIDIA-modulerna för värdsystemet och LXC. VFIO-moduler används för VM-genomkoppling och behövs inte i den här LXC-konfigurationen:",
+ "modulesAddCode": "nvidia\nnvidia_uvm",
+ "modulesSaveBody": "Spara (Ctrl+X) och bygg om initramfs:",
+ "modulesSaveCode": "update-initramfs -u -k all",
+ "udevHeading": "2.4 Skapa udevregler",
+ "udevBody": "Så att enhetsnoderna /dev/nvidia* skapas när modulerna läses in:",
+ "udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
+ "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
+ "udevSaveBody": "Spara (Ctrl+X)."
+ },
+ "persistence": {
+ "heading": "3. NVIDIAs persistenstjänst",
+ "body": "Persistenstjänsten håller GPU:n initialiserad när ingen annan applikation använder den. Det minskar upprepad initieringsfördröjning och bevarar initieringstillståndet mellan klienter:",
+ "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
+ "verifyBody": "Kontrollera efter omstart att drivrutinen är inläst och tjänsten körs:",
+ "verifySmiCode": "nvidia-smi",
+ "smiImageAlt": "Utdata från NVIDIA SMI",
+ "verifyServiceCode": "systemctl status nvidia-persistenced",
+ "serviceImageAlt": "Status för NVIDIAs persistenstjänst"
+ },
+ "nvenc": {
+ "heading": "4. Valfritt: ta bort gränsen för samtidiga NVENC-sessioner",
+ "body": "Gränsen för NVENC-sessioner beror på GPU-modell och drivrutinsversion. Kontrollera NVIDIAs matris i stället för att anta ett antal per generation. keylase-patchen tar bort mjukvarugränsen i versioner som stöds och kan hjälpa vid Plex- eller Jellyfin-omkodning.",
+ "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
+ "imageAlt": "Tillämpning av NVIDIA-patch",
+ "after": "Tillämpa patchen igen efter varje drivrutinsuppdatering. keylase-repositoriet innehåller också patch-fbc.sh för FBC, fångst av bildbufferten."
+ },
+ "lxcSetup": {
+ "heading": "5. Konfigurera GPU-åtkomst i en LXC-container",
+ "identifyHeading": "5.1 Identifiera enhetsnummer",
+ "identifyBody": "På värden:",
+ "identifyCode": "ls -l /dev/nv*",
+ "identifyImageAlt": "NVIDIA enhetslista",
+ "identifyNote": "Notera enheternas major-nummer; de kan variera mellan system. Vanliga värden:",
+ "tableHeaders": {
+ "device": "Enhet",
+ "major": "Vanligt major-nummer"
+ },
+ "tableRows": [
+ {
+ "device": "/dev/nvidia0, /dev/nvidiactl",
+ "major": "195"
+ },
+ {
+ "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools",
+ "major": "509 (varierar)"
+ },
+ {
+ "device": "/dev/dri/*",
+ "major": "226"
+ },
+ {
+ "device": "/dev/nvidia-modeset",
+ "major": "195 (delas med nvidia)"
+ }
+ ],
+ "editHeading": "5.2 Redigera LXC konfig",
+ "editBody": "Stoppa containern om den körs. Öppna konfigurationen och ersätt '<'CTID'>' med containerns ID:",
+ "editCode": "nano /etc/pve/lxc/CTID.conf",
+ "editConfigBody": "Kommentera bara bort rader för lxc.cgroup2.devices.allow eller /dev/dri som faktiskt står i konflikt. Lägg till NVIDIA-konfigurationen och anpassa major-numren efter NVIDIA-enheterna som ls -l /dev/nv* visar på ditt värdsystem:",
+ "editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
+ "editConfigImageAlt": "LXC konfiguration",
+ "editSave": "Spara (Ctrl+X) och starta containern.",
+ "installCtHeading": "5.3 Installera drivrutinen i containern",
+ "installCtCalloutTitle": "Viktigt",
+ "installCtCalloutBody": "Den här delen körs inne i containern, inte på värdsystemet.",
+ "installCtBody": "Kärnmodulen är redan inläst på värdsystemet. Containern behöver bara biblioteken i användarutrymmet med samma drivrutinsversion:",
+ "installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
+ "installCtAfter": "Granska frågorna och begränsa installationen till bibliotek i användarutrymmet. Bygg eller installera inte en kärnmodul inne i LXC.",
+ "installCtImageAlt": "Installation av NVIDIA-drivrutin",
+ "verifyCtHeading": "5.4 Verifiera inuti containern",
+ "verifyCtSmiCode": "nvidia-smi",
+ "verifyCtSmiImageAlt": "NVIDIA SMI i LXC",
+ "verifyCtLsCode": "ls -l /dev/nv*",
+ "verifyCtLsImageAlt": "NVIDIA enheter i LXC",
+ "verifyCtAfter": "GPU:n bör visas i listan och dess enhetsnoder finnas i containerns filsystem.",
+ "workloadHeading": "5.5 Kontrollera GPU-användningen med en verklig arbetslast",
+ "workloadBody": "Aktivera NVIDIA-maskinvaruacceleration i Plex eller Jellyfin, starta en omkodning och kontrollera faktisk GPU-användning i panelen eller loggarna. Att installera drivrutinen aktiverar inte automatiskt acceleration i applikationen.",
+ "workloadImage1Alt": "Plex med NVIDIA GPU",
+ "workloadImage2Alt": "Plex med NVIDIA GPU - aktiv session",
+ "repeatNote": "Upprepa avsnitt 5 för varje ytterligare container som behöver GPU-åtkomst. Håll användarutrymmets drivrutinsbibliotek i alla containrar i samma version när värdsystemets drivrutin uppdateras."
+ },
+ "docker": {
+ "heading": "6. (Optional) NVIDIA Docker inuti en LXC",
+ "body": "Om Docker redan körs inne i LXC installerar du nvidia-container-toolkit där för att ge Docker-containrarna tillgång till GPU:n. GPU-åtkomst från LXC måste fungera först. Följande kommandon gäller Docker som körs som root:",
+ "code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
+ "after": "Kommandona konfigurerar NVIDIAs paketförråd, installerar toolkit, konfigurerar Docker-körmiljön och startar om Docker. LXCs enhetsbehörigheter och cgroup-begränsningar gäller fortfarande; verifiera GPU:n med en testlast."
+ },
+ "troubleshoot": {
+ "heading": "Felsökning",
+ "items": [
+ "nvidia-smi fungerar på värdsystemet men ger ”No devices found” i containern: kontrollera enhetsmonteringar, behörigheter och drivrutinsbibliotek. Om versionerna skiljer sig installerar du värdsystemets '<'VERSION'>' i containern med --no-kernel-module.",
+ "Drivrutinen kan inte kompileras: granska byggloggen. ”No precompiled kernel interface was found” kan bara betyda att lokal kompilering behövs. Installera headers som matchar uname -r med apt-get install pve-headers-$(uname -r) eller motsvarande proxmox-headers-paket.",
+ "NVENC-sessionerna är fortfarande begränsade: kontrollera att patchen stöder den aktiva drivrutinen. En uppdatering kan skriva över den. För en version som stöds kör du ./patch.sh från /opt/nvidia/nvidia-patch igen och granskar resultatet.",
+ "GPU:n slutar svara efter inaktivitet: kontrollera systemctl status nvidia-persistenced och aktivera tjänsten om det är avsikten. Granska även kärn- och drivrutinsloggar; en stoppad persistenstjänst är inte den enda möjliga orsaken.",
+ "Containern startar men ls /dev/nv* visar inga NVIDIA-enheter: kontrollera bind-monteringar och enhetssökvägar på värdsystemet. Använd ls -l /dev/nv* för att verifiera NVIDIAs major-nummer och granska reglerna för lxc.cgroup2.devices.allow samt behörigheterna."
+ ]
+ }
+}