diff --git a/web/app/[locale]/docs/monitor/architecture/page.tsx b/web/app/[locale]/docs/monitor/architecture/page.tsx index 1002abe5..7a6aa18d 100644 --- a/web/app/[locale]/docs/monitor/architecture/page.tsx +++ b/web/app/[locale]/docs/monitor/architecture/page.tsx @@ -165,13 +165,13 @@ export default async function MonitorArchitecturePage({ "`} - name: "ProxMenux Monitor Update" unique_id: proxmenux_monitor_update value_template: > - {{ 'update available' if (value_json.stable or value_json.beta) else 'up to date' }} + {{ 'update available' if (value_json.update_available.stable or value_json.update_available.beta) else 'up to date' }} + json_attributes_path: "$.update_available" json_attributes: - stable - stable_version diff --git a/web/messages/de/docs/monitor/access-auth.json b/web/messages/de/docs/monitor/access-auth.json index 305456c1..4711f744 100644 --- a/web/messages/de/docs/monitor/access-auth.json +++ b/web/messages/de/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Dashboard öffnen", - "intro": "ProxMenux Monitor lauscht auf 0.0.0.0:8008. Drei übliche Zugriffswege:", + "intro": "ProxMenux Monitor lauscht auf TCP 8008 auf allen Schnittstellen (::, IPv4 und IPv6). Drei übliche Zugriffswege:", "outro": "Direktzugriff entspricht der Standard-systemd-Unit. Reverse-Proxy und Secure Gateway werden unten beschrieben. Das Vertrauen in Client-IPs aus X-Forwarded-For erfordert PROXMENUX_TRUST_PROXY=1 und einen von Ihnen kontrollierten Proxy. X-Forwarded-Proto oder X-Forwarded-Host allein aktivieren das Proxy-Vertrauen nicht. Auf den Ports 80/443 verwendet das Frontend relative /api/*-URLs; auf jedem anderen Port ruft es Port 8008 unter demselben Hostnamen auf." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json - was es enthält und wie es geschützt ist", "authJsonBody": "Die Authentifizierungsdaten liegen in /root/.config/proxmenux-monitor/auth.json, mit Modus 0600 und Eigentümer root. Die Datei enthält Hashes (PBKDF2) und geheimes Schlüsselmaterial (jwt_secret, totp_secret), niemals das Klartextpasswort. Sichern oder replizieren Sie den Host nur auf ein verschlüsseltes Ziel und nehmen Sie diese Datei niemals in die Versionsverwaltung auf.", "rotateTitle": "Ein Wechsel von jwt_secret macht bestehende JWTs ungültig", - "rotateBody": "Wird auth.json neu erstellt oder mit einem anderen Geheimnis wiederhergestellt, ändert sich jwt_secret. Bisherige Sitzungs- und API-Tokens scheitern dann mit „Invalid or expired token“. Die Oberfläche kennzeichnet betroffene Tokens mit Ungültig — neu erstellen. Widerrufen und ersetzen Sie sie auch in Home Assistant, Skripten und anderen Clients.", + "rotateBody": "Wird auth.json neu erstellt oder mit einem anderen Geheimnis wiederhergestellt, ändert sich jwt_secret. Bisherige Sitzungs- und API-Tokens scheitern dann mit „Invalid or expired token“. Die Oberfläche markiert betroffene API-Tokens rot, mit einem Badge, das zum Widerrufen und Neuerstellen auffordert. Danach benötigen auch Home Assistant, Skripte und andere externe Clients ein neues Token.", "recoverTitle": "Wiederherstellen eines verlorenen Passworts", "recoverIntro": "Es gibt keinen Online-Fluss für \"Passwort vergessen\" - von Grund auf, da das Dashboard auf dem eigenen Host des Betreibers läuft und der Wiederherstellungspfad Shell-Zugriff auf diesen Host ist. ProxMenux liefert einen geführten Reset im Konfigurationsmenü, sodass Sie auth.json nicht von Hand bearbeiten müssen:", "survivesTitle": "Was den Reset überlebt", @@ -284,14 +284,14 @@ "heading": "API-Token (langlebig)", "intro": "Browsersitzungen laufen nach 24 Stunden ab. Für Homepage-Widgets, Home Assistant, Grafana oder Uptime Kuma erstellen Sie ein separates API-Token mit 365 Tagen Laufzeit. Es verwendet dasselbe Signaturgeheimnis; die Angabe token_name erlaubt die Zuordnung und den einzelnen Widerruf.", "imageAlt": "API-Token-Panel zeigt die Token-Liste mit Name, Präfix, erstelltem Datum und Ablauf", - "imageCaption": "Die API-Tokenliste unter Einstellungen — Name, Präfix (die letzten 4-Zeichen werden zur Identifizierung angezeigt), erstellt und Ablaufdatum, Widerrufsaktion.", + "imageCaption": "Die API-Tokenliste unter Admin → Sicherheit: Name, Präfix (die letzten 4 Zeichen werden zur Identifizierung angezeigt), Erstellungs- und Ablaufdatum, Widerrufsaktion.", "generateTitle": "Generieren Sie ein Token", "generateIntro": "Aus dem Dashboard:", "generateSteps": [ - "Unter Sicherheit → API-Zugriffstokens öffnen.", + "Öffnen Sie Admin → Sicherheit → API-Tokens und klicken Sie auf Neues Token generieren.", "Beschreibenden Namen angeben, z. B. „Home Assistant“.", "Geben Sie Ihr Passwort erneut ein. Wenn 2FA eingeschaltet ist, auch der aktuelle 6-stellige Code.", - "Token erstellen wählen. Es erscheint nur einmal; sofort kopieren." + "Klicken Sie auf Token generieren. Das Token erscheint nur einmal: Kopieren Sie es sofort." ], "generateCli": "Aus der Kommandozeile:", "useTitle": "Verwenden Sie ein Token", @@ -310,7 +310,7 @@ "intro": "Zwei Wege zu TLS:", "items": [ "Reverse-Proxy (empfohlen). Beenden Sie TLS auf Nginx / Caddy / Traefik und leiten Sie HTTP auf Port 8008 zum Flask-Prozess weiter. Snippets unten.", - "Direktes HTTPS in der AppImage. Zertifikat über POST /api/ssl/configure einrichten (Oberfläche: Einstellungen → SSL). HTTPS verwendet gevent.pywsgi mit dem Standardhandler; flask-sock übernimmt WebSocket-Verbindungen für WSS. Zertifikatspfade stehen in der SSL-Konfiguration." + "Direktes HTTPS in der AppImage. Zertifikat über POST /api/ssl/configure einrichten (Oberfläche: Admin → Sicherheit → SSL / HTTPS). HTTPS verwendet gevent.pywsgi mit dem Standardhandler; flask-sock übernimmt WebSocket-Verbindungen für WSS. Zertifikatspfade stehen in der SSL-Konfiguration." ], "calloutTitle": "Direkte HTTPS-Beschränkungen", "calloutBody": "Der Monitor kann ein von Proxmox verwaltetes Zertifikat oder eigene Zertifikatsdateien verwenden. Er stellt selbst keine ACME-Zertifikate aus. Für automatische Ausstellung und Erneuerung Proxmox ACME oder einen Reverse-Proxy wie Caddy, Traefik oder Nginx verwenden; erneuerte Zertifikate müssen geladen werden." diff --git a/web/messages/de/docs/monitor/ai-assistant.json b/web/messages/de/docs/monitor/ai-assistant.json index 1294df39..3694435b 100644 --- a/web/messages/de/docs/monitor/ai-assistant.json +++ b/web/messages/de/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "KI-Assistent", - "description": "Die optionale KI formuliert geeignete Benachrichtigungsvorlagen verständlich um: mit Detailstufen pro Kanal, dreizehn Oberflächensprachen, eigenen Prompts, öffentlicher Community-Bibliothek und zusätzlichem Kontext. Die Backup-Berichte backup_complete und backup_fail umgehen die KI vollständig.", + "description": "Die optionale KI formuliert geeignete Benachrichtigungsvorlagen verständlich um: mit Detailstufen pro Kanal, dreizehn Oberflächensprachen, eigenen Prompts, öffentlicher Community-Bibliothek und zusätzlichem Kontext. Die Backup-Berichte backup_complete und backup_fail werden nie umgeschrieben; mit aktivierten KI-Vorschlägen fügt die KI nur eine Erklärung an, wenn ein Backup Fehler meldet.", "section": "ProxMenux-Monitor" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Kommerzielle Anbieter rechnen nach Token ab. Ein Token entspricht grob vier englischen Zeichen oder drei Vierteln eines Wortes. Der englische Satz \"Backup completed on storage local-bak\" hat ungefähr acht Token. Zehn Journalzeilen können je nach technischem Inhalt 200–400 Token umfassen.", "intro2": "Zwei Dinge werden bei jedem Anruf in Rechnung gestellt:", "items": [ - "Eingabe-Token umfassen Systemprompt und Benutzernachricht: Schweregrad, Titel, Vorlagentext und Kontext. Die Anzahl hängt vom tatsächlichen Prompt und Ereignis ab. Jeder umgeschriebene Kanal kann eigene Eingabe-Token verbrauchen; Backup-Abschluss- und Fehlerberichte umgehen die KI.", + "Eingabe-Token umfassen Systemprompt und Benutzernachricht: Schweregrad, Titel, Vorlagentext und Kontext. Die Anzahl hängt vom tatsächlichen Prompt und Ereignis ab. Jeder umgeschriebene Kanal kann eigene Eingabe-Token verbrauchen; Backup-Abschluss- und Fehlerberichte verbrauchen nur Token, wenn die KI Backup-Fehler erklärt.", "Ausgabe-Token sind die Modellantwort. Monitor begrenzt sie mit max_tokens. Die Grenze ist ein Höchstwert, kein fester Verbrauch: Erzeugt das Modell 250 Token bei einem Limit von 1500, werden 250 berechnet." ], "capsIntro": "Dies sind die tatsächlichen Obergrenzen, die der Dispatcher anwendet, direkt aus AI_DETAIL_TOKENS in notification_templates.py entnommen:", @@ -118,7 +118,7 @@ "imageCaption": "Informationsfenster mit sechs Karten, einer je Anbieter, und den unten beschriebenen Angaben.", "groq": { "heading": "Groq", - "tagline": "Sehr schnelle, großzügige freie Stufe (30 req/min). Ideal zum Starten.", + "tagline": "Sehr schnell, mit großzügiger freier Stufe. Ein guter Einstieg.", "items": [ "API-Schlüssel: console.groq.com/keys", "Beispiele aus der mitgelieferten Modellliste: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Detailebene pro Kanal", - "intro": "Telegram, Discord, Gotify und E-Mail haben jeweils eine eigene Auswahl der Detailstufe. Drei Werte steuern im Standardprompt sowohl das Ausgabe-Token-Limit als auch die Detailvorgaben:", + "intro": "Jeder der sechs Kanäle (Telegram, Discord, Gotify, E-Mail, Pushover, Apprise) hat eine eigene Auswahl der Detailstufe. Drei Werte steuern im Standardprompt sowohl das Ausgabe-Token-Limit als auch die Detailvorgaben:", "headerLevel": "Ebene", "headerLabel": "UI-Kennzeichnung", "headerCap": "Ausgabegrenze", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Standardwerte bei der ersten Installation:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise: standard.", "Email — detailed. E-Mail ist der Kanal, in dem Sie normalerweise das vollständige Bild für die Archivierung wünschen." ], "emailTitle": "E-Mail-Detailebene fügt das Original hinzu", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Ein Hinweis auf Vorlagen", - "body1": "Die KI erhält formatierten Vorlagentext statt roher Ereignisdaten. Typen wie vm_start, auth_fail und health_degraded haben Vorlagen in notification_templates.py. Die KI formuliert geeignete Texte um; backup_complete und backup_fail behalten deterministische Berichte und umgehen die KI.", + "body1": "Die KI erhält formatierten Vorlagentext statt roher Ereignisdaten. Typen wie vm_start, auth_fail und health_degraded haben Vorlagen in notification_templates.py. Die KI formuliert geeignete Texte um; backup_complete und backup_fail behalten deterministische Berichte; mit aktivierten KI-Vorschlägen fügt die KI nur eine Erklärung an, wenn das Backup Fehler meldet.", "body2": "Zwei praktische Implikationen: Die KI sieht nie einen Hostnamen oder VMID, den sie erfinden muss - diese Felder werden von der Vorlage vor dem Umschreiben platziert. Und wenn AI deaktiviert ist, wird der vorgefertigte Körper direkt versandt. Die Notifications-Seite dokumentiert die Versandpipeline vollständig und ist der richtige Querverweis für alles, was mit einem Ereignis passiert, bevor es diese Ebene erreicht." }, "privacy": { diff --git a/web/messages/de/docs/monitor/api-reference.json b/web/messages/de/docs/monitor/api-reference.json index 8581cd36..6039f582 100644 --- a/web/messages/de/docs/monitor/api-reference.json +++ b/web/messages/de/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Erweiterte Systemdaten der Dashboard-Kopfzeile: Gesamtmetriken und Startzeitpunkt." + "use": "Schlanke Kopfzeileninfos: Hostname, Betriebszeit und zwischengespeicherter Gesundheitsstatus. Öffentlich, kein Token nötig." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Gefilterte Journaleinträge. Anfrage: ?level=&service=&limit=." + "use": "Gefilterte Journaleinträge. Anfrage: ?priority=&service=&limit=&since_days= (priority 0-7, since_days bis zu 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Interner Ereignisstrom - derselbe, der Benachrichtigungen füttert." + "use": "Aktuelle Proxmox-Cluster-Tasks und -Ereignisse aus pvesh get /cluster/tasks. Anfrage: ?limit= (Standard 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Erzeugt ein eigenes Ereignis. Anfrageinhalt: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Erzeugt ein eigenes Ereignis. Anfrageinhalt: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/de/docs/monitor/architecture.json b/web/messages/de/docs/monitor/architecture.json index be93e6be..8c9ed1d0 100644 --- a/web/messages/de/docs/monitor/architecture.json +++ b/web/messages/de/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: Der Dienst verwendet Root-Rechte für Host-Operationen wie SMART, pvesh und ZFS-Verwaltung. Die Webterminal-Prozesse erben diese Rechte.", "Restart=on-failure mit zehn Sekunden Wartezeit: Nach fehlerhaftem Ende startet der Dienst automatisch neu.", - "After=network.target: ordnet den Start nach diesem Ziel ein; garantiert keine IP-Adresse, DNS oder externe Verbindung." + "After=network.target pve-cluster.service: ordnet den Start nach dem Netzwerk-Target und dem Proxmox-Cluster-Dateisystem ein; garantiert keine IP-Adresse, DNS oder externe Verbindung." ], "inspectTitle": "Aktuelle Unit prüfen" }, diff --git a/web/messages/de/docs/monitor/dashboard/hardware.json b/web/messages/de/docs/monitor/dashboard/hardware.json index f45c1bd6..73fc464c 100644 --- a/web/messages/de/docs/monitor/dashboard/hardware.json +++ b/web/messages/de/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "UPS-Status", "subHeading": "(bedingt)", - "body": "Erscheint bei konfiguriertem und erreichbarem NUT-Server (Network UPS Tools). Sichtbar sind Status (Netzbetrieb/Batteriebetrieb/Laden/Batterie schwach), Batterieladung, Restlaufzeit, Last, Eingangsspannung, Modell und Firmware. Dieselben Daten fließen in Sicherheit und Zertifikate der Zustandsüberwachung ein; Batteriebetrieb wird sofort gemeldet." + "body": "Erscheint bei konfiguriertem und erreichbarem NUT-Server (Network UPS Tools). Sichtbar sind Status (Netzbetrieb/Batteriebetrieb/Laden/Batterie schwach), Batterieladung, Restlaufzeit, Last, Eingangsspannung, Modell und Firmware." }, "dataCollected": { "heading": "Wie die Daten gesammelt werden", diff --git a/web/messages/de/docs/monitor/dashboard/index.json b/web/messages/de/docs/monitor/dashboard/index.json index 61d63b51..de3e0b72 100644 --- a/web/messages/de/docs/monitor/dashboard/index.json +++ b/web/messages/de/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Shell-Zugriff auf Host oder VM/CT im Browser mit xterm.js über WebSockets." + "owns": "Browser-Shell auf dem Proxmox-Host mit xterm.js über WebSockets. LXC-Konsolen öffnen sich im Tab VMs und LXCs." }, { "name": "Sicherheit", diff --git a/web/messages/de/docs/monitor/dashboard/security.json b/web/messages/de/docs/monitor/dashboard/security.json index 2ba938e6..6c3a62ed 100644 --- a/web/messages/de/docs/monitor/dashboard/security.json +++ b/web/messages/de/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL / HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 auf /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/de/docs/monitor/dashboard/settings.json b/web/messages/de/docs/monitor/dashboard/settings.json index 56d6cb32..2cec24a8 100644 --- a/web/messages/de/docs/monitor/dashboard/settings.json +++ b/web/messages/de/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Netzwerkeinheiten", "imageAlt": "Karte Netzwerkeinheiten mit der Anzeigeauswahl Bytes", "imageCaption": "Wählen Sie zwischen Bits pro Sekunde und Bytes pro Sekunde für jede im Dashboard angezeigte Netzwerkrate.", - "body": "Zeigt den Netzwerkdurchsatz in Bits pro Sekunde (Mbps/Gbps) oder Bytes pro Sekunde (MB/s/GB/s). Standard sind Bits wie bei Netzwerkkarten und Internetanbietern; Dateiübertragungen verwenden oft Bytes. Diagramme, Labels und Hinweise ändern sich sofort ohne Neuladen." + "body": "Zeigt den Netzwerkdurchsatz in Bytes pro Sekunde (MB/s/GB/s) oder Bits pro Sekunde (Mbps/Gbps). Standard sind Bytes wie bei den meisten Dateiübertragungswerkzeugen; Bits verwenden Netzwerkkartenhersteller und Internetanbieter. Die Auswahl wird im Browser gespeichert, jeder Browser behält also seine eigene. Diagramme, Labels und Hinweise ändern sich sofort ohne Neuladen." }, "health": { "heading": "Gesundheitsmonitor", @@ -203,7 +203,7 @@ "heading": "LXC-Update-Erkennung", "imageAlt": "LXC-Update-Erkennung mit Schalter zur Suche nach Paketupdates in laufenden Debian-, Ubuntu- und Alpine-Containern", "imageCaption": "Schalter für regelmäßige Prüfungen mit apt list --upgradable / apk list -u in laufenden CTs. Standardmäßig aktiviert. Der zugehörige Schalter unter Benachrichtigungen → Dienste erscheint bei aktiver Erkennung.", - "intro": "Der Schalter zwischen Schwellen und Benachrichtigungen steuert den LXC-Scan. Aktiv fragt er Paketmanager laufender CTs ab; Hardware zeigt Ergebnisse und lxc_updates_available erhält sie. Deaktiviert stoppt er seine pct exec-Aufrufe und entfernt LXC-Einträge aus managed_installs.json; /api/managed-installs meldet den Status dann ohne 24-Stunden-Wartezeit nicht mehr.", + "intro": "Der Schalter zwischen Schwellen und Benachrichtigungen steuert den LXC-Scan. Aktiv fragt er Paketmanager laufender CTs ab; VMs und LXCs zeigt Ergebnisse und lxc_updates_available erhält sie. Deaktiviert stoppt er seine pct exec-Aufrufe und entfernt LXC-Einträge aus managed_installs.json; /api/managed-installs meldet den Status dann ohne 24-Stunden-Wartezeit nicht mehr.", "whatRunsTitle": "Was die Prüfung ausführt", "whatRunsIntro": "Für jeden CT im Zustand running mit unterstütztem Paketmanager:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Hier aktivieren Sie ProxMenux-Monitor-Benachrichtigungen und die KI-Umformulierung. Benachrichtigungen aktivieren startet den Hintergrundversand, registriert ein Proxmox-VE-Webhook-Ziel für dessen Ereignisse und öffnet die Kanaleinstellungen für Telegram, Discord, E-Mail, Gotify und weitere Dienste. Die KI-Umformulierung liegt im selben Bereich unter aufklappbaren erweiterten Einstellungen.", "body2": "Eigene Seiten erklären die Optionen: Kanäle, Ereignisschalter, formatierte Nachrichten, Anzeigename, Versand mit Duplikatfilter, Wartezeiten, Bündelung und Ruhezeiten, PVE-Webhook, KI-Anbieter und Prompt-Modi:", "items": [ - "Benachrichtigungen: Kanaleinrichtung (Telegram, Discord, Gotify, E-Mail mit Gmail-/Microsoft-App-Passwörtern, ntfy, Slack, Teams und allgemeiner Webhook), Ereigniskategorien, formatierte Nachrichten, Anzeigename, Versand, PVE-Webhook, Verlauf und API.", + "Benachrichtigungen: Kanaleinrichtung (Telegram, Discord, Gotify, E-Mail mit Gmail-/Microsoft-App-Passwörtern, Pushover und Apprise für ntfy, Slack, Teams und weitere Dienste), Ereigniskategorien, formatierte Nachrichten, Anzeigename, Versand, PVE-Webhook, Verlauf und API.", "KI-Assistent: Anbieter (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), Modelle, Standard- oder eigene Prompts, Ausgabesprache, Detailgrad je Kanal und KI-Vorschläge." ] }, @@ -294,8 +294,8 @@ }, { "card": "Netzwerkeinheiten", - "endpoint": "/api/settings", - "source": "In der SQLite-Einstellungstabelle des Dashboards gespeichert." + "endpoint": "localStorage", + "source": "Browser-Einstellung proxmenux-network-unit." }, { "card": "Health-Monitor-Zeitdauern", @@ -304,7 +304,7 @@ }, { "card": "Speicher-/Schnittstellenausschlüsse", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "SQLite Tabellen excluded_storages und excluded_interfaces." }, { diff --git a/web/messages/de/docs/monitor/dashboard/storage.json b/web/messages/de/docs/monitor/dashboard/storage.json index 3f75c928..0a3149a0 100644 --- a/web/messages/de/docs/monitor/dashboard/storage.json +++ b/web/messages/de/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Unterstützt durch drei Quellen", - "body": "Proxmox-Speicher stammen aus pvesm status, ZFS aus zpool status, physische Laufwerke aus lsblk + smartctl und NVMe-Felder aus nvme. Die Seite aktualisiert sich etwa alle 60 Sekunden; die Detailansicht fordert eine SMART-Abfrage an." + "body": "Proxmox-Speicher stammen aus pvesm status, ZFS aus zpool status, physische Laufwerke aus lsblk + smartctl und NVMe-Felder aus nvme. Die Seite aktualisiert sich etwa alle 30 Sekunden; die Detailansicht fordert eine SMART-Abfrage an." }, "thresholds": { "title": "Hier angewendete Statusfarben und -schwellen", diff --git a/web/messages/de/docs/monitor/dashboard/system-logs.json b/web/messages/de/docs/monitor/dashboard/system-logs.json index 71083e95..c265c08e 100644 --- a/web/messages/de/docs/monitor/dashboard/system-logs.json +++ b/web/messages/de/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Einträge insgesamt — Anzahl der Protokolleinträge im aktiven Filterzeitraum.", "Fehler — Anzahl der Einträge mit Schweregrad ≤ 3 (err / crit / alert / emerg).", "Warnungen — Anzahl der Einträge mit Schweregrad 4 (warning).", - "Sicherungen — Anzahl der vzdump-/PBS-Aufgabeneinträge im selben Zeitraum." + "Sicherungen: Anzahl der Backup-Archive auf den konfigurierten Backup-Speichern." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Protokolle", "logsIntro": "Das Systemjournal wird auf dem Server mit journalctl abgerufen. Die Werkzeugleiste bietet folgende Filter :", "logsFilters": [ - "Schweregrad — emerg / alert / crit / err / warning / notice / info / debug oder eine beliebige Kombination.", - "Zeitbereich — zuletzt 5 min. / 15 min. / 1 h / 6 h / 24 h / 7 d / Custom.", - "Freitextsuche — Teilzeichenfolge oder regulärer Ausdruck (journalctl --grep).", - "Unit-Filter — auf eine bestimmte systemd-Unit beschränken (pveproxy.service, nginx.service, …)." + "Stufe: Alle Ebenen, Fehler, Warnung oder Info.", + "Zeitbereich: 1 Tag / 3 Tage / 1 Woche / 2 Wochen / 1 Monat oder eine benutzerdefinierte Anzahl von Tagen (bis zu 90).", + "Freitextsuche: Teilzeichenfolge ohne Beachtung der Groß-/Kleinschreibung über Nachricht, Dienst, PID, Hostname und Unit, im Browser angewendet.", + "Dienstfilter: auf einen Dienst beschränken (der Journal-SYSLOG_IDENTIFIER)." ], "logsRowsAfter": "Jede Zeile zeigt Zeitstempel, Schweregradabzeichen, Quelleinheit und die Nachricht. Lange Nachrichten brechen mit einem \"mehr anzeigen\"-Schalter zusammen. Die Aktion Download bündelt den aktuellen Filter über GET /api/logs/download in einer einzigen .txt-Datei – nützlich, wenn Sie ein Stück Journal mit jemandem teilen möchten.", "logDetailsModalTitle": "Dialog Protokolldetails", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Bei einer neuen Proxmox-Installation verwendet journald standardmäßig MaxLevelStore=warning und verwirft dadurch Info-Meldungen. Monitor erkennt dies beim Start und ergänzt eine Drop-in-Datei (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) mit dem Grenzwert info. So werden Informationsmeldungen und schwerwiegendere Meldungen gespeichert; debug ist darin nicht enthalten.", "backupsTitle": "Sicherungen", - "backupsBody": "Proxmox-Taskhistorie gefiltert auf Backup-bezogene Einträge. Eine Zeile pro Aufgabe (vzdump, PBS-Transfers, Garbage Collect, Verify) mit dem Status (OK / WARNINGS / ERROR), beteiligter Gast, Quellspeicher, Dauer und UPID. Klicken Sie auf eine Zeile, um das vollständige Aufgabenprotokoll über GET /api/task-log/<upid> zu laden - die gleichen Daten, die Proxmox über Datacenter → Tasks, die auf Backups beschränkt sind, freigibt.", + "backupsBody": "Die Backup-Archive auf jedem backupfähigen Speicher (dir, NFS, CIFS, PBS), gelesen mit pvesh get /nodes/localhost/storage/<id>/content. Karten oben zeigen die Anzahl der VMs und LXCs sowie die Gesamtgröße; darunter steht eine Zeile pro Archiv mit Typ, Speicher, Größe und Datum. Die Wiederherstellung erfolgt in der Proxmox-Weboberfläche.", "notificationsTitle": "Benachrichtigungen", - "notificationsBody1": "Alle von Monitor versendeten Benachrichtigungen: Telegram, Discord, E-Mail, Gotify, ntfy, Slack, Teams und Webhook. Jede Zeile zeigt Zeitstempel, Kanal, Ereignistyp, Schweregrad, erzeugten Titel und Nachrichtentext sowie bei aktivierter KI einen Schalter zum Vergleich der KI-Fassung mit dem Original.", - "notificationsBody2": "Hier prüfen Sie, ob ein Kanal tatsächlich Nachrichten zustellt, und vergleichen die KI-Fassung mit der ursprünglichen Vorlage. Die Kanäle konfigurieren Sie auf der Detailseite Benachrichtigungen." + "notificationsBody1": "Proxmox-Benachrichtigungsaktivität: Journalzeilen von Proxmox-Diensten, die Benachrichtigungen, E-Mail, Webhooks oder Alarme erwähnen, die Ziele in /etc/pve/notifications.cfg und Backup-Aufgaben aus der Cluster-Aufgabenliste. Bei Zeilen von Backup-Aufgaben kann das vollständige Aufgabenprotokoll heruntergeladen werden. Der Verlauf dessen, was der Monitor selbst versendet hat, befindet sich unter Einstellungen → Benachrichtigungen → Benachrichtigungsverlauf.", + "notificationsBody2": "Hier prüfen Sie, was das eigene Benachrichtigungssystem von Proxmox tut. Die Kanäle des Monitors konfigurieren Sie auf der Detailseite Benachrichtigungen." }, "dataCollected": { "heading": "Wie die Daten gesammelt werden", @@ -64,7 +64,7 @@ { "subtab": "Protokolle (Live-Filter)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> mit serverseitigen Filtern für Schweregrad, Unit und Suche." + "source": "Der Tab ruft /api/logs?since_days=N ab; Stufe, Dienst und Textsuche werden im Browser gefiltert. Die API akzeptiert auch priority und service, die der Tab noch nicht nutzt." }, { "subtab": "Herunterladen", @@ -74,17 +74,17 @@ { "subtab": "Sicherungen", "endpoint": "/api/backups", - "source": "PVE-Taskhistorie gefiltert nach vzdump, PBS-Transfers, Garbage Collect, Verify." + "source": "Backup-Archive, aufgelistet aus jedem Backup-Speicher mit pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Details einer Sicherungsaufgabe", + "subtab": "Protokoll der Sicherungsaufgabe (Benachrichtigungen)", "endpoint": "/api/task-log/<upid>", "source": "Vollständiges Aufgabenprotokoll im Klartext aus /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Meldeverlauf", - "endpoint": "/api/notifications/history", - "source": "Die SQLite-Tabelle notification_history wird von der Versandschleife gefüllt." + "subtab": "Benachrichtigungen", + "endpoint": "/api/notifications", + "source": "journalctl --grep über Proxmox-Units, /etc/pve/notifications.cfg und Backup-Aufgaben aus pvesh get /cluster/tasks." } ], "apiIntro": "Live-Filter und Downloads sind auch über die API erreichbar:", diff --git a/web/messages/de/docs/monitor/dashboard/system-overview.json b/web/messages/de/docs/monitor/dashboard/system-overview.json index cfc6c595..50404c89 100644 --- a/web/messages/de/docs/monitor/dashboard/system-overview.json +++ b/web/messages/de/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Ringe, Balken und Minidiagramme verwenden dieselbe Einteilung: grün unter der Warnschwelle, bernsteinfarben zwischen Warn- und kritischer Schwelle, rot ab der kritischen Schwelle. Empfohlene Standardwerte von ProxMenux :", "thresholdsItems": [ "CPU-Auslastung — Warnung 85 %, kritisch 95 %.", - "Arbeitsspeicher — Warnung 85 %, kritisch 95 %. Swap löst ebenfalls ab 5 % Nutzung den kritischen Zustand aus; ein gesunder Proxmox-Host sollte Swap nur selten verwenden.", + "Arbeitsspeicher: Warnung 85 %, kritisch 95 %. Swap löst den kritischen Zustand nur aus, wenn die Swap-Nutzung über 80 % liegt und der verfügbare RAM unter 15 %.", "CPU-Temperatur — Warnung 80 °C, kritisch 90 °C." ], "thresholdsOutro": "Alle Werte sind pro Host konfigurierbar. Einstellungen → Grenzwerte der Zustandsüberwachung ist die zentrale Referenz und erklärt ihre Anpassung.", @@ -58,7 +58,7 @@ "intro": "Die Karten CPU-Auslastung und Arbeitsspeicher öffnen eine sortierbare Liste der 25 führenden Prozesse: nach CPU-Auslastung beim Öffnen über CPU, nach residentem Speicher beim Öffnen über Arbeitsspeicher.", "listTitle": "Der Listendialog", "listItems": [ - "Automatische Aktualisierung — die Liste wird bei geöffnetem Dialog alle 5 Sekunden aktualisiert. Beim Schließen enden die Abfragen.", + "Automatische Aktualisierung — die Liste wird bei geöffnetem Dialog alle 3 Sekunden aktualisiert. Beim Schließen enden die Abfragen.", "Filter — das Suchfeld grenzt die Liste nach Befehl, Benutzer oder PID ein.", "Inline bar — die primäre metrische Spalte zeichnet einen kleinen Balken, der auf den höchsten Wert in der gefilterten Liste skaliert ist, so dass das Ranking auch dann sichtbar bleibt, wenn kein Prozess in der Nähe von 100 % liegt.", "Mobiles Layout — unter 640 px werden PID und Benutzer ausgeblendet. Befehl, CPU % und Arbeitsspeicher passen so ohne horizontales Scrollen auf den Telefonbildschirm." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Mitte: Knotenmetrikdiagramme", - "body1": "Unter den Karten zeigt NodeMetricsCharts CPU-, Arbeitsspeicher- und Datenträger-I/O-Verläufe aus dem RRD-Speicher von Proxmox über /api/node/metrics. Wählbar sind 1 Stunde / 24 Stunden / 7 Tage / 30 Tage / 1 Jahr. Bei größeren Zeiträumen sinkt die Datenauflösung, damit die Anzeige flüssig bleibt.", + "body1": "Unter den Karten zeigt NodeMetricsCharts CPU-, Arbeitsspeicher- und Datenträger-I/O-Verläufe aus dem RRD-Speicher von Proxmox über /api/node/metrics. Wählbar sind 1 Stunde / 24 Stunden / 7 Tage / 30 Tage. Bei größeren Zeiträumen sinkt die Datenauflösung, damit die Anzeige flüssig bleibt.", "body2": "Dies sind die gleichen Graphen, die die Proxmox-Web-Benutzeroberfläche für einen Knoten darstellt, nur in das dunkle Thema des Monitors konsolidiert und mit den anderen Panels ausgerichtet." }, "bottom": { diff --git a/web/messages/de/docs/monitor/dashboard/vms-lxcs.json b/web/messages/de/docs/monitor/dashboard/vms-lxcs.json index 53ab3b16..116ed936 100644 --- a/web/messages/de/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/de/docs/monitor/dashboard/vms-lxcs.json @@ -109,7 +109,7 @@ "logsTitle": "Tab 5 — Protokolle (nur OCI-Container)", "logsBody": "Nur für Container aus OCI manager Apps. Zeigt die Hauptprozess-Konsole des Images aus /var/log/proxmenux/oci/VMID.console.log: letzte 100, 500 oder 1000 Zeilen, Live-Verfolgung bei laufendem Container, Filter und Download. Die Datei wird beim Öffnen neu gelesen, auch bei gestopptem Container. Details: OCI-Container in ProxMenux Monitor.", "backupsTitle": "Tab. 6 — Backups", - "backupsImageAlt": "Pro-Gast-Bohr-in-Modal - Backups-Registerkarte mit der verfügbaren Backup-Liste, Ziel-Tag, Größen und der Create Backup-Schaltfläche", + "backupsImageAlt": "Gast-Detaildialog: Registerkarte Backups mit der verfügbaren Backup-Liste, Ziel-Tag, Größen und der Schaltfläche „Backup erstellen“", "backupsImageCaption": "Alle Sicherungen dieses Gasts auf konfigurierten Proxmox-Speichern, neueste zuerst. Die Kopfzeile zeigt ihre Anzahl.", "backupsIntro": "Listet alle Gastsicherungen auf konfigurierten Proxmox-Speichern, neueste zuerst. Der Zähler im Titel zeigt, ob Sicherungen vorhanden sind. Jede Zeile enthält :", "backupsItems": [ @@ -117,7 +117,7 @@ "Zielanzeige — Speicherort (PBS-Cloud, PBS-Local, NFS-Backup, …), nach Zustand eingefärbt.", "Größe — endgültige Größe der Sicherung auf dem Datenträger." ], - "backupsOutro": "+ Sicherung erstellen startet eine Sicherung auf dem in Proxmox als „Backup target“ markierten Speicher. Die Wiederherstellung erfolgt in der Proxmox-Weboberfläche; Monitor zeigt aktuelle Sicherungen des Gasts und erstellt neue.", + "backupsOutro": "Die Schaltfläche + Sicherung erstellen oben rechts öffnet einen Dialog, in dem Sie vor dem Start eines vzdump Speicher, Modus (snapshot / suspend / stop), Schutz und Notizen wählen. Die Wiederherstellung erfolgt in der Proxmox-Weboberfläche; Monitor zeigt aktuelle Sicherungen des Gasts und erstellt neue.", "firewallTitle": "Tab. 7 — Firewall", "firewallIntro": "Liest das Proxmox-Firewallprotokoll des Gasts direkt vom Host, ohne Zusatzdienst oder regelmäßige Abfragen. Der Reiter ist immer sichtbar; der Inhalt hängt davon ab, ob die Firewall aktiv ist und Regeln tatsächlich protokollieren.", "firewallItems": [ diff --git a/web/messages/de/docs/monitor/health-monitor.json b/web/messages/de/docs/monitor/health-monitor.json index 6f3d16d5..c55c5f4f 100644 --- a/web/messages/de/docs/monitor/health-monitor.json +++ b/web/messages/de/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "Die Statusanzeige folgt der schwerwiegendsten Kategorie", "pillBody": "Die Farbe im Dashboard-Kopf folgt dem höchsten Schweregrad: CRITICAL → rot, sonst WARNING → gelb, sonst INFO → blau, sonst grün. Dieselbe Logik steuert den Punkt im Favicon und das PWA-Symbol.", "updateNowTitle": "Schaltfläche Jetzt Aktualisieren im Overview-Header", - "updateNowBody1": "Meldet Systemupdates ausstehende Updates, erscheint neben der Statusanzeige Jetzt aktualisieren. Der Dialog startet denselben Hostablauf wie ProxMenux → Settings post-install Proxmox → Proxmox System Update: Repository-Bereinigung, apt full-upgrade über update-pve-safe.sh, DKMS-Neubau verwalteter Treiber bei neuem Kernel, autoremove/autoclean und gegebenenfalls eine Neustartabfrage. Der Fortschritt wird laufend angezeigt.", - "updateNowBody2": "Nach Abschluss ruft das Schließen des Dialogs GET /api/health/details?refresh=1 auf und verwirft damit den Cache dieses Endpunkts. Ausstehende Updates und Statusanzeige werden anhand des neuen Paketstands neu berechnet. Der Hinweis verschwindet ohne Warten auf den nächsten Zyklus. Auf einem aktuellen Host bleibt die Schaltfläche verborgen." + "updateNowBody1": "Meldet Systemupdates ausstehende Updates, erscheint neben der Statusanzeige Jetzt aktualisieren. Der Dialog startet denselben Hostablauf wie ProxMenux → Dienstprogramme und Tools → Proxmox-Systemupdate: Repository-Bereinigung, apt full-upgrade über update-pve-safe.sh, DKMS-Neubau verwalteter Treiber bei neuem Kernel, autoremove/autoclean und gegebenenfalls eine Neustartabfrage. Der Fortschritt wird laufend angezeigt.", + "updateNowBody2": "Nach Abschluss ruft das Schließen des Dialogs GET /api/health/full?refresh=1 auf und verwirft damit den Cache dieses Endpunkts. Ausstehende Updates und Statusanzeige werden anhand des neuen Paketstands neu berechnet. Der Hinweis verschwindet ohne Warten auf den nächsten Zyklus. Auf einem aktuellen Host bleibt die Schaltfläche verborgen." }, "dismiss": { "heading": "Warnungen bestätigen und die Unterdrückungsdauer", diff --git a/web/messages/de/docs/monitor/index.json b/web/messages/de/docs/monitor/index.json index 4039ab4a..1f77e4be 100644 --- a/web/messages/de/docs/monitor/index.json +++ b/web/messages/de/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API und Integrationen", "intro": "REST-Endpunkte liefern Überwachungsdaten als JSON über HTTP/HTTPS für Homepage, Home Assistant, Uptime Kuma und eigene Skripte. Grafana kann den separaten Prometheus-Textexporter unter /api/prometheus nutzen. Anfragen sind mit curl möglich.", - "tokens": "Langlebige API-Tokens (365 Tage) werden aus Einstellungen → API Zugriffstokens oder über POST /api/auth/generate-api-token generiert.", + "tokens": "Langlebige API-Tokens (365 Tage) werden aus Admin → Sicherheit → API-Tokens oder über POST /api/auth/generate-api-token generiert.", "bearer": "Token werden als Authorization: Bearer … gesendet. Auch /api/health erwartet den Bearer-Header, daher benötigen Verfügbarkeitsprüfungen ein read_only-Token. Unter /api/auth/* liegen sowohl öffentliche Setup-/Login-/Statusrouten als auch geschützte Routen der Konto-/Tokenverwaltung; nicht alle sind anonym.", "catalog": "Der vollständige Endpunktkatalog, Anleitungen zur Token-Rotation und Best Practices für die Sicherheit finden Sie in der API-Referenz; Vorgefertigte Beispiele für Homepage, Home Assistant, Grafana, Uptime Kuma und ein generisches cURL-Muster finden Sie in Integrationen." }, "serviceControl": { "heading": "Dienststeuerung", - "intro": "Der Monitor wird wie jeder systemd-Dienst verwaltet. Zusätzlich gibt es zwei Einträge in der ProxMenux-Textoberfläche unter Einstellungen:", + "intro": "Der Monitor wird wie jeder systemd-Dienst verwaltet. Zusätzlich gibt es drei Einträge in der ProxMenux-Textoberfläche unter Einstellungen:", "codeComment": "# Manuelle Steuerung", "footer": "Siehe Einstellungen → ProxMenux Monitor für die Umschaltung im Menü und den Statusüberprüfungsablauf." }, diff --git a/web/messages/de/docs/monitor/integrations.json b/web/messages/de/docs/monitor/integrations.json index 72610b7c..f9d14cd2 100644 --- a/web/messages/de/docs/monitor/integrations.json +++ b/web/messages/de/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Authentifizierung: Das Einzige, was jedes Rezept braucht", "intro": "Die meisten von diesen Integrationen verwendeten Endpunkte werden authentifiziert. Sie haben zwei Möglichkeiten, diese Anforderung zu erfüllen.", "optAtitle": "Option A — API-Token (für Integrationen empfohlen)", - "optAbody1": "Öffnen Sie Einstellungen → Sicherheit → API-Token. Wählen Sie Token erzeugen, vergeben Sie einen Namen wie homepage, home-assistant oder prometheus und kopieren Sie das Token: Es erscheint nur einmal. Es läuft standardmäßig nach einem Jahr ab und ist einzeln widerrufbar. Nutzen Sie es für Clients außerhalb des Browsers.", + "optAbody1": "Öffnen Sie Admin → Sicherheit → API-Tokens. Wählen Sie Neues Token generieren, vergeben Sie einen Namen wie homepage, home-assistant oder prometheus, geben Sie Ihr Passwort ein (und bei aktivierter 2FA den Code), klicken Sie dann auf Token generieren und kopieren Sie das Token: Es erscheint nur einmal. Es läuft standardmäßig nach einem Jahr ab und ist einzeln widerrufbar. Nutzen Sie es für Clients außerhalb des Browsers.", "optAbody2": "Ab diesem Zeitpunkt ist jede Anfrage nur noch:", "optBtitle": "Option B — Login-Flow (Benutzername + Passwort)", "optBbody": "Nützlich für Skripte, die sich als menschlicher Benutzer authentifizieren. Das zurückgegebene Token ist kurzlebig; die meisten Integrationen sollten Option A bevorzugen.", "outro": "Das TOTP-Feld ist nur bei aktivierter Zwei-Faktor-Authentifizierung nötig. Tokenwechsel, Widerruf, Passwortrichtlinien und Prüfprotokoll sind unter Zugriff und Authentifizierung beschrieben.", "httpsTitle": "Verwendung von HTTPS anstelle von HTTP", - "httpsIntro": "Jedes Rezept unten verwendet http:// in den URLs, um die Beispiele kurz zu halten. Wenn Sie TLS auf dem Monitor aktiviert haben (Settings → Security → SSL/HTTPS), tauschen Sie http:// in jeder URL gegen https:// aus – das ist die einzige Änderung. Zwei spezielle Anmerkungen zu bestimmten Werkzeugen:", + "httpsIntro": "Jedes Rezept unten verwendet http:// in den URLs, um die Beispiele kurz zu halten. Wenn Sie TLS auf dem Monitor aktiviert haben (Admin → Sicherheit → SSL / HTTPS), tauschen Sie http:// in jeder URL gegen https:// aus – das ist die einzige Änderung. Zwei spezielle Anmerkungen zu bestimmten Werkzeugen:", "httpsItems": [ "Selbstsignierte Zertifikate. Die Home-Assistant-Integration rest: prüft TLS standardmäßig. Für ein selbstsigniertes Monitor-Zertifikat setzen Sie verify_ssl: false in jeden REST-Block neben scan_interval: oder nehmen die Monitor-CA in den Vertrauensspeicher auf. Entsprechendes gilt für andere Werkzeuge mit Zertifikatsprüfung.", "Prometheus enthält unten bereits scheme: https. Aktivieren oder behalten Sie https, wenn TLS im Monitor aktiv ist." @@ -43,7 +43,7 @@ "basicTitle": "Grundlegendes Widget — keine Authentifizierung", "basicIntro": "Verwenden Sie dies, wenn sich ProxMenux Monitor in einem vertrauenswürdigen Netzwerk befindet und Sie die Authentifizierung auf der Monitorseite noch nicht aktiviert haben. Der einfachste mögliche services.yaml-Eintrag:", "authedTitle": "Authentifiziertes Widget", - "authedIntro": "Generieren Sie ein API-Token in Settings → Security → API Tokens auf dem Monitor, kopieren Sie es und fügen Sie es in den Authorization-Header unten ein - ersetzen Sie das Beispiel-Token, das nach Bearer angezeigt wird, durch das, das Sie gerade kopiert haben:", + "authedIntro": "Generieren Sie ein API-Token in Admin → Sicherheit → API-Tokens auf dem Monitor, kopieren Sie es und fügen Sie es in den Authorization-Header unten ein - ersetzen Sie das Beispiel-Token, das nach Bearer angezeigt wird, durch das, das Sie gerade kopiert haben:", "authedOutro": "Starten Sie die Homepage neu und die Karte leuchtet mit Live-Werten auf. Verwenden Sie das gleiche Token für alle Homepage-Widgets, die auf denselben ProxMenux Monitor-Host zeigen.", "multiTitle": "Einrichtung von Multiwidgets — System, Speicher, Netzwerk", "multiIntro": "Für mehr Details nutzen Sie drei Karten mit unterschiedlichen Endpunkten: Systemmetriken, Datenspeicher und Netzwerk. Für dieselbe Monitor-Instanz verwenden alle dasselbe Token.", diff --git a/web/messages/de/docs/monitor/notifications.json b/web/messages/de/docs/monitor/notifications.json index 075809d1..6a5b9e7d 100644 --- a/web/messages/de/docs/monitor/notifications.json +++ b/web/messages/de/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Optionales AI-Rewrite", - "body1": "Geeignete Ereignisse können vor dem Versand durch ein LLM umgeschrieben werden. backup_complete und backup_fail sind ausgenommen. KI ist standardmäßig aus und läuft im Versandthread. Bei Fehler oder Zeitüberschreitung wird der Vorlagentext verwendet.", + "body1": "Geeignete Ereignisse können vor dem Versand durch ein LLM umgeschrieben werden. backup_complete und backup_fail werden nicht umgeschrieben; mit aktivierten KI-Vorschlägen fügt die KI nur eine Erklärung an, wenn ein Backup Fehler meldet. KI ist standardmäßig aus und läuft im Versandthread. Bei Fehler oder Zeitüberschreitung wird der Vorlagentext verwendet.", "body2": "Unterstützt OpenAI, Anthropic, Google Gemini, Groq, OpenRouter und lokales Ollama. Pro Kanal: Detailgrad (brief, standard, detailed), Sprache, Anweisungsmodus (default oder custom) und eigene Anweisung. Anleitung und Beispiele unter KI-Assistent.", "privacyTitle": "Datenschutzerklärung", "privacyBody": "KI-Anfragen können Titel, Schweregrad, Text, System-/Benutzeranweisungen und Kontext mit Hostnamen, IPs, Benutzernamen, Fehlern und Journalzeilen enthalten. Sie gehen an den gewählten Endpunkt. Ollama bleibt nur mit lokalem Server und lokalem Modell lokal; entfernte Server oder Cloudmodelle übertragen Daten nach außen. Bei lokalen Anforderungen KI deaktivieren oder kontrollierten lokalen Server und Modell nutzen." diff --git a/web/messages/de/docs/security/ssl-letsencrypt.json b/web/messages/de/docs/security/ssl-letsencrypt.json index fecde538..85958539 100644 --- a/web/messages/de/docs/security/ssl-letsencrypt.json +++ b/web/messages/de/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Was diese Seite abdeckt", - "body": "So wechseln Sie Monitor unter Einstellungen → Sicherheit von HTTP auf HTTPS, welche Dateien die Zertifikatsquellen verwenden, wie die Proxmox-Option mit Let’s Encrypt umgeht und wie Sie eigene Pfade für außerhalb von Proxmox verwaltete Zertifikate festlegen." + "body": "So wechseln Sie Monitor unter Admin → Sicherheit von HTTP auf HTTPS, welche Dateien die Zertifikatsquellen verwenden, wie die Proxmox-Option mit Let’s Encrypt umgeht und wie Sie eigene Pfade für außerhalb von Proxmox verwaltete Zertifikate festlegen." }, "wheresetting": { "heading": "Wo Sie die Einstellung finden", - "body": "Öffnen Sie Monitor und gehen Sie zu Einstellungen → Sicherheit → HTTPS / SSL. Der Bereich zeigt HTTP oder HTTPS und bei noch deaktiviertem HTTPS die erkannten Zertifikatsquellen.", - "imageAlt": "Einstellungen → Sicherheit → HTTPS / SSL mit deaktiviertem HTTPS, erkanntem Proxmox-Zertifikat (Inhaber, Aussteller, Ablauf) und der Option für ein eigenes Zertifikat", - "caption": "Bereich Einstellungen → Sicherheit → HTTPS / SSL vor der Aktivierung. Monitor zeigt das von Proxmox verwendete Zertifikat und bietet es zur Auswahl mit einem Klick an." + "body": "Öffnen Sie Monitor und gehen Sie zu Admin → Sicherheit → SSL / HTTPS. Der Bereich zeigt HTTP oder HTTPS und bei noch deaktiviertem HTTPS die erkannten Zertifikatsquellen.", + "imageAlt": "Bereich Admin → Sicherheit → SSL / HTTPS mit deaktiviertem HTTPS, erkanntem Proxmox-Zertifikat (Inhaber, Aussteller, Ablauf) und der Option für ein eigenes Zertifikat", + "caption": "Bereich Admin → Sicherheit → SSL / HTTPS vor der Aktivierung. Monitor zeigt das von Proxmox verwendete Zertifikat und bietet es zur Auswahl mit einem Klick an." }, "twoways": { "heading": "Zwei Möglichkeiten, HTTPS zu aktivieren", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Schalten Sie den Monitor auf HTTPS", - "bodyRich": "Sobald /etc/pve/local/pveproxy-ssl.pem von Let's Encrypt signiert ist, öffnen Sie Einstellungen → Sicherheit → HTTPS / SSL, prüfen als Aussteller Let's Encrypt statt der lokalen Proxmox-CA und wählen Proxmox-Zertifikat verwenden. Monitor startet neu und der nächste Aufruf nutzt HTTPS auf 8008 mit öffentlich vertrauenswürdiger Zertifikatskette. Spätere ACME-Erneuerungen werden bei der nächsten neuen TLS-Verbindung geprüft und ausgewählt, ohne regelmäßige Abfrage oder Dienstneustart zur Erneuerung. Zertifikat aktualisieren bleibt unter Sicherheit für Diagnose und Wiederherstellung verfügbar." + "bodyRich": "Sobald /etc/pve/local/pveproxy-ssl.pem von Let's Encrypt signiert ist, öffnen Sie Admin → Sicherheit → SSL / HTTPS, prüfen als Aussteller Let's Encrypt statt der lokalen Proxmox-CA und wählen Proxmox-Zertifikat verwenden. Monitor startet neu und der nächste Aufruf nutzt HTTPS auf 8008 mit öffentlich vertrauenswürdiger Zertifikatskette. Spätere ACME-Erneuerungen werden bei der nächsten neuen TLS-Verbindung geprüft und ausgewählt, ohne regelmäßige Abfrage oder Dienstneustart zur Erneuerung. Zertifikat aktualisieren bleibt unter Sicherheit für Diagnose und Wiederherstellung verfügbar." }, "custom": { "heading": "Benutzerdefiniertes Zertifikat — wann es sinnvoll ist", diff --git a/web/messages/en/docs/monitor/access-auth.json b/web/messages/en/docs/monitor/access-auth.json index 1787f106..92ca47cd 100644 --- a/web/messages/en/docs/monitor/access-auth.json +++ b/web/messages/en/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Reaching the dashboard", - "intro": "ProxMenux Monitor binds to 0.0.0.0:8008. There are three common ways to reach it:", + "intro": "ProxMenux Monitor listens on TCP 8008 on all interfaces (::, IPv4 and IPv6). There are three common ways to reach it:", "outro": "Direct access matches the default systemd unit. Reverse-proxy and Secure Gateway access are described below. Trust for client IPs in X-Forwarded-For requires PROXMENUX_TRUST_PROXY=1 and a proxy you control. The presence of X-Forwarded-Proto or X-Forwarded-Host alone does not enable proxy trust. On ports 80/443 the frontend uses relative /api/* URLs; on any other port it calls port 8008 on the same host name." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — what it contains and how it's protected", "authJsonBody": "Everything ProxMenux Monitor needs to authenticate you lives in a single file: /root/.config/proxmenux-monitor/auth.json, mode 0600, owner root. The file holds hashes (PBKDF2) and signing material (jwt_secret, totp_secret) — never a plaintext password. Treat it like any other root-only secret: if you back up or replicate the host, encrypt the destination, and never commit it to version control.", "rotateTitle": "Rotating jwt_secret invalidates all existing JWTs", - "rotateBody": "If auth.json is regenerated (manual delete, reinstall, restore from a backup with a different secret) the jwt_secret changes and every previously-issued JWT — both interactive sessions and long-lived API tokens — fails verification with \"Invalid or expired token\". The UI flags affected API tokens with an Invalid — regenerate badge so the user knows to revoke and re-mint them; Home Assistant / scripts / any external client needs a fresh token after that.", + "rotateBody": "If auth.json is regenerated (manual delete, reinstall, restore from a backup with a different secret) the jwt_secret changes and every previously-issued JWT — both interactive sessions and long-lived API tokens — fails verification with \"Invalid or expired token\". The UI marks affected API tokens in red, with a badge telling you to revoke them and generate new ones; Home Assistant / scripts / any external client needs a fresh token after that.", "recoverTitle": "Recovering a lost password", "recoverIntro": "There is no online \"forgot password\" flow — by design, since the dashboard runs on the user's own host and the recovery path is shell access to that host. ProxMenux ships a guided reset inside the configuration menu so you don't have to hand-edit auth.json:", "survivesTitle": "What survives the reset", @@ -284,14 +284,14 @@ "heading": "API tokens (long-lived)", "intro": "Browser sessions expire after 24 hours. For unattended integrations (Homepage widgets, Home Assistant sensors, Grafana scrapers, Uptime Kuma probes…) you generate a separate API token that lives 365 days. The token is a JWT signed with the same secret as the session token, but its token_name claim makes it easy to track and revoke individually.", "imageAlt": "API tokens panel showing the token list with name, prefix, created date and expiry", - "imageCaption": "The API tokens list under Settings — name, prefix (last 4 chars are shown for identification), created and expiry dates, revoke action.", + "imageCaption": "The API tokens list under Admin → Security — name, prefix (last 4 chars are shown for identification), created and expiry dates, revoke action.", "generateTitle": "Generate a token", "generateIntro": "From the dashboard:", "generateSteps": [ - "Navigate to the Security tab → API Access Tokens section.", + "Open Admin → Security → API Tokens and click Generate new token.", "Type a descriptive name (e.g. \"Home Assistant\").", "Re-enter your password. If 2FA is on, also the current 6-digit code.", - "Click Generate Token. The token appears once — copy it immediately." + "Click Generate token. The token appears once: copy it immediately." ], "generateCli": "From the command line:", "useTitle": "Use a token", @@ -310,7 +310,7 @@ "intro": "Two paths to TLS:", "items": [ "Reverse proxy (recommended). Terminate TLS on Nginx / Caddy / Traefik and forward HTTP on port 8008 to the Flask process. Snippets below.", - "Direct HTTPS in the AppImage. Configure a certificate with POST /api/ssl/configure (UI: Settings → SSL). The HTTPS path uses gevent.pywsgi with its standard handler; flask-sock handles WebSocket upgrades for WSS. Certificate paths are stored in the SSL configuration." + "Direct HTTPS in the AppImage. Configure a certificate with POST /api/ssl/configure (UI: Admin → Security → SSL / HTTPS). The HTTPS path uses gevent.pywsgi with its standard handler; flask-sock handles WebSocket upgrades for WSS. Certificate paths are stored in the SSL configuration." ], "calloutTitle": "Direct HTTPS limitations", "calloutBody": "The Monitor can use a Proxmox-managed certificate or custom certificate files. It does not issue ACME certificates itself. For automatic issuance and renewal, use Proxmox ACME or a reverse proxy such as Caddy, Traefik or Nginx, and ensure renewed certificates are loaded." diff --git a/web/messages/en/docs/monitor/ai-assistant.json b/web/messages/en/docs/monitor/ai-assistant.json index 1412d29d..1564bbb6 100644 --- a/web/messages/en/docs/monitor/ai-assistant.json +++ b/web/messages/en/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "AI Assistant", - "description": "Optional AI rewriting turns eligible notification templates into plain-language messages, with per-channel detail levels, thirteen UI languages, custom prompts, a public community library and context enrichment. Backup reports backup_complete and backup_fail bypass AI entirely.", + "description": "Optional AI rewriting turns eligible notification templates into plain-language messages, with per-channel detail levels, thirteen UI languages, custom prompts, a public community library and context enrichment. Backup reports backup_complete and backup_fail are never rewritten; with AI Suggestions on, the AI only appends an explanation when a backup reports errors.", "section": "ProxMenux Monitor" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Every commercial provider charges per token, so it's worth understanding what a token is before picking a plan. A token is roughly four characters of English text or about three quarters of a word. The phrase \"Backup completed on storage local-bak\" is around eight tokens. A short journal excerpt of ten lines can be 200-400 tokens depending on the technical density.", "intro2": "Two things are billed on every call:", "items": [ - "Input tokens cover the system prompt and user message: severity, title, rendered body and enriched context. Their number depends on the actual prompt and event content. Each rewritten channel can incur its own input-token usage; backup-complete and backup-fail reports bypass AI.", + "Input tokens cover the system prompt and user message: severity, title, rendered body and enriched context. Their number depends on the actual prompt and event content. Each rewritten channel can incur its own input-token usage; backup-complete and backup-fail reports only use tokens when the AI explains backup errors.", "Output tokens — what the model writes back. The Monitor caps this with max_tokens (see the table below). The cap is a limit, not a charge: if the model produces 250 tokens with a cap of 1500, you pay for 250." ], "capsIntro": "These are the actual caps the dispatcher applies, taken straight from AI_DETAIL_TOKENS in notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "The in-app modal — six cards, one per provider, with the same descriptions documented below.", "groq": { "heading": "Groq", - "tagline": "Very fast, generous free tier (30 req/min). Ideal to start.", + "tagline": "Very fast, with a generous free tier. A good place to start.", "items": [ "API key: console.groq.com/keys", "Examples from the bundled model list: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Detail level per channel", - "intro": "Each of the four channels (Telegram, Discord, Gotify, Email) has its own detail-level dropdown. Three values are available, mapped to specific output token caps and to specific instructions in the default prompt:", + "intro": "Each of the six channels (Telegram, Discord, Gotify, Email, Pushover, Apprise) has its own detail-level dropdown. Three values are available, mapped to specific output token caps and to specific instructions in the default prompt:", "headerLevel": "Level", "headerLabel": "UI label", "headerCap": "Output cap", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Defaults the Monitor applies on first install:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "Email — detailed. Email is the channel where you typically want the full picture for archival." ], "emailTitle": "Email detail level appends the original", @@ -280,7 +280,7 @@ }, "templates": { "heading": "A note on templates", - "body1": "The AI receives a rendered template rather than raw event data. Types such as vm_start, auth_fail and health_degraded have templates in notification_templates.py. The AI rewrites eligible template output; backup_complete and backup_fail retain their deterministic reports and bypass AI.", + "body1": "The AI receives a rendered template rather than raw event data. Types such as vm_start, auth_fail and health_degraded have templates in notification_templates.py. The AI rewrites eligible template output; backup_complete and backup_fail retain their deterministic reports; with AI Suggestions on, the AI only appends an explanation when the backup reports errors.", "body2": "Two practical implications: the AI never sees a hostname or VMID it has to invent — those fields are placed by the template before the rewrite. And if AI is disabled, the templated body is what gets dispatched directly. The Notifications page documents the dispatch pipeline in full and is the right cross-reference for everything that happens to an event before it reaches this layer." }, "privacy": { diff --git a/web/messages/en/docs/monitor/api-reference.json b/web/messages/en/docs/monitor/api-reference.json index eb5e3ff4..e2c180ab 100644 --- a/web/messages/en/docs/monitor/api-reference.json +++ b/web/messages/en/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Extended system snapshot used by the dashboard header (overall metrics + boot time)." + "use": "Lightweight header info: hostname, uptime and cached health status. Public, no token needed." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Filtered journal entries. Query: ?level=&service=&limit=." + "use": "Filtered journal entries. Query: ?priority=&service=&limit=&since_days= (priority 0-7, since_days up to 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Internal event stream — the same one that feeds notifications." + "use": "Recent Proxmox cluster tasks and events from pvesh get /cluster/tasks. Query: ?limit= (default 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Emit a custom event. Body: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Emit a custom event. Body: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/en/docs/monitor/architecture.json b/web/messages/en/docs/monitor/architecture.json index d8415fa6..36c75d1e 100644 --- a/web/messages/en/docs/monitor/architecture.json +++ b/web/messages/en/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root — the supported service runs with root privileges for host operations such as SMART access, pvesh and ZFS management. Its web-terminal processes inherit those privileges.", "Restart=on-failure with a 10-second back-off — non-zero exits relaunch automatically.", - "After=network.target — orders startup after that target; it does not guarantee an assigned IP, DNS or external connectivity." + "After=network.target pve-cluster.service: orders startup after the network target and the Proxmox cluster filesystem; it does not guarantee an assigned IP, DNS or external connectivity." ], "inspectTitle": "Inspect the live unit" }, diff --git a/web/messages/en/docs/monitor/dashboard/hardware.json b/web/messages/en/docs/monitor/dashboard/hardware.json index e47b2bb7..b61f7c63 100644 --- a/web/messages/en/docs/monitor/dashboard/hardware.json +++ b/web/messages/en/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "UPS Status", "subHeading": "(conditional)", - "body": "Renders when a NUT (Network UPS Tools) server is configured and reachable. Shows: state (online / on battery / charging / low battery), battery charge percentage, runtime estimate, load percentage, input voltage, model and firmware. The same data feeds the Security & Certificates category of the Health Monitor — a UPS that goes on-battery surfaces immediately." + "body": "Renders when a NUT (Network UPS Tools) server is configured and reachable. Shows: state (online / on battery / charging / low battery), battery charge percentage, runtime estimate, load percentage, input voltage, model and firmware." }, "dataCollected": { "heading": "How the data is collected", diff --git a/web/messages/en/docs/monitor/dashboard/index.json b/web/messages/en/docs/monitor/dashboard/index.json index c0bbdbd2..be2a5c9a 100644 --- a/web/messages/en/docs/monitor/dashboard/index.json +++ b/web/messages/en/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Browser shell to host or to any VM/CT, powered by xterm.js over WebSockets." + "owns": "Browser shell on the Proxmox host, powered by xterm.js over WebSockets. LXC consoles open from the VMs & LXCs tab." }, { "name": "Security", diff --git a/web/messages/en/docs/monitor/dashboard/security.json b/web/messages/en/docs/monitor/dashboard/security.json index 36ac8340..c6873cb6 100644 --- a/web/messages/en/docs/monitor/dashboard/security.json +++ b/web/messages/en/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL / HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 on /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/en/docs/monitor/dashboard/settings.json b/web/messages/en/docs/monitor/dashboard/settings.json index d7d5107e..d63054aa 100644 --- a/web/messages/en/docs/monitor/dashboard/settings.json +++ b/web/messages/en/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Network Units", "imageAlt": "Network Units card with Network Unit Display dropdown set to Bytes", "imageCaption": "Choose between bits per second and bytes per second for every network rate displayed in the dashboard.", - "body": "Choose how network throughput is displayed across the dashboard: bits per second (Mbps / Gbps) or bytes per second (MB/s / GB/s). Bits is the default because it's what NIC vendors and ISPs label their products with; bytes is what most file-transfer tools report. The setting affects every chart, badge and tooltip that shows network rate — applied immediately, no reload needed." + "body": "Choose how network throughput is displayed across the dashboard: bits per second (Mbps / Gbps) or bytes per second (MB/s / GB/s). Bytes is the default, as most file-transfer tools report; bits is what NIC vendors and ISPs label their products with. The choice is stored in the browser, so each browser keeps its own. The setting affects every chart, badge and tooltip that shows network rate — applied immediately, no reload needed." }, "health": { "heading": "Health Monitor", @@ -203,7 +203,7 @@ "heading": "LXC Update Detection", "imageAlt": "LXC Update Detection card with a single switch — when enabled, the Monitor periodically scans running Debian/Ubuntu/Alpine LXC containers for pending package updates.", "imageCaption": "The toggle for the periodic apt list --upgradable / apk list -u scan across every running CT. Default is ON. The matching notification toggle in Notifications → Services only appears while detection is enabled.", - "intro": "A dedicated toggle for the LXC update scan, sitting between the Health Monitor Thresholds and the Notifications card. When ON, ProxMenux walks every running CT on the host and queries the in-container package manager for pending updates; results land in the Hardware tab badge counts and feed the lxc_updates_available notification. When OFF, the scan stops entirely (no pct exec calls) and any existing LXC entries in managed_installs.json are purged immediately, so the dashboard and the /api/managed-installs endpoint stop reporting LXC update state without waiting for the next 24h cycle.", + "intro": "A dedicated toggle for the LXC update scan, sitting between the Health Monitor Thresholds and the Notifications card. When ON, ProxMenux walks every running CT on the host and queries the in-container package manager for pending updates; results land in the VMs & LXCs tab badge counts and feed the lxc_updates_available notification. When OFF, the scan stops entirely (no pct exec calls) and any existing LXC entries in managed_installs.json are purged immediately, so the dashboard and the /api/managed-installs endpoint stop reporting LXC update state without waiting for the next 24h cycle.", "whatRunsTitle": "What the scan actually runs", "whatRunsIntro": "For each CT in running state with a supported package manager:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "This section of the Settings tab is where ProxMenux Monitor notifications and the AI rewriter are turned on. Pressing Enable Notifications starts the dispatch background thread, registers a Proxmox VE webhook target on the host so PVE-emitted events flow into the same pipeline, and unfolds the channel form so you can connect Telegram, Discord, Email, Gotify and the rest. The AI rewriter sits inside the same panel as a collapsible advanced section.", "body2": "Both surfaces have a lot of moving parts — channels, per-event toggles, Rich messages, the Display Name, the dispatch pipeline (dedup, cooldown, aggregation, quiet hours), the PVE webhook integration, AI providers, prompt modes — and live on their own dedicated pages rather than being repeated here:", "items": [ - "Notifications — channel walk-throughs (Telegram, Discord, Gotify, Email + Gmail / Microsoft app passwords, ntfy, Slack, Teams, generic webhook), per-event categories, Rich messages, Display Name, dispatch pipeline, PVE webhook integration, history and API.", + "Notifications — channel walk-throughs (Telegram, Discord, Gotify, Email + Gmail / Microsoft app passwords, Pushover, and Apprise for ntfy, Slack, Teams and other services), per-event categories, Rich messages, Display Name, dispatch pipeline, PVE webhook integration, history and API.", "AI Assistant — providers (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), model selection, prompt modes (default / custom), output language, per-channel detail levels and AI suggestions." ] }, @@ -294,8 +294,8 @@ }, { "card": "Network Units", - "endpoint": "/api/settings", - "source": "Persisted in the dashboard's SQLite settings table." + "endpoint": "localStorage", + "source": "Browser preference proxmenux-network-unit." }, { "card": "Health Monitor durations", @@ -304,7 +304,7 @@ }, { "card": "Storage / interface exclusions", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "SQLite tables excluded_storages and excluded_interfaces." }, { diff --git a/web/messages/en/docs/monitor/dashboard/storage.json b/web/messages/en/docs/monitor/dashboard/storage.json index 4675b60a..51943536 100644 --- a/web/messages/en/docs/monitor/dashboard/storage.json +++ b/web/messages/en/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Backed by three sources", - "body": "Proxmox storages come from pvesm status; ZFS state from zpool status; physical disks from lsblk + smartctl (and nvme for NVMe-specific fields). The tab refreshes every ~60 seconds; the per-disk drill-in triggers a fresh SMART read on demand." + "body": "Proxmox storages come from pvesm status; ZFS state from zpool status; physical disks from lsblk + smartctl (and nvme for NVMe-specific fields). The tab refreshes every ~30 seconds; the per-disk drill-in triggers a fresh SMART read on demand." }, "thresholds": { "title": "Status colours and thresholds applied here", diff --git a/web/messages/en/docs/monitor/dashboard/system-logs.json b/web/messages/en/docs/monitor/dashboard/system-logs.json index 98b15096..276cb420 100644 --- a/web/messages/en/docs/monitor/dashboard/system-logs.json +++ b/web/messages/en/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Total Entries — number of log records inside the active filter window.", "Errors — count of severity ≤ 3 (err / crit / alert / emerg).", "Warnings — count of severity 4 (warning).", - "Backups — count of vzdump / PBS task entries in the same window." + "Backups: number of backup archives on the configured backup storages." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Logs", "logsIntro": "The system journal, served by journalctl on the backend. Filters available in the toolbar:", "logsFilters": [ - "Severity — emerg / alert / crit / err / warning / notice / info / debug, or any combination.", - "Time range — last 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / custom.", - "Free-text search — substring or regex (journalctl --grep).", - "Unit filter — restrict to a specific systemd unit (pveproxy.service, nginx.service, …)." + "Level: All levels, Error, Warning or Info.", + "Time range: 1 day / 3 days / 1 week / 2 weeks / 1 month, or a custom number of days (up to 90).", + "Free-text search: case-insensitive substring over message, service, PID, hostname and unit, applied in the browser.", + "Service filter: restrict to one service (the journal SYSLOG_IDENTIFIER)." ], "logsRowsAfter": "Each row shows timestamp, severity badge, source unit and the message. Long messages collapse with a \"show more\" toggle. The Download action bundles the current filter into a single .txt file via GET /api/logs/download — useful when you want to share a slice of journal with someone.", "logDetailsModalTitle": "Log Details modal", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "On a fresh Proxmox install, journald defaults to MaxLevelStore=warning, which silently drops info-level messages. The Monitor detects this on startup and adds a drop-in (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) raising the threshold to info so informational and more severe messages are stored. This does not include debug messages.", "backupsTitle": "Backups", - "backupsBody": "Proxmox task history filtered to backup-related entries. One row per task (vzdump, PBS transfers, Garbage Collect, Verify) with the status (OK / WARNINGS / ERROR), guest involved, source storage, duration and the UPID. Click a row to load the full task log via GET /api/task-log/<upid> — the same data Proxmox exposes through Datacenter → Tasks, scoped to backups.", + "backupsBody": "The backup archives on every backup-capable storage (dir, NFS, CIFS, PBS), read with pvesh get /nodes/localhost/storage/<id>/content. Cards at the top show the VM and LXC counts and the total size; below, one row per archive with type, storage, size and date. Restore lives in the Proxmox web UI.", "notificationsTitle": "Notifications", - "notificationsBody1": "Every notification dispatched by the Monitor — Telegram, Discord, Email, Gotify, ntfy, Slack, Teams, webhook. Each row: timestamp, channel, event type, severity, the rendered title, the rendered body, and (if AI is enabled) a toggle to view the AI rewrite next to the original.", - "notificationsBody2": "Use this tab to verify a channel is actually delivering and to compare what the AI rewrite produced vs the template baseline. Channel configuration lives in the Notifications deep page." + "notificationsBody1": "Proxmox notification activity: journal lines from Proxmox services that mention notifications, email, webhooks or alerts, the targets in /etc/pve/notifications.cfg, and backup tasks from the cluster task list. Backup task rows can download the full task log. The history of what the Monitor itself dispatched lives in Settings → Notifications → Notification history.", + "notificationsBody2": "Use this tab to check what Proxmox's own notification system is doing. Monitor channel configuration lives in the Notifications deep page." }, "dataCollected": { "heading": "How the data is collected", @@ -64,7 +64,7 @@ { "subtab": "Logs (live filter)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> with severity / unit / search filters applied server-side." + "source": "The tab requests /api/logs?since_days=N; level, service and text filters run in the browser. The API also accepts priority and service, which the tab does not use yet." }, { "subtab": "Download", @@ -74,17 +74,17 @@ { "subtab": "Backups", "endpoint": "/api/backups", - "source": "PVE task history filtered by vzdump, PBS transfers, Garbage Collect, Verify." + "source": "Backup archives listed from each backup storage with pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Backup task drill-in", + "subtab": "Backup task log (Notifications)", "endpoint": "/api/task-log/<upid>", "source": "Plain-text full task log read from /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Notifications history", - "endpoint": "/api/notifications/history", - "source": "SQLite notification_history table fed by the dispatch loop." + "subtab": "Notifications", + "endpoint": "/api/notifications", + "source": "journalctl --grep over Proxmox units, /etc/pve/notifications.cfg and backup tasks from pvesh get /cluster/tasks." } ], "apiIntro": "Both the live filter and the downloads are also reachable via the API:", diff --git a/web/messages/en/docs/monitor/dashboard/system-overview.json b/web/messages/en/docs/monitor/dashboard/system-overview.json index 98fc5884..c5c45a02 100644 --- a/web/messages/en/docs/monitor/dashboard/system-overview.json +++ b/web/messages/en/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Every ring, bar, and sparkline on the four metric cards follows the same classification — green below Warning, amber from Warning to Critical, red at Critical and above. Recommended defaults shipped with ProxMenux:", "thresholdsItems": [ "CPU usage — Warning 85 %, Critical 95 %.", - "Memory — Warning 85 %, Critical 95 % (Swap also fires Critical at 5 % used — a healthy Proxmox host should rarely touch swap).", + "Memory: Warning 85 %, Critical 95 %. Swap fires Critical only when swap use is above 80 % and available RAM is below 15 %.", "CPU temperature — Warning 80 °C, Critical 90 °C." ], "thresholdsOutro": "Every value is configurable per host — Settings → Health Monitor Thresholds is the single source of truth and explains how to tune them.", @@ -58,7 +58,7 @@ "intro": "The CPU Usage and Memory cards on the Overview tab are clickable. Clicking either opens a sortable list of the top 25 processes — ordered by CPU usage when opened from the CPU card, by resident memory when opened from the Memory card.", "listTitle": "The list dialog", "listItems": [ - "Auto-refresh — the list updates every 5 seconds while the dialog is open and stops polling as soon as it closes.", + "Auto-refresh — the list updates every 3 seconds while the dialog is open and stops polling as soon as it closes.", "Filter — the search box narrows the list by command, user or PID.", "Inline bar — the primary metric column draws a small bar scaled to the highest value in the filtered list, so ranking stays visible even when no process is near 100 %.", "Mobile layout — under 640 px the PID and User columns hide so Command, CPU % and Memory still fit on a phone screen without horizontal scroll." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Middle: node metrics charts", - "body1": "Below the top row sits the NodeMetricsCharts component — historical CPU, memory and disk-I/O graphs sourced from Proxmox's own RRD store via /api/node/metrics. A timeframe selector switches between 1 hour / 24 hours / 7 days / 30 days / 1 year; data resolution drops as the window grows so the chart stays smooth.", + "body1": "Below the top row sits the NodeMetricsCharts component — historical CPU, memory and disk-I/O graphs sourced from Proxmox's own RRD store via /api/node/metrics. A timeframe selector switches between 1 hour / 24 hours / 7 days / 30 days; data resolution drops as the window grows so the chart stays smooth.", "body2": "These are the same graphs that the Proxmox web UI renders for a node, just consolidated into the Monitor's dark theme and aligned with the other panels." }, "bottom": { diff --git a/web/messages/en/docs/monitor/dashboard/vms-lxcs.json b/web/messages/en/docs/monitor/dashboard/vms-lxcs.json index b258a399..4cb0e36e 100644 --- a/web/messages/en/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/en/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Destination tag — the storage where it lives (PBS-Cloud, PBS-Local, NFS-Backup, …) coloured by status.", "Size — final on-disk size of the backup." ], - "backupsOutro": "The + Create Backup button at the top right kicks off a new run on the storage marked as \"Backup target\" in the Proxmox storage config. Restore lives in the Proxmox web UI — the Monitor exposes the \"is this guest backed up recently?\" view, not the recovery flow.", + "backupsOutro": "The + Create Backup button at the top right opens a dialog to choose the storage, mode (snapshot / suspend / stop), protection and notes before starting a vzdump. Restore lives in the Proxmox web UI — the Monitor exposes the \"is this guest backed up recently?\" view, not the recovery flow.", "firewallTitle": "Tab 7 — Firewall", "firewallIntro": "Reads the per-guest Proxmox firewall log straight from the host (no extra service, no polling). The tab is always present in the navigation strip; the panel decides what to render depending on whether the firewall is enabled for that guest and whether any rule is actually logging:", "firewallItems": [ diff --git a/web/messages/en/docs/monitor/health-monitor.json b/web/messages/en/docs/monitor/health-monitor.json index c4c3c725..8a338e0d 100644 --- a/web/messages/en/docs/monitor/health-monitor.json +++ b/web/messages/en/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "The pill mirrors the worst category", "pillBody": "The dashboard header colour is the highest severity across the ten categories: any CRITICAL → red, else any WARNING → yellow, else any INFO → blue, else green. The same logic drives the favicon dot and the PWA badge.", "updateNowTitle": "Update Now button in the Overview header", - "updateNowBody1": "When the System Updates category reports one or more pending updates, the Overview header renders an Update Now button next to the health pill. The button opens a modal that runs the same host-side flow as ProxMenux → Settings post-install Proxmox → Proxmox System Update: repo hygiene, apt full-upgrade via the safe worker update-pve-safe.sh, automatic DKMS rebuild of ProxMenux-managed drivers when a new kernel lands, autoremove / autoclean and a reboot prompt if the kernel changed. Progress lines stream in the modal as the worker prints them.", - "updateNowBody2": "When the run finishes, closing the modal calls GET /api/health/details?refresh=1, which invalidates the health-endpoint cache before serving. The pending-updates row and the pill severity are recomputed from the new package state on the spot, so the badge disappears without waiting for the next five-minute cycle. When the host is already up to date, the button is hidden — no visual noise on a healthy system." + "updateNowBody1": "When the System Updates category reports one or more pending updates, the Overview header renders an Update Now button next to the health pill. The button opens a modal that runs the same host-side flow as ProxMenux → Utilities and Tools → Proxmox System Update: repo hygiene, apt full-upgrade via the safe worker update-pve-safe.sh, automatic DKMS rebuild of ProxMenux-managed drivers when a new kernel lands, autoremove / autoclean and a reboot prompt if the kernel changed. Progress lines stream in the modal as the worker prints them.", + "updateNowBody2": "When the run finishes, closing the modal calls GET /api/health/full?refresh=1, which invalidates the health-endpoint cache before serving. The pending-updates row and the pill severity are recomputed from the new package state on the spot, so the badge disappears without waiting for the next five-minute cycle. When the host is already up to date, the button is hidden — no visual noise on a healthy system." }, "dismiss": { "heading": "Dismissing alerts and the Suppression Duration", diff --git a/web/messages/en/docs/monitor/index.json b/web/messages/en/docs/monitor/index.json index 2613e500..347bf877 100644 --- a/web/messages/en/docs/monitor/index.json +++ b/web/messages/en/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API and integrations", "intro": "The dashboard’s REST endpoints expose monitoring data as JSON over HTTP/HTTPS for Homepage widgets, Home Assistant sensors, Uptime Kuma probes and custom scripts. Grafana can use the separate Prometheus text exporter at /api/prometheus. Requests can be made with curl.", - "tokens": "Long-lived API tokens (365 days) are generated from Settings → API Access Tokens or via POST /api/auth/generate-api-token.", + "tokens": "Long-lived API tokens (365 days) are generated from Admin → Security → API Tokens or via POST /api/auth/generate-api-token.", "bearer": "Send tokens as Authorization: Bearer …. /api/health also expects the bearer header, so uptime probes need a read_only token. Routes under /api/auth/* include both public setup/login/status routes and protected account/token management routes; they are not all anonymous.", "catalog": "The full endpoint catalog, token rotation guidance and security best-practices live in API Reference; ready-made examples for Homepage, Home Assistant, Grafana, Uptime Kuma and a generic cURL pattern are in Integrations." }, "serviceControl": { "heading": "Service control", - "intro": "Day-to-day, the Monitor is managed exactly like any other systemd service. It is also exposed as two entries inside the ProxMenux TUI under Settings:", + "intro": "Day-to-day, the Monitor is managed exactly like any other systemd service. It is also exposed as three entries inside the ProxMenux TUI under Settings:", "codeComment": "# Manual control", "footer": "See Settings → ProxMenux Monitor for the in-menu toggle and status verification flow." }, diff --git a/web/messages/en/docs/monitor/integrations.json b/web/messages/en/docs/monitor/integrations.json index d0b5a0bd..7b445bdb 100644 --- a/web/messages/en/docs/monitor/integrations.json +++ b/web/messages/en/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Authentication: the one thing every recipe needs", "intro": "Most endpoints used by these integrations are authenticated. You have two ways to satisfy that requirement.", "optAtitle": "Option A — API token (recommended for integrations)", - "optAbody1": "Open the dashboard and go to Settings → Security → API Tokens. Click Generate token, give it a name (e.g. homepage, home-assistant, prometheus), and copy the token — it's shown once. Long-lived (one-year expiry by default), individually revocable, and what you should be using for any non-browser client.", + "optAbody1": "Open the dashboard and go to Admin → Security → API Tokens. Click Generate new token, give it a name (e.g. homepage, home-assistant, prometheus), enter your password (and the 2FA code if enabled), then click Generate token and copy the token: it's shown once. Long-lived (one-year expiry by default), individually revocable, and what you should be using for any non-browser client.", "optAbody2": "From that point every request is just:", "optBtitle": "Option B — login flow (username + password)", "optBbody": "Useful for scripts that authenticate as a human user. The returned token is short-lived; most integrations should prefer Option A.", "outro": "The TOTP field is only required when 2FA is enabled on the account. Token rotation, revocation, password policy and the audit log live in Access & Authentication.", "httpsTitle": "Using HTTPS instead of HTTP", - "httpsIntro": "Every recipe below uses http:// in the URLs to keep the examples short. If you've enabled TLS on the Monitor (Settings → Security → SSL/HTTPS), swap http:// for https:// in every URL — that's the only change. Two notes specific to certain tools:", + "httpsIntro": "Every recipe below uses http:// in the URLs to keep the examples short. If you've enabled TLS on the Monitor (Admin → Security → SSL / HTTPS), swap http:// for https:// in every URL — that's the only change. Two notes specific to certain tools:", "httpsItems": [ "Self-signed certificates. Home Assistant's rest: integration verifies TLS by default. If the Monitor is using its own self-signed cert, add verify_ssl: false to each REST block (alongside scan_interval:), or import the Monitor's CA into HA's trust store. Same for any tool that refuses untrusted certs.", "Prometheus already has scheme: https ready in the scrape config below; uncomment / leave it as https if TLS is enabled on the Monitor." @@ -43,7 +43,7 @@ "basicTitle": "Basic widget — no authentication", "basicIntro": "Use this when ProxMenux Monitor is on a trusted network and you haven't enabled authentication on the Monitor side yet. The simplest possible services.yaml entry:", "authedTitle": "Authenticated widget", - "authedIntro": "Generate an API token in Settings → Security → API Tokens on the Monitor, copy it, and paste it into the Authorization header below — replace the example token shown after Bearer with the one you just copied:", + "authedIntro": "Generate an API token in Admin → Security → API Tokens on the Monitor, copy it, and paste it into the Authorization header below — replace the example token shown after Bearer with the one you just copied:", "authedOutro": "Restart Homepage and the card lights up with live values. Reuse the same token across all Homepage widgets pointing at the same ProxMenux Monitor host.", "multiTitle": "Multi-widget setup — system, storage, network", "multiIntro": "For a richer view, render three separate cards backed by different endpoints — one for system metrics, one for storage, one for network. Use the same token in every card; it's the same Monitor instance.", diff --git a/web/messages/en/docs/monitor/notifications.json b/web/messages/en/docs/monitor/notifications.json index 3a26f7d9..5c8bde90 100644 --- a/web/messages/en/docs/monitor/notifications.json +++ b/web/messages/en/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Optional AI rewrite", - "body1": "Eligible events can be rewritten by an LLM before delivery. Backup results (backup_complete and backup_fail) bypass this rewrite. AI is off by default and runs in the dispatch thread when enabled. If the call fails or times out, the original template text is used.", + "body1": "Eligible events can be rewritten by an LLM before delivery. Backup results (backup_complete and backup_fail) are not rewritten; with AI Suggestions on, the AI only appends an explanation when a backup reports errors. AI is off by default and runs in the dispatch thread when enabled. If the call fails or times out, the original template text is used.", "body2": "Six providers are supported (OpenAI, Anthropic, Google Gemini, Groq, OpenRouter and local Ollama), with per-channel detail level (brief, standard, detailed), output language, prompt mode (default or custom) and an optional custom prompt. Full configuration walk-through, captures and prompt examples live in the dedicated AI Assistant page.", "privacyTitle": "Privacy note", "privacyBody": "AI requests can include the title, severity, rendered body, system/custom prompt and collected context, including hostnames, IPs, usernames, errors and journal lines. They go to the selected endpoint. Ollama keeps processing local only with both a local server and a local model; a remote server or cloud model sends data outside the host. Disable rewriting or use a controlled local endpoint and model when event content must stay on the network." diff --git a/web/messages/en/docs/security/ssl-letsencrypt.json b/web/messages/en/docs/security/ssl-letsencrypt.json index b5a65563..03be0a63 100644 --- a/web/messages/en/docs/security/ssl-letsencrypt.json +++ b/web/messages/en/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "What this page covers", - "body": "How to switch the Monitor from HTTP to HTTPS in the Settings → Security panel, what each certificate source actually points at on disk, how the Proxmox option behaves when the host has a Let's Encrypt cert, and how to set custom paths if you manage certs outside Proxmox." + "body": "How to switch the Monitor from HTTP to HTTPS in the Admin → Security panel, what each certificate source actually points at on disk, how the Proxmox option behaves when the host has a Let's Encrypt cert, and how to set custom paths if you manage certs outside Proxmox." }, "wheresetting": { "heading": "Where the setting lives", - "body": "Open the Monitor and go to Settings → Security → HTTPS / SSL. The panel shows the current state (HTTP or HTTPS), and on a host without HTTPS yet it lists the certificate sources the Monitor was able to detect.", - "imageAlt": "Settings → Security → HTTPS / SSL panel in the Monitor showing the HTTPS-off state, the auto-detected Proxmox certificate (subject, issuer, expiry) and the Use Custom Certificate option", - "caption": "Settings → Security → HTTPS / SSL panel before activation. The Monitor surfaces the cert Proxmox itself is using and offers it as a one-click source." + "body": "Open the Monitor and go to Admin → Security → SSL / HTTPS. The panel shows the current state (HTTP or HTTPS), and on a host without HTTPS yet it lists the certificate sources the Monitor was able to detect.", + "imageAlt": "Admin → Security → SSL / HTTPS panel in the Monitor showing the HTTPS-off state, the auto-detected Proxmox certificate (subject, issuer, expiry) and the Use Custom Certificate option", + "caption": "Admin → Security → SSL / HTTPS panel before activation. The Monitor surfaces the cert Proxmox itself is using and offers it as a one-click source." }, "twoways": { "heading": "Two ways to enable HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Switch the Monitor to HTTPS", - "bodyRich": "Once /etc/pve/local/pveproxy-ssl.pem is signed by Let's Encrypt, the Monitor side is one click: open Settings → Security → HTTPS / SSL, confirm the issuer shown in the detected-certificate panel reads Let's Encrypt (and not the local Proxmox CA), and click Use Proxmox Certificate. The Monitor service restarts and the next browser load is HTTPS on port 8008 — no certificate warning, since the chain is publicly trusted. Later Proxmox ACME renewals are validated and selected during the next new TLS connection; there is no recurring certificate poller or renewal-time service restart. Update certificate remains available in Security as an explicit diagnostic and recovery action." + "bodyRich": "Once /etc/pve/local/pveproxy-ssl.pem is signed by Let's Encrypt, the Monitor side is one click: open Admin → Security → SSL / HTTPS, confirm the issuer shown in the detected-certificate panel reads Let's Encrypt (and not the local Proxmox CA), and click Use Proxmox Certificate. The Monitor service restarts and the next browser load is HTTPS on port 8008 — no certificate warning, since the chain is publicly trusted. Later Proxmox ACME renewals are validated and selected during the next new TLS connection; there is no recurring certificate poller or renewal-time service restart. Update certificate remains available in Security as an explicit diagnostic and recovery action." }, "custom": { "heading": "Custom certificate — when to use it", diff --git a/web/messages/es/docs/monitor/access-auth.json b/web/messages/es/docs/monitor/access-auth.json index 9c8ae824..8c7aeea2 100644 --- a/web/messages/es/docs/monitor/access-auth.json +++ b/web/messages/es/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Cómo llegar al panel", - "intro": "ProxMenux Monitor escucha en 0.0.0.0:8008. Hay tres formas habituales de llegar a él:", + "intro": "ProxMenux Monitor escucha en el TCP 8008 en todas las interfaces (::, IPv4 e IPv6). Hay tres formas habituales de llegar a él:", "outro": "El acceso directo corresponde a la unidad systemd predeterminada. El proxy inverso y Secure Gateway se describen más abajo. Para confiar en la IP de X-Forwarded-For se requiere PROXMENUX_TRUST_PROXY=1 y un proxy que controles. La presencia de X-Forwarded-Proto o X-Forwarded-Host no activa esa confianza. En los puertos 80/443 el frontend usa URL relativas /api/*; en cualquier otro puerto llama al puerto 8008 del mismo nombre de host." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — qué contiene y cómo se protege", "authJsonBody": "Todo lo que ProxMenux Monitor necesita para autenticarte vive en un único archivo: /root/.config/proxmenux-monitor/auth.json, modo 0600, propietario root. El archivo guarda hashes (PBKDF2) y material de firma (jwt_secret, totp_secret) — nunca una contraseña en texto plano. Trátalo como cualquier otro secreto de solo-root: si haces backup o replicas el host, cifra el destino y nunca lo subas a control de versiones.", "rotateTitle": "Rotar jwt_secret invalida todos los JWTs existentes", - "rotateBody": "Si auth.json se regenera (borrado manual, reinstalación, restauración desde un backup con un secret distinto) el jwt_secret cambia y cada JWT previamente emitido — tanto sesiones interactivas como API tokens de larga duración — falla la verificación con \"Invalid or expired token\". La UI marca los API tokens afectados con un badge Invalid — regenerate para que el usuario sepa que tiene que revocarlos y volver a emitirlos; Home Assistant / scripts / cualquier cliente externo necesita un token fresco después de eso.", + "rotateBody": "Si auth.json se regenera (borrado manual, reinstalación, restauración desde un backup con un secret distinto) el jwt_secret cambia y cada JWT previamente emitido — tanto sesiones interactivas como API tokens de larga duración — falla la verificación con \"Invalid or expired token\". La UI marca los API tokens afectados en rojo, con un badge que indica que hay que revocarlos y generar otros nuevos; Home Assistant / scripts / cualquier cliente externo necesita un token fresco después de eso.", "recoverTitle": "Recuperar una contraseña perdida", "recoverIntro": "No hay un flujo online de \"olvidé mi contraseña\" — por diseño, ya que el panel corre en el propio host del usuario y el camino de recuperación es acceso shell a ese host. ProxMenux trae un reset guiado dentro del menú de configuración para que no tengas que editar a mano auth.json:", "survivesTitle": "Qué sobrevive al reset", @@ -284,14 +284,14 @@ "heading": "API tokens (larga duración)", "intro": "Las sesiones de navegador caducan tras 24 horas. Para integraciones desatendidas (widgets de Homepage, sensores de Home Assistant, scrapers de Grafana, probes de Uptime Kuma…) generas un API token aparte que vive 365 días. El token es un JWT firmado con el mismo secret que el token de sesión, pero su claim token_name facilita rastrearlo y revocarlo individualmente.", "imageAlt": "Panel de API tokens mostrando la lista de tokens con nombre, prefijo, fecha de creación y caducidad", - "imageCaption": "La lista de API tokens bajo Settings — nombre, prefijo (se muestran los últimos 4 caracteres para identificación), fechas de creación y caducidad, acción de revocar.", + "imageCaption": "La lista de API tokens bajo Administración → Seguridad — nombre, prefijo (se muestran los últimos 4 caracteres para identificación), fechas de creación y caducidad, acción de revocar.", "generateTitle": "Generar un token", "generateIntro": "Desde el panel:", "generateSteps": [ - "Abre Seguridad → Tokens de acceso API.", + "Abre Administración → Seguridad → Tokens API y pulsa Generar nuevo token.", "Escribe un nombre descriptivo (p. ej. \"Home Assistant\").", "Vuelve a introducir tu contraseña. Si el 2FA está activado, también el código actual de 6 dígitos.", - "Pulsa Generar token. Se muestra una sola vez: cópialo al momento." + "Pulsa Generar token. El token aparece una sola vez: cópialo de inmediato." ], "generateCli": "Desde la línea de comandos:", "useTitle": "Usar un token", @@ -310,7 +310,7 @@ "intro": "Dos rutas hacia TLS:", "items": [ "Reverse proxy (recomendado). Termina TLS en Nginx / Caddy / Traefik y reenvía HTTP en el puerto 8008 al proceso Flask. Snippets más abajo.", - "HTTPS directo en AppImage. Configura un certificado con POST /api/ssl/configure (interfaz: Ajustes → SSL). HTTPS usa gevent.pywsgi con su manejador estándar; flask-sock gestiona la conexión WebSocket para WSS. Las rutas de los certificados se guardan en la configuración SSL." + "HTTPS directo en AppImage. Configura un certificado con POST /api/ssl/configure (interfaz: Administración → Seguridad → SSL/HTTPS). HTTPS usa gevent.pywsgi con su manejador estándar; flask-sock gestiona la conexión WebSocket para WSS. Las rutas de los certificados se guardan en la configuración SSL." ], "calloutTitle": "Limitaciones del HTTPS directo", "calloutBody": "Monitor puede usar un certificado gestionado por Proxmox o archivos de certificados propios. No emite certificados ACME. Para emitirlos y renovarlos automáticamente, usa ACME de Proxmox o un proxy inverso como Caddy, Traefik o Nginx y asegúrate de cargar los certificados renovados." diff --git a/web/messages/es/docs/monitor/ai-assistant.json b/web/messages/es/docs/monitor/ai-assistant.json index fc338758..fd6f447c 100644 --- a/web/messages/es/docs/monitor/ai-assistant.json +++ b/web/messages/es/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "Asistente de IA", - "description": "La reescritura opcional con IA convierte las plantillas de notificación admitidas en mensajes claros, con detalle por canal, trece idiomas en la interfaz, prompts personalizados, una biblioteca comunitaria pública y contexto adicional. Los informes backup_complete y backup_fail omiten la IA por completo.", + "description": "La reescritura opcional con IA convierte las plantillas de notificación admitidas en mensajes claros, con detalle por canal, trece idiomas en la interfaz, prompts personalizados, una biblioteca comunitaria pública y contexto adicional. Los informes backup_complete y backup_fail nunca se reescriben; con las sugerencias de IA activadas, la IA solo añade una explicación cuando un backup informa de errores.", "section": "Monitor de ProxMenux" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Cada proveedor comercial cobra por token, así que merece la pena entender qué es un token antes de elegir un plan. Un token son aproximadamente cuatro caracteres de texto en inglés o unas tres cuartas partes de una palabra. La frase \"Backup completed on storage local-bak\" son unos ocho tokens. Un extracto corto de journal de diez líneas puede ser 200-400 tokens según la densidad técnica.", "intro2": "Se facturan dos cosas en cada llamada:", "items": [ - "Tokens de entrada: incluyen las instrucciones del sistema y el mensaje de usuario: severidad, título, texto de la plantilla y contexto adicional. La cantidad depende del prompt y del evento. Cada canal reescrito puede consumir sus propios tokens de entrada; los informes de backup completado y fallido omiten la IA.", + "Tokens de entrada: incluyen las instrucciones del sistema y el mensaje de usuario: severidad, título, texto de la plantilla y contexto adicional. La cantidad depende del prompt y del evento. Cada canal reescrito puede consumir sus propios tokens de entrada; los informes de backup completado y fallido solo consumen tokens cuando la IA explica errores del backup.", "Tokens de salida — lo que el modelo escribe de vuelta. El Monitor lo limita con max_tokens (mira la tabla de abajo). El límite es un tope, no un cargo: si el modelo produce 250 tokens con un tope de 1500, pagas 250." ], "capsIntro": "Estos son los topes reales que aplica el dispatcher, tomados directamente de AI_DETAIL_TOKENS en notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "El modal in-app — seis tarjetas, una por proveedor, con las mismas descripciones documentadas abajo.", "groq": { "heading": "Groq", - "tagline": "Muy rápido, nivel gratuito generoso (30 req/min). Ideal para empezar.", + "tagline": "Muy rápido, con un nivel gratuito generoso. Un buen punto de partida.", "items": [ "Clave API: console.groq.com/keys", "Ejemplos de la lista de modelos incluida: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Nivel de detalle por canal", - "intro": "Cada uno de los cuatro canales (Telegram, Discord, Gotify, Email) tiene su propio dropdown de nivel de detalle. Hay tres valores disponibles, mapeados a topes específicos de tokens de salida y a instrucciones específicas en el prompt por defecto:", + "intro": "Cada uno de los seis canales (Telegram, Discord, Gotify, Email, Pushover, Apprise) tiene su propio dropdown de nivel de detalle. Hay tres valores disponibles, mapeados a topes específicos de tokens de salida y a instrucciones específicas en el prompt por defecto:", "headerLevel": "Nivel", "headerLabel": "Etiqueta UI", "headerCap": "Tope de salida", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Valores por defecto que el Monitor aplica en la primera instalación:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "Email — detailed. Email es el canal donde típicamente quieres la foto completa para archivo." ], "emailTitle": "El nivel de detalle de Email añade el original", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Una nota sobre templates", - "body1": "La IA recibe una plantilla ya generada, no datos de evento sin procesar. Tipos como vm_start, auth_fail y health_degraded tienen plantillas en notification_templates.py. La IA reescribe los textos admitidos; backup_complete y backup_fail conservan sus informes deterministas y omiten la IA.", + "body1": "La IA recibe una plantilla ya generada, no datos de evento sin procesar. Tipos como vm_start, auth_fail y health_degraded tienen plantillas en notification_templates.py. La IA reescribe los textos admitidos; backup_complete y backup_fail conservan sus informes deterministas; con las sugerencias de IA activadas, la IA solo añade una explicación cuando el backup informa de errores.", "body2": "Dos implicaciones prácticas: la IA nunca ve un hostname o VMID que tenga que inventar — esos campos los pone la template antes de la reescritura. Y si la IA está desactivada, el cuerpo templated es lo que se despacha directamente. La página de Notifications documenta la pipeline de despacho completa y es la referencia cruzada correcta para todo lo que le pasa a un evento antes de llegar a esta capa." }, "privacy": { diff --git a/web/messages/es/docs/monitor/api-reference.json b/web/messages/es/docs/monitor/api-reference.json index 480e144f..8b756459 100644 --- a/web/messages/es/docs/monitor/api-reference.json +++ b/web/messages/es/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Datos ampliados usados por la cabecera del panel: métricas generales y hora de arranque." + "use": "Información ligera de cabecera: hostname, uptime y estado de salud en caché. Público, no necesita token." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Entradas del journal filtradas. Query: ?level=&service=&limit=." + "use": "Entradas del journal filtradas. Query: ?priority=&service=&limit=&since_days= (priority 0-7, since_days hasta 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Stream interno de eventos — el mismo que alimenta las notificaciones." + "use": "Tareas y eventos recientes del cluster de Proxmox desde pvesh get /cluster/tasks. Query: ?limit= (por defecto 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Emite un evento personalizado. Cuerpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Emite un evento personalizado. Cuerpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/es/docs/monitor/architecture.json b/web/messages/es/docs/monitor/architecture.json index 7dd9fce6..281239fa 100644 --- a/web/messages/es/docs/monitor/architecture.json +++ b/web/messages/es/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: el servicio usa privilegios root para operaciones del host como SMART, pvesh y gestión ZFS. Los procesos del terminal heredan esos permisos.", "Restart=on-failure con espera de 10 segundos: se reinicia automáticamente tras una salida con error.", - "After=network.target: ordena el inicio después de ese objetivo; no garantiza IP asignada, DNS ni conectividad externa." + "After=network.target pve-cluster.service: ordena el inicio después del objetivo de red y del sistema de ficheros del cluster de Proxmox; no garantiza IP asignada, DNS ni conectividad externa." ], "inspectTitle": "Consultar la unidad actual" }, diff --git a/web/messages/es/docs/monitor/dashboard/hardware.json b/web/messages/es/docs/monitor/dashboard/hardware.json index b1104104..51716b21 100644 --- a/web/messages/es/docs/monitor/dashboard/hardware.json +++ b/web/messages/es/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "Estado del SAI", "subHeading": "(condicional)", - "body": "Aparece si hay un servidor NUT (Network UPS Tools) configurado y accesible. Muestra estado (en línea / batería / cargando / batería baja), carga de batería, autonomía estimada, porcentaje de carga soportada, tensión de entrada, modelo y firmware. Alimenta también Seguridad y certificados del monitor de salud: el paso a batería se señala inmediatamente." + "body": "Aparece si hay un servidor NUT (Network UPS Tools) configurado y accesible. Muestra estado (en línea / batería / cargando / batería baja), carga de batería, autonomía estimada, porcentaje de carga soportada, tensión de entrada, modelo y firmware." }, "dataCollected": { "heading": "Cómo se recopilan los datos", diff --git a/web/messages/es/docs/monitor/dashboard/index.json b/web/messages/es/docs/monitor/dashboard/index.json index 71a9733c..9618dc3f 100644 --- a/web/messages/es/docs/monitor/dashboard/index.json +++ b/web/messages/es/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Shell del host o de cualquier VM/CT en el navegador, con xterm.js sobre WebSockets." + "owns": "Shell del navegador en el host Proxmox, con xterm.js sobre WebSockets. Las consolas LXC se abren desde la pestaña VM y LXC." }, { "name": "Seguridad", diff --git a/web/messages/es/docs/monitor/dashboard/security.json b/web/messages/es/docs/monitor/dashboard/security.json index 7a09c303..c7f3939e 100644 --- a/web/messages/es/docs/monitor/dashboard/security.json +++ b/web/messages/es/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL/HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 sobre /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/es/docs/monitor/dashboard/settings.json b/web/messages/es/docs/monitor/dashboard/settings.json index c4d91dbc..95c3e5dc 100644 --- a/web/messages/es/docs/monitor/dashboard/settings.json +++ b/web/messages/es/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Unidades de red", "imageAlt": "Tarjeta Unidades de red con el selector de visualización en Bytes", "imageCaption": "Elige bits por segundo o bytes por segundo para todas las velocidades de red del panel.", - "body": "Muestra la velocidad de red en bits por segundo (Mbps/Gbps) o bytes por segundo (MB/s/GB/s). Por defecto se usan bits, como en las especificaciones de interfaces y proveedores; las transferencias de archivos suelen usar bytes. El cambio se aplica de inmediato a gráficos, etiquetas y ayudas, sin recargar." + "body": "Muestra la velocidad de red en bits por segundo (Mbps/Gbps) o bytes por segundo (MB/s/GB/s). Por defecto se usan bytes, como en la mayoría de herramientas de transferencia de archivos; los bits son lo que usan fabricantes de interfaces y proveedores. La elección se guarda en el navegador, así que cada navegador conserva la suya. El cambio se aplica de inmediato a gráficos, etiquetas y ayudas, sin recargar." }, "health": { "heading": "Monitor de salud", @@ -203,7 +203,7 @@ "heading": "Detección de actualización de LXC", "imageAlt": "Tarjeta de detección de actualizaciones LXC con interruptor para buscar paquetes pendientes en contenedores Debian, Ubuntu y Alpine en ejecución", "imageCaption": "Interruptor del análisis periódico con apt list --upgradable / apk list -u en los CT en ejecución. Viene activado. El interruptor de aviso en Notificaciones → Servicios aparece mientras la detección está activa.", - "intro": "El interruptor entre Umbrales y Notificaciones controla el análisis LXC. Al activarlo, consulta los gestores de paquetes de CT en ejecución; los resultados aparecen en Hardware y alimentan lxc_updates_available. Al desactivarlo, cesan sus llamadas pct exec y se eliminan las entradas LXC de managed_installs.json, por lo que /api/managed-installs deja de mostrar ese estado sin esperar 24 h.", + "intro": "El interruptor entre Umbrales y Notificaciones controla el análisis LXC. Al activarlo, consulta los gestores de paquetes de CT en ejecución; los resultados aparecen en VM y LXC y alimentan lxc_updates_available. Al desactivarlo, cesan sus llamadas pct exec y se eliminan las entradas LXC de managed_installs.json, por lo que /api/managed-installs deja de mostrar ese estado sin esperar 24 h.", "whatRunsTitle": "Qué ejecuta el análisis", "whatRunsIntro": "Para cada CT en estado running con un gestor de paquetes compatible:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Aquí se activan las notificaciones de ProxMenux Monitor y la reformulación con IA. Activar notificaciones inicia el proceso de envío en segundo plano, registra un destino webhook de Proxmox VE para incorporar sus eventos y abre el formulario de canales: Telegram, Discord, correo, Gotify y otros. La reformulación con IA está en una sección avanzada desplegable del mismo panel.", "body2": "Sus opciones se explican en páginas propias: canales, controles por evento, mensajes enriquecidos, nombre visible, envío (duplicados, espera, agrupación y horario de silencio), webhook PVE, proveedores de IA y modos de instrucciones:", "items": [ - "Notificaciones: configuración de canales (Telegram, Discord, Gotify, correo y contraseñas de aplicación de Gmail / Microsoft, ntfy, Slack, Teams y webhook genérico), categorías por evento, mensajes enriquecidos, nombre visible, envío, webhook PVE, historial y API.", + "Notificaciones: configuración de canales (Telegram, Discord, Gotify, correo y contraseñas de aplicación de Gmail / Microsoft, Pushover y Apprise para ntfy, Slack, Teams y otros servicios), categorías por evento, mensajes enriquecidos, nombre visible, envío, webhook PVE, historial y API.", "Asistente de IA: proveedores (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelos, instrucciones predeterminadas o personalizadas, idioma de salida, detalle por canal y sugerencias de IA." ] }, @@ -294,8 +294,8 @@ }, { "card": "Unidades de red", - "endpoint": "/api/settings", - "source": "Guardado en la tabla de ajustes SQLite del panel." + "endpoint": "localStorage", + "source": "Preferencia del navegador proxmenux-network-unit." }, { "card": "Duraciones de Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Exclusiones de almacenamiento / interfaz", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "Tablas SQLite excluded_storages y excluded_interfaces." }, { diff --git a/web/messages/es/docs/monitor/dashboard/storage.json b/web/messages/es/docs/monitor/dashboard/storage.json index 7bb4c4ef..660f95d3 100644 --- a/web/messages/es/docs/monitor/dashboard/storage.json +++ b/web/messages/es/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Respaldado por tres fuentes", - "body": "Los almacenamientos Proxmox proceden de pvesm status; ZFS, de zpool status; los discos físicos, de lsblk + smartctl, y nvme para campos específicos. La pestaña se actualiza aproximadamente cada 60 segundos; abrir el detalle solicita una lectura SMART." + "body": "Los almacenamientos Proxmox proceden de pvesm status; ZFS, de zpool status; los discos físicos, de lsblk + smartctl, y nvme para campos específicos. La pestaña se actualiza aproximadamente cada 30 segundos; abrir el detalle solicita una lectura SMART." }, "thresholds": { "title": "Colores de estado y umbrales aplicados aquí", diff --git a/web/messages/es/docs/monitor/dashboard/system-logs.json b/web/messages/es/docs/monitor/dashboard/system-logs.json index 7372eee7..fd2fa8c9 100644 --- a/web/messages/es/docs/monitor/dashboard/system-logs.json +++ b/web/messages/es/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Entradas totales: número de registros dentro del intervalo del filtro activo.", "Errores: número de entradas con severidad ≤ 3 (err / crit / alert / emerg).", "Advertencias: número de entradas con severidad 4 (warning).", - "Backups: número de entradas de tareas vzdump / PBS en el mismo intervalo." + "Backups: número de archivos de backup en los almacenamientos de backup configurados." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Registros", "logsIntro": "El journal del sistema, obtenido en el servidor con journalctl. La barra de herramientas ofrece estos filtros:", "logsFilters": [ - "Severidad: emerg / alert / crit / err / warning / notice / info / debug o cualquier combinación.", - "Rango temporal — últimos 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizado.", - "Búsqueda de texto libre: subcadena o expresión regular (journalctl --grep).", - "Filtro de unidad: restringe a una unidad systemd concreta (pveproxy.service, nginx.service, …)." + "Nivel: Todos los niveles, Error, Advertencia o Info.", + "Rango temporal: 1 día / 3 días / 1 semana / 2 semanas / 1 mes, o un número personalizado de días (hasta 90).", + "Búsqueda de texto libre: subcadena sin distinguir mayúsculas de minúsculas sobre mensaje, servicio, PID, hostname y unidad, aplicada en el navegador.", + "Filtro de servicio: restringe a un servicio (el SYSLOG_IDENTIFIER del journal)." ], "logsRowsAfter": "Cada fila muestra timestamp, insignia de severidad, unidad de origen y el mensaje. Los mensajes largos se colapsan con un conmutador \"mostrar más\". La acción Download empaqueta el filtro actual en un único archivo .txt vía GET /api/logs/download — útil cuando quieres compartir un trozo del journal con alguien.", "logDetailsModalTitle": "Modal Log Details", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "MaxLevelStore de journald", "maxLevelStoreBody": "En una instalación nueva de Proxmox, journald usa por defecto MaxLevelStore=warning, que descarta los mensajes info. Monitor lo detecta al arrancar y añade un archivo de configuración complementario (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) con el umbral info para conservar los mensajes informativos y los de mayor gravedad. Esto no incluye debug.", "backupsTitle": "Backups", - "backupsBody": "Historial de tareas de Proxmox filtrado a las entradas relacionadas con backup. Una fila por tarea (vzdump, transferencias PBS, Garbage Collect, Verify) con el estado (OK / WARNINGS / ERROR), el guest implicado, el almacenamiento de origen, la duración y el UPID. Pulsa una fila para cargar el log completo de la tarea vía GET /api/task-log/<upid> — los mismos datos que Proxmox expone a través de Datacenter → Tasks, acotado a backups.", + "backupsBody": "Los archivos de backup de cada almacenamiento con capacidad de backup (dir, NFS, CIFS, PBS), leídos con pvesh get /nodes/localhost/storage/<id>/content. Las tarjetas de arriba muestran el número de VMs y LXC y el tamaño total; debajo, una fila por archivo con tipo, almacenamiento, tamaño y fecha. La restauración se hace en la interfaz web de Proxmox.", "notificationsTitle": "Notificaciones", - "notificationsBody1": "Todas las notificaciones enviadas por Monitor: Telegram, Discord, correo electrónico, Gotify, ntfy, Slack, Teams y webhook. Cada fila muestra fecha y hora, canal, tipo de evento, severidad, título y cuerpo generados y, si la IA está activa, un selector para comparar su reescritura con el original.", - "notificationsBody2": "Usa esta pestaña para verificar la entrega de un canal y comparar la reescritura de IA con la plantilla base. Los canales se configuran en la página detallada de Notificaciones." + "notificationsBody1": "Actividad de notificaciones de Proxmox: líneas del journal de servicios de Proxmox que mencionan notificaciones, correo, webhooks o alertas, los destinos de /etc/pve/notifications.cfg y las tareas de backup de la lista de tareas del cluster. Las filas de tareas de backup permiten descargar el log completo de la tarea. El historial de lo que el propio Monitor envió está en Ajustes → Notificaciones → Historial de notificaciones.", + "notificationsBody2": "Usa esta pestaña para comprobar qué está haciendo el propio sistema de notificaciones de Proxmox. Los canales del Monitor se configuran en la página detallada de Notificaciones." }, "dataCollected": { "heading": "Cómo se recopilan los datos", @@ -64,7 +64,7 @@ { "subtab": "Logs (filtro en vivo)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> con filtros de severidad, unidad y búsqueda aplicados en el servidor." + "source": "La pestaña pide /api/logs?since_days=N; los filtros de nivel, servicio y texto se aplican en el navegador. La API también acepta priority y service, que la pestaña todavía no usa." }, { "subtab": "Descargar", @@ -74,17 +74,17 @@ { "subtab": "Backups", "endpoint": "/api/backups", - "source": "Historial de tareas PVE filtrado por vzdump, transferencias PBS, Garbage Collect, Verify." + "source": "Archivos de backup listados desde cada almacenamiento de backup con pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Detalles de una tarea de backup", + "subtab": "Log de tareas de backup (Notificaciones)", "endpoint": "/api/task-log/<upid>", "source": "Log completo de la tarea en texto plano leído de /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Historial de notificaciones", - "endpoint": "/api/notifications/history", - "source": "Tabla SQLite notification_history, alimentada por el bucle de envío." + "subtab": "Notificaciones", + "endpoint": "/api/notifications", + "source": "journalctl --grep sobre unidades de Proxmox, /etc/pve/notifications.cfg y tareas de backup de pvesh get /cluster/tasks." } ], "apiIntro": "Tanto el filtro en vivo como las descargas también son accesibles vía API:", diff --git a/web/messages/es/docs/monitor/dashboard/system-overview.json b/web/messages/es/docs/monitor/dashboard/system-overview.json index 90d47653..d7e9f185 100644 --- a/web/messages/es/docs/monitor/dashboard/system-overview.json +++ b/web/messages/es/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Cada anillo, barra y minigráfico usa la misma escala: verde por debajo de Advertencia, ámbar entre Advertencia y Crítico, rojo desde Crítico. Valores recomendados incluidos con ProxMenux:", "thresholdsItems": [ "Uso de CPU: advertencia 85 %, crítico 95 %.", - "Memoria: advertencia 85 %, crítico 95 %. Swap también activa Crítico al 5 % de uso; un host Proxmox sano debería usarlo rara vez.", + "Memoria: advertencia 85 %, crítico 95 %. Swap activa Crítico solo cuando el uso de swap supera el 80 % y la RAM disponible está por debajo del 15 %.", "Temperatura de CPU: advertencia 80 °C, crítico 90 °C." ], "thresholdsOutro": "Los valores se configuran por host; Ajustes → Umbrales del monitor de salud documenta y centraliza su ajuste.", @@ -58,7 +58,7 @@ "intro": "Las tarjetas Uso de CPU y Memoria son pulsables. Abren una lista ordenable con los 25 procesos principales, por uso de CPU desde la primera tarjeta o por memoria residente desde la segunda.", "listTitle": "El diálogo con la lista", "listItems": [ - "Actualización automática: la lista se actualiza cada 5 segundos mientras está abierta y deja de consultar datos al cerrar.", + "Actualización automática: la lista se actualiza cada 3 segundos mientras está abierta y deja de consultar datos al cerrar.", "Filtro: el buscador acota la lista por comando, usuario o PID.", "Barra en línea — la columna de la métrica principal dibuja una barra pequeña escalada al mayor valor de la lista filtrada, para que el orden siga siendo visible aunque ningún proceso esté cerca del 100 %.", "Layout móvil — por debajo de 640 px las columnas PID y User se ocultan para que Command, CPU % y Memory sigan cabiendo en la pantalla de un teléfono sin scroll horizontal." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Medio: gráficas de métricas del nodo", - "body1": "Bajo las tarjetas está NodeMetricsCharts, con gráficas históricas de CPU, memoria y E/S de disco del almacén RRD de Proxmox mediante /api/node/metrics. El selector permite 1 hora / 24 horas / 7 días / 30 días / 1 año; la resolución baja al ampliar el intervalo para mantener la fluidez.", + "body1": "Bajo las tarjetas está NodeMetricsCharts, con gráficas históricas de CPU, memoria y E/S de disco del almacén RRD de Proxmox mediante /api/node/metrics. El selector permite 1 hora / 24 horas / 7 días / 30 días; la resolución baja al ampliar el intervalo para mantener la fluidez.", "body2": "Son las mismas gráficas que la UI web de Proxmox renderiza para un nodo, simplemente consolidadas en el tema oscuro del Monitor y alineadas con el resto de paneles." }, "bottom": { diff --git a/web/messages/es/docs/monitor/dashboard/vms-lxcs.json b/web/messages/es/docs/monitor/dashboard/vms-lxcs.json index c8ee65c2..986e3eda 100644 --- a/web/messages/es/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/es/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Etiqueta de destino — el almacenamiento donde vive (PBS-Cloud, PBS-Local, NFS-Backup, …) coloreada por estado.", "Tamaño: tamaño final en disco del backup." ], - "backupsOutro": "+ Crear backup inicia un backup en el almacenamiento marcado «Backup target» en Proxmox. Para restaurar usa la interfaz web de Proxmox; Monitor muestra los backups recientes del invitado y permite crearlos.", + "backupsOutro": "+ Crear backup abre un diálogo para elegir el almacenamiento, el modo (snapshot / suspend / stop), la protección y las notas antes de iniciar un vzdump. Para restaurar usa la interfaz web de Proxmox; Monitor muestra los backups recientes del invitado y permite crearlos.", "firewallTitle": "Pestaña 7 — Cortafuegos", "firewallIntro": "Lee el registro del cortafuegos de cada invitado directamente del host, sin servicio extra ni consultas periódicas. La pestaña siempre aparece; el contenido depende de que el cortafuegos esté activado y de que alguna regla registre paquetes.", "firewallItems": [ diff --git a/web/messages/es/docs/monitor/health-monitor.json b/web/messages/es/docs/monitor/health-monitor.json index 7e3a2071..b72116f8 100644 --- a/web/messages/es/docs/monitor/health-monitor.json +++ b/web/messages/es/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "El indicador refleja la categoría más grave", "pillBody": "El color de la cabecera del panel es la severidad más alta entre las diez categorías: cualquier CRITICAL → rojo, si no cualquier WARNING → amarillo, si no cualquier INFO → azul, si no verde. La misma lógica dirige el punto del favicon y el badge del PWA.", "updateNowTitle": "Botón Update Now en la cabecera de Overview", - "updateNowBody1": "Cuando la categoría Actualizaciones del sistema reporta una o más actualizaciones pendientes, la cabecera de Overview renderiza un botón Update Now al lado de la pildora de salud. El botón abre una modal que ejecuta el mismo flujo del lado del host que ProxMenux → Settings post-install Proxmox → Proxmox System Update: higiene de repos, apt full-upgrade vía el worker seguro update-pve-safe.sh, recompilación DKMS automática de los drivers gestionados por ProxMenux cuando aterriza un kernel nuevo, autoremove / autoclean y prompt de reinicio si el kernel cambió. Las líneas de progreso van llegando a la modal según las va imprimiendo el worker.", - "updateNowBody2": "Al terminar la ejecución, cerrar la modal llama a GET /api/health/details?refresh=1, que invalida la caché del endpoint de health antes de servir. La fila de actualizaciones pendientes y la severidad de la pildora se recomputan al momento a partir del nuevo estado de paquetes, así que el badge desaparece sin esperar al siguiente ciclo de cinco minutos. Cuando el host ya está al día el botón queda oculto — sin ruido visual en un sistema sano." + "updateNowBody1": "Cuando la categoría Actualizaciones del sistema reporta una o más actualizaciones pendientes, la cabecera de Overview renderiza un botón Update Now al lado de la pildora de salud. El botón abre una modal que ejecuta el mismo flujo del lado del host que ProxMenux → Utilidades y herramientas → Actualización del sistema Proxmox: higiene de repos, apt full-upgrade vía el worker seguro update-pve-safe.sh, recompilación DKMS automática de los drivers gestionados por ProxMenux cuando aterriza un kernel nuevo, autoremove / autoclean y prompt de reinicio si el kernel cambió. Las líneas de progreso van llegando a la modal según las va imprimiendo el worker.", + "updateNowBody2": "Al terminar la ejecución, cerrar la modal llama a GET /api/health/full?refresh=1, que invalida la caché del endpoint de health antes de servir. La fila de actualizaciones pendientes y la severidad de la pildora se recomputan al momento a partir del nuevo estado de paquetes, así que el badge desaparece sin esperar al siguiente ciclo de cinco minutos. Cuando el host ya está al día el botón queda oculto — sin ruido visual en un sistema sano." }, "dismiss": { "heading": "Hacer dismiss de alertas y la Suppression Duration", diff --git a/web/messages/es/docs/monitor/index.json b/web/messages/es/docs/monitor/index.json index 6d56db73..29f00770 100644 --- a/web/messages/es/docs/monitor/index.json +++ b/web/messages/es/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "API REST e integraciones", "intro": "Los endpoints REST ofrecen datos de monitorización JSON por HTTP/HTTPS para widgets Homepage, sensores Home Assistant, pruebas Uptime Kuma y scripts. Grafana puede usar el exportador de texto Prometheus en /api/prometheus. Las peticiones se pueden hacer con curl.", - "tokens": "Los tokens API de larga duración (365 días) se generan en Configuración → Tokens de acceso API o mediante POST /api/auth/generate-api-token.", + "tokens": "Los tokens API de larga duración (365 días) se generan en Administración → Seguridad → Tokens API o mediante POST /api/auth/generate-api-token.", "bearer": "Envía tokens con Authorization: Bearer …. /api/health también espera la cabecera Bearer, así que las pruebas de disponibilidad necesitan un token read_only. Bajo /api/auth/* hay rutas públicas de configuración/inicio/estado y rutas protegidas de cuentas y tokens; no todas son anónimas.", "catalog": "El catálogo de endpoints, rotación de tokens y prácticas de seguridad están en Referencia de la API. Los ejemplos para Homepage, Home Assistant, Grafana, Uptime Kuma y cURL están en Integraciones." }, "serviceControl": { "heading": "Control del servicio", - "intro": "Monitor se gestiona como cualquier servicio systemd. También tiene dos entradas en la interfaz de texto ProxMenux bajo Configuración:", + "intro": "Monitor se gestiona como cualquier servicio systemd. También tiene tres entradas en la interfaz de texto ProxMenux bajo Configuración:", "codeComment": "# Control manual", "footer": "Consulta Configuración → ProxMenux Monitor para activar/desactivar el servicio y verificar su estado." }, diff --git a/web/messages/es/docs/monitor/integrations.json b/web/messages/es/docs/monitor/integrations.json index c31f56c6..2fbba824 100644 --- a/web/messages/es/docs/monitor/integrations.json +++ b/web/messages/es/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Autenticación: lo único que cada guía necesita", "intro": "La mayoría de los endpoints usados por estas integraciones están autenticados. Tienes dos formas de satisfacer ese requisito.", "optAtitle": "Opción A — API token (recomendado para integraciones)", - "optAbody1": "Entra en Ajustes → Seguridad → Tokens API. Pulsa Generar token, ponle un nombre, como homepage, home-assistant o prometheus, y cópialo: se muestra una sola vez. Caduca al año por defecto y puede revocarse individualmente. Úsalo para los clientes externos al navegador.", + "optAbody1": "Entra en Administración → Seguridad → Tokens API. Pulsa Generar nuevo token, ponle un nombre, como homepage, home-assistant o prometheus, introduce tu contraseña (y el código 2FA si está activado), pulsa Generar token y cópialo: se muestra una sola vez. Caduca al año por defecto y puede revocarse individualmente. Úsalo para los clientes externos al navegador.", "optAbody2": "A partir de ahí cada petición es simplemente:", "optBtitle": "Opción B — flujo de login (usuario + contraseña)", "optBbody": "Útil para scripts que se autentican como un usuario humano. El token devuelto es de corta duración; la mayoría de integraciones deberían preferir la Opción A.", "outro": "El campo TOTP solo hace falta con la autenticación en dos pasos activada. La rotación y revocación de tokens, la política de contraseñas y el registro de auditoría se explican en Acceso y autenticación.", "httpsTitle": "Usando HTTPS en lugar de HTTP", - "httpsIntro": "Cada guía de abajo usa http:// en las URLs para mantener los ejemplos cortos. Si has activado TLS en el Monitor (Settings → Security → SSL/HTTPS), cambia http:// por https:// en cada URL — ese es el único cambio. Dos notas específicas para ciertas herramientas:", + "httpsIntro": "Cada guía de abajo usa http:// en las URLs para mantener los ejemplos cortos. Si has activado TLS en el Monitor (Administración → Seguridad → SSL/HTTPS), cambia http:// por https:// en cada URL — ese es el único cambio. Dos notas específicas para ciertas herramientas:", "httpsItems": [ "Certificados autofirmados. La integración rest: de Home Assistant verifica TLS por defecto. Si el Monitor está usando su propio cert autofirmado, añade verify_ssl: false a cada bloque REST (junto a scan_interval:), o importa la CA del Monitor al trust store de HA. Lo mismo para cualquier herramienta que rechace certs no confiables.", "Prometheus ya tiene scheme: https listo en la configuración de scrape de abajo; descomenta / déjalo como https si TLS está activado en el Monitor." @@ -43,7 +43,7 @@ "basicTitle": "Widget básico — sin autenticación", "basicIntro": "Usa esto cuando ProxMenux Monitor esté en una red de confianza y aún no hayas activado la autenticación en el lado del Monitor. La entrada más simple posible en services.yaml:", "authedTitle": "Widget autenticado", - "authedIntro": "Genera un API token en Settings → Security → API Tokens en el Monitor, cópialo y pégalo en la cabecera Authorization de abajo — reemplaza el token de ejemplo mostrado tras Bearer con el que acabas de copiar:", + "authedIntro": "Genera un API token en Administración → Seguridad → Tokens API en el Monitor, cópialo y pégalo en la cabecera Authorization de abajo — reemplaza el token de ejemplo mostrado tras Bearer con el que acabas de copiar:", "authedOutro": "Reinicia Homepage y la tarjeta se enciende con valores en vivo. Reutiliza el mismo token en todos los widgets Homepage que apunten al mismo host de ProxMenux Monitor.", "multiTitle": "Setup multi-widget — sistema, almacenamiento, red", "multiIntro": "Para una vista más rica, renderiza tres tarjetas separadas respaldadas por distintos endpoints — una para métricas del sistema, una para almacenamiento, una para red. Usa el mismo token en cada tarjeta; es la misma instancia del Monitor.", diff --git a/web/messages/es/docs/monitor/notifications.json b/web/messages/es/docs/monitor/notifications.json index e9dd8e17..30710673 100644 --- a/web/messages/es/docs/monitor/notifications.json +++ b/web/messages/es/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Reescritura con IA opcional", - "body1": "Los eventos aptos pueden reescribirse con un LLM. Los resultados backup_complete y backup_fail lo omiten. La IA está desactivada por defecto y se ejecuta en el hilo de envío. Si falla o agota el tiempo, se usa la plantilla original.", + "body1": "Los eventos aptos pueden reescribirse con un LLM. Los resultados backup_complete y backup_fail no se reescriben; con las sugerencias de IA activadas, la IA solo añade una explicación cuando un backup informa de errores. La IA está desactivada por defecto y se ejecuta en el hilo de envío. Si falla o agota el tiempo, se usa la plantilla original.", "body2": "Admite OpenAI, Anthropic, Google Gemini, Groq, OpenRouter y Ollama local, con detalle por canal (brief, standard, detailed), idioma, modo de instrucciones (default o custom) e instrucciones propias. Guía y ejemplos en Asistente de IA.", "privacyTitle": "Nota de privacidad", "privacyBody": "La petición de IA puede incluir título, severidad, texto, instrucciones del sistema o propias y contexto, con nombres de host, IP, usuarios, errores y registros. Se envía al destino elegido. Ollama solo procesa localmente con servidor y modelo locales; un servidor remoto o modelo en la nube envía datos fuera del host. Desactiva la reescritura o usa un servidor y modelo locales controlados si el contenido debe permanecer en la red." diff --git a/web/messages/es/docs/security/ssl-letsencrypt.json b/web/messages/es/docs/security/ssl-letsencrypt.json index f7710e7a..2961e83c 100644 --- a/web/messages/es/docs/security/ssl-letsencrypt.json +++ b/web/messages/es/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Qué cubre esta página", - "body": "Cómo cambiar el Monitor de HTTP a HTTPS en el panel Settings → Security, a qué apunta realmente cada fuente de certificado en disco, cómo se comporta la opción de Proxmox cuando el host tiene un certificado Let's Encrypt y cómo establecer rutas personalizadas si gestionas certificados fuera de Proxmox." + "body": "Cómo cambiar el Monitor de HTTP a HTTPS en el panel Administración → Seguridad, a qué apunta realmente cada fuente de certificado en disco, cómo se comporta la opción de Proxmox cuando el host tiene un certificado Let's Encrypt y cómo establecer rutas personalizadas si gestionas certificados fuera de Proxmox." }, "wheresetting": { "heading": "Ubicación del ajuste", - "body": "Abre Monitor y ve a Ajustes → Seguridad → HTTPS / SSL. El panel muestra HTTP o HTTPS y, si HTTPS no está activo, las fuentes de certificados detectadas.", - "imageAlt": "Panel Settings → Security → HTTPS / SSL en el Monitor mostrando el estado HTTPS desactivado, el certificado de Proxmox autodetectado (subject, issuer, expiry) y la opción Use Custom Certificate", - "caption": "Panel Ajustes → Seguridad → HTTPS / SSL antes de activar HTTPS. Monitor muestra el certificado que usa Proxmox y permite elegirlo con un clic." + "body": "Abre Monitor y ve a Administración → Seguridad → SSL/HTTPS. El panel muestra HTTP o HTTPS y, si HTTPS no está activo, las fuentes de certificados detectadas.", + "imageAlt": "Panel Administración → Seguridad → SSL/HTTPS en el Monitor mostrando el estado HTTPS desactivado, el certificado de Proxmox autodetectado (subject, issuer, expiry) y la opción Use Custom Certificate", + "caption": "Panel Administración → Seguridad → SSL/HTTPS antes de activar HTTPS. Monitor muestra el certificado que usa Proxmox y permite elegirlo con un clic." }, "twoways": { "heading": "Dos formas de habilitar HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Cambiar el Monitor a HTTPS", - "bodyRich": "Una vez que /etc/pve/local/pveproxy-ssl.pem está firmado por Let's Encrypt, abre Ajustes → Seguridad → HTTPS / SSL, comprueba que el emisor sea Let's Encrypt y no la CA local de Proxmox, y pulsa Usar certificado de Proxmox. Monitor se reinicia y la siguiente carga usa HTTPS en 8008 con una cadena de confianza pública. Las renovaciones ACME posteriores se validan y seleccionan en la siguiente conexión TLS nueva, sin sondeo periódico ni reinicio del servicio por renovación. Actualizar certificado sigue disponible en Seguridad como acción explícita de diagnóstico y recuperación." + "bodyRich": "Una vez que /etc/pve/local/pveproxy-ssl.pem está firmado por Let's Encrypt, abre Administración → Seguridad → SSL/HTTPS, comprueba que el emisor sea Let's Encrypt y no la CA local de Proxmox, y pulsa Usar certificado de Proxmox. Monitor se reinicia y la siguiente carga usa HTTPS en 8008 con una cadena de confianza pública. Las renovaciones ACME posteriores se validan y seleccionan en la siguiente conexión TLS nueva, sin sondeo periódico ni reinicio del servicio por renovación. Actualizar certificado sigue disponible en Seguridad como acción explícita de diagnóstico y recuperación." }, "custom": { "heading": "Certificado personalizado — cuándo usarlo", diff --git a/web/messages/fr/docs/monitor/access-auth.json b/web/messages/fr/docs/monitor/access-auth.json index 8932f21e..39c80222 100644 --- a/web/messages/fr/docs/monitor/access-auth.json +++ b/web/messages/fr/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Atteindre le tableau de bord", - "intro": "Le ProxMenux Monitor se lie au 0.0.0.0:8008. Il y a trois façons communes d'y parvenir:", + "intro": "Le ProxMenux Monitor écoute sur le TCP 8008 sur toutes les interfaces (::, IPv4 et IPv6). Il y a trois façons communes d’y accéder :", "outro": "L’accès direct correspond à l’unité systemd par défaut. Le proxy inverse et Secure Gateway sont décrits ci-dessous. La confiance accordée aux IP clientes de X-Forwarded-For nécessite PROXMENUX_TRUST_PROXY=1 et un proxy que vous contrôlez. La seule présence de X-Forwarded-Proto ou X-Forwarded-Host n’active pas la confiance envers le proxy. Sur les ports 80/443, le frontend utilise des URL relatives /api/* ; sur tout autre port, il appelle le port 8008 du même nom d’hôte." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — ce qu'il contient et comment il est protégé", "authJsonBody": "Les données d’authentification se trouvent dans /root/.config/proxmenux-monitor/auth.json, mode 0600, propriétaire root. Le fichier contient des hachages PBKDF2 et des secrets cryptographiques (jwt_secret, totp_secret), jamais le mot de passe en clair. Chiffrez les destinations de sauvegarde ou de réplication et n’ajoutez jamais ce fichier au contrôle de version.", "rotateTitle": "La rotation de jwt_secret invalide tous les JWT existants", - "rotateBody": "Si auth.json est recréé ou restauré avec un autre secret, jwt_secret change. Les anciens JWT de session et d’API échouent alors avec « Invalid or expired token ». L’interface affiche Invalide — régénérer pour les jetons concernés. Révoquez-les et remplacez-les aussi dans Home Assistant, les scripts et les autres clients.", + "rotateBody": "Si auth.json est recréé ou restauré avec un autre secret, jwt_secret change. Les anciens JWT de session et d’API échouent alors avec « Invalid or expired token ». L’interface marque en rouge les jetons d’API concernés, avec un badge indiquant de les révoquer et d’en générer de nouveaux. Remplacez-les aussi dans Home Assistant, les scripts et les autres clients.", "recoverTitle": "Récupération d'un mot de passe perdu", "recoverIntro": "Il n'y a pas de flux \"mot de passe oublié\" en ligne — par conception, puisque le tableau de bord fonctionne sur le propre hôte de l'opérateur et le chemin de récupération est l'accès shell à cet hôte. ProxMenux envoie une réinitialisation guidée dans le menu de configuration afin que vous n'ayez pas à éditer manuellement auth.json:", "survivesTitle": "Ce qui survit à la réinitialisation", @@ -284,14 +284,14 @@ "heading": "Jetons API de longue durée", "intro": "Les sessions expirent après 24 heures. Pour Homepage, Home Assistant, Grafana ou Uptime Kuma, créez un jeton API valable 365 jours. Ce JWT utilise le même secret de signature ; le champ token_name permet de le suivre et de le révoquer individuellement.", "imageAlt": "Panneau de jetons API montrant la liste de jetons avec nom, préfixe, date de création et expiration", - "imageCaption": "Liste des jetons dans les paramètres : nom, préfixe avec quatre derniers caractères d’identification, dates de création et d’expiration, action de révocation.", + "imageCaption": "Liste des jetons d’API sous Administrateur → Sécurité : nom, préfixe avec quatre derniers caractères d’identification, dates de création et d’expiration, action de révocation.", "generateTitle": "Générer un jeton", "generateIntro": "Dans le tableau de bord:", "generateSteps": [ - "Ouvrez Sécurité → Jetons d’accès API.", + "Ouvrez Administrateur → Sécurité → Jetons API et cliquez sur Générer un nouveau jeton.", "Tapez un nom descriptif (p.ex. \"Home Assistant\").", "Entrez de nouveau votre mot de passe. Si 2FA est activé, aussi le code à chiffres 6 actuel.", - "Cliquez sur Générer le jeton. Il s’affiche une seule fois : copiez-le immédiatement." + "Cliquez sur Générer un jeton. Le jeton n’apparaît qu’une fois : copiez-le immédiatement." ], "generateCli": "Depuis la ligne de commande :", "useTitle": "Utiliser un jeton", @@ -310,7 +310,7 @@ "intro": "Deux chemins vers TLS:", "items": [ "Proxy inverse recommandé. Terminez TLS sur Nginx / Caddy / Traefik et transmettez HTTP au processus Flask sur le port 8008. Exemples ci-dessous.", - "HTTPS direct dans l’AppImage. Configurez un certificat via POST /api/ssl/configure (interface : Paramètres → SSL). HTTPS utilise gevent.pywsgi avec son gestionnaire standard ; flask-sock gère WebSocket pour WSS. Les chemins des certificats sont enregistrés dans la configuration SSL." + "HTTPS direct dans l’AppImage. Configurez un certificat via POST /api/ssl/configure (interface : Administrateur → Sécurité → SSL / HTTPS). HTTPS utilise gevent.pywsgi avec son gestionnaire standard ; flask-sock gère WebSocket pour WSS. Les chemins des certificats sont enregistrés dans la configuration SSL." ], "calloutTitle": "Limites directes de HTTPS", "calloutBody": "Monitor peut utiliser un certificat géré par Proxmox ou des fichiers personnalisés. Il n’émet pas lui-même de certificats ACME. Pour l’émission et le renouvellement automatiques, utilisez Proxmox ACME ou un proxy inverse Caddy, Traefik ou Nginx et veillez au chargement des certificats renouvelés." diff --git a/web/messages/fr/docs/monitor/ai-assistant.json b/web/messages/fr/docs/monitor/ai-assistant.json index 41862525..496db268 100644 --- a/web/messages/fr/docs/monitor/ai-assistant.json +++ b/web/messages/fr/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "Assistant IA", - "description": "La reformulation IA facultative transforme les modèles de notification admissibles en messages clairs : niveaux de détail par canal, treize langues dans l’interface, instructions personnalisées, bibliothèque communautaire publique et contexte enrichi. Les rapports backup_complete et backup_fail ignorent entièrement l’IA.", + "description": "La reformulation IA facultative transforme les modèles de notification admissibles en messages clairs : niveaux de détail par canal, treize langues dans l’interface, instructions personnalisées, bibliothèque communautaire publique et contexte enrichi. Les rapports backup_complete et backup_fail ne sont jamais reformulés ; avec les suggestions d’IA activées, l’IA ajoute seulement une explication lorsqu’une sauvegarde signale des erreurs.", "section": "Moniteur ProxMenux" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Les fournisseurs commerciaux facturent les tokens. Un token représente environ quatre caractères anglais ou trois quarts de mot. La phrase anglaise \"Backup completed on storage local-bak\" compte environ huit tokens. Dix lignes de journal peuvent représenter 200 à 400 tokens selon leur contenu technique.", "intro2": "Deux choses sont facturées à chaque appel :", "items": [ - "Tokens d’entrée : instructions système et message utilisateur, avec gravité, titre, texte du modèle et contexte enrichi. Leur nombre dépend des instructions et de l’événement. Chaque canal reformulé peut consommer ses propres tokens ; les rapports de sauvegarde terminée ou échouée ignorent l’IA.", + "Tokens d’entrée : instructions système et message utilisateur, avec gravité, titre, texte du modèle et contexte enrichi. Leur nombre dépend des instructions et de l’événement. Chaque canal reformulé peut consommer ses propres tokens ; les rapports de sauvegarde terminée ou échouée ne consomment des tokens que lorsque l’IA explique des erreurs de sauvegarde.", "Tokens de sortie : la réponse du modèle. Monitor les limite avec max_tokens. Le plafond est une limite, pas une consommation fixe : pour 250 tokens produits avec un plafond de 1500, vous payez 250." ], "capsIntro": "Ce sont les plafonds réels que le régulateur applique, pris directement à partir de AI_DETAIL_TOKENS dans notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "La fenêtre de l’application : six fiches, une par fournisseur, avec les descriptions ci-dessous.", "groq": { "heading": "Groq", - "tagline": "Très rapide, généreux niveau libre (30 req/min). Idéal pour commencer.", + "tagline": "Très rapide, avec un généreux niveau gratuit. Un bon point de départ.", "items": [ "Clé API : console.groq.com/keys", "Exemples de la liste de modèles fournie : allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Niveau de détail par canal", - "intro": "Telegram, Discord, Gotify et e-mail ont chacun un choix de détail. Trois valeurs déterminent le plafond de tokens et les instructions du mode par défaut :", + "intro": "Chacun des six canaux (Telegram, Discord, Gotify, e-mail, Pushover, Apprise) a son propre choix de détail. Trois valeurs déterminent le plafond de tokens et les instructions du mode par défaut :", "headerLevel": "Niveau", "headerLabel": "Étiquette UI", "headerCap": "Limite de production", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Valeurs par défaut à la première installation :", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "Courriel — detailed. Le courriel est le canal où vous voulez généralement l'image complète pour l'archivage." ], "emailTitle": "Le niveau de détail du courriel ajoute l'original", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Note sur les modèles", - "body1": "L’IA reçoit le texte d’un modèle, pas les données brutes de l’événement. vm_start, auth_fail et health_degraded ont des modèles dans notification_templates.py. L’IA reformule les sorties admissibles ; backup_complete et backup_fail conservent leurs rapports déterministes sans IA.", + "body1": "L’IA reçoit le texte d’un modèle, pas les données brutes de l’événement. vm_start, auth_fail et health_degraded ont des modèles dans notification_templates.py. L’IA reformule les sorties admissibles ; backup_complete et backup_fail conservent leurs rapports déterministes ; avec les suggestions d’IA activées, l’IA ajoute seulement une explication lorsque la sauvegarde signale des erreurs.", "body2": "Deux implications pratiques: l'IA ne voit jamais un nom d'hôte ou VMID qu'il doit inventer — ces champs sont placés par le modèle avant la réécriture. Et si l'IA est désactivé, le corps modèle est ce qui est envoyé directement. La page Notifications documente le pipeline d'expédition en entier et est la bonne référence pour tout ce qui arrive à un événement avant qu'il atteigne ce calque." }, "privacy": { diff --git a/web/messages/fr/docs/monitor/api-reference.json b/web/messages/fr/docs/monitor/api-reference.json index c11019c5..6e4dddd6 100644 --- a/web/messages/fr/docs/monitor/api-reference.json +++ b/web/messages/fr/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Données système étendues de l’en-tête : métriques générales et heure de démarrage." + "use": "Informations d’en-tête légères : nom d’hôte, durée de fonctionnement et état de santé en cache. Public, aucun jeton requis." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Entrées de journaux filtrées. Demande: ?level=&service=&limit=." + "use": "Entrées de journaux filtrées. Demande : ?priority=&service=&limit=&since_days= (priority 0-7, since_days jusqu’à 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Flux d'événements internes — le même qui alimente les notifications." + "use": "Tâches et événements récents du cluster Proxmox issus de pvesh get /cluster/tasks. Demande : ?limit= (50 par défaut)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Émet un événement personnalisé. Corps : '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Émet un événement personnalisé. Corps : '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/fr/docs/monitor/architecture.json b/web/messages/fr/docs/monitor/architecture.json index 71a14829..6873337a 100644 --- a/web/messages/fr/docs/monitor/architecture.json +++ b/web/messages/fr/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root : le service utilise les privilèges root pour SMART, pvesh et la gestion ZFS. Les processus du terminal web héritent de ces droits.", "Restart=on-failure avec attente de dix secondes : le service redémarre automatiquement après un échec.", - "After=network.target : ordonne le démarrage après cette cible ; ne garantit ni adresse IP, ni DNS, ni connexion externe." + "After=network.target pve-cluster.service : ordonne le démarrage après la cible réseau et le système de fichiers du cluster Proxmox ; ne garantit ni adresse IP attribuée, ni DNS, ni connexion externe." ], "inspectTitle": "Inspecter l’unité actuelle" }, diff --git a/web/messages/fr/docs/monitor/dashboard/hardware.json b/web/messages/fr/docs/monitor/dashboard/hardware.json index 86a0428e..d5d7e1ff 100644 --- a/web/messages/fr/docs/monitor/dashboard/hardware.json +++ b/web/messages/fr/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "Statut UPS", "subHeading": "(conditionnel)", - "body": "Apparaît avec un serveur NUT (Network UPS Tools) configuré et joignable. Affiche état (secteur / batterie / charge / batterie faible), niveau de batterie, autonomie estimée, taux de charge de l'onduleur, tension d'entrée, modèle et firmware. Les données alimentent aussi Sécurité et certificats du moniteur de santé : le passage sur batterie est immédiatement signalé." + "body": "Apparaît avec un serveur NUT (Network UPS Tools) configuré et joignable. Affiche état (secteur / batterie / charge / batterie faible), niveau de batterie, autonomie estimée, taux de charge de l’onduleur, tension d’entrée, modèle et firmware." }, "dataCollected": { "heading": "Comment les données sont collectées", diff --git a/web/messages/fr/docs/monitor/dashboard/index.json b/web/messages/fr/docs/monitor/dashboard/index.json index 4884cc4c..4f530d9b 100644 --- a/web/messages/fr/docs/monitor/dashboard/index.json +++ b/web/messages/fr/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Shell vers l'hôte ou toute VM/CT dans le navigateur, avec xterm.js via WebSockets." + "owns": "Shell dans le navigateur sur l’hôte Proxmox, avec xterm.js via WebSockets. Les consoles LXC s’ouvrent depuis l’onglet VM et LXC." }, { "name": "Sécurité", diff --git a/web/messages/fr/docs/monitor/dashboard/security.json b/web/messages/fr/docs/monitor/dashboard/security.json index 26511643..8449dba8 100644 --- a/web/messages/fr/docs/monitor/dashboard/security.json +++ b/web/messages/fr/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL/HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 sur /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/fr/docs/monitor/dashboard/settings.json b/web/messages/fr/docs/monitor/dashboard/settings.json index ee877c2b..b22c1634 100644 --- a/web/messages/fr/docs/monitor/dashboard/settings.json +++ b/web/messages/fr/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Unités réseau", "imageAlt": "Carte Unités réseau avec le sélecteur d’affichage sur Octets", "imageCaption": "Choisissez les bits ou les octets par seconde pour toutes les vitesses réseau du tableau de bord.", - "body": "Affiche le débit en bits par seconde (Mbps/Gbps) ou octets par seconde (MB/s/GB/s). Les bits sont utilisés par défaut comme dans les spécifications réseau ; les transferts de fichiers utilisent souvent les octets. Graphiques, étiquettes et infobulles changent immédiatement sans rechargement." + "body": "Affiche le débit réseau dans tout le tableau de bord en bits par seconde (Mbps / Gbps) ou octets par seconde (MB/s / GB/s). Les octets sont utilisés par défaut, comme dans la plupart des outils de transfert de fichiers ; les bits sont ceux dont les fabricants de cartes réseau et les FAI étiquettent leurs produits. Le choix est enregistré dans le navigateur, chacun conserve donc le sien. Graphiques, étiquettes et infobulles qui affichent un débit réseau changent immédiatement sans rechargement." }, "health": { "heading": "Moniteur de santé", @@ -203,7 +203,7 @@ "heading": "Détection de mise à jour LXC", "imageAlt": "Carte de détection des mises à jour LXC avec interrupteur pour les paquets en attente des conteneurs Debian, Ubuntu et Alpine actifs", "imageCaption": "Interrupteur de l’analyse périodique par apt list --upgradable / apk list -u dans les CT actifs. Activé par défaut. Le réglage associé dans Notifications → Services apparaît lorsque la détection est active.", - "intro": "L’interrupteur entre Seuils et Notifications contrôle l’analyse LXC. Activé, il interroge les gestionnaires de paquets des CT actifs ; Matériel affiche les résultats et alimente lxc_updates_available. Désactivé, il arrête ses appels pct exec et supprime les entrées LXC de managed_installs.json ; /api/managed-installs cesse d’afficher cet état sans attendre 24 h.", + "intro": "L’interrupteur entre Seuils et Notifications contrôle l’analyse LXC. Activé, il interroge les gestionnaires de paquets des CT actifs ; l’onglet VM et LXC affiche les résultats et alimente lxc_updates_available. Désactivé, il arrête ses appels pct exec et supprime les entrées LXC de managed_installs.json ; /api/managed-installs cesse d’afficher cet état sans attendre 24 h.", "whatRunsTitle": "Ce que l’analyse exécute", "whatRunsIntro": "Pour chaque CT à l’état running avec un gestionnaire de paquets pris en charge :", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Cette section active les notifications de ProxMenux Monitor et la reformulation par IA. Activer les notifications démarre l’envoi en arrière-plan, enregistre une cible webhook Proxmox VE pour intégrer ses événements et ouvre le formulaire des canaux : Telegram, Discord, courriel, Gotify et autres. La reformulation par IA figure dans une section avancée repliable du même panneau.", "body2": "Des pages dédiées expliquent les options : canaux, événements, messages enrichis, nom affiché, envoi avec dédoublonnage, temporisation, regroupement et heures silencieuses, webhook PVE, fournisseurs d’IA et modes d’instructions :", "items": [ - "Notifications : configuration des canaux (Telegram, Discord, Gotify, courriel et mots de passe d’application Gmail / Microsoft, ntfy, Slack, Teams et webhook générique), catégories d’événements, messages enrichis, nom affiché, envoi, webhook PVE, historique et API.", + "Notifications : configuration des canaux (Telegram, Discord, Gotify, courriel et mots de passe d’application Gmail / Microsoft, Pushover, et Apprise pour ntfy, Slack, Teams et d’autres services), catégories d’événements, messages enrichis, nom affiché, envoi, webhook PVE, historique et API.", "Assistant IA : fournisseurs (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modèles, instructions par défaut ou personnalisées, langue de sortie, niveau de détail par canal et suggestions d’IA." ] }, @@ -294,8 +294,8 @@ }, { "card": "Unités réseau", - "endpoint": "/api/settings", - "source": "Enregistré dans la table SQLite des paramètres du tableau de bord." + "endpoint": "localStorage", + "source": "Préférence du navigateur proxmenux-network-unit." }, { "card": "Durées du Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Exclusions de stockage / interface", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "Tables SQLite excluded_storages et excluded_interfaces." }, { diff --git a/web/messages/fr/docs/monitor/dashboard/storage.json b/web/messages/fr/docs/monitor/dashboard/storage.json index 7f5304ca..10662a9c 100644 --- a/web/messages/fr/docs/monitor/dashboard/storage.json +++ b/web/messages/fr/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Soutenu par trois sources", - "body": "Les stockages Proxmox viennent de pvesm status, ZFS de zpool status, les disques de lsblk + smartctl et les champs NVMe de nvme. L’onglet s’actualise environ toutes les 60 secondes ; ouvrir le détail demande une lecture SMART." + "body": "Les stockages Proxmox viennent de pvesm status, ZFS de zpool status, les disques de lsblk + smartctl et les champs NVMe de nvme. L’onglet s’actualise environ toutes les 30 secondes ; ouvrir le détail demande une lecture SMART." }, "thresholds": { "title": "Couleurs et seuils appliqués ici", diff --git a/web/messages/fr/docs/monitor/dashboard/system-logs.json b/web/messages/fr/docs/monitor/dashboard/system-logs.json index 80cf6b27..e9c55e6d 100644 --- a/web/messages/fr/docs/monitor/dashboard/system-logs.json +++ b/web/messages/fr/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Total des entrées — nombre de lignes dans la période du filtre actif.", "Erreurs — nombre de lignes de gravité ≤ 3 (err / crit / alert / emerg).", "Avertissements — nombre de lignes de gravité 4 (warning).", - "Sauvegardes — nombre de tâches vzdump / PBS dans la même période." + "Sauvegardes : nombre d’archives de sauvegarde sur les stockages de sauvegarde configurés." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Journaux", "logsIntro": "Le journal système, obtenu sur le serveur avec journalctl. Filtres disponibles dans la barre d'outils :", "logsFilters": [ - "Gravité — emerg / alert / crit / err / warning / notice / info / debug, ou toute combinaison.", - "Délais — dernier 5 min/ 15 min/ 1 h/ 6 h/ 24 h/ 7 d/sur mesure.", - "Recherche libre — sous-chaîne ou expression régulière (journalctl --grep).", - "Filtre par unité — limite les résultats à une unité systemd donnée (pveproxy.service, nginx.service, …)." + "Niveau : Tous niveaux, Erreur, Avertissement ou Informations.", + "Délais : 1 jour / 3 jours / 1 semaine / 2 semaines / 1 mois, ou un nombre de jours sur mesure (jusqu’à 90).", + "Recherche libre : sous-chaîne insensible à la casse dans le message, le service, le PID, le nom d’hôte et l’unité, appliquée dans le navigateur.", + "Filtre par service : limite les résultats à un service (le SYSLOG_IDENTIFIER du journal)." ], "logsRowsAfter": "Chaque ligne affiche l'horodatage, le badge de gravité, l'unité source et le message. Les longs messages s'effondrent avec un \"show more\" bascule. L'action Download regroupe le filtre actuel dans un seul fichier .txt via GET /api/logs/download — utile quand vous voulez partager une tranche de journal avec quelqu'un.", "logDetailsModalTitle": "Fenêtre Détails du journal", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Sur une nouvelle installation Proxmox, journald utilise par défaut MaxLevelStore=warning, ce qui écarte les messages info. Monitor le détecte au démarrage et ajoute un fichier de configuration complémentaire (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) avec le seuil info, pour conserver les messages informatifs et plus graves. Cela ne comprend pas debug.", "backupsTitle": "Sauvegardes", - "backupsBody": "Historique des tâches Proxmox limité aux sauvegardes. Une ligne par tâche (vzdump, transferts PBS, récupération de mémoire inutilisée, vérification), avec état (OK / WARNINGS / ERROR), invité concerné, stockage source, durée et UPID. Cliquez sur une ligne pour charger le journal complet via GET /api/task-log/<upid> : les mêmes données que dans Datacenter → Tâches, limitées aux sauvegardes.", + "backupsBody": "Les archives de sauvegarde de chaque stockage compatible avec les sauvegardes (dir, NFS, CIFS, PBS), lues avec pvesh get /nodes/localhost/storage/<id>/content. Les cartes en haut indiquent le nombre de VM et de LXC et la taille totale ; en dessous, une ligne par archive avec type, stockage, taille et date. La restauration se fait dans l’interface web de Proxmox.", "notificationsTitle": "Notifications", - "notificationsBody1": "Toutes les notifications envoyées par Monitor : Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams et webhook. Chaque ligne indique l'horodatage, le canal, le type d'événement, la gravité, le titre et le corps générés et, si l'IA est activée, un bouton pour comparer sa reformulation à l'original.", - "notificationsBody2": "Cet onglet permet de vérifier la bonne livraison par un canal et de comparer la reformulation de l'IA au texte du modèle. Les canaux se configurent sur la page détaillée Notifications." + "notificationsBody1": "Activité des notifications Proxmox : lignes de journal des services Proxmox qui mentionnent des notifications, des e-mails, des webhooks ou des alertes, les cibles de /etc/pve/notifications.cfg et les tâches de sauvegarde de la liste des tâches du cluster. Les lignes de tâche de sauvegarde permettent de télécharger le journal complet de la tâche. L’historique de ce que Monitor lui-même a envoyé se trouve dans Paramètres → Notifications → Historique des notifications.", + "notificationsBody2": "Cet onglet permet de vérifier ce que fait le système de notification propre à Proxmox. Les canaux de Monitor se configurent sur la page détaillée Notifications." }, "dataCollected": { "heading": "Comment les données sont collectées", @@ -64,7 +64,7 @@ { "subtab": "Journaux (filtre en direct)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> avec filtres de gravité, unité et recherche appliqués sur le serveur." + "source": "L’onglet demande /api/logs?since_days=N ; les filtres de niveau, de service et de texte s’appliquent dans le navigateur. L’API accepte aussi priority et service, que l’onglet n’utilise pas encore." }, { "subtab": "Télécharger", @@ -74,17 +74,17 @@ { "subtab": "Sauvegardes", "endpoint": "/api/backups", - "source": "Historique des tâches PVE filtré sur vzdump, les transferts PBS, la récupération de mémoire inutilisée et la vérification." + "source": "Archives de sauvegarde listées depuis chaque stockage de sauvegarde avec pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Détails d'une tâche de sauvegarde", + "subtab": "Journal d’une tâche de sauvegarde (Notifications)", "endpoint": "/api/task-log/<upid>", "source": "Journal complet des tâches en texte clair lu à partir de /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Historique des notifications", - "endpoint": "/api/notifications/history", - "source": "Table SQLite notification_history alimentée par la boucle d'envoi." + "subtab": "Notifications", + "endpoint": "/api/notifications", + "source": "journalctl --grep sur les unités Proxmox, /etc/pve/notifications.cfg et les tâches de sauvegarde de pvesh get /cluster/tasks." } ], "apiIntro": "Le filtre en direct et les téléchargements sont aussi accessibles via l'API :", diff --git a/web/messages/fr/docs/monitor/dashboard/system-overview.json b/web/messages/fr/docs/monitor/dashboard/system-overview.json index 5f6424a5..3022d2ba 100644 --- a/web/messages/fr/docs/monitor/dashboard/system-overview.json +++ b/web/messages/fr/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Anneaux, barres et mini-courbes suivent la même échelle : vert sous le seuil Avertissement, ambre entre Avertissement et Critique, rouge à partir de Critique. Valeurs recommandées fournies avec ProxMenux :", "thresholdsItems": [ "Utilisation CPU — avertissement 85 %, critique 95 %.", - "Mémoire — avertissement 85 %, critique 95 %. Le swap déclenche aussi le niveau Critique à 5 % d'utilisation ; un hôte Proxmox sain devrait rarement y recourir.", + "Mémoire : avertissement 85 %, critique 95 %. Le swap ne déclenche le niveau Critique que lorsque son utilisation dépasse 80 % et que la RAM disponible est inférieure à 15 %.", "Température CPU — avertissement 80 °C, critique 90 °C." ], "thresholdsOutro": "Les valeurs sont configurables par hôte. Paramètres → Seuils du moniteur de santé centralise leur réglage et explique comment les adapter.", @@ -58,7 +58,7 @@ "intro": "Les cartes CPU et Mémoire ouvrent une liste triable des 25 processus les plus consommateurs : par utilisation CPU depuis la carte CPU, ou par mémoire résidente depuis la carte Mémoire.", "listTitle": "La boîte de dialogue liste", "listItems": [ - "Actualisation automatique — la liste se met à jour toutes les 5 secondes tant que la fenêtre est ouverte ; les requêtes cessent à sa fermeture.", + "Actualisation automatique — la liste se met à jour toutes les 3 secondes tant que la fenêtre est ouverte ; les requêtes cessent à sa fermeture.", "Filtre — la recherche limite la liste par commande, utilisateur ou PID.", "Barre en ligne — la colonne métrique primaire dessine une petite barre à l'échelle de la valeur la plus élevée de la liste filtrée, de sorte que le classement reste visible même si aucun processus n'est proche de 100 %.", "Disposition mobile — sous 640 px, les colonnes PID et Utilisateur sont masquées pour garder Commande, CPU % et Mémoire sans défilement horizontal." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Centre : graphiques des métriques du nœud", - "body1": "Sous les cartes, NodeMetricsCharts affiche les historiques CPU, mémoire et E/S disque du stockage RRD de Proxmox via /api/node/metrics. Le sélecteur propose 1 heure / 24 heures / 7 jours / 30 jours / 1 an. La résolution diminue pour les grandes périodes afin de conserver un affichage fluide.", + "body1": "Sous les cartes, NodeMetricsCharts affiche les historiques CPU, mémoire et E/S disque du stockage RRD de Proxmox via /api/node/metrics. Le sélecteur propose 1 heure / 24 heures / 7 jours / 30 jours. La résolution diminue pour les grandes périodes afin de conserver un affichage fluide.", "body2": "Les mêmes graphiques que l'interface web Proxmox pour un nœud, intégrés au thème sombre de Monitor et alignés avec les autres panneaux." }, "bottom": { diff --git a/web/messages/fr/docs/monitor/dashboard/vms-lxcs.json b/web/messages/fr/docs/monitor/dashboard/vms-lxcs.json index febe9371..e1e2baf1 100644 --- a/web/messages/fr/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/fr/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Destination — stockage (PBS-Cloud, PBS-Local, NFS-Backup, …), coloré selon son état.", "Taille — taille finale sur disque de la sauvegarde." ], - "backupsOutro": "+ Créer une sauvegarde lance une sauvegarde sur le stockage marqué « Backup target » dans Proxmox. La restauration se fait dans l'interface web Proxmox ; Monitor montre les sauvegardes récentes de l'invité et permet d'en créer.", + "backupsOutro": "Le bouton + Créer une sauvegarde en haut à droite ouvre une fenêtre pour choisir le stockage, le mode (snapshot / suspend / stop), la protection et les notes avant de lancer un vzdump. La restauration se fait dans l’interface web Proxmox ; Monitor montre les sauvegardes récentes de l’invité, pas le processus de récupération.", "firewallTitle": "Onglet 7 — Pare-feu", "firewallIntro": "Lit le journal du pare-feu Proxmox de l'invité directement sur l'hôte, sans service ni requêtes périodiques supplémentaires. L'onglet est toujours présent ; son contenu dépend de l'activation du pare-feu et de la journalisation effective d'une règle.", "firewallItems": [ diff --git a/web/messages/fr/docs/monitor/health-monitor.json b/web/messages/fr/docs/monitor/health-monitor.json index 2e3654cd..782e5ffa 100644 --- a/web/messages/fr/docs/monitor/health-monitor.json +++ b/web/messages/fr/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "L’indicateur reflète la catégorie la plus grave", "pillBody": "La couleur de l’en-tête reflète la gravité maximale : CRITICAL → rouge, sinon WARNING → jaune, sinon INFO → bleu, sinon vert. Le point de la favicon et le badge PWA suivent la même logique.", "updateNowTitle": "Bouton Mettre à jour maintenant dans l’en-tête de l’aperçu", - "updateNowBody1": "Si Mises à jour système signale des mises à jour en attente, Mettre à jour maintenant apparaît près de l’indicateur. La fenêtre lance la procédure de ProxMenux → Settings post-install Proxmox → Proxmox System Update : nettoyage des dépôts, apt full-upgrade via update-pve-safe.sh, reconstruction DKMS des pilotes gérés lors d’un nouveau noyau, autoremove/autoclean et proposition de redémarrage si nécessaire. La progression s’affiche en direct.", - "updateNowBody2": "À la fin, fermer la fenêtre appelle GET /api/health/details?refresh=1 et invalide le cache du point d’accès. Les mises à jour en attente et la gravité sont recalculées depuis le nouvel état des paquets ; le badge disparaît sans attendre le prochain cycle. Le bouton est masqué si l’hôte est déjà à jour." + "updateNowBody1": "Si Mises à jour système signale des mises à jour en attente, Mettre à jour maintenant apparaît près de l’indicateur. La fenêtre lance la procédure de ProxMenux → Utilitaires et outils → Mise à jour du système Proxmox : nettoyage des dépôts, apt full-upgrade via update-pve-safe.sh, reconstruction DKMS des pilotes gérés lors d’un nouveau noyau, autoremove/autoclean et proposition de redémarrage si le noyau a changé. La progression s’affiche en direct.", + "updateNowBody2": "À la fin, fermer la fenêtre appelle GET /api/health/full?refresh=1 et invalide le cache du point d’accès. Les mises à jour en attente et la gravité sont recalculées depuis le nouvel état des paquets ; le badge disparaît sans attendre le prochain cycle. Le bouton est masqué si l’hôte est déjà à jour." }, "dismiss": { "heading": "Masquer les alertes et choisir la durée de mise en sourdine", diff --git a/web/messages/fr/docs/monitor/index.json b/web/messages/fr/docs/monitor/index.json index be430c57..cc78b0be 100644 --- a/web/messages/fr/docs/monitor/index.json +++ b/web/messages/fr/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API et intégrations", "intro": "Les points d’accès REST exposent les mesures en JSON par HTTP/HTTPS pour Homepage, Home Assistant, Uptime Kuma et les scripts. Grafana peut utiliser l’exporteur texte Prometheus séparé sur /api/prometheus. Les requêtes peuvent être faites avec curl.", - "tokens": "Les jetons API à longue durée de vie (365 jours) sont générés à partir de Paramètres → API Tokens ou via POST /api/auth/generate-api-token.", + "tokens": "Les jetons API à longue durée de vie (365 jours) sont générés à partir de Administrateur → Sécurité → Jetons API ou via POST /api/auth/generate-api-token.", "bearer": "Envoyez les jetons via Authorization: Bearer …. /api/health attend aussi l’en-tête Bearer : les sondes de disponibilité ont donc besoin d’un jeton read_only. Sous /api/auth/* se trouvent à la fois des routes publiques de configuration/connexion/état et des routes protégées de gestion du compte et des jetons ; elles ne sont pas toutes anonymes.", "catalog": "Le catalogue complet des points d'accès, les conseils de rotation des jetons et les bonnes pratiques de sécurité se trouvent dans la référence API. Des exemples pour Homepage, Home Assistant, Grafana et Uptime Kuma, ainsi qu'un modèle générique cURL, sont proposés dans les intégrations." }, "serviceControl": { "heading": "Contrôle des services", - "intro": "Au jour le jour, le moniteur est géré exactement comme tout autre service systemd. Il est également exposé comme deux entrées à l'intérieur du ProxMenux TUI sous Paramètres:", + "intro": "Au jour le jour, le moniteur est géré exactement comme tout autre service systemd. Il est également exposé comme trois entrées à l’intérieur du ProxMenux TUI sous Paramètres :", "codeComment": "# Contrôle manuel", "footer": "Voir Paramètres → ProxMenux Monitor pour activer/désactiver le service dans le menu et vérifier son état." }, diff --git a/web/messages/fr/docs/monitor/integrations.json b/web/messages/fr/docs/monitor/integrations.json index dc4373ac..18d86b58 100644 --- a/web/messages/fr/docs/monitor/integrations.json +++ b/web/messages/fr/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Authentification: la seule chose dont chaque recette ait besoin", "intro": "La plupart de ces points d’accès exigent une authentification. Deux méthodes sont proposées.", "optAtitle": "Option A — Jeton API (recommandé pour les intégrations)", - "optAbody1": "Ouvrez Paramètres → Sécurité → Jetons API. Choisissez Générer un jeton, nommez-le par exemple homepage, home-assistant ou prometheus, puis copiez-le : il n’est affiché qu’une fois. Sa durée par défaut est d’un an et il peut être révoqué individuellement. Utilisez-le pour les clients autres que le navigateur.", + "optAbody1": "Ouvrez Administrateur → Sécurité → Jetons API. Choisissez Générer un nouveau jeton, nommez-le par exemple homepage, home-assistant ou prometheus, saisissez votre mot de passe (et le code 2FA s’il est activé), cliquez sur Générer un jeton puis copiez-le : il n’est affiché qu’une fois. Sa durée par défaut est d’un an et il peut être révoqué individuellement. Utilisez-le pour les clients autres que le navigateur.", "optAbody2": "À partir de ce moment, chaque demande est juste:", "optBtitle": "Option B — flux de connexion (nom d'utilisateur + mot de passe)", "optBbody": "Utile pour les scripts qui authentifient en tant qu'utilisateur humain. Le jeton retourné est de courte durée; la plupart des intégrations devraient préférer l'option A.", "outro": "Le champ TOTP n’est requis que si la double authentification est activée. Le renouvellement et la révocation des jetons, les règles de mot de passe et le journal d’audit figurent dans Accès et authentification.", "httpsTitle": "Utiliser HTTPS au lieu de HTTP", - "httpsIntro": "Chaque recette ci-dessous utilise http:// dans les URLs pour garder les exemples courts. Si vous avez activé TLS sur le moniteur (Paramètres → Sécurité → SSL/HTTPS), échangez http:// contre https:// dans chaque URL — c'est le seul changement. Deux notes spécifiques à certains outils:", + "httpsIntro": "Chaque recette ci-dessous utilise http:// dans les URLs pour garder les exemples courts. Si vous avez activé TLS sur le moniteur (Administrateur → Sécurité → SSL / HTTPS), échangez http:// contre https:// dans chaque URL — c’est le seul changement. Deux notes spécifiques à certains outils :", "httpsItems": [ "Certificats autosignés. L’intégration Home Assistant rest: vérifie TLS par défaut. Pour le certificat autosigné du Monitor, ajoutez verify_ssl: false à chaque bloc REST près de scan_interval:, ou ajoutez son AC au magasin de certificats approuvés. Même principe pour les autres outils qui vérifient les certificats.", "Prometheus dispose déjà de scheme: https dans l’exemple ci-dessous. Activez ou conservez https si TLS est activé sur le Monitor." @@ -43,7 +43,7 @@ "basicTitle": "Widget de base — pas d'authentification", "basicIntro": "Utilisez ceci lorsque ProxMenux Monitor est sur un réseau de confiance et que vous n'avez pas encore activé l'authentification du côté Monitor. L'entrée la plus simple possible services.yaml:", "authedTitle": "Widget authentifié", - "authedIntro": "Générez un jeton API dans Paramètres → Sécurité → API Jetons sur le moniteur, copiez-le et collez-le dans l'en-tête Authorization ci-dessous — remplacez le jeton d'exemple affiché après Bearer par celui que vous venez de copier:", + "authedIntro": "Générez un jeton API dans Administrateur → Sécurité → Jetons API sur le moniteur, copiez-le et collez-le dans l’en-tête Authorization ci-dessous — remplacez le jeton d’exemple affiché après Bearer par celui que vous venez de copier :", "authedOutro": "Redémarrez Homepage pour afficher les valeurs actualisées. Réutilisez le même jeton pour les widgets qui interrogent la même instance du Monitor.", "multiTitle": "Configuration multi-widget — système, stockage, réseau", "multiIntro": "Pour plus de détails, créez trois cartes utilisant des points d’accès distincts : système, stockage et réseau. Elles utilisent le même jeton pour cette instance du Monitor.", diff --git a/web/messages/fr/docs/monitor/notifications.json b/web/messages/fr/docs/monitor/notifications.json index 68f6f549..eedd2187 100644 --- a/web/messages/fr/docs/monitor/notifications.json +++ b/web/messages/fr/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Réécriture optionnelle de l'IA", - "body1": "Les événements admissibles peuvent être réécrits par un LLM. backup_complete et backup_fail sont exclus. L’IA est désactivée par défaut et s’exécute dans le thread d’envoi. En cas d’erreur ou délai dépassé, le texte du modèle est utilisé.", + "body1": "Les événements admissibles peuvent être réécrits par un LLM. backup_complete et backup_fail ne sont pas reformulés ; avec les suggestions d’IA activées, l’IA ajoute seulement une explication lorsqu’une sauvegarde signale des erreurs. L’IA est désactivée par défaut et s’exécute dans le thread d’envoi. En cas d’erreur ou délai dépassé, le texte du modèle est utilisé.", "body2": "OpenAI, Anthropic, Google Gemini, Groq, OpenRouter et Ollama local sont disponibles. Par canal : détail (brief, standard, detailed), langue, mode d’instructions (default ou custom) et instructions propres. Guide et exemples : Assistant IA.", "privacyTitle": "Note de confidentialité", "privacyBody": "La requête IA peut inclure titre, gravité, texte, instructions système/personnelles et contexte : noms d’hôte, IP, utilisateurs, erreurs et journaux. Elle part vers le serveur choisi. Ollama reste local seulement avec serveur et modèle locaux ; serveur distant ou modèle cloud transmettent les données hors de l’hôte. Désactivez l’IA ou utilisez serveur et modèle locaux contrôlés si le contenu doit rester dans le réseau." diff --git a/web/messages/fr/docs/security/ssl-letsencrypt.json b/web/messages/fr/docs/security/ssl-letsencrypt.json index 7ee2fe14..9a14d1e1 100644 --- a/web/messages/fr/docs/security/ssl-letsencrypt.json +++ b/web/messages/fr/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Ce que cette page couvre", - "body": "Comment changer le moniteur de HTTP à HTTPS dans le panneau Paramètres → Sécurité, ce que chaque source de certificat pointe en fait sur le disque, comment l'option Proxmox se comporte quand l'hôte a un cert Let's Encrypt et comment définir des chemins personnalisés si vous gérez des certs en dehors de Proxmox." + "body": "Comment changer le moniteur de HTTP à HTTPS dans le panneau Administrateur → Sécurité, ce que chaque source de certificat pointe en fait sur le disque, comment l’option Proxmox se comporte quand l’hôte a un cert Let’s Encrypt et comment définir des chemins personnalisés si vous gérez des certs en dehors de Proxmox." }, "wheresetting": { "heading": "Emplacement du réglage", - "body": "Ouvrez Monitor et allez dans Paramètres → Sécurité → HTTPS / SSL. Le panneau affiche HTTP ou HTTPS et, si HTTPS est désactivé, les sources de certificats détectées.", - "imageAlt": "Paramètres → Sécurité → Panneau HTTPS / SSL dans le moniteur montrant l'état HTTPS-off, le certificat Proxmox détecté automatiquement (sujet, émetteur, expiration) et l'option Utiliser un certificat personnalisé", - "caption": "Panneau Paramètres → Sécurité → HTTPS / SSL avant activation. Monitor affiche le certificat utilisé par Proxmox et permet de le choisir en un clic." + "body": "Ouvrez Monitor et allez dans Administrateur → Sécurité → SSL / HTTPS. Le panneau affiche HTTP ou HTTPS et, si HTTPS est désactivé, les sources de certificats détectées.", + "imageAlt": "Panneau Administrateur → Sécurité → SSL / HTTPS dans le moniteur montrant l’état HTTPS-off, le certificat Proxmox détecté automatiquement (sujet, émetteur, expiration) et l’option Utiliser un certificat personnalisé", + "caption": "Panneau Administrateur → Sécurité → SSL / HTTPS avant activation. Monitor affiche le certificat utilisé par Proxmox et permet de le choisir en un clic." }, "twoways": { "heading": "Deux façons d'activer HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Changez le moniteur en HTTPS", - "bodyRich": "Une fois /etc/pve/local/pveproxy-ssl.pem signé par Let's Encrypt, ouvrez Paramètres → Sécurité → HTTPS / SSL, vérifiez que l'émetteur est Let's Encrypt et non l'AC locale de Proxmox, puis cliquez sur Utiliser le certificat Proxmox. Monitor redémarre et le prochain chargement utilise HTTPS sur 8008 avec une chaîne de confiance publique. Les renouvellements ACME suivants sont validés et sélectionnés à la prochaine nouvelle connexion TLS, sans interrogation périodique ni redémarrage à chaque renouvellement. Actualiser le certificat reste disponible dans Sécurité pour le diagnostic et la récupération." + "bodyRich": "Une fois /etc/pve/local/pveproxy-ssl.pem signé par Let’s Encrypt, ouvrez Administrateur → Sécurité → SSL / HTTPS, vérifiez que l’émetteur est Let’s Encrypt et non l’AC locale de Proxmox, puis cliquez sur Utiliser le certificat Proxmox. Monitor redémarre et le prochain chargement utilise HTTPS sur 8008 avec une chaîne de confiance publique. Les renouvellements ACME suivants sont validés et sélectionnés à la prochaine nouvelle connexion TLS, sans interrogation périodique ni redémarrage à chaque renouvellement. Actualiser le certificat reste disponible dans Sécurité pour le diagnostic et la récupération." }, "custom": { "heading": "Certificat personnalisé — quand l'utiliser", diff --git a/web/messages/it/docs/monitor/access-auth.json b/web/messages/it/docs/monitor/access-auth.json index 59d77edd..768d1b9c 100644 --- a/web/messages/it/docs/monitor/access-auth.json +++ b/web/messages/it/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Raggiungere la dashboard", - "intro": "ProxMenux Monitor si lega a 0.0.0.0:8008. Ci sono tre modi comuni per raggiungerlo:", + "intro": "ProxMenux Monitor è in ascolto sulla porta TCP 8008 su tutte le interfacce (::, IPv4 e IPv6). Ci sono tre modi comuni per raggiungerlo:", "outro": "L’accesso diretto corrisponde all’unità systemd predefinita. Proxy inverso e Secure Gateway sono descritti più avanti. Per fidarsi degli IP client in X-Forwarded-For servono PROXMENUX_TRUST_PROXY=1 e un proxy sotto il tuo controllo. La sola presenza di X-Forwarded-Proto o X-Forwarded-Host non attiva la fiducia nel proxy. Sulle porte 80/443 il frontend usa URL /api/* relativi; su qualsiasi altra porta chiama la porta 8008 sullo stesso nome host." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — ciò che contiene e come è protetto", "authJsonBody": "I dati di autenticazione sono in /root/.config/proxmenux-monitor/auth.json, modalità 0600, proprietario root. Contiene hash PBKDF2 e segreti crittografici (jwt_secret, totp_secret), mai la password in chiaro. Cifra le destinazioni di backup o replica e non inserire questo file nel controllo di versione.", "rotateTitle": "La rotazione di jwt_secret invalida tutti i JWT esistenti", - "rotateBody": "Se auth.json viene ricreato o ripristinato con un segreto diverso, cambia jwt_secret. I vecchi JWT di sessione e API falliscono con \"Invalid or expired token\". L’interfaccia li segnala come Non valido — rigenerare. Revocali e sostituiscili anche in Home Assistant, script e altri client.", + "rotateBody": "Se auth.json viene ricreato o ripristinato con un segreto diverso, cambia jwt_secret. I vecchi JWT di sessione e API falliscono con \"Invalid or expired token\". L’interfaccia segna in rosso i token API interessati, con un badge che indica di revocarli e generarne di nuovi. Sostituiscili anche in Home Assistant, script e altri client.", "recoverTitle": "Recuperare una password persa", "recoverIntro": "Il recupero della password richiede accesso alla shell dell’host. ProxMenux offre una reimpostazione guidata nel menu di configurazione, senza modificare manualmente auth.json:", "survivesTitle": "Cosa sopravvive al reset", @@ -284,11 +284,11 @@ "heading": "Token API di lunga durata", "intro": "Le sessioni scadono dopo 24 ore. Per Homepage, Home Assistant, Grafana o Uptime Kuma crea un token API valido 365 giorni. Il JWT usa lo stesso segreto di firma; il campo token_name permette di identificarlo e revocarlo singolarmente.", "imageAlt": "Pannello di token API con nome, prefisso, data e scadenza", - "imageCaption": "Elenco token nelle impostazioni: nome, prefisso con ultimi quattro caratteri di identificazione, date di creazione e scadenza, revoca.", + "imageCaption": "Elenco token in Amministratore → Sicurezza: nome, prefisso con ultimi quattro caratteri di identificazione, date di creazione e scadenza, revoca.", "generateTitle": "Generare un token", "generateIntro": "Dal cruscotto:", "generateSteps": [ - "Apri Sicurezza → Token di accesso API.", + "Apri Amministratore → Sicurezza → Token API e premi Genera nuovo token.", "Assegna un nome descrittivo, ad esempio \"Home Assistant\".", "Reinserisci la password e, con 2FA attivo, il codice attuale a sei cifre.", "Premi Genera token. Compare una sola volta: copialo subito." @@ -310,7 +310,7 @@ "intro": "Due percorsi per TLS:", "items": [ "Proxy inverso consigliato. Termina TLS su Nginx / Caddy / Traefik e inoltra HTTP al processo Flask sulla porta 8008. Esempi sotto.", - "HTTPS diretto nell’AppImage. Configura un certificato con POST /api/ssl/configure (interfaccia: Impostazioni → SSL). HTTPS usa gevent.pywsgi con il gestore standard; flask-sock gestisce WebSocket per WSS. I percorsi sono salvati nella configurazione SSL." + "HTTPS diretto nell’AppImage. Configura un certificato con POST /api/ssl/configure (interfaccia: Amministratore → Sicurezza → SSL/HTTPS). HTTPS usa gevent.pywsgi con il gestore standard; flask-sock gestisce WebSocket per WSS. I percorsi sono salvati nella configurazione SSL." ], "calloutTitle": "Limitazioni dirette HTTPS", "calloutBody": "Monitor può usare un certificato gestito da Proxmox o file personalizzati. Non emette certificati ACME. Per emissione e rinnovo automatici usa Proxmox ACME o un proxy Caddy, Traefik o Nginx e assicurati che i certificati rinnovati vengano caricati." diff --git a/web/messages/it/docs/monitor/ai-assistant.json b/web/messages/it/docs/monitor/ai-assistant.json index 7e793add..79a87bb6 100644 --- a/web/messages/it/docs/monitor/ai-assistant.json +++ b/web/messages/it/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "Assistente AI", - "description": "La riscrittura IA facoltativa trasforma le notifiche idonee in messaggi chiari, con dettaglio per canale, tredici lingue nell’interfaccia, prompt personalizzati, raccolta pubblica della comunità e contesto aggiuntivo. I rapporti backup_complete e backup_fail escludono completamente l’IA.", + "description": "La riscrittura IA facoltativa trasforma le notifiche idonee in messaggi chiari, con dettaglio per canale, tredici lingue nell’interfaccia, prompt personalizzati, raccolta pubblica della comunità e contesto aggiuntivo. I rapporti backup_complete e backup_fail non vengono mai riscritti; con i suggerimenti IA attivi, l’IA aggiunge solo una spiegazione quando un backup segnala errori.", "section": "Monitor di ProxMenux" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "I provider commerciali fatturano i token. Un token equivale indicativamente a quattro caratteri inglesi o tre quarti di una parola. La frase inglese \"Backup completed on storage local-bak\" contiene circa otto token. Dieci righe di log possono richiedere 200–400 token, secondo la densità tecnica.", "intro2": "Due cose sono fatturate su ogni chiamata:", "items": [ - "Token in ingresso: prompt di sistema e messaggio utente con gravità, titolo, testo del modello e contesto aggiuntivo. La quantità dipende da prompt ed evento. Ogni canale riscritto può consumare i propri token; i rapporti di backup completato o fallito escludono l’IA.", + "Token in ingresso: prompt di sistema e messaggio utente con gravità, titolo, testo del modello e contesto aggiuntivo. La quantità dipende da prompt ed evento. Ogni canale riscritto può consumare i propri token; i rapporti di backup completato o fallito consumano token solo quando l’IA spiega errori del backup.", "Token in uscita: la risposta del modello. Monitor li limita con max_tokens. Il tetto è un limite, non un consumo fisso: se il modello produce 250 token con un limite di 1500, paghi per 250." ], "capsIntro": "Questi sono i limiti effettivi applicati dal sistema di invio, definiti in AI_DETAIL_TOKENS in notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "In-app modal — sei carte, una per fornitore, con le stesse descrizioni documentate di seguito.", "groq": { "heading": "Groq", - "tagline": "Molto veloce, generoso tier libero (30 req/min). Ideale per iniziare.", + "tagline": "Molto veloce, con un generoso tier gratuito. Un buon punto di partenza.", "items": [ "Chiave API: console.groq.com/keys", "Esempi dall’elenco di modelli incluso: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Livello di dettaglio per canale", - "intro": "Telegram, Discord, Gotify ed e-mail hanno ciascuno una scelta del dettaglio. Tre valori regolano i limiti dei token e le istruzioni del prompt predefinito:", + "intro": "Ciascuno dei sei canali (Telegram, Discord, Gotify, e-mail, Pushover, Apprise) ha una propria scelta del dettaglio. Tre valori regolano i limiti dei token e le istruzioni del prompt predefinito:", "headerLevel": "Livello", "headerLabel": "Etichetta UI", "headerCap": "Limite di uscita", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Impostazioni predefinite alla prima installazione:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "Email — detailed. Email è il canale in cui si desidera in genere l'immagine completa per l'archiviazione." ], "emailTitle": "Il livello di dettaglio e-mail aggiunge l'originale", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Una nota sui modelli", - "body1": "L’IA riceve il testo già prodotto da un modello, non dati grezzi. Tipi come vm_start, auth_fail e health_degraded hanno modelli in notification_templates.py. L’IA riscrive i testi idonei; backup_complete e backup_fail mantengono rapporti deterministici senza IA.", + "body1": "L’IA riceve il testo già prodotto da un modello, non dati grezzi. Tipi come vm_start, auth_fail e health_degraded hanno modelli in notification_templates.py. L’IA riscrive i testi idonei; backup_complete e backup_fail mantengono rapporti deterministici; con i suggerimenti IA attivi, l’IA aggiunge solo una spiegazione quando il backup segnala errori.", "body2": "Due implicazioni pratiche: l'IA non vede mai un hostname o VMID che deve inventare — quei campi sono posti dal modello prima della riscrittura. E se l'IA è disabilitata, il corpo modello è quello che viene inviato direttamente. La pagina Notifications documenta la pipeline di spedizione in pieno ed è la giusta cross-referenza per tutto ciò che accade ad un evento prima che raggiunga questo livello." }, "privacy": { diff --git a/web/messages/it/docs/monitor/api-reference.json b/web/messages/it/docs/monitor/api-reference.json index a4789f6b..2ed9b70b 100644 --- a/web/messages/it/docs/monitor/api-reference.json +++ b/web/messages/it/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Dati di sistema estesi usati nell’intestazione: metriche generali e ora di avvio." + "use": "Informazioni leggere di intestazione: hostname, uptime e stato di integrità in cache. Pubblico, nessun token necessario." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Le voci del diario filtrate. Query: ?level=&service=&limit=." + "use": "Le voci del diario filtrate. Query: ?priority=&service=&limit=&since_days= (priority 0-7, since_days fino a 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Flusso di eventi interno — lo stesso che alimenta le notifiche." + "use": "Attività ed eventi recenti del cluster Proxmox da pvesh get /cluster/tasks. Query: ?limit= (predefinito 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Genera un evento personalizzato. Corpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Genera un evento personalizzato. Corpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/it/docs/monitor/architecture.json b/web/messages/it/docs/monitor/architecture.json index b69a24ae..14bbc263 100644 --- a/web/messages/it/docs/monitor/architecture.json +++ b/web/messages/it/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: il servizio usa privilegi root per SMART, pvesh e gestione ZFS. I processi del terminale web ereditano questi permessi.", "Restart=on-failure con attesa di dieci secondi: il servizio riparte automaticamente dopo un’uscita con errore.", - "After=network.target: ordina l’avvio dopo quel target; non garantisce IP assegnato, DNS o connettività esterna." + "After=network.target pve-cluster.service: ordina l’avvio dopo il target di rete e il filesystem del cluster Proxmox; non garantisce IP assegnato, DNS o connettività esterna." ], "inspectTitle": "Esaminare l’unità attuale" }, diff --git a/web/messages/it/docs/monitor/dashboard/hardware.json b/web/messages/it/docs/monitor/dashboard/hardware.json index 039d5771..8b89e2a4 100644 --- a/web/messages/it/docs/monitor/dashboard/hardware.json +++ b/web/messages/it/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "Stato UPS", "subHeading": "(condizionale)", - "body": "Appare con un server NUT (Network UPS Tools) configurato e raggiungibile. Mostra stato (rete / batteria / ricarica / batteria scarica), carica della batteria, autonomia stimata, percentuale di carico, tensione di ingresso, modello e firmware. I dati alimentano anche Sicurezza e certificati del monitor di integrità: il passaggio a batteria viene segnalato subito." + "body": "Appare con un server NUT (Network UPS Tools) configurato e raggiungibile. Mostra stato (rete / batteria / ricarica / batteria scarica), carica della batteria, autonomia stimata, percentuale di carico, tensione di ingresso, modello e firmware." }, "dataCollected": { "heading": "Come vengono raccolti i dati", diff --git a/web/messages/it/docs/monitor/dashboard/index.json b/web/messages/it/docs/monitor/dashboard/index.json index 8345b722..9e9e9fe5 100644 --- a/web/messages/it/docs/monitor/dashboard/index.json +++ b/web/messages/it/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminale", - "owns": "Shell dell'host o di qualsiasi VM/CT nel browser, con xterm.js tramite WebSocket." + "owns": "Shell nel browser sull’host Proxmox, con xterm.js tramite WebSocket. Le console LXC si aprono dalla scheda VM e LXC." }, { "name": "Sicurezza", diff --git a/web/messages/it/docs/monitor/dashboard/security.json b/web/messages/it/docs/monitor/dashboard/security.json index 067c9ca9..efcbe9ec 100644 --- a/web/messages/it/docs/monitor/dashboard/security.json +++ b/web/messages/it/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL/HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 su /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/it/docs/monitor/dashboard/settings.json b/web/messages/it/docs/monitor/dashboard/settings.json index 4abed2a5..0a9f1f08 100644 --- a/web/messages/it/docs/monitor/dashboard/settings.json +++ b/web/messages/it/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Unità rete", "imageAlt": "Scheda Unità di rete con il selettore di visualizzazione su Byte", "imageCaption": "Scegli tra bit al secondo e byte al secondo per ogni velocità di rete visualizzata nel cruscotto.", - "body": "Mostra la velocità in bit al secondo (Mbps/Gbps) o byte al secondo (MB/s/GB/s). I bit sono predefiniti, come nelle specifiche di schede e provider; i trasferimenti di file usano spesso byte. Grafici, etichette e suggerimenti cambiano subito senza ricaricare." + "body": "Mostra la velocità in bit al secondo (Mbps/Gbps) o byte al secondo (MB/s/GB/s). I byte sono predefiniti, come nei trasferimenti di file; schede e provider usano spesso i bit. La scelta viene salvata nel browser. Grafici, etichette e suggerimenti cambiano subito senza ricaricare." }, "health": { "heading": "Monitoraggio integrità", @@ -203,7 +203,7 @@ "heading": "Rilevamento aggiornamenti LXC", "imageAlt": "Scheda di rilevamento aggiornamenti LXC con interruttore per cercare pacchetti in attesa nei container Debian, Ubuntu e Alpine attivi", "imageCaption": "Interruttore dell’analisi periodica con apt list --upgradable / apk list -u nei CT attivi. È acceso per impostazione predefinita. L’opzione in Notifiche → Servizi appare mentre il rilevamento è attivo.", - "intro": "L’interruttore tra Soglie e Notifiche controlla l’analisi LXC. Attivo, interroga i gestori di pacchetti dei CT in esecuzione; Hardware mostra i risultati e alimenta lxc_updates_available. Disattivo, ferma le chiamate pct exec e rimuove le voci LXC da managed_installs.json; /api/managed-installs smette di riportare lo stato senza attendere 24 ore.", + "intro": "L’interruttore tra Soglie e Notifiche controlla l’analisi LXC. Attivo, interroga i gestori di pacchetti dei CT in esecuzione; la scheda VM e LXC mostra i risultati e alimenta lxc_updates_available. Disattivo, ferma le chiamate pct exec e rimuove le voci LXC da managed_installs.json; /api/managed-installs smette di riportare lo stato senza attendere 24 ore.", "whatRunsTitle": "Cosa esegue l’analisi", "whatRunsIntro": "Per ogni CT in stato running con un gestore di pacchetti supportato:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Qui si attivano le notifiche di ProxMenux Monitor e la riformulazione con IA. Attiva notifiche avvia l’invio in background, registra una destinazione webhook Proxmox VE per riceverne gli eventi e apre i canali: Telegram, Discord, email, Gotify e altri. La riformulazione con IA è in una sezione avanzata espandibile dello stesso pannello.", "body2": "Le opzioni sono spiegate in pagine dedicate: canali, controlli per evento, messaggi formattati, nome visualizzato, invio con deduplicazione, attesa, raggruppamento e ore silenziose, webhook PVE, provider IA e modalità delle istruzioni:", "items": [ - "Notifiche: configurazione dei canali (Telegram, Discord, Gotify, email e password per app Gmail / Microsoft, ntfy, Slack, Teams e webhook generico), categorie di eventi, messaggi formattati, nome visualizzato, invio, webhook PVE, cronologia e API.", + "Notifiche: configurazione dei canali (Telegram, Discord, Gotify, email e password per app Gmail / Microsoft, Pushover e Apprise per ntfy, Slack, Teams e altri servizi), categorie di eventi, messaggi formattati, nome visualizzato, invio, webhook PVE, cronologia e API.", "Assistente IA: provider (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelli, istruzioni predefinite o personalizzate, lingua di uscita, dettaglio per canale e suggerimenti IA." ] }, @@ -294,8 +294,8 @@ }, { "card": "Unità rete", - "endpoint": "/api/settings", - "source": "Salvato nella tabella SQLite delle impostazioni del pannello." + "endpoint": "localStorage", + "source": "Preferenza del browser proxmenux-network-unit." }, { "card": "Durate di Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Esclusioni di storage/interfaccia", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "Tabelle SQLite excluded_storages e excluded_interfaces." }, { diff --git a/web/messages/it/docs/monitor/dashboard/storage.json b/web/messages/it/docs/monitor/dashboard/storage.json index 2f6754d4..2f9f984d 100644 --- a/web/messages/it/docs/monitor/dashboard/storage.json +++ b/web/messages/it/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Supportato da tre fonti", - "body": "Gli storage Proxmox provengono da pvesm status, ZFS da zpool status, i dischi da lsblk + smartctl e i campi NVMe da nvme. La scheda si aggiorna circa ogni 60 secondi; aprire il dettaglio richiede una lettura SMART." + "body": "Gli storage Proxmox provengono da pvesm status, ZFS da zpool status, i dischi da lsblk + smartctl e i campi NVMe da nvme. La scheda si aggiorna circa ogni 30 secondi; aprire il dettaglio richiede una lettura SMART." }, "thresholds": { "title": "Colori e soglie di stato applicate qui", diff --git a/web/messages/it/docs/monitor/dashboard/system-logs.json b/web/messages/it/docs/monitor/dashboard/system-logs.json index 056b6ced..7e54dc43 100644 --- a/web/messages/it/docs/monitor/dashboard/system-logs.json +++ b/web/messages/it/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Voci totali — numero di record nel periodo del filtro attivo.", "Errori — numero di voci con gravità ≤ 3 (err / crit / alert / emerg).", "Avvisi — numero di voci con gravità 4 (warning).", - "Backup — numero di voci di attività vzdump / PBS nello stesso periodo." + "Backup: numero di archivi di backup negli storage di backup configurati." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Log", "logsIntro": "Il journal di sistema, letto sul server con journalctl. Filtri disponibili nella barra degli strumenti:", "logsFilters": [ - "Gravità — emerg / alert / crit / err / warning / notice / info / debug, o qualsiasi combinazione.", - "Time range — ultima 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizzato.", - "Ricerca libera — sottostringa o espressione regolare (journalctl --grep).", - "Filtro per unità — limita a una specifica unità systemd (pveproxy.service, nginx.service, …)." + "Livello: Tutti i livelli, Errore, Avviso o Informazioni.", + "Intervallo di tempo: 1 giorno / 3 giorni / 1 settimana / 2 settimane / 1 mese, oppure un numero personalizzato di giorni (fino a 90).", + "Ricerca libera: sottostringa senza distinzione tra maiuscole e minuscole su messaggio, servizio, PID, hostname e unità, applicata nel browser.", + "Filtro per servizio: limita a un servizio (il SYSLOG_IDENTIFIER del journal)." ], "logsRowsAfter": "Ogni riga mostra timestamp, tasso di gravità, unità sorgente e il messaggio. I messaggi lunghi crollano con un \"mostra di più\". L'azione Download raggruppa il filtro corrente in un unico file .txt tramite GET /api/logs/download — utile quando si desidera condividere una fetta di giornale con qualcuno.", "logDetailsModalTitle": "Finestra Dettagli del log", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Su una nuova installazione Proxmox, journald usa per impostazione predefinita MaxLevelStore=warning, scartando i messaggi info. Monitor lo rileva all'avvio e aggiunge una configurazione complementare (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) con soglia info, per conservare messaggi informativi e più gravi. Questo non include debug.", "backupsTitle": "Backup", - "backupsBody": "Cronologia delle attività Proxmox limitata ai backup. Una riga per attività (vzdump, trasferimenti PBS, Garbage Collect, Verify), con stato (OK / WARNINGS / ERROR), guest interessato, storage di origine, durata e UPID. Fai clic su una riga per caricare il log completo tramite GET /api/task-log/<upid>: gli stessi dati esposti da Proxmox in Datacenter → Tasks, limitati ai backup.", + "backupsBody": "Gli archivi di backup su ogni storage che supporta i backup (dir, NFS, CIFS, PBS), letti con pvesh get /nodes/localhost/storage/<id>/content. Le schede in alto mostrano il numero di VM e LXC e la dimensione totale; sotto, una riga per archivio con tipo, storage, dimensione e data. Il ripristino si esegue nell’interfaccia web di Proxmox.", "notificationsTitle": "Notifiche", - "notificationsBody1": "Tutte le notifiche inviate da Monitor: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams e webhook. Ogni riga mostra data e ora, canale, tipo di evento, gravità, titolo e corpo generati e, se l'IA è attiva, un comando per confrontare la sua riscrittura con l'originale.", - "notificationsBody2": "Usa questa scheda per verificare che un canale recapiti le notifiche e confrontare la riscrittura AI con il modello di base. I canali si configurano nella pagina dettagliata Notifiche." + "notificationsBody1": "Attività di notifica di Proxmox: righe del journal dei servizi Proxmox che citano notifiche, e-mail, webhook o avvisi, le destinazioni in /etc/pve/notifications.cfg e le attività di backup dall’elenco delle attività del cluster. Le righe delle attività di backup permettono di scaricare il log completo. La cronologia di ciò che Monitor stesso ha inviato si trova in Impostazioni → Notifiche → Cronologia delle notifiche.", + "notificationsBody2": "Usa questa scheda per verificare cosa fa il sistema di notifiche di Proxmox. I canali di Monitor si configurano nella pagina dettagliata Notifiche." }, "dataCollected": { "heading": "Come vengono raccolti i dati", @@ -64,7 +64,7 @@ { "subtab": "Registri (filtro in tempo reale)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> con filtri per gravità, unità e ricerca applicati sul server." + "source": "La scheda richiede /api/logs?since_days=N; i filtri per livello, servizio e testo vengono applicati nel browser. L’API accetta anche priority e service, che la scheda non usa ancora." }, { "subtab": "Scarica", @@ -74,17 +74,17 @@ { "subtab": "Backup", "endpoint": "/api/backups", - "source": "Cronologia delle attività PVE filtrata per vzdump, trasferimenti PBS, Garbage Collect e Verify." + "source": "Archivi di backup elencati da ogni storage di backup con pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Dettagli di un'attività di backup", + "subtab": "Log delle attività di backup (Notifiche)", "endpoint": "/api/task-log/<upid>", "source": "Log completo dell'attività in testo semplice, letto da /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Cronologia delle notifiche", - "endpoint": "/api/notifications/history", - "source": "Tabella SQLite notification_history alimentata dal ciclo di invio." + "subtab": "Notifiche", + "endpoint": "/api/notifications", + "source": "journalctl --grep sulle unità Proxmox, /etc/pve/notifications.cfg e le attività di backup da pvesh get /cluster/tasks." } ], "apiIntro": "Il filtro in tempo reale e i download sono accessibili anche tramite API:", diff --git a/web/messages/it/docs/monitor/dashboard/system-overview.json b/web/messages/it/docs/monitor/dashboard/system-overview.json index a2ed2e0d..974c64fc 100644 --- a/web/messages/it/docs/monitor/dashboard/system-overview.json +++ b/web/messages/it/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Anelli, barre e minigrafici usano la stessa scala: verde sotto Avviso, ambra tra Avviso e Critico, rosso da Critico in poi. Valori predefiniti consigliati inclusi in ProxMenux:", "thresholdsItems": [ "Utilizzo CPU — avviso 85 %, critico 95 %.", - "Memoria — avviso 85 %, critico 95 %. Anche lo swap attiva Critico al 5 % di utilizzo; un host Proxmox sano dovrebbe usarlo raramente.", + "Memoria: avviso 85 %, critico 95 %. Lo swap attiva Critico solo quando l’uso dello swap supera l’80 % e la RAM disponibile è inferiore al 15 %.", "Temperatura CPU — avviso 80 °C, critico 90 °C." ], "thresholdsOutro": "Ogni valore è configurabile per host. Impostazioni → Soglie del monitor di integrità centralizza le impostazioni e spiega come regolarle.", @@ -58,7 +58,7 @@ "intro": "Le schede Utilizzo CPU e Memoria aprono un elenco ordinabile dei 25 processi principali: per utilizzo CPU dalla scheda CPU e per memoria residente dalla scheda Memoria.", "listTitle": "La finestra di dialogo elenco", "listItems": [ - "Aggiornamento automatico — l'elenco si aggiorna ogni 5 secondi finché la finestra è aperta e interrompe le richieste alla chiusura.", + "Aggiornamento automatico — l'elenco si aggiorna ogni 3 secondi finché la finestra è aperta e interrompe le richieste alla chiusura.", "Filtro — la ricerca limita l'elenco per comando, utente o PID.", "Barra nella riga — la colonna della metrica principale disegna una piccola barra scalata al massimo valore nell'elenco filtrato. La graduatoria resta evidente anche se nessun processo si avvicina al 100 %.", "Disposizione mobile — sotto 640 px le colonne PID e Utente si nascondono, così Comando, CPU % e Memoria restano visibili senza scorrimento orizzontale." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Centro: grafici delle metriche del nodo", - "body1": "Sotto le schede, NodeMetricsCharts mostra grafici storici di CPU, memoria e I/O disco dal database RRD di Proxmox tramite /api/node/metrics. Il selettore offre 1 ora / 24 ore / 7 giorni / 30 giorni / 1 anno. La risoluzione diminuisce con periodi più ampi per mantenere fluido il grafico.", + "body1": "Sotto le schede, NodeMetricsCharts mostra grafici storici di CPU, memoria e I/O disco dal database RRD di Proxmox tramite /api/node/metrics. Il selettore offre 1 ora / 24 ore / 7 giorni / 30 giorni. La risoluzione diminuisce con periodi più ampi per mantenere fluido il grafico.", "body2": "Sono gli stessi grafici dell'interfaccia web Proxmox per un nodo, integrati nel tema scuro di Monitor e allineati agli altri pannelli." }, "bottom": { diff --git a/web/messages/it/docs/monitor/dashboard/vms-lxcs.json b/web/messages/it/docs/monitor/dashboard/vms-lxcs.json index 4cd27750..23764231 100644 --- a/web/messages/it/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/it/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Destinazione — storage (PBS-Cloud, PBS-Local, NFS-Backup, …), colorato secondo lo stato.", "Dimensione — dimensione finale del backup su disco." ], - "backupsOutro": "+ Crea backup avvia un backup sullo storage indicato come “Backup target” in Proxmox. Il ripristino si esegue nell'interfaccia web Proxmox; Monitor mostra i backup recenti del guest e permette di crearne.", + "backupsOutro": "Il pulsante + Crea backup in alto a destra apre una finestra per scegliere storage, modalità (snapshot / suspend / stop), protezione e note prima di avviare un vzdump. Il ripristino si esegue nell'interfaccia web Proxmox; Monitor mostra la vista “questo guest ha un backup recente?”, non il flusso di recupero.", "firewallTitle": "Scheda 7 — Firewall", "firewallIntro": "Legge il log firewall Proxmox del guest direttamente dall'host, senza servizi aggiuntivi né richieste periodiche. La scheda è sempre presente; il contenuto dipende dalla attivazione del firewall e dalla registrazione dei pacchetti da parte di una regola.", "firewallItems": [ diff --git a/web/messages/it/docs/monitor/health-monitor.json b/web/messages/it/docs/monitor/health-monitor.json index c80eaf14..44eed2af 100644 --- a/web/messages/it/docs/monitor/health-monitor.json +++ b/web/messages/it/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "L’indicatore riflette la categoria più grave", "pillBody": "Il colore dell’intestazione riflette la gravità massima: CRITICAL → rosso, altrimenti WARNING → giallo, altrimenti INFO → blu, altrimenti verde. La stessa logica controlla il punto della favicon e il badge PWA.", "updateNowTitle": "Pulsante Aggiorna ora nell’intestazione della panoramica", - "updateNowBody1": "Se Aggiornamenti di sistema segnala aggiornamenti in attesa, appare Aggiorna ora accanto all’indicatore. La finestra esegue la procedura di ProxMenux → Settings post-install Proxmox → Proxmox System Update: pulizia dei repository, apt full-upgrade tramite update-pve-safe.sh, ricompilazione DKMS dei driver gestiti con un nuovo kernel, autoremove/autoclean e richiesta di riavvio se cambia il kernel. La finestra mostra l’avanzamento in tempo reale.", - "updateNowBody2": "Al termine, chiudere la finestra richiama GET /api/health/details?refresh=1 e invalida la cache dell’endpoint. Aggiornamenti in attesa e gravità vengono ricalcolati dal nuovo stato dei pacchetti: il badge scompare senza attendere il ciclo successivo. Se l’host è già aggiornato, il pulsante resta nascosto." + "updateNowBody1": "Se Aggiornamenti di sistema segnala aggiornamenti in attesa, appare Aggiorna ora accanto all’indicatore. La finestra esegue la procedura di ProxMenux → Utilità e strumenti → Aggiornamento sistema Proxmox: pulizia dei repository, apt full-upgrade tramite update-pve-safe.sh, ricompilazione DKMS dei driver gestiti con un nuovo kernel, autoremove/autoclean e richiesta di riavvio se cambia il kernel. La finestra mostra l’avanzamento in tempo reale.", + "updateNowBody2": "Al termine, chiudere la finestra richiama GET /api/health/full?refresh=1 e invalida la cache dell’endpoint. Aggiornamenti in attesa e gravità vengono ricalcolati dal nuovo stato dei pacchetti: il badge scompare senza attendere il ciclo successivo. Se l’host è già aggiornato, il pulsante resta nascosto." }, "dismiss": { "heading": "Silenziare gli avvisi e scegliere la durata", diff --git a/web/messages/it/docs/monitor/index.json b/web/messages/it/docs/monitor/index.json index e26ca62a..8d53c4fe 100644 --- a/web/messages/it/docs/monitor/index.json +++ b/web/messages/it/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API e integrazioni", "intro": "Gli endpoint REST espongono dati di monitoraggio JSON via HTTP/HTTPS per Homepage, Home Assistant, Uptime Kuma e script. Grafana può usare l’esportatore testuale Prometheus separato su /api/prometheus. Le richieste possono usare curl.", - "tokens": "I token API a lunga durata (365 giorni) vengono generati in Impostazioni → Token di accesso API o tramite POST /api/auth/generate-api-token.", + "tokens": "I token API a lunga durata (365 giorni) vengono generati in Amministratore → Sicurezza → Token API o tramite POST /api/auth/generate-api-token.", "bearer": "Invia i token con Authorization: Bearer …. Anche /api/health richiede l’intestazione Bearer, quindi i controlli di disponibilità necessitano di un token read_only. Sotto /api/auth/* ci sono sia rotte pubbliche di configurazione/login/stato sia rotte protette per account e token; non sono tutte anonime.", "catalog": "Catalogo degli endpoint, rotazione dei token e sicurezza sono nel Riferimento API; esempi per Homepage, Home Assistant, Grafana, Uptime Kuma e cURL sono in Integrazioni." }, "serviceControl": { "heading": "Controllo del servizio", - "intro": "Giorno per giorno, il Monitor è gestito esattamente come qualsiasi altro servizio systemd. Viene inoltre esposto come due voci all'interno della TUI ProxMenux in Impostazioni:", + "intro": "Giorno per giorno, il Monitor è gestito esattamente come qualsiasi altro servizio systemd. Viene inoltre esposto come tre voci all'interno della TUI ProxMenux in Impostazioni:", "codeComment": "# Controllo manuale", "footer": "Vedi Impostazioni → ProxMenux Monitor per l'attivazione/disattivazione del menu e il flusso di verifica dello stato." }, diff --git a/web/messages/it/docs/monitor/integrations.json b/web/messages/it/docs/monitor/integrations.json index 563e98f9..359d2e80 100644 --- a/web/messages/it/docs/monitor/integrations.json +++ b/web/messages/it/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Autenticazione: l'unica cosa che ogni ricetta ha bisogno", "intro": "La maggior parte degli endpoint utilizzati da queste integrazioni sono autenticati. Hai due modi per soddisfare questo requisito.", "optAtitle": "Opzione A — Token API (consigliato per le integrazioni)", - "optAbody1": "Apri Impostazioni → Sicurezza → Token API. Premi Genera token, assegna un nome come homepage, home-assistant o prometheus e copialo: appare una sola volta. Scade dopo un anno per impostazione predefinita ed è revocabile singolarmente. Usalo per i client esterni al browser.", + "optAbody1": "Apri la dashboard e vai in Amministratore → Sicurezza → Token API. Premi Genera nuovo token, assegna un nome come homepage, home-assistant o prometheus, inserisci la password (e il codice 2FA se attivo), premi Genera token e copialo: appare una sola volta. Scade dopo un anno per impostazione predefinita ed è revocabile singolarmente. Usalo per i client esterni al browser.", "optAbody2": "Da quel punto ogni richiesta è solo:", "optBtitle": "Opzione B — flusso di login (username + password)", "optBbody": "Utile per script che si autenticano come un utente. Il token restituito dura poco; per la maggior parte delle integrazioni scegli l’opzione A.", "outro": "Il campo TOTP è obbligatorio solo se sull’account è attiva la 2FA. Rotazione e revoca dei token, criteri delle password e registro di controllo sono descritti in Accesso e autenticazione.", "httpsTitle": "Utilizzando HTTPS invece di HTTP", - "httpsIntro": "Gli esempi usano http:// per brevità. Se hai attivato TLS sul Monitor (Impostazioni → Sicurezza → SSL/HTTPS), sostituisci http:// con https:// in ogni URL. Due note per alcuni strumenti:", + "httpsIntro": "Gli esempi usano http:// per brevità. Se hai attivato TLS sul Monitor (Amministratore → Sicurezza → SSL/HTTPS), sostituisci http:// con https:// in ogni URL. Due note per alcuni strumenti:", "httpsItems": [ "Certificati autofirmati. L’integrazione Home Assistant rest: verifica TLS per impostazione predefinita. Per un certificato autofirmato del Monitor aggiungi verify_ssl: false a ogni blocco REST accanto a scan_interval:, oppure importa la CA del Monitor tra i certificati attendibili. Lo stesso vale per altri strumenti che verificano i certificati.", "Prometheus include già scheme: https nell’esempio sotto. Attiva o mantieni https se TLS è attivo sul Monitor." @@ -43,7 +43,7 @@ "basicTitle": "widget di base — nessuna autenticazione", "basicIntro": "Utilizzare questo quando ProxMenux Monitor è su una rete di fiducia e non hai ancora abilitato l'autenticazione sul lato Monitor. La voce services.yaml più semplice:", "authedTitle": "widget autenticato", - "authedIntro": "Generare un token API in Impostazioni → Sicurezza → Token API sul Monitor, copiarlo e incollarlo nell'intestazione Authorization di seguito — sostituire il token di esempio mostrato dopo Bearer con quello appena copiato:", + "authedIntro": "Generare un token API in Amministratore → Sicurezza → Token API sul Monitor, copiarlo e incollarlo nell'intestazione Authorization di seguito — sostituire il token di esempio mostrato dopo Bearer con quello appena copiato:", "authedOutro": "Riavvia Homepage per visualizzare i valori aggiornati. Riutilizza lo stesso token nei widget che interrogano la stessa istanza del Monitor.", "multiTitle": "Configurazione multi-widget — sistema, archiviazione, rete", "multiIntro": "Per più dettagli crea tre schede con endpoint diversi: sistema, archiviazione e rete. Usa lo stesso token per questa istanza del Monitor.", diff --git a/web/messages/it/docs/monitor/notifications.json b/web/messages/it/docs/monitor/notifications.json index 7173a53f..ca6da91d 100644 --- a/web/messages/it/docs/monitor/notifications.json +++ b/web/messages/it/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Riscrittura IA facoltativa", - "body1": "Gli eventi idonei possono essere riscritti da un LLM. I risultati backup (backup_complete e backup_fail) sono esclusi. IA è disattivata inizialmente e, se attiva, lavora nel thread di invio. Se la chiamata fallisce o scade, usa il testo originale del modello.", + "body1": "Gli eventi idonei possono essere riscritti da un LLM. I risultati backup (backup_complete e backup_fail) non vengono riscritti; con i suggerimenti IA attivi, l’IA aggiunge solo una spiegazione quando un backup segnala errori. IA è disattivata inizialmente e, se attiva, lavora nel thread di invio. Se la chiamata fallisce o scade, usa il testo originale del modello.", "body2": "Sei fornitori: OpenAI, Anthropic, Google Gemini, Groq, OpenRouter e Ollama. Ogni canale sceglie dettaglio (brief, standard, detailed), lingua, modalità del prompt (default/custom) e prompt personalizzato. Vedi Assistente IA per configurazione ed esempi.", "privacyTitle": "Nota sulla privacy", "privacyBody": "Le richieste IA possono includere titolo, gravità, testo, prompt e contesto: nomi host, IP, utenti, errori e righe del registro. Vanno all’endpoint scelto. Ollama resta locale solo con server e modello entrambi locali; server remoti o modelli cloud inviano dati fuori dall’host. Per mantenerli nella rete, disattiva la riscrittura o usa endpoint e modello locali controllati." diff --git a/web/messages/it/docs/security/ssl-letsencrypt.json b/web/messages/it/docs/security/ssl-letsencrypt.json index 19f7938b..9ed51fcd 100644 --- a/web/messages/it/docs/security/ssl-letsencrypt.json +++ b/web/messages/it/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Che cosa questa pagina copre", - "body": "Come cambiare il Monitor da HTTP a HTTPS nel pannello Impostazioni → Sicurezza, ciò che ogni fonte di certificato indica effettivamente sul disco, come l'opzione Proxmox si comporta quando l'host ha un cert Let's Encrypt e come impostare percorsi personalizzati se si gestisce certs al di fuori di Proxmox." + "body": "Come cambiare il Monitor da HTTP a HTTPS nel pannello Amministratore → Sicurezza, ciò che ogni fonte di certificato indica effettivamente sul disco, come l'opzione Proxmox si comporta quando l'host ha un cert Let's Encrypt e come impostare percorsi personalizzati se si gestisce certs al di fuori di Proxmox." }, "wheresetting": { "heading": "Dove si trova l'impostazione", - "body": "Apri Monitor e vai in Impostazioni → Sicurezza → HTTPS / SSL. Il pannello mostra HTTP o HTTPS e, se HTTPS non è attivo, le fonti di certificato rilevate.", - "imageAlt": "Impostazioni → Sicurezza → HTTPS / Pannello SSL nel Monitor che mostra lo stato HTTPS-off, il certificato Proxmox auto-determinato (soggetto, emittente, scadenza) e l'opzione Usa Certificato personalizzato", - "caption": "Pannello Impostazioni → Sicurezza → HTTPS / SSL prima dell'attivazione. Monitor mostra il certificato usato da Proxmox e permette di sceglierlo con un clic." + "body": "Apri Monitor e vai in Amministratore → Sicurezza → SSL/HTTPS. Il pannello mostra HTTP o HTTPS e, se HTTPS non è attivo, le fonti di certificato rilevate.", + "imageAlt": "Pannello Amministratore → Sicurezza → SSL/HTTPS nel Monitor che mostra lo stato HTTPS-off, il certificato Proxmox auto-determinato (soggetto, emittente, scadenza) e l'opzione Usa Certificato personalizzato", + "caption": "Pannello Amministratore → Sicurezza → SSL/HTTPS prima dell'attivazione. Monitor mostra il certificato usato da Proxmox e permette di sceglierlo con un clic." }, "twoways": { "heading": "Due modi per abilitare HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Passare il Monitor a HTTPS", - "bodyRich": "Quando /etc/pve/local/pveproxy-ssl.pem è firmato da Let's Encrypt, apri Impostazioni → Sicurezza → HTTPS / SSL, verifica che l'emittente sia Let's Encrypt e non la CA locale Proxmox, poi fai clic su Usa certificato Proxmox. Monitor si riavvia e il caricamento successivo usa HTTPS su 8008 con una catena pubblicamente attendibile. I rinnovi ACME successivi sono convalidati e selezionati alla prossima nuova connessione TLS, senza controlli periodici né riavvio al rinnovo. Aggiorna certificato rimane disponibile in Sicurezza per diagnosi e recupero." + "bodyRich": "Quando /etc/pve/local/pveproxy-ssl.pem è firmato da Let's Encrypt, apri Amministratore → Sicurezza → SSL/HTTPS, verifica che l'emittente sia Let's Encrypt e non la CA locale Proxmox, poi fai clic su Usa certificato Proxmox. Monitor si riavvia e il caricamento successivo usa HTTPS su 8008 con una catena pubblicamente attendibile. I rinnovi ACME successivi sono convalidati e selezionati alla prossima nuova connessione TLS, senza controlli periodici né riavvio al rinnovo. Aggiorna certificato rimane disponibile in Sicurezza per diagnosi e recupero." }, "custom": { "heading": "Certificato personalizzato — quando utilizzarlo", diff --git a/web/messages/pt/docs/monitor/access-auth.json b/web/messages/pt/docs/monitor/access-auth.json index 371da883..25b2698e 100644 --- a/web/messages/pt/docs/monitor/access-auth.json +++ b/web/messages/pt/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Alcançar o painel", - "intro": "ProxMenux Monitor liga-se a 0.0.0.0:8008. Há três maneiras comuns de alcançá-lo:", + "intro": "O ProxMenux Monitor escuta no TCP 8008 em todas as interfaces (::, IPv4 e IPv6). Há três maneiras comuns de alcançá-lo:", "outro": "O acesso direto corresponde à unidade systemd predefinida. O proxy inverso e o Secure Gateway são descritos abaixo. Confiar nos IP de cliente em X-Forwarded-For exige PROXMENUX_TRUST_PROXY=1 e um proxy sob o seu controlo. A simples presença de X-Forwarded-Proto ou X-Forwarded-Host não ativa a confiança no proxy. Nas portas 80/443, o frontend usa URL /api/* relativos; em qualquer outra porta, chama a porta 8008 no mesmo nome de anfitrião." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — o que contém e como está protegido", "authJsonBody": "Os dados de autenticação ficam em /root/.config/proxmenux-monitor/auth.json, modo 0600, proprietário root. Contém hashes PBKDF2 e segredos criptográficos (jwt_secret, totp_secret), nunca a palavra-passe em claro. Cifre os destinos de cópia ou replicação e nunca inclua este ficheiro no controlo de versões.", "rotateTitle": "A rotação do jwt_secret invalida todos os JWTs existentes", - "rotateBody": "Se auth.json for recriado ou restaurado com outro segredo, jwt_secret muda. Os JWT antigos de sessão e API falham com \"Invalid or expired token\". A interface assinala-os com Inválido — gerar novamente. Revogue e substitua os tokens também no Home Assistant, scripts e outros clientes.", + "rotateBody": "Se auth.json for recriado ou restaurado com outro segredo, jwt_secret muda. Os JWT antigos de sessão e API falham com \"Invalid or expired token\". A interface assinala os tokens de API afetados a vermelho, com um selo que indica para os revogar e gerar novos. Home Assistant, scripts e outros clientes externos precisam de um token novo depois disso.", "recoverTitle": "Recuperar uma senha perdida", "recoverIntro": "Não há fluxo online de \"esquecimento de senha\" — por design, já que o painel é executado no próprio host do operador e o caminho de recuperação é o acesso de shell a esse host. ProxMenux envia uma reinicialização guiada dentro do menu de configuração para que você não tenha que editar manualmente auth.json:", "survivesTitle": "O que sobrevive ao reset", @@ -284,14 +284,14 @@ "heading": "Tokens API de longa duração", "intro": "As sessões expiram após 24 horas. Para Homepage, Home Assistant, Grafana ou Uptime Kuma, crie um token API válido por 365 dias. O JWT usa o mesmo segredo; o campo token_name permite identificá-lo e revogá-lo individualmente.", "imageAlt": "Painel de tokens API com nome, prefixo, data de criação e validade", - "imageCaption": "Lista nas definições: nome, prefixo com os quatro últimos caracteres de identificação, datas de criação e validade, ação de revogação.", + "imageCaption": "Lista em Administrador → Segurança: nome, prefixo com os quatro últimos caracteres de identificação, datas de criação e validade, ação de revogação.", "generateTitle": "Gerar um token", "generateIntro": "Do painel:", "generateSteps": [ - "Abra Segurança → Tokens de acesso API.", + "Abra Administrador → Segurança → Tokens de API e clique em Gerar novo token.", "Introduza um nome descritivo, por exemplo \"Home Assistant\".", "Volta a inserir a tua senha. Se 2FA está ligado, também o código atual 6 dígitos.", - "Clique em Gerar token. Aparece uma única vez: copie-o imediatamente." + "Clique em Gerar token. O token aparece uma única vez: copie-o de imediato." ], "generateCli": "Da linha de comando:", "useTitle": "Usar um token", @@ -310,7 +310,7 @@ "intro": "Dois caminhos para o TLS:", "items": [ "Proxy inverso (recomendado). Terminar TLS em Nginx / Caddy / Traefik e encaminhar HTTP na porta 8008 para o processo Flask. Excertos abaixo.", - "HTTPS direto na AppImage. Configure um certificado com POST /api/ssl/configure (interface: Definições → SSL). HTTPS usa gevent.pywsgi com o handler padrão; flask-sock trata WebSocket para WSS. Os caminhos ficam na configuração SSL." + "HTTPS direto na AppImage. Configure um certificado com POST /api/ssl/configure (interface: Administrador → Segurança → SSL/HTTPS). HTTPS usa gevent.pywsgi com o handler padrão; flask-sock trata WebSocket para WSS. Os caminhos ficam na configuração SSL." ], "calloutTitle": "Limitações diretas do HTTPS", "calloutBody": "O Monitor pode usar um certificado gerido pelo Proxmox ou ficheiros próprios. Não emite certificados ACME. Para emissão e renovação automáticas, use Proxmox ACME ou um proxy Caddy, Traefik ou Nginx e garanta que os certificados renovados são carregados." diff --git a/web/messages/pt/docs/monitor/ai-assistant.json b/web/messages/pt/docs/monitor/ai-assistant.json index d1bb67d3..fe794bc7 100644 --- a/web/messages/pt/docs/monitor/ai-assistant.json +++ b/web/messages/pt/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "Assistente de IA", - "description": "A reformulação opcional por IA transforma as notificações elegíveis em mensagens claras, com detalhe por canal, treze idiomas na interface, prompts personalizados, biblioteca comunitária pública e contexto adicional. Os relatórios backup_complete e backup_fail não passam pela IA.", + "description": "A reformulação opcional por IA transforma as notificações elegíveis em mensagens claras, com detalhe por canal, treze idiomas na interface, prompts personalizados, biblioteca comunitária pública e contexto adicional. Os relatórios backup_complete e backup_fail nunca são reformulados; com as sugestões de IA ativadas, a IA apenas acrescenta uma explicação quando uma cópia reporta erros.", "section": "Monitor do ProxMenux" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Os fornecedores comerciais cobram por token. Um token corresponde aproximadamente a quatro caracteres ingleses ou três quartos de uma palavra. A frase inglesa \"Backup completed on storage local-bak\" tem cerca de oito tokens. Dez linhas de log podem ocupar 200–400 tokens, conforme o conteúdo técnico.", "intro2": "Duas coisas são cobradas em cada chamada:", "items": [ - "Tokens de entrada: prompt de sistema e mensagem do utilizador, com gravidade, título, texto do modelo e contexto adicional. A quantidade depende do prompt e do evento. Cada canal reformulado pode consumir os seus tokens; os relatórios de cópia concluída ou falhada não passam pela IA.", + "Tokens de entrada: prompt de sistema e mensagem do utilizador, com gravidade, título, texto do modelo e contexto adicional. A quantidade depende do prompt e do evento. Cada canal reformulado pode consumir os seus tokens; os relatórios de cópia concluída ou falhada só consomem tokens quando a IA explica erros da cópia.", "Tokens de saída: a resposta do modelo. O Monitor limita-os com max_tokens. O valor é um limite, não um consumo fixo: se o modelo produzir 250 tokens com limite de 1500, paga por 250." ], "capsIntro": "Estes são os limites aplicados pelo módulo de envio, definidos em AI_DETAIL_TOKENS em notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "O modal no aplicativo — seis cartões, um por provedor, com as mesmas descrições documentadas abaixo.", "groq": { "heading": "Groq", - "tagline": "Nível livre muito rápido e generoso (30 req/min). Ideal para começar.", + "tagline": "Muito rápido, com um nível gratuito generoso. Um bom lugar para começar.", "items": [ "Chave API: console.groq.com/keys", "Exemplos da lista de modelos incluída: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Nível de detalhe por canal", - "intro": "Cada um dos quatro canais (Telegram, Discord, Gotify, Email) tem seu próprio nível de detalhes. Três valores estão disponíveis, mapeados para token caps de saída específicos e para instruções específicas no prompt padrão:", + "intro": "Cada um dos seis canais (Telegram, Discord, Gotify, Email, Pushover, Apprise) tem seu próprio nível de detalhes. Três valores estão disponíveis, mapeados para token caps de saída específicos e para instruções específicas no prompt padrão:", "headerLevel": "Nível", "headerLabel": "Rótulo UI", "headerCap": "Limite de saída", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Predefinições na primeira instalação:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "Email — detailed. Email é o canal onde você normalmente quer a imagem completa para arquivo." ], "emailTitle": "Nível de detalhes de e- mail adiciona o original", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Uma nota sobre modelos", - "body1": "A IA recebe o texto já produzido pelo modelo, não dados brutos. Tipos como vm_start, auth_fail e health_degraded têm modelos em notification_templates.py. A IA reformula os textos elegíveis; backup_complete e backup_fail mantêm relatórios determinísticos sem IA.", + "body1": "A IA recebe o texto já produzido pelo modelo, não dados brutos. Tipos como vm_start, auth_fail e health_degraded têm modelos em notification_templates.py. A IA reformula os textos elegíveis; backup_complete e backup_fail mantêm relatórios determinísticos; com as sugestões de IA ativadas, a IA apenas acrescenta uma explicação quando a cópia reporta erros.", "body2": "Os nomes de máquina e VMID já são preenchidos pelo modelo antes da reformulação. Com IA desativada, o texto do modelo é enviado diretamente. A página Notificações documenta todo o processo de envio e o que acontece antes desta etapa." }, "privacy": { diff --git a/web/messages/pt/docs/monitor/api-reference.json b/web/messages/pt/docs/monitor/api-reference.json index 91fb3a54..2737ed8e 100644 --- a/web/messages/pt/docs/monitor/api-reference.json +++ b/web/messages/pt/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Dados alargados usados no cabeçalho: métricas gerais e hora de arranque." + "use": "Informação leve do cabeçalho: nome do host, tempo de atividade e estado de saúde em cache. Público, sem necessidade de token." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Entradas filtradas no diário. Consulta: ?level=&service=&limit=." + "use": "Entradas filtradas no diário. Consulta: ?priority=&service=&limit=&since_days= (priority 0-7, since_days até 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Fluxo de eventos internos — o mesmo que alimenta notificações." + "use": "Tarefas e eventos recentes do cluster Proxmox a partir de pvesh get /cluster/tasks. Consulta: ?limit= (predefinição 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Emite um evento personalizado. Corpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Emite um evento personalizado. Corpo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/pt/docs/monitor/architecture.json b/web/messages/pt/docs/monitor/architecture.json index 20b28ae7..23ef6b17 100644 --- a/web/messages/pt/docs/monitor/architecture.json +++ b/web/messages/pt/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: o serviço usa privilégios root para SMART, pvesh e gestão ZFS. Os processos do terminal web herdam estas permissões.", "Restart=on-failure com espera de dez segundos: o serviço reinicia automaticamente após uma saída com erro.", - "After=network.target: ordena o arranque após esse alvo; não garante IP atribuído, DNS ou ligação externa." + "After=network.target pve-cluster.service: ordena o arranque após o alvo de rede e o sistema de ficheiros do cluster Proxmox; não garante IP atribuído, DNS ou ligação externa." ], "inspectTitle": "Consultar a unidade atual" }, diff --git a/web/messages/pt/docs/monitor/dashboard/hardware.json b/web/messages/pt/docs/monitor/dashboard/hardware.json index 2c13dd4e..0fd5dfd4 100644 --- a/web/messages/pt/docs/monitor/dashboard/hardware.json +++ b/web/messages/pt/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "Status do no-break", "subHeading": "(condicional)", - "body": "Aparece com um servidor NUT (Network UPS Tools) configurado e acessível. Mostra estado (rede / bateria / carregamento / bateria fraca), carga da bateria, autonomia estimada, percentagem de carga suportada, tensão de entrada, modelo e firmware. Alimenta também Segurança e certificados do monitor de saúde: a passagem a bateria é assinalada imediatamente." + "body": "Aparece com um servidor NUT (Network UPS Tools) configurado e acessível. Mostra estado (rede / bateria / carregamento / bateria fraca), carga da bateria, autonomia estimada, percentagem de carga suportada, tensão de entrada, modelo e firmware." }, "dataCollected": { "heading": "Como os dados são coletados", diff --git a/web/messages/pt/docs/monitor/dashboard/index.json b/web/messages/pt/docs/monitor/dashboard/index.json index 18d79d2d..2afbd18b 100644 --- a/web/messages/pt/docs/monitor/dashboard/index.json +++ b/web/messages/pt/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Shell do anfitrião ou de qualquer VM/CT no navegador, com xterm.js sobre WebSockets." + "owns": "Shell no navegador no host Proxmox, com xterm.js sobre WebSockets. As consolas LXC abrem a partir do separador VMs e LXCs." }, { "name": "Segurança", diff --git a/web/messages/pt/docs/monitor/dashboard/security.json b/web/messages/pt/docs/monitor/dashboard/security.json index 01727fc5..d37ebafc 100644 --- a/web/messages/pt/docs/monitor/dashboard/security.json +++ b/web/messages/pt/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL/HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 em /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/pt/docs/monitor/dashboard/settings.json b/web/messages/pt/docs/monitor/dashboard/settings.json index fbad5728..f69855d2 100644 --- a/web/messages/pt/docs/monitor/dashboard/settings.json +++ b/web/messages/pt/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Unidades de rede", "imageAlt": "Cartão Unidades de rede com o seletor de apresentação em Bytes", "imageCaption": "Escolha entre bits por segundo e bytes por segundo para cada taxa de rede exibida no painel.", - "body": "Mostra a velocidade em bits por segundo (Mbps/Gbps) ou bytes por segundo (MB/s/GB/s). Bits são a predefinição, como nas especificações de placas e fornecedores; as transferências de ficheiros usam frequentemente bytes. Gráficos, etiquetas e ajudas mudam de imediato sem recarregar." + "body": "Escolha como a velocidade de rede é mostrada no painel: bits por segundo (Mbps / Gbps) ou bytes por segundo (MB/s / GB/s). Bytes é a predefinição, como a maioria das ferramentas de transferência de ficheiros; bits é como os fabricantes de placas de rede e os ISP etiquetam os seus produtos. A escolha fica guardada no navegador, por isso cada navegador mantém a sua. Afeta todos os gráficos, etiquetas e ajudas que mostram a taxa de rede, de imediato e sem recarregar." }, "health": { "heading": "Monitor de Saúde", @@ -203,7 +203,7 @@ "heading": "Detecção de atualização LXC", "imageAlt": "Cartão de deteção de atualizações LXC com interruptor para procurar pacotes pendentes em contentores Debian, Ubuntu e Alpine ativos", "imageCaption": "Interruptor da análise periódica com apt list --upgradable / apk list -u nos CT ativos. Vem ligado. A opção correspondente em Notificações → Serviços aparece com a deteção ativa.", - "intro": "O interruptor entre Limites e Notificações controla a análise LXC. Ativo, consulta os gestores de pacotes dos CT em execução; Hardware mostra os resultados e alimenta lxc_updates_available. Desativado, para as chamadas pct exec e remove entradas LXC de managed_installs.json; /api/managed-installs deixa de mostrar esse estado sem esperar 24 h.", + "intro": "O interruptor entre Limites e Notificações controla a análise LXC. Ativo, consulta os gestores de pacotes dos CT em execução; o separador VMs e LXCs mostra os resultados nos contadores e alimenta lxc_updates_available. Desativado, para as chamadas pct exec e remove entradas LXC de managed_installs.json; /api/managed-installs deixa de mostrar esse estado sem esperar 24 h.", "whatRunsTitle": "O que a análise executa", "whatRunsIntro": "Para cada CT no estado running com um gestor de pacotes suportado:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Aqui se ativam as notificações do ProxMenux Monitor e a reformulação com IA. Ativar notificações inicia o envio em segundo plano, regista um destino webhook Proxmox VE para integrar os seus eventos e abre os canais: Telegram, Discord, email, Gotify e outros. A reformulação com IA está numa secção avançada expansível do mesmo painel.", "body2": "As opções são explicadas em páginas próprias: canais, controlos por evento, mensagens formatadas, nome apresentado, envio com eliminação de duplicados, intervalo, agregação e horas de silêncio, webhook PVE, fornecedores de IA e modos de instruções:", "items": [ - "Notificações: configuração dos canais (Telegram, Discord, Gotify, email e palavras-passe de aplicação Gmail / Microsoft, ntfy, Slack, Teams e webhook genérico), categorias de eventos, mensagens formatadas, nome apresentado, envio, webhook PVE, histórico e API.", + "Notificações: configuração dos canais (Telegram, Discord, Gotify, email e palavras-passe de aplicação Gmail / Microsoft, Pushover e Apprise para ntfy, Slack, Teams e outros serviços), categorias de eventos, mensagens formatadas, nome apresentado, envio, webhook PVE, histórico e API.", "Assistente de IA: fornecedores (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelos, instruções predefinidas ou personalizadas, idioma de saída, detalhe por canal e sugestões de IA." ] }, @@ -294,8 +294,8 @@ }, { "card": "Unidades de rede", - "endpoint": "/api/settings", - "source": "Guardado na tabela SQLite de definições do painel." + "endpoint": "localStorage", + "source": "Preferência do navegador proxmenux-network-unit." }, { "card": "Durações do Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Exclusões de armazenamento / interface", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "Tabelas de SQLite excluded_storages e excluded_interfaces." }, { diff --git a/web/messages/pt/docs/monitor/dashboard/storage.json b/web/messages/pt/docs/monitor/dashboard/storage.json index 9da13a25..a6096624 100644 --- a/web/messages/pt/docs/monitor/dashboard/storage.json +++ b/web/messages/pt/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Apoiado por três fontes", - "body": "Os armazenamentos Proxmox vêm de pvesm status, ZFS de zpool status, discos de lsblk + smartctl e campos NVMe de nvme. O separador atualiza-se aproximadamente a cada 60 segundos; abrir o detalhe pede uma leitura SMART." + "body": "Os armazenamentos Proxmox vêm de pvesm status, ZFS de zpool status, discos de lsblk + smartctl e campos NVMe de nvme. O separador atualiza-se aproximadamente a cada 30 segundos; abrir o detalhe pede uma leitura SMART." }, "thresholds": { "title": "Cor do estado e limiares aplicados aqui", diff --git a/web/messages/pt/docs/monitor/dashboard/system-logs.json b/web/messages/pt/docs/monitor/dashboard/system-logs.json index e852138e..b6598811 100644 --- a/web/messages/pt/docs/monitor/dashboard/system-logs.json +++ b/web/messages/pt/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Total de entradas — número de registos no intervalo do filtro ativo.", "Erros — número de entradas com gravidade ≤ 3 (err / crit / alert / emerg).", "Avisos — número de entradas com gravidade 4 (warning).", - "Cópias de segurança — número de entradas de tarefas vzdump / PBS no mesmo intervalo." + "Cópias de segurança: número de arquivos de backup nos armazenamentos de backup configurados." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Registros", "logsIntro": "O journal do sistema, obtido no servidor com journalctl. Filtros disponíveis na barra de ferramentas:", "logsFilters": [ - "Gravidade — emerg / alert / crit / err / warning / notice / info / debug, ou qualquer combinação.", - "Tempo de alcance — último 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / custom.", - "Pesquisa livre — subcadeia ou expressão regular (journalctl --grep).", - "Filtro por unidade — restringe a uma unidade systemd específica (pveproxy.service, nginx.service, …)." + "Nível: Todos os níveis, Erro, Aviso ou Informações.", + "Intervalo de tempo: 1 dia / 3 dias / 1 semana / 2 semanas / 1 mês, ou um número personalizado de dias (até 90).", + "Pesquisa livre: subcadeia sem distinção entre maiúsculas e minúsculas sobre mensagem, serviço, PID, nome do host e unidade, aplicada no navegador.", + "Filtro por serviço: restringe a um serviço (o SYSLOG_IDENTIFIER do diário)." ], "logsRowsAfter": "Cada linha mostra a hora, o crachá de gravidade, a unidade de origem e a mensagem. Mensagens longas colapsam com uma opção \"mostrar mais\". A ação Download agrupa o filtro atual em um único arquivo .txt via GET /api/logs/download — útil quando você deseja compartilhar uma fatia de diário com alguém.", "logDetailsModalTitle": "Janela Detalhes do registo", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Numa instalação nova do Proxmox, journald utiliza por predefinição MaxLevelStore=warning, que descarta mensagens info. O Monitor deteta isto no arranque e acrescenta um ficheiro de configuração complementar (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) com o limiar info, para guardar mensagens informativas e mais graves. Isto não inclui debug.", "backupsTitle": "Cópias de segurança", - "backupsBody": "Histórico de tarefas do Proxmox limitado às cópias de segurança. Uma linha por tarefa (vzdump, transferências PBS, recolha de dados não utilizados e verificação), com estado (OK / WARNINGS / ERROR), sistema convidado envolvido, armazenamento de origem, duração e UPID. Clique numa linha para carregar o registo completo através de GET /api/task-log/<upid>: os mesmos dados de Datacenter → Tasks, limitados às cópias de segurança.", + "backupsBody": "Os arquivos de backup em cada armazenamento com capacidade de backup (dir, NFS, CIFS, PBS), lidos com pvesh get /nodes/localhost/storage/<id>/content. Os cartões no topo mostram o número de VMs e LXC e o tamanho total; abaixo, uma linha por arquivo com tipo, armazenamento, tamanho e data. A restauração está na interface web do Proxmox.", "notificationsTitle": "Notificações", - "notificationsBody1": "Todas as notificações enviadas pelo Monitor: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams e webhook. Cada linha mostra data e hora, canal, tipo de evento, gravidade, título e corpo gerados e, se a IA estiver ativa, um controlo para comparar a sua reformulação com o original.", - "notificationsBody2": "Utilize este separador para verificar se um canal entrega notificações e comparar a reformulação da IA com o modelo de base. Os canais configuram-se na página detalhada Notificações." + "notificationsBody1": "Atividade de notificações do Proxmox: linhas do diário dos serviços Proxmox que mencionam notificações, email, webhooks ou alertas, os destinos em /etc/pve/notifications.cfg e as tarefas de backup da lista de tarefas do cluster. As linhas de tarefas de backup permitem descarregar o registo completo da tarefa. O histórico do que o próprio Monitor enviou está em Configurações → Notificações → Histórico de notificações.", + "notificationsBody2": "Utilize este separador para verificar o que o próprio sistema de notificações do Proxmox está a fazer. Os canais do Monitor configuram-se na página detalhada Notificações." }, "dataCollected": { "heading": "Como os dados são coletados", @@ -64,7 +64,7 @@ { "subtab": "Registos (filtro em direto)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> com filtros de gravidade, unidade e pesquisa aplicados no servidor." + "source": "O separador pede /api/logs?since_days=N; os filtros de nível, serviço e texto são aplicados no navegador. A API também aceita priority e service, que o separador ainda não usa." }, { "subtab": "Transferir", @@ -74,17 +74,17 @@ { "subtab": "Cópias de segurança", "endpoint": "/api/backups", - "source": "Histórico de tarefas PVE filtrado por vzdump, transferências PBS, recolha de dados não utilizados e verificação." + "source": "Arquivos de backup listados de cada armazenamento de backup com pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Detalhes de uma tarefa de cópia de segurança", + "subtab": "Registo de tarefa de backup (Notificações)", "endpoint": "/api/task-log/<upid>", "source": "Registo completo da tarefa em texto simples, lido de /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Histórico de notificações", - "endpoint": "/api/notifications/history", - "source": "Tabela SQLite notification_history alimentada pelo ciclo de envio." + "subtab": "Notificações", + "endpoint": "/api/notifications", + "source": "journalctl --grep sobre unidades Proxmox, /etc/pve/notifications.cfg e tarefas de backup de pvesh get /cluster/tasks." } ], "apiIntro": "O filtro em direto e as transferências também estão acessíveis através da API:", diff --git a/web/messages/pt/docs/monitor/dashboard/system-overview.json b/web/messages/pt/docs/monitor/dashboard/system-overview.json index 41cc966f..3d93e773 100644 --- a/web/messages/pt/docs/monitor/dashboard/system-overview.json +++ b/web/messages/pt/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Anéis, barras e minigráficos usam a mesma escala: verde abaixo de Aviso, âmbar entre Aviso e Crítico, vermelho a partir de Crítico. Valores recomendados incluídos no ProxMenux:", "thresholdsItems": [ "Utilização CPU — aviso 85 %, crítico 95 %.", - "Memória — aviso 85 %, crítico 95 %. O swap também ativa Crítico a 5 % de utilização; um host Proxmox saudável deverá utilizá-lo raramente.", + "Memória: aviso 85 %, crítico 95 %. O swap só ativa Crítico quando a utilização de swap está acima de 80 % e a RAM disponível abaixo de 15 %.", "Temperatura CPU — aviso 80 °C, crítico 90 °C." ], "thresholdsOutro": "Os valores são configuráveis por host. Definições → Limiares do monitor de saúde centraliza os ajustes e explica como os adaptar.", @@ -58,7 +58,7 @@ "intro": "Os cartões Utilização CPU e Memória abrem uma lista ordenável dos 25 processos principais: por utilização CPU no primeiro caso e por memória residente no segundo.", "listTitle": "A janela da lista", "listItems": [ - "Atualização automática — a lista atualiza a cada 5 segundos enquanto a janela está aberta e deixa de consultar ao fechar.", + "Atualização automática — a lista atualiza a cada 3 segundos enquanto a janela está aberta e deixa de consultar ao fechar.", "Filtro — a pesquisa limita a lista por comando, utilizador ou PID.", "Barra inline — a coluna métrica primária desenha uma barra pequena escalonada para o valor mais alto da lista filtrada, então a classificação permanece visível mesmo quando nenhum processo está perto de 100 %.", "Disposição móvel — abaixo de 640 px, PID e Utilizador ficam ocultos, para Comando, CPU % e Memória caberem sem deslocamento horizontal." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Centro: gráficos de métricas do nó", - "body1": "Sob os cartões, NodeMetricsCharts apresenta históricos de CPU, memória e E/S de disco do armazenamento RRD do Proxmox através de /api/node/metrics. O seletor oferece 1 hora / 24 horas / 7 dias / 30 dias / 1 ano. A resolução diminui em períodos maiores para manter o gráfico fluido.", + "body1": "Sob os cartões, NodeMetricsCharts apresenta históricos de CPU, memória e E/S de disco do armazenamento RRD do Proxmox através de /api/node/metrics. O seletor oferece 1 hora / 24 horas / 7 dias / 30 dias. A resolução diminui em períodos maiores para manter o gráfico fluido.", "body2": "Os mesmos gráficos da interface web do Proxmox para um nó, integrados no tema escuro do Monitor e alinhados com os outros painéis." }, "bottom": { diff --git a/web/messages/pt/docs/monitor/dashboard/vms-lxcs.json b/web/messages/pt/docs/monitor/dashboard/vms-lxcs.json index 5931276b..fd5c4653 100644 --- a/web/messages/pt/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/pt/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Destino — armazenamento (PBS-Cloud, PBS-Local, NFS-Backup, …), colorido conforme o estado.", "Tamanho — tamanho final em disco da cópia." ], - "backupsOutro": "+ Criar cópia de segurança inicia uma cópia no armazenamento marcado “Backup target” no Proxmox. O restauro faz-se na interface web Proxmox; o Monitor mostra as cópias recentes do sistema e permite criar novas.", + "backupsOutro": "O botão + Criar backup, no canto superior direito, abre uma janela para escolher o armazenamento, o modo (snapshot / suspend / stop), a proteção e as notas antes de iniciar um vzdump. O restauro faz-se na interface web Proxmox; o Monitor mostra se o sistema tem cópias recentes, mas não o fluxo de recuperação.", "firewallTitle": "Página 7 — Firewall", "firewallIntro": "Lê o registo do firewall Proxmox de cada sistema diretamente do host, sem serviço adicional nem consultas periódicas. O separador está sempre presente; o conteúdo depende da ativação do firewall e de uma regra registar pacotes.", "firewallItems": [ diff --git a/web/messages/pt/docs/monitor/health-monitor.json b/web/messages/pt/docs/monitor/health-monitor.json index 7b24f9d7..19baaa2b 100644 --- a/web/messages/pt/docs/monitor/health-monitor.json +++ b/web/messages/pt/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "O indicador reflete a categoria mais grave", "pillBody": "A cor do cabeçalho reflete a gravidade máxima: CRITICAL → vermelho, senão WARNING → amarelo, senão INFO → azul, senão verde. A mesma lógica controla o ponto do favicon e o distintivo PWA.", "updateNowTitle": "Atualizar agora no cabeçalho Visão geral", - "updateNowBody1": "Se Atualizações do sistema indicar atualizações pendentes, surge Atualizar agora junto do indicador. A janela executa o fluxo de ProxMenux → Settings post-install Proxmox → Proxmox System Update: limpeza de repositórios, apt full-upgrade através de update-pve-safe.sh, reconstrução DKMS dos controladores geridos com um novo kernel, autoremove/autoclean e pedido de reinício se o kernel mudar. O progresso aparece em direto.", - "updateNowBody2": "No fim, fechar a janela chama GET /api/health/details?refresh=1 e invalida a cache do endpoint. As atualizações pendentes e a gravidade são recalculadas a partir do novo estado dos pacotes; o distintivo desaparece sem esperar pelo próximo ciclo. Se o anfitrião já estiver atualizado, o botão fica oculto." + "updateNowBody1": "Se Atualizações do sistema indicar atualizações pendentes, surge Atualizar agora junto do indicador. A janela executa o fluxo de ProxMenux → Utilitários e ferramentas → Atualização do sistema Proxmox: limpeza de repositórios, apt full-upgrade através de update-pve-safe.sh, reconstrução DKMS dos controladores geridos com um novo kernel, autoremove/autoclean e pedido de reinício se o kernel mudar. O progresso aparece em direto.", + "updateNowBody2": "No fim, fechar a janela chama GET /api/health/full?refresh=1 e invalida a cache do endpoint. As atualizações pendentes e a gravidade são recalculadas a partir do novo estado dos pacotes; o distintivo desaparece sem esperar pelo próximo ciclo. Se o anfitrião já estiver atualizado, o botão fica oculto." }, "dismiss": { "heading": "Silenciar alertas e definir a duração da supressão", diff --git a/web/messages/pt/docs/monitor/index.json b/web/messages/pt/docs/monitor/index.json index 2d6eef39..77b90b79 100644 --- a/web/messages/pt/docs/monitor/index.json +++ b/web/messages/pt/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API e integrações", "intro": "Os endpoints REST expõem dados de monitorização JSON por HTTP/HTTPS para Homepage, Home Assistant, Uptime Kuma e scripts. Grafana pode usar o exportador de texto Prometheus separado em /api/prometheus. As chamadas podem usar curl.", - "tokens": "Tokens API de longa duração (365 dias) são gerados em Configurações → API Tokens de acesso ou via POST /api/auth/generate-api-token.", + "tokens": "Tokens API de longa duração (365 dias) são gerados em Administrador → Segurança → Tokens de API ou via POST /api/auth/generate-api-token.", "bearer": "Envie tokens com Authorization: Bearer …. /api/health também espera o cabeçalho Bearer, pelo que os testes de disponibilidade precisam de um token read_only. Em /api/auth/* existem tanto rotas públicas de configuração/início/estado como rotas protegidas de contas e tokens; nem todas são anónimas.", "catalog": "O catálogo de endpoints, rotação de tokens e segurança estão na Referência da API; exemplos para Homepage, Home Assistant, Grafana, Uptime Kuma e cURL estão em Integrações." }, "serviceControl": { "heading": "Controle de serviço", - "intro": "Diariamente, o Monitor é gerenciado exatamente como qualquer outro serviço systemd. Ele também é exposto como duas entradas dentro da TUI ProxMenux em Configurações:", + "intro": "Diariamente, o Monitor é gerenciado exatamente como qualquer outro serviço systemd. Ele também é exposto como três entradas dentro da TUI ProxMenux em Configurações:", "codeComment": "# Controle manual", "footer": "Consulte Configurações → ProxMenux Monitor para alternar no menu e fluxo de verificação de status." }, diff --git a/web/messages/pt/docs/monitor/integrations.json b/web/messages/pt/docs/monitor/integrations.json index a1c33729..7d4c54b0 100644 --- a/web/messages/pt/docs/monitor/integrations.json +++ b/web/messages/pt/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Autenticação: a única coisa que cada receita precisa", "intro": "A maioria dos endpoints usados por essas integrações são autenticados. Tem duas maneiras de satisfazer esse requisito.", "optAtitle": "Opção A — API token (recomendado para integrações)", - "optAbody1": "Abra Definições → Segurança → Tokens API. Clique em Gerar token, dê-lhe um nome como homepage, home-assistant ou prometheus e copie-o: é apresentado uma única vez. Expira ao fim de um ano por predefinição e pode ser revogado individualmente. Use-o em clientes externos ao navegador.", + "optAbody1": "Abra Administrador → Segurança → Tokens de API. Clique em Gerar novo token, dê-lhe um nome como homepage, home-assistant ou prometheus, introduza a sua senha (e o código 2FA, se estiver ativo), clique em Gerar token e copie-o: é apresentado uma única vez. Expira ao fim de um ano por predefinição e pode ser revogado individualmente. Use-o em clientes externos ao navegador.", "optAbody2": "A partir desse ponto cada pedido é apenas:", "optBtitle": "Opção B – fluxo de login (nome de usuário + senha)", "optBbody": "Útil para scripts que autenticam como um usuário humano. O token retornado é de curta duração; a maioria das integrações deve preferir a Opção A.", "outro": "O campo TOTP só é necessário com autenticação de dois fatores ativa. A rotação e revogação dos tokens, a política de palavras-passe e o registo de auditoria estão em Acesso e autenticação.", "httpsTitle": "Usando HTTPS em vez de HTTP", - "httpsIntro": "Cada receita abaixo usa http:// nas URLs para manter os exemplos curtos. Se você ativou TLS no Monitor (Configurações → Segurança → SSL/HTTPS), troque http:// para https:// em cada URL — essa é a única mudança. Duas notas específicas para certos instrumentos:", + "httpsIntro": "Cada receita abaixo usa http:// nas URLs para manter os exemplos curtos. Se você ativou TLS no Monitor (Administrador → Segurança → SSL/HTTPS), troque http:// para https:// em cada URL — essa é a única mudança. Duas notas específicas para certos instrumentos:", "httpsItems": [ "Certificados autoassinados. A integração Home Assistant rest: verifica TLS por predefinição. Para um certificado autoassinado do Monitor, adicione verify_ssl: false a cada bloco REST junto de scan_interval:, ou importe a CA do Monitor para os certificados de confiança. O mesmo se aplica a outras ferramentas que verificam certificados.", "Prometheus já inclui scheme: https no exemplo abaixo. Ative ou mantenha https se TLS estiver ativo no Monitor." @@ -43,7 +43,7 @@ "basicTitle": "Elemento básico — sem autenticação", "basicIntro": "Use isso quando o ProxMenux Monitor estiver em uma rede confiável e você ainda não tiver habilitado a autenticação no lado Monitor. A entrada services.yaml mais simples possível:", "authedTitle": "Elemento autenticado", - "authedIntro": "Gere um token API em Configurações → Segurança → API Tokens no Monitor, copie-o e cole-o no cabeçalho Authorization abaixo — substitua o token de exemplo mostrado após Bearer pelo que você acabou de copiar:", + "authedIntro": "Gere um token API em Administrador → Segurança → Tokens de API no Monitor, copie-o e cole-o no cabeçalho Authorization abaixo — substitua o token de exemplo mostrado após Bearer pelo que você acabou de copiar:", "authedOutro": "Reinicie o Homepage para apresentar valores atualizados. Reutilize o token nos widgets que consultam a mesma instância do Monitor.", "multiTitle": "Configuração multi-widget — sistema, armazenamento, rede", "multiIntro": "Para mais detalhes, crie três cartões com endpoints diferentes: sistema, armazenamento e rede. Use o mesmo token para esta instância do Monitor.", diff --git a/web/messages/pt/docs/monitor/notifications.json b/web/messages/pt/docs/monitor/notifications.json index 4296dc37..8a8ab2b2 100644 --- a/web/messages/pt/docs/monitor/notifications.json +++ b/web/messages/pt/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Reescrita IA opcional", - "body1": "Eventos elegíveis podem ser reescritos por um LLM. Resultados de cópias (backup_complete e backup_fail) ficam excluídos. IA está desativada por predefinição e, quando ativa, trabalha no thread de envio. Se a chamada falhar ou expirar, usa o texto original do modelo.", + "body1": "Eventos elegíveis podem ser reescritos por um LLM. Resultados de cópias (backup_complete e backup_fail) não são reformulados; com as sugestões de IA ativadas, a IA apenas acrescenta uma explicação quando uma cópia reporta erros. IA está desativada por predefinição e, quando ativa, trabalha no thread de envio. Se a chamada falhar ou expirar, usa o texto original do modelo.", "body2": "Seis fornecedores: OpenAI, Anthropic, Google Gemini, Groq, OpenRouter e Ollama. Cada canal escolhe detalhe (brief, standard, detailed), idioma, modo do prompt (default/custom) e prompt personalizado. Veja Assistente IA para configuração e exemplos.", "privacyTitle": "Nota de privacidade", "privacyBody": "Os pedidos IA podem incluir título, gravidade, texto, prompt e contexto: nomes de anfitrião, IP, utilizadores, erros e linhas do registo. Seguem para o endpoint escolhido. Ollama só permanece local com servidor e modelo ambos locais; servidores remotos ou modelos cloud enviam dados para fora do anfitrião. Para os manter na rede, desative a reescrita ou use endpoint e modelo locais controlados." diff --git a/web/messages/pt/docs/security/ssl-letsencrypt.json b/web/messages/pt/docs/security/ssl-letsencrypt.json index 3e8ba3c2..6ec75d26 100644 --- a/web/messages/pt/docs/security/ssl-letsencrypt.json +++ b/web/messages/pt/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "O que esta página cobre", - "body": "Como mudar o Monitor de HTTP para HTTPS no painel Configurações → Painel de segurança, o que cada fonte de certificado realmente aponta no disco, como a opção Proxmox se comporta quando o host tem um certificado Let's Encrypt, e como definir caminhos personalizados se você gerenciar certs fora do Proxmox." + "body": "Como mudar o Monitor de HTTP para HTTPS no painel Administrador → Segurança, o que cada fonte de certificado realmente aponta no disco, como a opção Proxmox se comporta quando o host tem um certificado Let's Encrypt, e como definir caminhos personalizados se você gerenciar certs fora do Proxmox." }, "wheresetting": { "heading": "Onde se encontra a configuração", - "body": "Abra o Monitor e vá a Configurações → Segurança → HTTPS / SSL. O painel mostra HTTP ou HTTPS e, se HTTPS ainda estiver desativado, as fontes de certificados detetadas.", - "imageAlt": "Configurações → Segurança → Painel HTTPS / SSL no Monitor mostrando o estado HTTPS-off, o certificado Proxmox auto-detectado (sujeito, emissor, expiração) e a opção Use Custom Certificate", - "caption": "Painel Configurações → Segurança → HTTPS / SSL antes da ativação. O Monitor mostra o certificado utilizado pelo Proxmox e permite escolhê-lo com um clique." + "body": "Abra o Monitor e vá a Administrador → Segurança → SSL/HTTPS. O painel mostra HTTP ou HTTPS e, se HTTPS ainda estiver desativado, as fontes de certificados detetadas.", + "imageAlt": "Painel Administrador → Segurança → SSL/HTTPS no Monitor mostrando o estado HTTPS-off, o certificado Proxmox auto-detectado (sujeito, emissor, expiração) e a opção Use Custom Certificate", + "caption": "Painel Administrador → Segurança → SSL/HTTPS antes da ativação. O Monitor mostra o certificado utilizado pelo Proxmox e permite escolhê-lo com um clique." }, "twoways": { "heading": "Duas maneiras de ativar o HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Mudar o monitor para HTTPS", - "bodyRich": "Quando /etc/pve/local/pveproxy-ssl.pem estiver assinado por Let's Encrypt, abra Configurações → Segurança → HTTPS / SSL, confirme que o emissor é Let's Encrypt e não a CA local Proxmox, e clique em Usar certificado Proxmox. O Monitor reinicia e o próximo carregamento utiliza HTTPS em 8008 com uma cadeia de confiança pública. As renovações ACME seguintes são validadas e selecionadas na próxima nova ligação TLS, sem consultas periódicas nem reinício por renovação. Atualizar certificado continua disponível em Segurança para diagnóstico e recuperação." + "bodyRich": "Quando /etc/pve/local/pveproxy-ssl.pem estiver assinado por Let's Encrypt, abra Administrador → Segurança → SSL/HTTPS, confirme que o emissor é Let's Encrypt e não a CA local Proxmox, e clique em Usar certificado Proxmox. O Monitor reinicia e o próximo carregamento utiliza HTTPS em 8008 com uma cadeia de confiança pública. As renovações ACME seguintes são validadas e selecionadas na próxima nova ligação TLS, sem consultas periódicas nem reinício por renovação. Atualizar certificado continua disponível em Segurança para diagnóstico e recuperação." }, "custom": { "heading": "Certificado personalizado — quando usá-lo", diff --git a/web/messages/sk/docs/monitor/access-auth.json b/web/messages/sk/docs/monitor/access-auth.json index 7f2adb94..e4a3359a 100644 --- a/web/messages/sk/docs/monitor/access-auth.json +++ b/web/messages/sk/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Prístup k panelu", - "intro": "ProxMenux Monitor sa viaže na 0.0.0.0:8008. Existujú tri bežné spôsoby, ako ju dosiahnuť:", + "intro": "ProxMenux Monitor počúva na TCP 8008 na všetkých rozhraniach (::, IPv4 aj IPv6). Existujú tri bežné spôsoby, ako ho dosiahnuť:", "outro": "Priamy prístup zodpovedá predvolenej jednotke systemd. Reverzný proxy a Secure Gateway sú opísané nižšie. Dôvera v IP klientov z X-Forwarded-For vyžaduje PROXMENUX_TRUST_PROXY=1 a proxy pod vašou kontrolou. Samotná prítomnosť X-Forwarded-Proto alebo X-Forwarded-Host dôveru v proxy nezapne. Na portoch 80/443 frontend používa relatívne URL /api/*; na akomkoľvek inom porte volá port 8008 na rovnakom názve hostiteľa." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — obsah a ochrana", "authJsonBody": "Údaje overenia sú v /root/.config/proxmenux-monitor/auth.json, režim 0600, vlastník root. Súbor obsahuje hashe PBKDF2 a tajné kryptografické údaje (jwt_secret, totp_secret), nikdy heslo v otvorenom texte. Cieľ zálohovania alebo replikácie šifrujte a súbor nikdy nepridávajte do systému správy verzií.", "rotateTitle": "Výmena jwt_secret zneplatní všetky existujúce JWT", - "rotateBody": "Pri novom vytvorení alebo obnove auth.json s iným kľúčom sa zmení jwt_secret. Staré JWT relácií aj API zlyhajú s \"Invalid or expired token\". Rozhranie ich označí Neplatný — vytvoriť znova. Zrušte ich a nahraďte aj v Home Assistant, skriptoch a ostatných klientoch.", + "rotateBody": "Pri novom vytvorení alebo obnove auth.json s iným kľúčom sa zmení jwt_secret. Staré JWT relácií aj API zlyhajú s \"Invalid or expired token\". Rozhranie ich označí červenou a štítkom, ktorý vás vyzve ich zrušiť a vytvoriť nové; zrušte ich a nahraďte aj v Home Assistant, skriptoch a ostatných klientoch.", "recoverTitle": "Obnovenie strateného hesla", "recoverIntro": "Obnova hesla vyžaduje prístup k shellu hostiteľa. ProxMenux ponúka sprievodcu resetovaním v konfiguračnej ponuke, aby ste nemuseli ručne upravovať auth.json:", "survivesTitle": "Čo prežíva reset", @@ -284,14 +284,14 @@ "heading": "API tokeny (dlhodobé)", "intro": "Relácie prehliadača platia 24 hodín. Pre Homepage, Home Assistant, Grafana či Uptime Kuma vytvorte samostatný token API platný 365 dní. JWT používa rovnaký podpisový kľúč; pole token_name umožňuje sledovať a jednotlivo zrušiť token.", "imageAlt": "Panel tokenov API znázorňujúci zoznam tokenov s názvom, predponou, vytvoreným dátumom a expiráciou", - "imageCaption": "Zoznam tokenov v nastaveniach: názov, predpona s poslednými štyrmi identifikačnými znakmi, dátum vytvorenia a platnosť, možnosť zrušenia.", + "imageCaption": "Zoznam tokenov API v Správa → Bezpečnosť: názov, predpona s poslednými štyrmi identifikačnými znakmi, dátum vytvorenia a platnosť, možnosť zrušenia.", "generateTitle": "Generovať token", "generateIntro": "Z panelu:", "generateSteps": [ - "Otvorte Zabezpečenie → Prístupové tokeny API.", + "Otvorte Správa → Bezpečnosť → API tokeny a kliknite na Vytvoriť nový token.", "Zadajte opisný názov, napríklad \"Home Assistant\".", "Zadajte svoje heslo. Ak je zapnutá 2FA, aj súčasný 6-miestny kód.", - "Kliknite na Vytvoriť token. Zobrazí sa iba raz: hneď ho skopírujte." + "Kliknite na Vytvoriť token. Token sa zobrazí iba raz: hneď ho skopírujte." ], "generateCli": "Z príkazového riadku:", "useTitle": "Použitie tokenu", @@ -310,7 +310,7 @@ "intro": "Dve cesty k TLS:", "items": [ "Odporúčaný reverzný proxy. Ukončite TLS na Nginx / Caddy / Traefik a posielajte HTTP procesu Flask na port 8008. Príklady sú nižšie.", - "Priame HTTPS v AppImage. Certifikát nastavte cez POST /api/ssl/configure (rozhranie: Nastavenia → SSL). HTTPS používa gevent.pywsgi so štandardným handlerom; flask-sock obsluhuje WebSocket pre WSS. Cesty certifikátov sa uložia v konfigurácii SSL." + "Priame HTTPS v AppImage. Certifikát nastavte cez POST /api/ssl/configure (rozhranie: Správa → Bezpečnosť → SSL / HTTPS). HTTPS používa gevent.pywsgi so štandardným handlerom; flask-sock obsluhuje WebSocket pre WSS. Cesty certifikátov sa uložia v konfigurácii SSL." ], "calloutTitle": "Priame obmedzenia HTTPS", "calloutBody": "Monitor môže použiť certifikát spravovaný Proxmoxom alebo vlastné súbory. Sám certifikáty ACME nevydáva. Na automatické vydávanie a obnovu použite Proxmox ACME alebo proxy Caddy, Traefik či Nginx a zabezpečte načítanie obnovených certifikátov." diff --git a/web/messages/sk/docs/monitor/ai-assistant.json b/web/messages/sk/docs/monitor/ai-assistant.json index 17993a92..b3d07c19 100644 --- a/web/messages/sk/docs/monitor/ai-assistant.json +++ b/web/messages/sk/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "AI asistent", - "description": "Voliteľný prepis AI mení vhodné šablóny oznámení na zrozumiteľné správy s detailmi podľa kanála, trinástimi jazykmi rozhrania, vlastnými promptmi, verejnou komunitnou knižnicou a doplneným kontextom. Správy backup_complete a backup_fail AI úplne obchádzajú.", + "description": "Voliteľný prepis AI mení vhodné šablóny oznámení na zrozumiteľné správy s detailmi podľa kanála, trinástimi jazykmi rozhrania, vlastnými promptmi, verejnou komunitnou knižnicou a doplneným kontextom. Správy backup_complete a backup_fail sa nikdy neprepisujú; so zapnutými AI návrhmi AI len pridá vysvetlenie, keď záloha hlási chyby.", "section": "ProxMenux Monitor" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Komerční poskytovatelia účtujú za token. Token zodpovedá približne štyrom znakom anglického textu alebo trom štvrtinám slova. Anglická veta \"Backup completed on storage local-bak\" má približne osem tokenov. Desať riadkov denníka môže podľa technického obsahu zabrať 200–400 tokenov.", "intro2": "Pri každom hovore sú fakturované dve veci:", "items": [ - "Vstupné tokeny zahŕňajú systémový prompt a používateľskú správu: závažnosť, názov, text šablóny a doplnený kontext. Počet závisí od skutočného promptu a udalosti. Každý prepisovaný kanál môže spotrebovať vlastné vstupné tokeny; správy o dokončení alebo zlyhaní zálohy AI obchádzajú.", + "Vstupné tokeny zahŕňajú systémový prompt a používateľskú správu: závažnosť, názov, text šablóny a doplnený kontext. Počet závisí od skutočného promptu a udalosti. Každý prepisovaný kanál môže spotrebovať vlastné vstupné tokeny; správy o dokončení alebo zlyhaní zálohy spotrebujú tokeny len vtedy, keď AI vysvetľuje chyby zálohy.", "Výstupné tokeny – čo model odpíše. Monitor to uzatvára pomocou max_tokens (pozri tabuľku nižšie). Limit je limit, nie poplatok: ak model vyrába 250 tokeny s limitom 1500, zaplatíte za 250." ], "capsIntro": "Toto sú skutočné limity, ktoré používa dispečer, prevzaté priamo z AI_DETAIL_TOKENS v notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "Modál v aplikácii – šesť kariet, jedna na poskytovateľa, s rovnakými popismi zdokumentovanými nižšie.", "groq": { "heading": "Groq", - "tagline": "Veľmi rýchla, veľkorysá voľná úroveň (30 req/min). Ideálne začať.", + "tagline": "Veľmi rýchla, s veľkorysou bezplatnou úrovňou. Dobré miesto na začiatok.", "items": [ "Kľúč API: console.groq.com/keys", "Príklady z dodaného zoznamu modelov: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Úroveň detailov pre každý kanál", - "intro": "Telegram, Discord, Gotify a e-mail majú vlastnú ponuku úrovne detailov. Tri hodnoty určujú limit výstupných tokenov a pokyny predvoleného promptu:", + "intro": "Každý zo šiestich kanálov (Telegram, Discord, Gotify, e-mail, Pushover, Apprise) má vlastnú ponuku úrovne detailov. Tri hodnoty určujú limit výstupných tokenov a pokyny predvoleného promptu:", "headerLevel": "Úroveň", "headerLabel": "Štítok UI", "headerCap": "Výstupný strop", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Predvolené hodnoty pri prvej inštalácii:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "E-mail — detailed. E-mail je kanál, kde zvyčajne chcete úplný obraz pre archív." ], "emailTitle": "Podrobný e-mail pripája pôvodnú správu", @@ -280,7 +280,7 @@ }, "templates": { "heading": "Poznámka k šablónam", - "body1": "AI dostáva text vytvorený zo šablóny, nie surové údaje udalosti. Typy ako vm_start, auth_fail a health_degraded majú šablóny v notification_templates.py. AI prepisuje vhodné výstupy; backup_complete a backup_fail si ponechávajú deterministické správy bez AI.", + "body1": "AI dostáva text vytvorený zo šablóny, nie surové údaje udalosti. Typy ako vm_start, auth_fail a health_degraded majú šablóny v notification_templates.py. AI prepisuje vhodné výstupy; backup_complete a backup_fail si ponechávajú deterministické správy; so zapnutými AI návrhmi AI len pridá vysvetlenie, keď záloha hlási chyby.", "body2": "Názvy hostiteľov a VMID vloží šablóna ešte pred prepisom; AI ich nemusí vymýšľať. Pri vypnutej AI sa odošle priamo text šablóny. Stránka Oznámenia opisuje celý postup odosielania a kroky pred touto vrstvou." }, "privacy": { diff --git a/web/messages/sk/docs/monitor/api-reference.json b/web/messages/sk/docs/monitor/api-reference.json index 379dbcb3..09215908 100644 --- a/web/messages/sk/docs/monitor/api-reference.json +++ b/web/messages/sk/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Rozšírené systémové údaje pre hlavičku panela: celkové metriky a čas spustenia." + "use": "Ľahké informácie hlavičky: názov hostiteľa, uptime a vyrovnávací stav zdravia. Verejné, token nie je potrebný." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Filtrované záznamy systémového denníka. Parametre: ?level=&service=&limit=." + "use": "Filtrované záznamy systémového denníka. Parametre: ?priority=&service=&limit=&since_days= (priority 0-7, since_days do 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Interný tok udalostí používaný aj na oznámenia." + "use": "Nedávne úlohy a udalosti klastra Proxmox z pvesh get /cluster/tasks. Parameter: ?limit= (predvolene 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Vytvorí vlastnú udalosť. Telo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Vytvorí vlastnú udalosť. Telo: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/sk/docs/monitor/architecture.json b/web/messages/sk/docs/monitor/architecture.json index d160d4ad..3dc020db 100644 --- a/web/messages/sk/docs/monitor/architecture.json +++ b/web/messages/sk/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: služba používa oprávnenia root na SMART, pvesh a správu ZFS. Procesy webového terminálu dedia tieto oprávnenia.", "Restart=on-failure s odstupom desať sekúnd: po chybovom ukončení sa služba automaticky reštartuje.", - "After=network.target: zaradí štart po tomto cieli; nezaručuje pridelenú IP, DNS ani vonkajšie spojenie." + "After=network.target pve-cluster.service: zaradí štart po sieťovom cieli a súborovom systéme klastra Proxmox; nezaručuje pridelenú IP, DNS ani vonkajšie spojenie." ], "inspectTitle": "Kontrola aktuálnej jednotky" }, diff --git a/web/messages/sk/docs/monitor/dashboard/hardware.json b/web/messages/sk/docs/monitor/dashboard/hardware.json index 42456689..701b8837 100644 --- a/web/messages/sk/docs/monitor/dashboard/hardware.json +++ b/web/messages/sk/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "Stav UPS", "subHeading": "(podmienečné)", - "body": "Zobrazí sa pri nastavenom a dostupnom serveri NUT (Network UPS Tools). Ukazuje stav (sieť / batéria / nabíjanie / slabá batéria), nabitie batérie, odhad výdrže, percento zaťaženia, vstupné napätie, model a firmvér. Rovnaké údaje používa Bezpečnosť a certifikáty monitora stavu; prechod na batériu sa hneď zobrazí." + "body": "Zobrazí sa pri nastavenom a dostupnom serveri NUT (Network UPS Tools). Ukazuje stav (sieť / batéria / nabíjanie / slabá batéria), nabitie batérie, odhad výdrže, percento zaťaženia, vstupné napätie, model a firmvér." }, "dataCollected": { "heading": "Spôsob zberu údajov", diff --git a/web/messages/sk/docs/monitor/dashboard/index.json b/web/messages/sk/docs/monitor/dashboard/index.json index 36c6a2a7..21dc2cdf 100644 --- a/web/messages/sk/docs/monitor/dashboard/index.json +++ b/web/messages/sk/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminál", - "owns": "Shell hostiteľa alebo ľubovoľnej VM/CT v prehliadači pomocou xterm.js cez WebSockets." + "owns": "Shell v prehliadači na hostiteľovi Proxmox pomocou xterm.js cez WebSockets. Konzoly LXC sa otvárajú z karty VM a LXC." }, { "name": "Zabezpečenie", diff --git a/web/messages/sk/docs/monitor/dashboard/security.json b/web/messages/sk/docs/monitor/dashboard/security.json index 405314d5..cc5e939d 100644 --- a/web/messages/sk/docs/monitor/dashboard/security.json +++ b/web/messages/sk/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL / HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 na /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/sk/docs/monitor/dashboard/settings.json b/web/messages/sk/docs/monitor/dashboard/settings.json index a6241bca..6d3195e4 100644 --- a/web/messages/sk/docs/monitor/dashboard/settings.json +++ b/web/messages/sk/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Jednotky siete", "imageAlt": "Karta Jednotky siete s výberom zobrazenia na Bajty", "imageCaption": "Vyberte bity alebo bajty za sekundu pre všetky sieťové rýchlosti v prehľade.", - "body": "Zobrazuje priepustnosť v bitoch za sekundu (Mbps/Gbps) alebo bajtoch za sekundu (MB/s/GB/s). Predvolené sú bity ako v špecifikáciách kariet a poskytovateľov; prenosy súborov často používajú bajty. Grafy, štítky a pomôcky sa zmenia ihneď bez obnovenia." + "body": "Zobrazuje priepustnosť v bitoch za sekundu (Mbps/Gbps) alebo bajtoch za sekundu (MB/s/GB/s). Predvolené sú bajty. Voľba sa ukladá v prehliadači. Grafy, štítky a pomôcky sa zmenia ihneď bez obnovenia." }, "health": { "heading": "Monitor zdravia", @@ -203,7 +203,7 @@ "heading": "Kontrola aktualizácií v LXC", "imageAlt": "Karta zisťovania aktualizácií LXC s prepínačom hľadania balíkov v spustených kontajneroch Debian, Ubuntu a Alpine", "imageCaption": "Prepínač pravidelnej kontroly cez apt list --upgradable / apk list -u v spustených CT. Predvolene zapnutý. Súvisiaci prepínač v Oznámenia → Služby sa zobrazuje pri zapnutej detekcii.", - "intro": "Prepínač medzi Prahmi a Oznámeniami riadi kontrolu LXC. Zapnutý zisťuje balíky spustených CT; Hardvér zobrazuje výsledky a vstupujú do lxc_updates_available. Vypnutý zastaví volania pct exec a odstráni záznamy LXC z managed_installs.json; /api/managed-installs prestane hlásiť stav bez čakania 24 hodín.", + "intro": "Prepínač medzi prahmi monitora stavu a kartou Oznámenia riadi kontrolu aktualizácií LXC. Zapnutý zisťuje čakajúce aktualizácie balíkov v spustených CT; výsledky sa zobrazujú na karte VM a LXC a používajú sa v oznámení lxc_updates_available. Vypnutý zastaví volania pct exec a odstráni záznamy LXC z managed_installs.json; /api/managed-installs prestane hlásiť stav bez čakania na ďalší 24-hodinový cyklus.", "whatRunsTitle": "Čo kontrola spúšťa", "whatRunsIntro": "Pre každý CT v stave running s podporovaným správcom balíkov:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Tu zapnete oznámenia ProxMenux Monitor a preformulovanie pomocou AI. Zapnúť oznámenia spustí odosielanie na pozadí, zaregistruje cieľ webhooku Proxmox VE na príjem jeho udalostí a otvorí nastavenia kanálov Telegram, Discord, email, Gotify a ďalších. AI je v rozbaľovacej rozšírenej časti toho istého panela.", "body2": "Možnosti vysvetľujú samostatné stránky: kanály, prepínače udalostí, formátované správy, zobrazované meno, odosielanie s odstránením duplicít, odstupom, zoskupením a tichým časom, webhook PVE, poskytovatelia AI a režimy pokynov:", "items": [ - "Oznámenia: nastavenie kanálov (Telegram, Discord, Gotify, email a heslá aplikácií Gmail / Microsoft, ntfy, Slack, Teams a všeobecný webhook), kategórie udalostí, formátované správy, zobrazované meno, odosielanie, webhook PVE, história a API.", + "Oznámenia: nastavenie kanálov (Telegram, Discord, Gotify, e-mail a heslá aplikácií Gmail / Microsoft, Pushover a Apprise pre ntfy, Slack, Teams a ďalšie služby), kategórie udalostí, formátované správy, zobrazované meno, odosielanie, webhook PVE, história a API.", "Asistent AI: poskytovatelia (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modely, predvolené alebo vlastné pokyny, jazyk výstupu, podrobnosť pre kanály a návrhy AI." ] }, @@ -294,8 +294,8 @@ }, { "card": "Jednotky siete", - "endpoint": "/api/settings", - "source": "Uložené v tabuľke nastavení SQLite panela." + "endpoint": "localStorage", + "source": "Predvoľba prehliadača proxmenux-network-unit." }, { "card": "Trvanie v Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Vylúčenie úložiska / rozhrania", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "SQLite tabuľky excluded_storages a excluded_interfaces." }, { diff --git a/web/messages/sk/docs/monitor/dashboard/storage.json b/web/messages/sk/docs/monitor/dashboard/storage.json index 60e5e65d..0e99d1b2 100644 --- a/web/messages/sk/docs/monitor/dashboard/storage.json +++ b/web/messages/sk/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Podporované tromi zdrojmi", - "body": "Úložiská Proxmox pochádzajú z pvesm status, ZFS zo zpool status, disky z lsblk + smartctl a polia NVMe z nvme. Karta sa obnovuje približne každých 60 sekúnd; otvorenie detailu vyžiada načítanie SMART." + "body": "Úložiská Proxmox pochádzajú z pvesm status, ZFS zo zpool status, disky z lsblk + smartctl a polia NVMe z nvme. Karta sa obnovuje približne každých 30 sekúnd; otvorenie detailu vyžiada načítanie SMART." }, "thresholds": { "title": "Farby stavu a prahové hodnoty, ktoré sa tu uplatňujú", diff --git a/web/messages/sk/docs/monitor/dashboard/system-logs.json b/web/messages/sk/docs/monitor/dashboard/system-logs.json index ff1b0f8b..6b496368 100644 --- a/web/messages/sk/docs/monitor/dashboard/system-logs.json +++ b/web/messages/sk/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Celkový počet záznamov — počet položiek v časovom rozsahu aktívneho filtra.", "Chyby — počet záznamov so závažnosťou ≤ 3 (err / crit / alert / emerg).", "Upozornenia — počet záznamov so závažnosťou 4 (warning).", - "Zálohy — počet záznamov úloh vzdump / PBS v rovnakom časovom rozsahu." + "Zálohy: počet záložných archívov na nastavených úložiskách záloh." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Logy", "logsIntro": "Systémový žurnál, ktorý server načítava cez journalctl. Na paneli nástrojov sú tieto filtre:", "logsFilters": [ - "Závažnosť — emerg / alert / crit / err / warning / notice / info / debug alebo ľubovoľná kombinácia.", - "Časový rozsah Posledná 5 min/ 15 min/ 1 h / 6 h / 24 h / 7 d / vlastné.", - "Voľné vyhľadávanie textu — podreťazec alebo regulárny výraz (journalctl --grep).", - "Filter jednotky — obmedzí výsledky na konkrétnu jednotku systemd (pveproxy.service, nginx.service, …)." + "Úroveň: Všetky úrovne, Chyba, Upozornenie alebo Info.", + "Časový rozsah: 1 deň / 3 dni / 1 týždeň / 2 týždne / 1 mesiac alebo vlastný počet dní (do 90).", + "Voľné vyhľadávanie textu: podreťazec bez rozlišovania veľkosti písmen v správe, službe, PID, názve hostiteľa a jednotke, uplatnený v prehliadači.", + "Filter služby: obmedzí výsledky na jednu službu (SYSLOG_IDENTIFIER denníka)." ], "logsRowsAfter": "Každý riadok zobrazuje časovú pečiatku, označenie závažnosti, zdrojovú jednotku a správu. Dlhé správy sa zbalia s prepínačom „zobraziť viac“. Akcia Stiahnuť vytvorí z aktuálneho filtra jeden súbor .txt cez GET /api/logs/download, vhodný na zdieľanie časti žurnálu s ďalšou osobou.", "logDetailsModalTitle": "Okno Podrobnosti záznamu", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "Na novej inštalácii Proxmox používa journald predvolene MaxLevelStore=warning, čím zahadzuje správy info. Monitor to pri štarte rozpozná a pridá doplnkovú konfiguráciu (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) s prahom info, aby sa uchovávali informačné a závažnejšie správy. Správy debug to nezahŕňa.", "backupsTitle": "Zálohy", - "backupsBody": "História úloh Proxmox obmedzená na zálohovanie. Jeden riadok na úlohu (vzdump, prenosy PBS, čistenie nepoužívaných dát a overenie), so stavom (OK / WARNINGS / ERROR), hosťovským systémom, zdrojovým úložiskom, trvaním a UPID. Kliknutím na riadok načítate úplný záznam úlohy cez GET /api/task-log/<upid> — rovnaké údaje ako v Datacenter → Úlohy, obmedzené na zálohy.", + "backupsBody": "Záložné archívy na každom úložisku schopnom ukladať zálohy (dir, NFS, CIFS, PBS), načítané cez pvesh get /nodes/localhost/storage/<id>/content. Karty hore ukazujú počty VM a LXC a celkovú veľkosť; pod nimi je jeden riadok na archív s typom, úložiskom, veľkosťou a dátumom. Obnova sa vykonáva vo webovom rozhraní Proxmox.", "notificationsTitle": "Oznámenia", - "notificationsBody1": "Všetky oznámenia odoslané Monitorom: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams a webhook. Každý riadok uvádza časovú pečiatku, kanál, typ udalosti, závažnosť, vytvorený názov a telo a pri zapnutej AI prepínač na porovnanie jej prepracovanej verzie s originálom.", - "notificationsBody2": "Na tejto karte overíte doručovanie oznámení cez kanál a porovnáte prepracovanie AI s pôvodnou šablónou. Kanály sa nastavujú na podrobnej stránke Oznámenia." + "notificationsBody1": "Aktivita oznámení Proxmox: riadky denníka zo služieb Proxmox, ktoré spomínajú oznámenia, e-mail, webhooky alebo upozornenia, ciele v /etc/pve/notifications.cfg a úlohy zálohovania zo zoznamu úloh klastra. Riadky úloh zálohovania umožňujú stiahnuť úplný záznam úlohy. História toho, čo odoslal samotný Monitor, je v Nastavenia → Notifikácie → História upozornení.", + "notificationsBody2": "Táto karta slúži na kontrolu, čo robí vlastný systém oznámení Proxmoxu. Kanály Monitora sa nastavujú na podrobnej stránke Oznámenia." }, "dataCollected": { "heading": "Spôsob zberu údajov", @@ -64,7 +64,7 @@ { "subtab": "Záznamy (živý filter)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> s filtrami závažnosti, jednotky a vyhľadávania použitými na serveri." + "source": "Karta načíta /api/logs?since_days=N; filtre úrovne, služby a textu sa uplatňujú v prehliadači. API prijíma aj priority a service, ktoré karta zatiaľ nepoužíva." }, { "subtab": "Stiahnuť", @@ -74,17 +74,17 @@ { "subtab": "Zálohy", "endpoint": "/api/backups", - "source": "História úloh PVE filtrovaná podľa vzdump, prenosov PBS, čistenia nepoužívaných dát a overenia." + "source": "Záložné archívy zo zoznamu každého úložiska záloh cez pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Podrobnosti úlohy zálohovania", + "subtab": "Záznam úlohy zálohovania (Notifikácie)", "endpoint": "/api/task-log/<upid>", "source": "Plný textový záznam úloh čítaný z /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "História oznámení", - "endpoint": "/api/notifications/history", - "source": "Tabuľka SQLite notification_history, ktorú plní odosielacia slučka." + "subtab": "Oznámenia", + "endpoint": "/api/notifications", + "source": "journalctl --grep nad jednotkami Proxmox, /etc/pve/notifications.cfg a úlohy zálohovania z pvesh get /cluster/tasks." } ], "apiIntro": "Živý filter aj sťahovanie sú dostupné cez API:", diff --git a/web/messages/sk/docs/monitor/dashboard/system-overview.json b/web/messages/sk/docs/monitor/dashboard/system-overview.json index 3381d241..7959bcf9 100644 --- a/web/messages/sk/docs/monitor/dashboard/system-overview.json +++ b/web/messages/sk/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Prstence, ukazovatele a minigrafy používajú rovnakú škálu: zelená pod prahom Upozornenie, jantárová medzi Upozornenie a Kritické, červená od prahu Kritické vyššie. Odporúčané predvolené hodnoty ProxMenux:", "thresholdsItems": [ "Využitie CPU — upozornenie 85 %, kritické 95 %.", - "Pamäť — upozornenie 85 %, kritické 95 %. Swap tiež vyvolá kritický stav pri 5 % využitia; správne fungujúci hostiteľ Proxmox by ho mal používať len zriedka.", + "Pamäť: upozornenie 85 %, kritické 95 %. Swap vyvolá kritický stav, iba ak využitie swapu presiahne 80 % a dostupná RAM klesne pod 15 %.", "Teplota CPU — upozornenie 80 °C, kritické 90 °C." ], "thresholdsOutro": "Hodnoty možno nastaviť pre každého hostiteľa. Nastavenia → Prahy monitora stavu sú hlavný zdroj a vysvetľujú ich úpravu.", @@ -58,7 +58,7 @@ "intro": "Karty Využitie CPU a Pamäť otvárajú triediteľný zoznam 25 najnáročnejších procesov: podľa využitia CPU pri otvorení z CPU alebo podľa rezidentnej pamäte pri otvorení z Pamäte.", "listTitle": "Dialóg zoznamu", "listItems": [ - "Automatické obnovenie — zoznam sa aktualizuje každých 5 sekúnd, kým je okno otvorené; po zatvorení sa dotazy zastavia.", + "Automatické obnovenie — zoznam sa aktualizuje každé 3 sekundy, kým je okno otvorené; po zatvorení sa dotazy zastavia.", "Filter — vyhľadávanie obmedzí zoznam podľa príkazu, používateľa alebo PID.", "Ukazovateľ v riadku — stĺpec hlavnej metriky kreslí malý ukazovateľ škálovaný podľa najvyššej hodnoty vo filtrovanom zozname. Poradie zostáva zrejmé, aj keď žiadny proces nie je blízko 100 %.", "Mobilné rozloženie — pod 640 px sa skryjú stĺpce PID a Používateľ, aby sa Príkaz, CPU % a Pamäť zmestili na telefón bez vodorovného posúvania." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Stred: grafy metrík uzla", - "body1": "Pod kartami zobrazuje NodeMetricsCharts históriu CPU, pamäte a diskového I/O z úložiska RRD Proxmox cez /api/node/metrics. Volič ponúka 1 hodina / 24 hodín / 7 dní / 30 dní / 1 rok. Pri dlhšom období klesá rozlíšenie údajov, aby bol graf plynulý.", + "body1": "Pod kartami zobrazuje NodeMetricsCharts históriu CPU, pamäte a diskového I/O z úložiska RRD Proxmox cez /api/node/metrics. Volič ponúka 1 hodina / 24 hodín / 7 dní / 30 dní. Pri dlhšom období klesá rozlíšenie údajov, aby bol graf plynulý.", "body2": "Rovnaké grafy ako vo webovom rozhraní Proxmox pre uzol, začlenené do tmavej témy Monitora a zarovnané s ostatnými panelmi." }, "bottom": { diff --git a/web/messages/sk/docs/monitor/dashboard/vms-lxcs.json b/web/messages/sk/docs/monitor/dashboard/vms-lxcs.json index c8fbb299..8e216683 100644 --- a/web/messages/sk/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/sk/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Cieľ — úložisko (PBS-Cloud, PBS-Local, NFS-Backup, …), farebne podľa stavu.", "Veľkosť — konečná veľkosť zálohy na disku." ], - "backupsOutro": "+ Vytvoriť zálohu spustí zálohu na úložisku označenom „Backup target“ v Proxmoxe. Obnova sa vykonáva vo webovom rozhraní Proxmox; Monitor ukazuje nedávne zálohy systému a umožňuje vytvoriť nové.", + "backupsOutro": "Tlačidlo + Vytvoriť zálohu vpravo hore otvorí dialóg na výber úložiska, režimu (snapshot / suspend / stop), ochrany a poznámok pred spustením vzdump. Obnova sa vykonáva vo webovom rozhraní Proxmox; Monitor ukazuje pohľad „bola táto VM nedávno zálohovaná?“, nie postup obnovy.", "firewallTitle": "Karta 7 — Firewall", "firewallIntro": "Číta záznam firewallu Proxmox daného systému priamo z hostiteľa, bez ďalšej služby a pravidelných dotazov. Karta je vždy prítomná; obsah závisí od zapnutia firewallu a od toho, či pravidlo zaznamenáva pakety.", "firewallItems": [ diff --git a/web/messages/sk/docs/monitor/health-monitor.json b/web/messages/sk/docs/monitor/health-monitor.json index 83b459a1..5cbd7a3f 100644 --- a/web/messages/sk/docs/monitor/health-monitor.json +++ b/web/messages/sk/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "Indikátor zodpovedá najzávažnejšej kategórii", "pillBody": "Farba hlavičky zodpovedá najvyššej závažnosti: CRITICAL → červená, inak WARNING → žltá, inak INFO → modrá, inak zelená. Rovnaká logika riadi bod vo favikone aj odznak PWA.", "updateNowTitle": "Aktualizovať teraz tlačidlo v hlavičke Prehľad", - "updateNowBody1": "Ak Aktualizácie systému hlásia čakajúce aktualizácie, pri indikátore sa zobrazí Aktualizovať teraz. Okno vykoná postup z ProxMenux → Settings post-install Proxmox → Proxmox System Update: čistenie repozitárov, apt full-upgrade cez update-pve-safe.sh, opätovné zostavenie spravovaných ovládačov DKMS pri novom jadre, autoremove/autoclean a ponuku reštartu pri zmene jadra. Priebeh sa zobrazuje priebežne.", - "updateNowBody2": "Po dokončení zatvorenie okna zavolá GET /api/health/details?refresh=1 a zneplatní vyrovnávaciu pamäť koncového bodu. Čakajúce aktualizácie a závažnosť sa prepočítajú podľa nového stavu balíkov. Odznak zmizne bez čakania na ďalší cyklus. Ak je hostiteľ aktuálny, tlačidlo je skryté." + "updateNowBody1": "Ak Aktualizácie systému hlásia čakajúce aktualizácie, pri indikátore sa zobrazí Aktualizovať teraz. Okno vykoná postup z ProxMenux → Nástroje → Aktualizácia systému Proxmox: čistenie repozitárov, apt full-upgrade cez update-pve-safe.sh, opätovné zostavenie spravovaných ovládačov DKMS pri novom jadre, autoremove/autoclean a ponuku reštartu pri zmene jadra. Priebeh sa zobrazuje priebežne.", + "updateNowBody2": "Po dokončení zatvorenie okna zavolá GET /api/health/full?refresh=1 a zneplatní vyrovnávaciu pamäť koncového bodu. Čakajúce aktualizácie a závažnosť sa prepočítajú podľa nového stavu balíkov. Odznak zmizne bez čakania na ďalší cyklus. Ak je hostiteľ aktuálny, tlačidlo je skryté." }, "dismiss": { "heading": "Potlačenie upozornení a jeho trvanie", diff --git a/web/messages/sk/docs/monitor/index.json b/web/messages/sk/docs/monitor/index.json index d948916c..2e5dbb30 100644 --- a/web/messages/sk/docs/monitor/index.json +++ b/web/messages/sk/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API a integrácie", "intro": "Endpointy REST poskytujú monitorovacie dáta JSON cez HTTP/HTTPS pre Homepage, Home Assistant, Uptime Kuma a skripty. Grafana môže použiť samostatný textový exportér Prometheus na /api/prometheus. Požiadavky možno posielať cez curl.", - "tokens": "Tokeny API s dlhou životnosťou (365 dni) sa generujú z Nastavenia → API prístupových tokenov alebo prostredníctvom POST /api/auth/generate-api-token.", + "tokens": "Tokeny API s dlhou životnosťou (365 dni) sa generujú z Správa → Bezpečnosť → API tokeny alebo prostredníctvom POST /api/auth/generate-api-token.", "bearer": "Tokeny posielajte ako Authorization: Bearer …. Aj /api/health očakáva hlavičku Bearer, takže kontroly dostupnosti potrebujú token read_only. Pod /api/auth/* sú verejné trasy nastavenia/prihlásenia/stavu aj chránené trasy správy účtov/tokenov; nie všetky sú anonymné.", "catalog": "Katalóg endpointov, rotácia tokenov a zabezpečenie sú v Referenčnej príručke API; príklady pre Homepage, Home Assistant, Grafana, Uptime Kuma a cURL sú v Integrácie." }, "serviceControl": { "heading": "Ovládanie služby", - "intro": "Každý deň je monitor spravovaný presne ako ktorákoľvek iná služba systemd. Je tiež vystavený ako dva záznamy v ProxMenux TUI pod Nastavenia:", + "intro": "Každý deň je monitor spravovaný presne ako ktorákoľvek iná služba systemd. Je tiež vystavený ako tri záznamy v ProxMenux TUI pod Nastavenia:", "codeComment": "# Manuálne ovládanie", "footer": "Pozrite si Nastavenia → ProxMenux Monitor, kde nájdete postup prepínania a overovania stavu v ponuke." }, diff --git a/web/messages/sk/docs/monitor/integrations.json b/web/messages/sk/docs/monitor/integrations.json index 38748402..1bf6356b 100644 --- a/web/messages/sk/docs/monitor/integrations.json +++ b/web/messages/sk/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Overenie: jedna vec, ktorú každý recept potrebuje", "intro": "Väčšina použitých koncových bodov vyžaduje overenie. Požiadavku možno splniť dvoma spôsobmi.", "optAtitle": "Možnosť A API token (odporúčané pre integráciu)", - "optAbody1": "Otvorte Nastavenia → Bezpečnosť → API tokeny. Kliknite na Generovať token, zadajte názov ako homepage, home-assistant alebo prometheus a skopírujte ho: zobrazí sa iba raz. Predvolene platí rok a možno ho samostatne odvolať. Používajte ho pre klientov mimo prehliadača.", + "optAbody1": "Otvorte Správa → Bezpečnosť → API tokeny. Kliknite na Vytvoriť nový token, zadajte názov ako homepage, home-assistant alebo prometheus, vyplňte heslo (a kód 2FA, ak je zapnutá), kliknite na Vytvoriť token a hneď ho skopírujte: zobrazí sa iba raz. Predvolene platí rok a možno ho samostatne odvolať. Používajte ho pre klientov mimo prehliadača.", "optAbody2": "Od tohto bodu je každá žiadosť jednoducho:", "optBtitle": "Možnosť B — prihlásenie menom a heslom", "optBbody": "Vhodné pre skripty, ktoré sa overujú ako používateľ. Vrátený token platí krátko; väčšina integrácií by mala použiť možnosť A.", "outro": "Pole TOTP treba iba pri zapnutom dvojfaktorovom overení. Výmenu a odvolanie tokenov, pravidlá hesiel a auditný denník opisuje Prístup a overenie.", "httpsTitle": "Používanie HTTPS namiesto HTTP", - "httpsIntro": "Príklady používajú pre stručnosť http://. Ak ste na Monitore zapli TLS (Nastavenia → Bezpečnosť → SSL/HTTPS), v každej URL nahraďte http:// za https://. Dve poznámky pre konkrétne nástroje:", + "httpsIntro": "Príklady používajú pre stručnosť http://. Ak ste na Monitore zapli TLS (Správa → Bezpečnosť → SSL / HTTPS), v každej URL nahraďte http:// za https://. Dve poznámky pre konkrétne nástroje:", "httpsItems": [ "Certifikáty podpísané vlastným kľúčom. Integrácia Home Assistant rest: predvolene overuje TLS. Pri takomto certifikáte Monitora pridajte verify_ssl: false do každého bloku REST vedľa scan_interval: alebo importujte CA Monitora medzi dôveryhodné certifikáty. Rovnako postupujú iné nástroje overujúce certifikáty.", "Prometheus má v príklade nižšie pripravené scheme: https. Zapnite alebo ponechajte https, ak je TLS na Monitore zapnuté." @@ -43,7 +43,7 @@ "basicTitle": "Základný widget — bez overenia", "basicIntro": "Použite to, keď je ProxMenux Monitor na dôveryhodnej sieti a ešte ste nezaviedli autentifikáciu na strane monitora. Najjednoduchšia možná položka services.yaml:", "authedTitle": "Overený grafický prvok", - "authedIntro": "Na Monitore vytvorte token v Nastavenia → Bezpečnosť → API tokeny. Skopírujte ho do hlavičky Authorization nižšie: ukážkový token za Bearer nahraďte vlastným.", + "authedIntro": "Na Monitore vytvorte token v Správa → Bezpečnosť → API tokeny. Skopírujte ho do hlavičky Authorization nižšie: ukážkový token za Bearer nahraďte vlastným.", "authedOutro": "Reštartujte Homepage a karta zobrazí aktuálne hodnoty. Rovnaký token použite vo widgetoch, ktoré čítajú tú istú inštanciu Monitora.", "multiTitle": "Nastavenie multi- widgetu Systém, úložisko, sieť", "multiIntro": "Pre viac podrobností vytvorte tri karty s rôznymi koncovými bodmi: systém, úložisko a sieť. Pre tú istú inštanciu Monitora použite rovnaký token.", diff --git a/web/messages/sk/docs/monitor/notifications.json b/web/messages/sk/docs/monitor/notifications.json index 67654a7f..2122a959 100644 --- a/web/messages/sk/docs/monitor/notifications.json +++ b/web/messages/sk/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Nepovinné prepísanie AI", - "body1": "Vhodné udalosti môže prepísať LLM. backup_complete a backup_fail sa neprepisujú. AI je predvolene vypnutá a beží v odosielacom vlákne. Pri chybe alebo časovom limite sa použije pôvodný text.", + "body1": "Vhodné udalosti môže prepísať LLM. backup_complete a backup_fail sa neprepisujú; so zapnutými AI návrhmi AI len pridá vysvetlenie, keď záloha hlási chyby. AI je predvolene vypnutá a beží v odosielacom vlákne. Pri chybe alebo časovom limite sa použije pôvodný text.", "body2": "Podporuje OpenAI, Anthropic, Google Gemini, Groq, OpenRouter a miestne Ollama. Pre kanál: podrobnosť (brief, standard, detailed), jazyk, režim pokynov (default alebo custom) a vlastné pokyny. Návod a príklady sú v Asistent AI.", "privacyTitle": "Poznámka o ochrane osobných údajov", "privacyBody": "Požiadavka AI môže obsahovať názov, závažnosť, text, systémové/vlastné pokyny a kontext s názvami hostiteľov, IP, používateľmi, chybami a denníkmi. Posiela sa zvolenému serveru. Ollama zostáva miestne len s miestnym serverom aj modelom; vzdialený server alebo cloudový model odosiela údaje mimo hostiteľa. Ak musia zostať v sieti, vypnite AI alebo použite riadený miestny server a model." diff --git a/web/messages/sk/docs/security/ssl-letsencrypt.json b/web/messages/sk/docs/security/ssl-letsencrypt.json index 418a3d3a..1d353068 100644 --- a/web/messages/sk/docs/security/ssl-letsencrypt.json +++ b/web/messages/sk/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Čo táto stránka obsahuje", - "body": "Ako prepnúť Monitor z HTTP na HTTPS v paneli Nastavenia → Zabezpečenie, na aké súbory ukazujú zdroje certifikátov, ako sa správa možnosť Proxmox s certifikátom Let’s Encrypt a ako nastaviť vlastné cesty pri správe certifikátov mimo Proxmox." + "body": "Ako prepnúť Monitor z HTTP na HTTPS v paneli Správa → Bezpečnosť, na aké súbory ukazujú zdroje certifikátov, ako sa správa možnosť Proxmox s certifikátom Let’s Encrypt a ako nastaviť vlastné cesty pri správe certifikátov mimo Proxmox." }, "wheresetting": { "heading": "Kde nájdete nastavenie", - "body": "Otvorte Monitor a prejdite na Nastavenia → Zabezpečenie → HTTPS / SSL. Panel zobrazuje HTTP alebo HTTPS a pri vypnutom HTTPS rozpoznané zdroje certifikátov.", - "imageAlt": "Nastavenia → Zabezpečenie → HTTPS / panel SSL na monitore zobrazujúci vypnutý stav HTTPS, automaticky zistený certifikát Proxmox (predmet, vydavateľ, expirácia) a možnosť Použiť vlastný certifikát", - "caption": "Panel Nastavenia → Zabezpečenie → HTTPS / SSL pred aktiváciou. Monitor zobrazí certifikát používaný Proxmoxom a umožní ho vybrať jedným kliknutím." + "body": "Otvorte Monitor a prejdite na Správa → Bezpečnosť → SSL / HTTPS. Panel zobrazuje HTTP alebo HTTPS a pri vypnutom HTTPS rozpoznané zdroje certifikátov.", + "imageAlt": "Panel Správa → Bezpečnosť → SSL / HTTPS na monitore zobrazujúci vypnutý stav HTTPS, automaticky zistený certifikát Proxmox (predmet, vydavateľ, expirácia) a možnosť Použiť vlastný certifikát", + "caption": "Panel Správa → Bezpečnosť → SSL / HTTPS pred aktiváciou. Monitor zobrazí certifikát používaný Proxmoxom a umožní ho vybrať jedným kliknutím." }, "twoways": { "heading": "Dva spôsoby, ako umožniť HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Prepnúť monitor na HTTPS", - "bodyRich": "Keď je /etc/pve/local/pveproxy-ssl.pem podpísaný Let's Encrypt, otvorte Nastavenia → Zabezpečenie → HTTPS / SSL, overte vydavateľa Let's Encrypt namiesto miestnej CA Proxmox a kliknite na Použiť certifikát Proxmox. Monitor sa reštartuje a ďalšie načítanie použije HTTPS na 8008 s verejne dôveryhodným reťazcom. Ďalšie obnovy ACME sa overia a vyberú pri nasledujúcom novom spojení TLS bez pravidelného dopytovania alebo reštartu služby pri obnove. Aktualizovať certifikát zostáva v Zabezpečení dostupné na diagnostiku a obnovu." + "bodyRich": "Keď je /etc/pve/local/pveproxy-ssl.pem podpísaný Let's Encrypt, otvorte Správa → Bezpečnosť → SSL / HTTPS, overte vydavateľa Let's Encrypt namiesto miestnej CA Proxmox a kliknite na Použiť certifikát Proxmox. Monitor sa reštartuje a ďalšie načítanie použije HTTPS na 8008 s verejne dôveryhodným reťazcom. Ďalšie obnovy ACME sa overia a vyberú pri nasledujúcom novom spojení TLS bez pravidelného dopytovania alebo reštartu služby pri obnove. Aktualizovať certifikát v časti Bezpečnosť umožňuje ručne skontrolovať a znovu načítať certifikát bez reštartu Monitora." }, "custom": { "heading": "Vlastný certifikát — kedy ho použiť", diff --git a/web/messages/sv/docs/monitor/access-auth.json b/web/messages/sv/docs/monitor/access-auth.json index f02a46b3..bfed5865 100644 --- a/web/messages/sv/docs/monitor/access-auth.json +++ b/web/messages/sv/docs/monitor/access-auth.json @@ -18,7 +18,7 @@ }, "reaching": { "heading": "Öppna instrumentpanelen", - "intro": "ProxMenux Monitor binder till 0.0.0.0:8008. Det finns tre vanliga sätt att nå den:", + "intro": "ProxMenux Monitor lyssnar på TCP 8008 på alla gränssnitt (::, IPv4 och IPv6). Det finns tre vanliga sätt att nå den:", "outro": "Direktåtkomst motsvarar standardenheten för systemd. Omvänd proxy och Secure Gateway beskrivs nedan. Förtroende för klient-IP i X-Forwarded-For kräver PROXMENUX_TRUST_PROXY=1 och en proxy du kontrollerar. Enbart förekomsten av X-Forwarded-Proto eller X-Forwarded-Host aktiverar inte proxyförtroende. På portarna 80/443 använder frontend relativa /api/*-URL:er; på alla andra portar anropas port 8008 på samma värdnamn." }, "firstLaunch": { @@ -158,7 +158,7 @@ "authJsonTitle": "auth.json — innehåll och skydd", "authJsonBody": "Autentiseringsuppgifterna finns i /root/.config/proxmenux-monitor/auth.json, med läge 0600 och ägare root. Filen innehåller PBKDF2-hashar och kryptografiska hemligheter (jwt_secret, totp_secret), aldrig lösenord i klartext. Kryptera mål för säkerhetskopiering eller replikering och lägg aldrig filen i versionshantering.", "rotateTitle": "Byte av jwt_secret gör alla befintliga JWT ogiltiga", - "rotateBody": "Om auth.json återskapas eller återställs med en annan hemlighet ändras jwt_secret. Gamla sessions- och API-JWT misslyckas med \"Invalid or expired token\". Gränssnittet visar Ogiltigt — skapa på nytt. Återkalla och ersätt berörda token även i Home Assistant, skript och andra klienter.", + "rotateBody": "Om auth.json återskapas eller återställs med en annan hemlighet ändras jwt_secret. Gamla sessions- och API-JWT misslyckas med \"Invalid or expired token\". Gränssnittet markerar berörda API-token med rött och en etikett som uppmanar dig att återkalla dem och skapa nya. Home Assistant, skript och andra externa klienter behöver en ny token efteråt.", "recoverTitle": "Återställa ett förlorat lösenord", "recoverIntro": "Lösenordsåterställning kräver skalåtkomst till värden. ProxMenux har en guidad återställning i konfigurationsmenyn så att du slipper redigera auth.json manuellt:", "survivesTitle": "Vad överlever återställningen", @@ -284,14 +284,14 @@ "heading": "API-token med lång giltighetstid", "intro": "Sessioner löper ut efter 24 timmar. Skapa ett separat API-token giltigt i 365 dagar för Homepage, Home Assistant, Grafana eller Uptime Kuma. JWT:t använder samma signeringshemlighet; fältet token_name gör att det kan identifieras och återkallas separat.", "imageAlt": "API-tokenlista med namn, prefix, datum för skapande och utgångsdatum", - "imageCaption": "Listan i inställningarna visar namn, prefix med de fyra sista tecknen för identifiering, skapande- och utgångsdatum samt återkallelse.", + "imageCaption": "Listan över API-token under Administration → Säkerhet visar namn, prefix (de fyra sista tecknen visas för identifiering), skapande- och utgångsdatum samt återkallelse.", "generateTitle": "Generera en token", "generateIntro": "Från panelen:", "generateSteps": [ - "Öppna Säkerhet → API-åtkomsttoken.", + "Öppna Administration → Säkerhet → API-tokens och välj Generera ny token.", "Skriv ett beskrivande namn (t.ex. \"Home Assistant\").", "Skriv in ditt lösenord. Om 2FA är på, även den nuvarande 6-siffriga koden.", - "Välj Generera token. Det visas endast en gång: kopiera direkt." + "Välj Generera token. Den visas endast en gång: kopiera direkt." ], "generateCli": "Från kommandoraden:", "useTitle": "Använd en token", @@ -310,7 +310,7 @@ "intro": "Två vägar till TLS:", "items": [ "Omvänd proxy rekommenderas. Avsluta TLS på Nginx / Caddy / Traefik och vidarebefordra HTTP till Flask på port 8008. Exempel nedan.", - "Direkt HTTPS i AppImage. Ange certifikat via POST /api/ssl/configure (gränssnitt: Inställningar → SSL). HTTPS använder gevent.pywsgi med standardhanteraren; flask-sock hanterar WebSocket för WSS. Certifikatsökvägar sparas i SSL-konfigurationen." + "Direkt HTTPS i AppImage. Ange certifikat via POST /api/ssl/configure (gränssnitt: Administration → Säkerhet → SSL / HTTPS). HTTPS använder gevent.pywsgi med standardhanteraren; flask-sock hanterar WebSocket för WSS. Certifikatsökvägar sparas i SSL-konfigurationen." ], "calloutTitle": "Direkt HTTPS begränsningar", "calloutBody": "Monitor kan använda ett certifikat hanterat av Proxmox eller egna certifikatsfiler. Det utfärdar inte ACME-certifikat självt. Använd Proxmox ACME eller Caddy, Traefik eller Nginx för automatisk utfärdning och förnyelse, och se till att förnyade certifikat läses in." diff --git a/web/messages/sv/docs/monitor/ai-assistant.json b/web/messages/sv/docs/monitor/ai-assistant.json index e4e132d8..cfb6dd43 100644 --- a/web/messages/sv/docs/monitor/ai-assistant.json +++ b/web/messages/sv/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "AI-assistent", - "description": "Valfri AI-omskrivning gör lämpliga aviseringsmallar till tydliga meddelanden med detaljnivå per kanal, tretton språk i gränssnittet, egna promptar, ett offentligt communitybibliotek och berikad kontext. Rapporterna backup_complete och backup_fail går helt förbi AI.", + "description": "Valfri AI-omskrivning gör lämpliga aviseringsmallar till tydliga meddelanden med detaljnivå per kanal, tretton språk i gränssnittet, egna promptar, ett offentligt communitybibliotek och berikad kontext. Rapporterna backup_complete och backup_fail skrivs aldrig om; med AI-förslag påslaget lägger AI bara till en förklaring när en säkerhetskopiering rapporterar fel.", "section": "ProxMenux-övervakning" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Kommersiella leverantörer tar betalt per token. En token motsvarar ungefär fyra engelska tecken eller tre fjärdedelar av ett ord. Den engelska frasen \"Backup completed on storage local-bak\" är omkring åtta token. Tio loggrader kan vara 200–400 token beroende på det tekniska innehållet.", "intro2": "Två saker faktureras på varje samtal:", "items": [ - "Indatatoken omfattar systemprompt och användarmeddelande med allvarlighetsgrad, rubrik, malltext och berikad kontext. Antalet beror på prompt och händelse. Varje omskriven kanal kan förbruka egna indatatoken; rapporter om slutförd eller misslyckad säkerhetskopiering går förbi AI.", + "Indatatoken omfattar systemprompt och användarmeddelande med allvarlighetsgrad, rubrik, malltext och berikad kontext. Antalet beror på prompt och händelse. Varje omskriven kanal kan förbruka egna indatatoken; rapporter om slutförd eller misslyckad säkerhetskopiering förbrukar bara token när AI förklarar fel i säkerhetskopieringen.", "Utdatatoken är modellens svar. Monitor begränsar dem med max_tokens. Taket är en gräns, inte fast förbrukning: ger modellen 250 token med gränsen 1500 betalar du för 250." ], "capsIntro": "Dessa är de gränser som sändningsmodulen använder, direkt från AI_DETAIL_TOKENS i notification_templates.py:", @@ -118,7 +118,7 @@ "imageCaption": "Informationsrutan i appen: sex kort, ett per leverantör, med beskrivningarna nedan.", "groq": { "heading": "Groq", - "tagline": "Mycket snabb, generös fri nivå (30 req/min). Perfekt att börja.", + "tagline": "Mycket snabb, med en generös fri nivå. Ett bra ställe att börja.", "items": [ "API-nyckel: console.groq.com/keys", "Exempel från den medföljande modellistan: allam-2-7b, qwen/qwen3.8-27b, openai/gpt-oss-20b, openai/gpt-oss-120b.", @@ -234,7 +234,7 @@ }, "detailLevel": { "heading": "Detaljnivå per kanal", - "intro": "Telegram, Discord, Gotify och e-post har varsin detaljväljare. Tre värden styr gränsen för utdatatoken och instruktionerna i standardprompten:", + "intro": "Var och en av de sex kanalerna (Telegram, Discord, Gotify, e-post, Pushover, Apprise) har en egen detaljväljare. Tre värden styr gränsen för utdatatoken och instruktionerna i standardprompten:", "headerLevel": "Nivå", "headerLabel": "UI-märkning", "headerCap": "Utdatagräns", @@ -261,7 +261,7 @@ ], "defaultsIntro": "Standarder som Monitorn tillämpar på första installationen:", "defaults": [ - "Telegram, Discord, Gotify — standard.", + "Telegram, Discord, Gotify, Pushover, Apprise — standard.", "E-post — detailed. E-post är den kanal där du vanligtvis vill ha hela bilden för arkiv." ], "emailTitle": "Detaljerad e-post lägger till originalet", @@ -280,7 +280,7 @@ }, "templates": { "heading": "En anteckning på mallar", - "body1": "AI får färdig malltext, inte rå händelsedata. Typer som vm_start, auth_fail och health_degraded har mallar i notification_templates.py. AI skriver om lämpliga mallutdata; backup_complete och backup_fail behåller deterministiska rapporter utan AI.", + "body1": "AI får färdig malltext, inte rå händelsedata. Typer som vm_start, auth_fail och health_degraded har mallar i notification_templates.py. AI skriver om lämpliga mallutdata; backup_complete och backup_fail behåller deterministiska rapporter; med AI-förslag påslaget lägger AI bara till en förklaring när säkerhetskopieringen rapporterar fel.", "body2": "Två praktiska konsekvenser: AI ser aldrig ett värdnamn eller VMID det måste uppfinna - dessa fält placeras av mallen innan omskrivningen. Och om AI är inaktiverad är den mallade kroppen det som skickas direkt. Notifications-sidan dokumenterar sändningspipeline i sin helhet och är rätt korsreferens för allt som händer en händelse innan det når detta lager." }, "privacy": { diff --git a/web/messages/sv/docs/monitor/api-reference.json b/web/messages/sv/docs/monitor/api-reference.json index d4d2817c..9d04e8fe 100644 --- a/web/messages/sv/docs/monitor/api-reference.json +++ b/web/messages/sv/docs/monitor/api-reference.json @@ -76,7 +76,7 @@ { "endpoint": "/api/system-info", "method": "GET", - "use": "Utökade systemdata för panelens sidhuvud: övergripande mätvärden och starttid." + "use": "Lättviktig sidhuvudinformation: värdnamn, drifttid och cachad hälsostatus. Offentlig, ingen token behövs." }, { "endpoint": "/api/hardware", @@ -401,7 +401,7 @@ { "endpoint": "/api/logs", "method": "GET", - "use": "Filtrerade journalposter. Query: ?level=&service=&limit=" + "use": "Filtrerade journalposter. Query: ?priority=&service=&limit=&since_days= (priority 0-7, since_days upp till 90)." }, { "endpoint": "/api/logs/download", @@ -411,7 +411,7 @@ { "endpoint": "/api/events", "method": "GET", - "use": "Intern händelseström - samma som matar meddelanden." + "use": "Senaste Proxmox-klusteruppgifter och händelser från pvesh get /cluster/tasks. Query: ?limit= (standard 50)." }, { "endpoint": "/api/task-log/", @@ -462,7 +462,7 @@ { "endpoint": "/api/notifications/send", "method": "POST", - "use": "Skapar en egen händelse. Begärans innehåll: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'." + "use": "Skapar en egen händelse. Begärans innehåll: '{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'." }, { "endpoint": "/api/notifications/test-ai", diff --git a/web/messages/sv/docs/monitor/architecture.json b/web/messages/sv/docs/monitor/architecture.json index f8127df2..86621f15 100644 --- a/web/messages/sv/docs/monitor/architecture.json +++ b/web/messages/sv/docs/monitor/architecture.json @@ -64,7 +64,7 @@ "items": [ "User=root: tjänsten använder root-behörighet för SMART, pvesh och ZFS-hantering. Webbterminalens processer ärver behörigheten.", "Restart=on-failure med tio sekunders väntan: tjänsten startas om automatiskt efter ett fel.", - "After=network.target: ordnar start efter målet; garanterar inte tilldelad IP, DNS eller extern anslutning." + "After=network.target pve-cluster.service: ordnar start efter nätverksmålet och Proxmox klusterfilsystem; garanterar inte tilldelad IP, DNS eller extern anslutning." ], "inspectTitle": "Granska aktuell enhet" }, diff --git a/web/messages/sv/docs/monitor/dashboard/hardware.json b/web/messages/sv/docs/monitor/dashboard/hardware.json index 95408fac..98b0f7b6 100644 --- a/web/messages/sv/docs/monitor/dashboard/hardware.json +++ b/web/messages/sv/docs/monitor/dashboard/hardware.json @@ -168,7 +168,7 @@ "ups": { "heading": "UPS-status", "subHeading": "(villkorligt)", - "body": "Visas när en NUT-server (Network UPS Tools) är konfigurerad och nåbar. Visar status (nät / batteri / laddning / låg batterinivå), batterinivå, uppskattad drifttid, belastningsprocent, ingångsspänning, modell och firmware. Samma data används i Säkerhet och certifikat i hälsokontrollen; batteridrift uppmärksammas direkt." + "body": "Visas när en NUT-server (Network UPS Tools) är konfigurerad och nåbar. Visar status (nät / batteri / laddning / låg batterinivå), batterinivå, uppskattad drifttid, belastningsprocent, ingångsspänning, modell och firmware." }, "dataCollected": { "heading": "Hur data samlas in", diff --git a/web/messages/sv/docs/monitor/dashboard/index.json b/web/messages/sv/docs/monitor/dashboard/index.json index a7a98c84..c6fe75b0 100644 --- a/web/messages/sv/docs/monitor/dashboard/index.json +++ b/web/messages/sv/docs/monitor/dashboard/index.json @@ -50,7 +50,7 @@ }, { "name": "Terminal", - "owns": "Skal till värden eller valfri VM/CT i webbläsaren, med xterm.js över WebSockets." + "owns": "Skal i webbläsaren på Proxmox-värden, med xterm.js över WebSockets. LXC-konsoler öppnas från fliken VM och LXC." }, { "name": "Säkerhet", diff --git a/web/messages/sv/docs/monitor/dashboard/security.json b/web/messages/sv/docs/monitor/dashboard/security.json index 718d35a8..ccf02215 100644 --- a/web/messages/sv/docs/monitor/dashboard/security.json +++ b/web/messages/sv/docs/monitor/dashboard/security.json @@ -183,7 +183,7 @@ }, { "card": "SSL / HTTPS", - "endpoint": "/api/auth/ssl/*", + "endpoint": "/api/ssl/*", "source": "openssl x509 på /etc/pve/local/pve-ssl.pem + /etc/proxmenux/ssl_config.json." }, { diff --git a/web/messages/sv/docs/monitor/dashboard/settings.json b/web/messages/sv/docs/monitor/dashboard/settings.json index ec7dba49..25660fe3 100644 --- a/web/messages/sv/docs/monitor/dashboard/settings.json +++ b/web/messages/sv/docs/monitor/dashboard/settings.json @@ -41,7 +41,7 @@ "heading": "Nätverksenheter", "imageAlt": "Kortet Nätverksenheter med visningsvalet inställt på Byte", "imageCaption": "Välj mellan bitar per sekund och byte per sekund för varje nätverkshastighet som visas i instrumentpanelen.", - "body": "Visar nätverkshastighet i bitar per sekund (Mbps/Gbps) eller byte per sekund (MB/s/GB/s). Bitar är standard som i specifikationer för nätverkskort och internet; filöverföringar använder ofta byte. Diagram, etiketter och tips ändras direkt utan omladdning." + "body": "Välj hur nätverkshastighet visas i panelen: bitar per sekund (Mbps / Gbps) eller byte per sekund (MB/s / GB/s). Byte är standard, som de flesta filöverföringsverktyg visar; bitar är vad nätverkskortstillverkare och internetleverantörer använder. Valet sparas i webbläsaren, så varje webbläsare har sitt eget. Inställningen påverkar alla diagram, etiketter och tips som visar nätverkshastighet och ändras direkt utan omladdning." }, "health": { "heading": "Hälsoövervakare", @@ -203,7 +203,7 @@ "heading": "Identifiering av LXC-uppdateringar", "imageAlt": "Kort för LXC-uppdateringar med reglage för att söka väntande paket i körande Debian-, Ubuntu- och Alpine-containrar", "imageCaption": "Reglage för regelbundna kontroller med apt list --upgradable / apk list -u i körande CT. Påslaget som standard. Motsvarande aviseringsreglage under Aviseringar → Tjänster visas när detektering är på.", - "intro": "Reglaget mellan Gränser och Aviseringar styr LXC-kontrollen. Påslaget frågar det pakethanterarna i körande CT; Hårdvara visar resultat och matar lxc_updates_available. Avstängt stoppar det sina pct exec-anrop och tar bort LXC-poster från managed_installs.json; /api/managed-installs slutar visa statusen utan att vänta 24 timmar.", + "intro": "Ett särskilt reglage för LXC-uppdateringskontrollen, placerat mellan Gränser och Aviseringar. Påslaget går ProxMenux igenom varje körande CT på värden och frågar pakethanteraren i containern efter väntande uppdateringar; resultaten visas i antalsmärkena på fliken VM och LXC och matar aviseringen lxc_updates_available. Avstängt stoppar kontrollen helt (inga pct exec-anrop) och befintliga LXC-poster i managed_installs.json tas bort direkt, så att panelen och /api/managed-installs slutar visa LXC-uppdateringsstatus utan att vänta på nästa 24-timmarscykel.", "whatRunsTitle": "Vad kontrollen kör", "whatRunsIntro": "För varje CT i tillståndet running med en pakethanterare som stöds:", "whatRunsItems": [ @@ -249,7 +249,7 @@ "body1": "Här aktiveras ProxMenux Monitor-aviseringar och AI-omformulering. Aktivera aviseringar startar sändning i bakgrunden, registrerar ett Proxmox VE-webhookmål för dess händelser och öppnar kanalformuläret för Telegram, Discord, e-post, Gotify och fler. AI-omformulering finns i ett utfällbart avancerat avsnitt i samma panel.", "body2": "Alternativen förklaras på egna sidor: kanaler, händelsereglage, formaterade meddelanden, visningsnamn, sändning med dubblettfilter, väntetid, gruppering och tysta timmar, PVE-webhook, AI-leverantörer och instruktionslägen:", "items": [ - "Aviseringar: kanaler (Telegram, Discord, Gotify, e-post och applösenord för Gmail / Microsoft, ntfy, Slack, Teams och allmän webhook), händelsekategorier, formaterade meddelanden, visningsnamn, sändning, PVE-webhook, historik och API.", + "Aviseringar: kanaler (Telegram, Discord, Gotify, e-post och applösenord för Gmail / Microsoft, Pushover samt Apprise för ntfy, Slack, Teams och andra tjänster), händelsekategorier, formaterade meddelanden, visningsnamn, sändning, PVE-webhook, historik och API.", "AI-assistent: leverantörer (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modeller, standardinstruktioner eller egna instruktioner, utmatningsspråk, detaljnivå per kanal och AI-förslag." ] }, @@ -294,8 +294,8 @@ }, { "card": "Nätverksenheter", - "endpoint": "/api/settings", - "source": "Sparas i panelens SQLite-tabell för inställningar." + "endpoint": "localStorage", + "source": "Webbläsarinställning, proxmenux-network-unit." }, { "card": "Tider i Health Monitor", @@ -304,7 +304,7 @@ }, { "card": "Undantag för lagring och gränssnitt", - "endpoint": "/api/storage/exclusions, /api/network/exclusions", + "endpoint": "/api/health/storage-exclusions, /api/health/interface-exclusions", "source": "SQLite-tabellerna excluded_storages och excluded_interfaces." }, { diff --git a/web/messages/sv/docs/monitor/dashboard/storage.json b/web/messages/sv/docs/monitor/dashboard/storage.json index 522a9a65..55e4056b 100644 --- a/web/messages/sv/docs/monitor/dashboard/storage.json +++ b/web/messages/sv/docs/monitor/dashboard/storage.json @@ -10,7 +10,7 @@ }, "intro": { "title": "Uppbackad av tre källor", - "body": "Proxmox-lagring hämtas från pvesm status, ZFS från zpool status, diskar från lsblk + smartctl och NVMe-fält från nvme. Fliken uppdateras ungefär var 60:e sekund; detaljvyn begär en SMART-avläsning." + "body": "Proxmox-lagring hämtas från pvesm status, ZFS från zpool status, diskar från lsblk + smartctl och NVMe-fält från nvme. Fliken uppdateras ungefär var 30:e sekund; detaljvyn begär en SMART-avläsning." }, "thresholds": { "title": "Statusfärger och trösklar som tillämpas här", diff --git a/web/messages/sv/docs/monitor/dashboard/system-logs.json b/web/messages/sv/docs/monitor/dashboard/system-logs.json index c3cbb9e7..8a78e0b7 100644 --- a/web/messages/sv/docs/monitor/dashboard/system-logs.json +++ b/web/messages/sv/docs/monitor/dashboard/system-logs.json @@ -18,7 +18,7 @@ "Totalt antal poster — antal loggposter i det aktiva filtrets tidsintervall.", "Fel — antal poster med allvarlighetsgrad ≤ 3 (err / crit / alert / emerg).", "Varningar — antal poster med allvarlighetsgrad 4 (warning).", - "Säkerhetskopieringar — antal vzdump-/PBS-uppgifter i samma tidsintervall." + "Säkerhetskopieringar: antal säkerhetskopieringsarkiv på de konfigurerade lagringarna för säkerhetskopiering." ] }, "subtabs": { @@ -26,10 +26,10 @@ "logsTitle": "Loggar", "logsIntro": "Systemjournalen hämtas på servern med journalctl. Följande filter finns i verktygsfältet:", "logsFilters": [ - "Allvarlighetsgrad — emerg / alert / crit / err / warning / notice / info / debug, eller valfri kombination.", - "Time range - sista 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / custom.", - "Fritextsökning — delsträng eller reguljärt uttryck (journalctl --grep).", - "Enhetsfilter — begränsa till en viss systemd-enhet (pveproxy.service, nginx.service, …)." + "Level: Alla nivåer, Fel, Varning eller Info.", + "Time range: 1 dag / 3 dagar / 1 vecka / 2 veckor / 1 månad, eller ett eget antal dagar (upp till 90).", + "Fritextsökning: skiftlägesokänslig delsträng över meddelande, tjänst, PID, värdnamn och enhet, tillämpad i webbläsaren.", + "Service filter: begränsa till en tjänst (journalens SYSLOG_IDENTIFIER)." ], "logsRowsAfter": "Varje rad visar tidsstämpel, svårighetsgrad, källenhet och meddelandet. Långa meddelanden kollapsar med en \"visa mer\" växel. Den är Ladda ner Åtgärder buntar det aktuella filtret i en enda .txt fil via GET /api/logs/download - användbar när du vill dela en bit av tidskrift med någon.", "logDetailsModalTitle": "Dialogrutan Loggdetaljer", @@ -50,10 +50,10 @@ "maxLevelStoreTitle": "Journald MaxLevelStore", "maxLevelStoreBody": "På en ny Proxmox-installation använder journald som standard MaxLevelStore=warning, vilket kastar bort info-meddelanden. Monitor upptäcker detta vid start och lägger till en kompletterande konfiguration (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) med gränsen info, så att informationsmeddelanden och allvarligare meddelanden sparas. Detta omfattar inte debug.", "backupsTitle": "Säkerhetskopieringar", - "backupsBody": "Proxmox uppgiftshistorik filtrerad till säkerhetskopieringar. En rad per uppgift (vzdump, PBS-överföringar, Garbage Collect, Verify) med status (OK / WARNINGS / ERROR), berörd gäst, källagring, varaktighet och UPID. Klicka på en rad för att läsa hela uppgiftsloggen via GET /api/task-log/<upid> — samma data som i Datacenter → Tasks, begränsade till säkerhetskopieringar.", + "backupsBody": "Säkerhetskopieringsarkiven på varje lagring som kan hålla säkerhetskopior (dir, NFS, CIFS, PBS), lästa med pvesh get /nodes/localhost/storage/<id>/content. Korten överst visar antal VM:ar och LXC samt total storlek; nedanför visas en rad per arkiv med typ, lagring, storlek och datum. Återställning sker i Proxmox webbgränssnitt.", "notificationsTitle": "Aviseringar", - "notificationsBody1": "Alla aviseringar som Monitor skickar: Telegram, Discord, e-post, Gotify, ntfy, Slack, Teams och webhook. Varje rad visar tidsstämpel, kanal, händelsetyp, allvarlighetsgrad, genererad rubrik och text samt, om AI är aktiverat, ett reglage för att jämföra AI-versionen med originalet.", - "notificationsBody2": "Använd fliken för att kontrollera att en kanal levererar aviseringar och jämföra AI-versionen med grundmallen. Kanaler ställs in på den detaljerade sidan Aviseringar." + "notificationsBody1": "Proxmox aviseringsaktivitet: journalrader från Proxmox-tjänster som nämner aviseringar, e-post, webhooks eller larm, målen i /etc/pve/notifications.cfg samt säkerhetskopieringsuppgifter från klustrets uppgiftslista. Rader för säkerhetskopieringsuppgifter kan ladda ner hela uppgiftsloggen. Historiken över vad Monitor själv har skickat finns under Inställningar → Aviseringar → Aviseringshistorik.", + "notificationsBody2": "Använd fliken för att kontrollera vad Proxmox egna aviseringssystem gör. Kanalinställningar för Monitor finns på den detaljerade sidan Aviseringar." }, "dataCollected": { "heading": "Hur data samlas in", @@ -64,7 +64,7 @@ { "subtab": "Loggar (livefilter)", "endpoint": "/api/logs", - "source": "journalctl --output json --since <range> med filter för allvarlighetsgrad, enhet och sökning på servern." + "source": "Fliken hämtar /api/logs?since_days=N; filter för nivå, tjänst och text tillämpas i webbläsaren. API:et tar även emot priority och service, som fliken ännu inte använder." }, { "subtab": "Ladda ner", @@ -74,17 +74,17 @@ { "subtab": "Säkerhetskopieringar", "endpoint": "/api/backups", - "source": "PVE-uppgiftshistorik filtrerad efter vzdump, PBS-överföringar, Garbage Collect och Verify." + "source": "Säkerhetskopieringsarkiv listade från varje lagring för säkerhetskopior med pvesh get /nodes/localhost/storage/<id>/content." }, { - "subtab": "Detaljer för en säkerhetskopieringsuppgift", + "subtab": "Uppgiftslogg för säkerhetskopiering (Aviseringar)", "endpoint": "/api/task-log/<upid>", "source": "Hela uppgiftsloggen läses som oformaterad text från /var/log/pve/tasks/<index>/<upid>." }, { - "subtab": "Aviseringshistorik", - "endpoint": "/api/notifications/history", - "source": "SQLite-tabellen notification_history fylls av sändningsslingan." + "subtab": "Aviseringar", + "endpoint": "/api/notifications", + "source": "journalctl --grep över Proxmox-enheter, /etc/pve/notifications.cfg och säkerhetskopieringsuppgifter från pvesh get /cluster/tasks." } ], "apiIntro": "Både livefiltret och nedladdningarna kan också nås via API:", diff --git a/web/messages/sv/docs/monitor/dashboard/system-overview.json b/web/messages/sv/docs/monitor/dashboard/system-overview.json index 6cd42fb9..4ed88114 100644 --- a/web/messages/sv/docs/monitor/dashboard/system-overview.json +++ b/web/messages/sv/docs/monitor/dashboard/system-overview.json @@ -46,7 +46,7 @@ "thresholdsIntro": "Ringar, staplar och minidiagram använder samma skala: grön under Varning, bärnstensfärgad mellan Varning och Kritisk, röd från Kritisk och uppåt. Rekommenderade standardvärden i ProxMenux:", "thresholdsItems": [ "CPU-användning — varning 85 %, kritisk 95 %.", - "Minne — varning 85 %, kritisk 95 %. Swap utlöser också Kritisk vid 5 % användning; en välfungerande Proxmox-värd bör sällan behöva använda swap.", + "Minne: varning 85 %, kritisk 95 %. Swap utlöser Kritisk endast när swapanvändningen är över 80 % och tillgängligt RAM är under 15 %.", "CPU-temperatur — varning 80 °C, kritisk 90 °C." ], "thresholdsOutro": "Alla värden kan ställas in per värd. Inställningar → Tröskelvärden för hälsokontrollen är den centrala referensen och förklarar hur de anpassas.", @@ -58,7 +58,7 @@ "intro": "Korten CPU-användning och Minne öppnar en sorterbar lista över de 25 största processerna: efter CPU-användning från CPU-kortet eller resident minne från minneskortet.", "listTitle": "Listdialogrutan", "listItems": [ - "Automatisk uppdatering — listan uppdateras var 5:e sekund medan dialogrutan är öppen och slutar hämta data när den stängs.", + "Automatisk uppdatering — listan uppdateras var 3:e sekund medan dialogrutan är öppen och slutar hämta data när den stängs.", "Filter — sökfältet begränsar listan efter kommando, användare eller PID.", "Staplar i raderna — huvudkolumnens stapel skalas mot det högsta värdet i den filtrerade listan. Rangordningen förblir tydlig även när ingen process är nära 100 %.", "Mobil layout — under 640 px döljs PID och Användare, så att Kommando, CPU % och Minne får plats utan horisontell rullning." @@ -79,7 +79,7 @@ }, "middle": { "heading": "Mitten: diagram med nodens mätvärden", - "body1": "Under korten visar NodeMetricsCharts historik för CPU, minne och disk-I/O från Proxmox RRD-lager via /api/node/metrics. Välj 1 timme / 24 timmar / 7 dagar / 30 dagar / 1 år. Upplösningen sänks för längre perioder så att diagrammet förblir följsamt.", + "body1": "Under korten visar NodeMetricsCharts historik för CPU, minne och disk-I/O från Proxmox RRD-lager via /api/node/metrics. Välj 1 timme / 24 timmar / 7 dagar / 30 dagar. Upplösningen sänks för längre perioder så att diagrammet förblir följsamt.", "body2": "Samma diagram som Proxmox webbgränssnitt visar för en nod, infogade i Monitors mörka tema och placerade i linje med övriga paneler." }, "bottom": { diff --git a/web/messages/sv/docs/monitor/dashboard/vms-lxcs.json b/web/messages/sv/docs/monitor/dashboard/vms-lxcs.json index f71d6a3c..028f6b8f 100644 --- a/web/messages/sv/docs/monitor/dashboard/vms-lxcs.json +++ b/web/messages/sv/docs/monitor/dashboard/vms-lxcs.json @@ -117,7 +117,7 @@ "Destination — lagring (PBS-Cloud, PBS-Local, NFS-Backup, …), färgad efter status.", "Storlek — kopians slutliga storlek på disk." ], - "backupsOutro": "+ Skapa säkerhetskopia startar en kopiering på lagringen markerad ”Backup target” i Proxmox. Återställning görs i Proxmox webbgränssnitt; Monitor visar gästens senaste kopior och kan skapa nya.", + "backupsOutro": "Knappen + Skapa säkerhetskopia uppe till höger öppnar en dialog där du väljer lagring, läge (snapshot / suspend / stop), skydd och anteckningar innan en vzdump startas. Återställning görs i Proxmox webbgränssnitt; Monitor visar vyn ”har den här gästen säkerhetskopierats nyligen?”, inte återställningsflödet.", "firewallTitle": "Tab 7 - Brandvägg", "firewallIntro": "Läser gästens Proxmox-brandväggslogg direkt från värden utan extra tjänst eller periodiska hämtningar. Fliken finns alltid; innehållet beror på om brandväggen är aktiv och någon regel loggar paket.", "firewallItems": [ diff --git a/web/messages/sv/docs/monitor/health-monitor.json b/web/messages/sv/docs/monitor/health-monitor.json index ae3a030e..589afaf7 100644 --- a/web/messages/sv/docs/monitor/health-monitor.json +++ b/web/messages/sv/docs/monitor/health-monitor.json @@ -153,8 +153,8 @@ "pillTitle": "Indikatorn följer den allvarligaste kategorin", "pillBody": "Sidhuvudets färg följer högsta allvarlighetsgrad: CRITICAL → rött, annars WARNING → gult, annars INFO → blått, annars grönt. Samma logik styr punkten i faviconen och PWA-märket.", "updateNowTitle": "Uppdatera nu knappen i Översiktsrubriken", - "updateNowBody1": "När Systemuppdateringar visar väntande uppdateringar visas Uppdatera nu bredvid statusindikatorn. Fönstret kör samma värdflöde som ProxMenux → Settings post-install Proxmox → Proxmox System Update: rensning av paketkällor, apt full-upgrade via update-pve-safe.sh, DKMS-ombyggnad av hanterade drivrutiner vid ny kärna, autoremove/autoclean och fråga om omstart när kärnan ändrats. Förloppet visas löpande.", - "updateNowBody2": "När körningen är klar anropar stängningen GET /api/health/details?refresh=1 och ogiltigförklarar endpointens cache. Väntande uppdateringar och allvarlighetsgrad räknas om från det nya paketläget, så märket försvinner utan att invänta nästa cykel. På en uppdaterad värd är knappen dold." + "updateNowBody1": "När Systemuppdateringar visar väntande uppdateringar visas Uppdatera nu bredvid statusindikatorn. Fönstret kör samma värdflöde som ProxMenux → Verktyg och verktyg → Proxmox systemuppdatering: rensning av paketkällor, apt full-upgrade via update-pve-safe.sh, DKMS-ombyggnad av hanterade drivrutiner vid ny kärna, autoremove/autoclean och fråga om omstart när kärnan ändrats. Förloppet visas löpande.", + "updateNowBody2": "När körningen är klar anropar stängningen GET /api/health/full?refresh=1 och ogiltigförklarar endpointens cache. Väntande uppdateringar och allvarlighetsgrad räknas om från det nya paketläget, så märket försvinner utan att invänta nästa cykel. På en uppdaterad värd är knappen dold." }, "dismiss": { "heading": "Avfärda larm och ange undertryckningstid", diff --git a/web/messages/sv/docs/monitor/index.json b/web/messages/sv/docs/monitor/index.json index fa2eab2f..f7b8e165 100644 --- a/web/messages/sv/docs/monitor/index.json +++ b/web/messages/sv/docs/monitor/index.json @@ -113,13 +113,13 @@ "api": { "heading": "REST API och integrationer", "intro": "REST-endpointar ger övervakningsdata som JSON över HTTP/HTTPS för Homepage, Home Assistant, Uptime Kuma och skript. Grafana kan använda den separata Prometheus-textexportören på /api/prometheus. Anrop kan göras med curl.", - "tokens": "Långlivade API-token (365 dagar) skapas under Inställningar → API-åtkomsttoken eller via POST /api/auth/generate-api-token.", + "tokens": "Långlivade API-token (365 dagar) skapas under Administration → Säkerhet → API-token eller via POST /api/auth/generate-api-token.", "bearer": "Skicka token som Authorization: Bearer …. Även /api/health förväntar sig Bearer-headern, så tillgänglighetskontroller behöver en read_only-token. Under /api/auth/* finns både offentliga inställnings-/inloggnings-/statusrutter och skyddade rutter för konto-/tokenhantering; alla är inte anonyma.", "catalog": "Den fullständiga slutpunktskatalogen, vägledning för tokenrotation och bästa säkerhetspraxis finns i API Referens; Färdiga exempel för Homepage, Home Assistant, Grafana, Uptime Kuma och ett generiskt cURL-mönster finns i Integrationer." }, "serviceControl": { "heading": "Tjänstekontroll", - "intro": "Monitor hanteras som andra systemd-tjänster. Det finns även två poster i ProxMenux textgränssnitt under Inställningar:", + "intro": "Monitor hanteras som andra systemd-tjänster. Det finns även tre poster i ProxMenux textgränssnitt under Inställningar:", "codeComment": "# Manuell kontroll", "footer": "Se Inställningar → ProxMenux Monitor för växling i menyn och statusverifieringsflöde." }, diff --git a/web/messages/sv/docs/monitor/integrations.json b/web/messages/sv/docs/monitor/integrations.json index 60d5ee3b..cc4354ce 100644 --- a/web/messages/sv/docs/monitor/integrations.json +++ b/web/messages/sv/docs/monitor/integrations.json @@ -20,13 +20,13 @@ "heading": "Autentisering: det enda varje recept behöver", "intro": "De flesta endpoints som används av dessa integrationer är autentiserade. Du har två sätt att tillfredsställa detta krav.", "optAtitle": "Alternativ A – API token (rekommenderas för integrationer)", - "optAbody1": "Öppna Inställningar → Säkerhet → API-token. Välj Skapa token, ge den ett namn som homepage, home-assistant eller prometheus och kopiera den: den visas bara en gång. Den gäller ett år som standard och kan återkallas separat. Använd den för klienter utanför webbläsaren.", + "optAbody1": "Öppna Administration → Säkerhet → API-tokens. Välj Generera ny token, ge den ett namn som homepage, home-assistant eller prometheus, ange ditt lösenord (och 2FA-koden om den är på), välj sedan Generera token och kopiera den: den visas bara en gång. Den gäller ett år som standard och kan återkallas separat. Använd den för klienter utanför webbläsaren.", "optAbody2": "Från den punkten är varje begäran bara:", "optBtitle": "Alternativ B – inloggningsflöde (användarnamn + lösenord)", "optBbody": "Användbart för skript som autentiserar som en mänsklig användare. Den returnerade token är kortlivad; de flesta integrationer bör föredra Alternativ A.", "outro": "TOTP-fältet behövs bara med tvåfaktorsautentisering påslagen. Rotation och återkallande av token, lösenordsregler och granskningslogg beskrivs i Åtkomst och autentisering.", "httpsTitle": "Använda HTTPS istället för HTTP", - "httpsIntro": "Exemplen använder http:// för korthet. Om TLS är påslaget i Monitor (Inställningar → Säkerhet → SSL/HTTPS), byt http:// mot https:// i varje URL. Två verktygsspecifika anmärkningar:", + "httpsIntro": "Exemplen använder http:// för korthet. Om TLS är påslaget i Monitor (Administration → Säkerhet → SSL / HTTPS), byt http:// mot https:// i varje URL. Två verktygsspecifika anmärkningar:", "httpsItems": [ "Självsignerade certifikat. Home Assistants rest:-integration verifierar TLS som standard. Med Monitors självsignerade certifikat kan du lägga till verify_ssl: false i varje REST-block bredvid scan_interval: eller importera dess CA i betrodda certifikat. Detsamma gäller andra verktyg som verifierar certifikat.", "Prometheus har redan scheme: https i exemplet nedan. Aktivera eller behåll https när TLS är påslaget i Monitor." @@ -43,7 +43,7 @@ "basicTitle": "Grundläggande widget - ingen autentisering", "basicIntro": "Använd detta när ProxMenux Monitor är på ett pålitligt nätverk och du har inte aktiverat autentisering på Monitor sidan ännu. Den enklaste möjliga services.yaml-posten:", "authedTitle": "Autentiserad widget", - "authedIntro": "Skapa en API-token under Inställningar → Säkerhet → API-token i Monitor. Kopiera den till headern Authorization nedan och ersätt exempeltoken efter Bearer.", + "authedIntro": "Skapa en API-token under Administration → Säkerhet → API-token i Monitor. Kopiera den till headern Authorization nedan och ersätt exempeltoken efter Bearer.", "authedOutro": "Starta om Homepage så visar kortet aktuella värden. Återanvänd token i widgetar som läser samma Monitor-instans.", "multiTitle": "Multi-widget setup – system, lagring, nätverk", "multiIntro": "För fler detaljer skapar du tre kort med olika endpoints: system, lagring och nätverk. Använd samma token för denna Monitor-instans.", diff --git a/web/messages/sv/docs/monitor/notifications.json b/web/messages/sv/docs/monitor/notifications.json index 1f20b3f6..a72c37ca 100644 --- a/web/messages/sv/docs/monitor/notifications.json +++ b/web/messages/sv/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Valfri AI-omskrivning", - "body1": "Lämpliga händelser kan skrivas om av en språkmodell före leverans. Säkerhetskopieringsresultaten backup_complete och backup_fail undantas. AI är avstängt som standard och körs i sändningstråden när det aktiveras. Vid fel eller tidsgräns används malltexten.", + "body1": "Lämpliga händelser kan skrivas om av en språkmodell före leverans. Säkerhetskopieringsresultaten backup_complete och backup_fail skrivs inte om; med AI-förslag påslaget lägger AI bara till en förklaring när en säkerhetskopiering rapporterar fel. AI är avstängt som standard och körs i sändningstråden när det aktiveras. Vid fel eller tidsgräns används malltexten.", "body2": "Sex leverantörer stöds: OpenAI, Anthropic, Google Gemini, Groq, OpenRouter och lokal Ollama. Per kanal väljs detaljnivå (brief, standard, detailed), språk, instruktionsläge (default eller custom) och egna instruktioner. Sidan AI-assistent visar konfiguration, bilder och exempel.", "privacyTitle": "Integritetsinformation", "privacyBody": "AI-anrop kan innehålla titel, allvarlighetsgrad, meddelandetext, systeminstruktioner, egna instruktioner och insamlad kontext med värdnamn, IP-adresser, användarnamn, fel och journalrader. De skickas till vald server. Ollama är lokalt endast med både lokal server och lokal modell; en fjärrserver eller molnmodell skickar data utanför värden. Stäng av omskrivning eller använd en kontrollerad lokal server och modell om innehållet måste stanna i nätverket." diff --git a/web/messages/sv/docs/security/ssl-letsencrypt.json b/web/messages/sv/docs/security/ssl-letsencrypt.json index 7d11d70d..267a00ec 100644 --- a/web/messages/sv/docs/security/ssl-letsencrypt.json +++ b/web/messages/sv/docs/security/ssl-letsencrypt.json @@ -12,13 +12,13 @@ }, "intro": { "title": "Vad denna sida täcker", - "body": "Hur man byter Monitor från HTTP till HTTPS i Inställningarna → Säkerhetspanel, vad varje certifikatkälla faktiskt pekar på på disken, hur Proxmox-alternativet beter sig när värden har en Let's Encrypt-cert och hur man ställer in anpassade vägar om du hanterar certer utanför Proxmox." + "body": "Hur man byter Monitor från HTTP till HTTPS i panelen Administration → Säkerhet, vad varje certifikatkälla faktiskt pekar på på disken, hur Proxmox-alternativet beter sig när värden har en Let's Encrypt-cert och hur man ställer in anpassade vägar om du hanterar certer utanför Proxmox." }, "wheresetting": { "heading": "Var inställningen finns", - "body": "Öppna Monitor och gå till Inställningar → Säkerhet → HTTPS / SSL. Panelen visar HTTP eller HTTPS och, om HTTPS inte aktiverats, de upptäckta certifikatkällorna.", - "imageAlt": "Inställningar → Säkerhet → HTTPS / SSL-panelen i Monitorn som visar HTTPS-off-tillståndet, det automatiska upptäckta Proxmox-certifikatet (ämne, emittent, utgång) och alternativet Använd anpassat certifikat", - "caption": "Panelen Inställningar → Säkerhet → HTTPS / SSL före aktivering. Monitor visar certifikatet som Proxmox använder och låter dig välja det med ett klick." + "body": "Öppna Monitor och gå till Administration → Säkerhet → SSL / HTTPS. Panelen visar HTTP eller HTTPS och, om HTTPS inte aktiverats, de upptäckta certifikatkällorna.", + "imageAlt": "Panelen Administration → Säkerhet → SSL / HTTPS i Monitorn som visar HTTPS-off-tillståndet, det automatiska upptäckta Proxmox-certifikatet (ämne, emittent, utgång) och alternativet Använd anpassat certifikat", + "caption": "Panelen Administration → Säkerhet → SSL / HTTPS före aktivering. Monitor visar certifikatet som Proxmox använder och låter dig välja det med ett klick." }, "twoways": { "heading": "Två sätt att aktivera HTTPS", @@ -117,7 +117,7 @@ }, "switchToHttps": { "heading": "Byt Monitor till HTTPS", - "bodyRich": "När /etc/pve/local/pveproxy-ssl.pem signerats av Let's Encrypt öppnar du Inställningar → Säkerhet → HTTPS / SSL, kontrollerar att utfärdaren är Let's Encrypt och inte Proxmox lokala CA och klickar på Använd Proxmox-certifikat. Monitor startar om och nästa sidladdning använder HTTPS på 8008 med en offentligt betrodd certifikatkedja. Senare ACME-förnyelser valideras och väljs vid nästa nya TLS-anslutning, utan återkommande avfrågning eller omstart vid förnyelse. Uppdatera certifikat finns kvar under Säkerhet för diagnos och återställning." + "bodyRich": "När /etc/pve/local/pveproxy-ssl.pem signerats av Let's Encrypt öppnar du Administration → Säkerhet → SSL / HTTPS, kontrollerar att utfärdaren är Let's Encrypt och inte Proxmox lokala CA och klickar på Använd Proxmox-certifikat. Monitor startar om och nästa sidladdning använder HTTPS på 8008 med en offentligt betrodd certifikatkedja. Senare ACME-förnyelser valideras och väljs vid nästa nya TLS-anslutning, utan återkommande avfrågning eller omstart vid förnyelse. Uppdatera certifikat finns kvar under Säkerhet för diagnos och återställning." }, "custom": { "heading": "Anpassat certifikat - när du ska använda det",