mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-04 20:02:07 +00:00
docs(web): translate monitor drift fixes
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Dashboard öffnen",
|
||||
"intro": "ProxMenux Monitor lauscht auf <code>0.0.0.0:8008</code>. Drei übliche Zugriffswege:",
|
||||
"intro": "ProxMenux Monitor lauscht auf TCP 8008 auf allen Schnittstellen (<code>::</code>, 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 <code>X-Forwarded-For</code> erfordert PROXMENUX_TRUST_PROXY=1 und einen von Ihnen kontrollierten Proxy. <code>X-Forwarded-Proto</code> oder <code>X-Forwarded-Host</code> allein aktivieren das Proxy-Vertrauen nicht. Auf den Ports 80/443 verwendet das Frontend relative <code>/api/*</code>-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 <code>/root/.config/proxmenux-monitor/auth.json</code>, mit Modus <code>0600</code> und Eigentümer <code>root</code>. Die Datei enthält <em>Hashes</em> (PBKDF2) und <em>geheimes Schlüsselmaterial</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> neu erstellt oder mit einem anderen Geheimnis wiederhergestellt, ändert sich <code>jwt_secret</code>. Bisherige Sitzungs- und API-Tokens scheitern dann mit „Invalid or expired token“. Die Oberfläche kennzeichnet betroffene Tokens mit <strong>Ungültig — neu erstellen</strong>. Widerrufen und ersetzen Sie sie auch in Home Assistant, Skripten und anderen Clients.",
|
||||
"rotateBody": "Wird <code>auth.json</code> neu erstellt oder mit einem anderen Geheimnis wiederhergestellt, ändert sich <code>jwt_secret</code>. 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 <code>auth.json</code> 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 <strong>API-Token</strong> mit 365 Tagen Laufzeit. Es verwendet dasselbe Signaturgeheimnis; die Angabe <code>token_name</code> 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 <strong>Sicherheit → API-Zugriffstokens</strong> öffnen.",
|
||||
"Unter <strong>Registerkarte Sicherheit → Abschnitt API-Tokens</strong> öffnen.",
|
||||
"Beschreibenden Namen angeben, <em>z. B. „Home Assistant“</em>.",
|
||||
"Geben Sie Ihr Passwort erneut ein. Wenn 2FA eingeschaltet ist, auch der aktuelle 6-stellige Code.",
|
||||
"<strong>Token erstellen</strong> wählen. Es erscheint <strong>nur einmal</strong>; sofort kopieren."
|
||||
"<strong>Neues Token erstellen</strong> wählen, danach <strong>Token erstellen</strong>. Es erscheint <strong>nur einmal</strong>; sofort kopieren."
|
||||
],
|
||||
"generateCli": "Aus der Kommandozeile:",
|
||||
"useTitle": "Verwenden Sie ein Token",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Zwei Wege zu TLS:",
|
||||
"items": [
|
||||
"<strong>Reverse-Proxy (empfohlen).</strong> Beenden Sie TLS auf Nginx / Caddy / Traefik und leiten Sie HTTP auf Port 8008 zum Flask-Prozess weiter. Snippets unten.",
|
||||
"<strong>Direktes HTTPS in der AppImage.</strong> Zertifikat über <code>POST /api/ssl/configure</code> einrichten (Oberfläche: <strong>Einstellungen → SSL</strong>). HTTPS verwendet <code>gevent.pywsgi</code> mit dem Standardhandler; flask-sock übernimmt WebSocket-Verbindungen für WSS. Zertifikatspfade stehen in der SSL-Konfiguration."
|
||||
"<strong>Direktes HTTPS in der AppImage.</strong> Zertifikat über <code>POST /api/ssl/configure</code> einrichten (Oberfläche: <strong>Admin → Sicherheit → SSL / HTTPS</strong>). HTTPS verwendet <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Beispiele aus der mitgelieferten Modellliste: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (lokal)",
|
||||
"tagline": "Nutzt die Modelle Ihres konfigurierten Ollama-Servers. Lokale Modelle laufen dort; Ollama-Cloud-Modelle leiten Anfragen an einen Cloud-Anbieter weiter. Lokale Ausführung vermeidet gehostete API-Gebühren, verbraucht aber eigene Hardware und Strom.",
|
||||
"tagline": "Nutzt Modelle auf Ihrem Ollama-Server. Vollständig lokal, privat und kostenlos im Betrieb.",
|
||||
"items": [
|
||||
"Kein API-Schlüssel. Setzen Sie das <em>Ollama URL</em>-Feld auf Ihren Server (Standard <code>http://localhost:11434</code> oder welcher Host Ihre Ollama-Instanz ausführt).",
|
||||
"Modelle: <strong>nicht gefiltert.</strong> Der Monitor liest die Modelle, die Sie auf der Ollama-Seite über <code>ollama pull <model></code> gezogen haben. Der Dropdown wird von <code>GET /api/tags</code> auf Ihrem Ollama-Server ausgefüllt.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong>: <code>standard</code>.",
|
||||
"<strong>Email</strong> — <code>detailed</code>. 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",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Gefilterte Journaleinträge. Anfrage: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Anfrage: <code>?limit=</code> (Standard 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Erzeugt ein eigenes Ereignis. Anfrageinhalt: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Erzeugt ein eigenes Ereignis. Anfrageinhalt: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: Der Dienst verwendet Root-Rechte für Host-Operationen wie SMART, <code>pvesh</code> und ZFS-Verwaltung. Die Webterminal-Prozesse erben diese Rechte.",
|
||||
"<strong><code>Restart=on-failure</code></strong> mit zehn Sekunden Wartezeit: Nach fehlerhaftem Ende startet der Dienst automatisch neu.",
|
||||
"<strong><code>After=network.target</code></strong>: ordnet den Start nach diesem Ziel ein; garantiert keine IP-Adresse, DNS oder externe Verbindung."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Sicherheit und Zertifikate</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"owns": "Shell-Zugriff auf Host oder VM/CT im Browser mit <code>xterm.js</code> über WebSockets."
|
||||
"owns": "Browser-Shell auf dem Proxmox-Host mit <code>xterm.js</code> über WebSockets. LXC-Konsolen öffnen sich im Tab VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Sicherheit",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL / HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> auf <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>Bits pro Sekunde</strong> (Mbps/Gbps) oder <strong>Bytes pro Sekunde</strong> (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 <strong>Bytes pro Sekunde</strong> (MB/s/GB/s) oder <strong>Bits pro Sekunde</strong> (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 <code>apt list --upgradable</code> / <code>apk list -u</code> 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 <code>lxc_updates_available</code> erhält sie. Deaktiviert stoppt er seine <code>pct exec</code>-Aufrufe und entfernt LXC-Einträge aus <code>managed_installs.json</code>; <code>/api/managed-installs</code> 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 & LXCs zeigt Ergebnisse und <code>lxc_updates_available</code> erhält sie. Deaktiviert stoppt er seine <code>pct exec</code>-Aufrufe und entfernt LXC-Einträge aus <code>managed_installs.json</code>; <code>/api/managed-installs</code> meldet den Status dann ohne 24-Stunden-Wartezeit nicht mehr.",
|
||||
"whatRunsTitle": "Was die Prüfung ausführt",
|
||||
"whatRunsIntro": "Für jeden CT im Zustand <code>running</code> mit unterstütztem Paketmanager:",
|
||||
"whatRunsItems": [
|
||||
@@ -249,7 +249,7 @@
|
||||
"body1": "Hier aktivieren Sie ProxMenux-Monitor-Benachrichtigungen und die KI-Umformulierung. <em>Benachrichtigungen aktivieren</em> 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": [
|
||||
"<notifLink>Benachrichtigungen</notifLink>: 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.",
|
||||
"<notifLink>Benachrichtigungen</notifLink>: 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.",
|
||||
"<aiLink>KI-Assistent</aiLink>: 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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> und <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Unterstützt durch drei Quellen",
|
||||
"body": "Proxmox-Speicher stammen aus <code>pvesm status</code>, ZFS aus <code>zpool status</code>, physische Laufwerke aus <code>lsblk</code> + <code>smartctl</code> und NVMe-Felder aus <code>nvme</code>. Die Seite aktualisiert sich etwa alle 60 Sekunden; die Detailansicht fordert eine SMART-Abfrage an."
|
||||
"body": "Proxmox-Speicher stammen aus <code>pvesm status</code>, ZFS aus <code>zpool status</code>, physische Laufwerke aus <code>lsblk</code> + <code>smartctl</code> und NVMe-Felder aus <code>nvme</code>. Die Seite aktualisiert sich etwa alle 30 Sekunden; die Detailansicht fordert eine SMART-Abfrage an."
|
||||
},
|
||||
"thresholds": {
|
||||
"title": "Hier angewendete Statusfarben und -schwellen",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Einträge insgesamt</strong> — Anzahl der Protokolleinträge im aktiven Filterzeitraum.",
|
||||
"<strong>Fehler</strong> — Anzahl der Einträge mit Schweregrad ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Warnungen</strong> — Anzahl der Einträge mit Schweregrad 4 (<code>warning</code>).",
|
||||
"<strong>Sicherungen</strong> — Anzahl der vzdump-/PBS-Aufgabeneinträge im selben Zeitraum."
|
||||
"<strong>Sicherungen</strong>: Anzahl der Backup-Archive auf den konfigurierten Backup-Speichern."
|
||||
]
|
||||
},
|
||||
"subtabs": {
|
||||
@@ -26,10 +26,10 @@
|
||||
"logsTitle": "Protokolle",
|
||||
"logsIntro": "Das Systemjournal wird auf dem Server mit <code>journalctl</code> abgerufen. Die Werkzeugleiste bietet folgende Filter :",
|
||||
"logsFilters": [
|
||||
"<strong>Schweregrad</strong> — emerg / alert / crit / err / warning / notice / info / debug oder eine beliebige Kombination.",
|
||||
"<strong>Zeitbereich</strong> — zuletzt 5 min. / 15 min. / 1 h / 6 h / 24 h / 7 d / Custom.",
|
||||
"<strong>Freitextsuche</strong> — Teilzeichenfolge oder regulärer Ausdruck (<code>journalctl --grep</code>).",
|
||||
"<strong>Unit-Filter</strong> — auf eine bestimmte systemd-Unit beschränken (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Stufe</strong>: alle, Fehler, Warnung oder Info.",
|
||||
"<strong>Zeitbereich</strong>: 1 Tag / 3 Tage / 1 Woche / 2 Wochen / 1 Monat oder eine benutzerdefinierte Anzahl von Tagen (bis zu 90).",
|
||||
"<strong>Freitextsuche</strong>: Teilzeichenfolge ohne Beachtung der Groß-/Kleinschreibung über Nachricht, Dienst, PID, Hostname und Unit, im Browser angewendet.",
|
||||
"<strong>Dienstfilter</strong>: auf einen Dienst beschränken (der Journal-<code>SYSLOG_IDENTIFIER</code>)."
|
||||
],
|
||||
"logsRowsAfter": "Jede Zeile zeigt Zeitstempel, Schweregradabzeichen, Quelleinheit und die Nachricht. Lange Nachrichten brechen mit einem \"mehr anzeigen\"-Schalter zusammen. Die Aktion <strong>Download</strong> bündelt den aktuellen Filter über <code>GET /api/logs/download</code> in einer einzigen <code>.txt</code>-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 <code>MaxLevelStore=warning</code> und verwirft dadurch Info-Meldungen. Monitor erkennt dies beim Start und ergänzt eine Drop-in-Datei (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) mit dem Grenzwert <code>info</code>. 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 (<code>vzdump</code>, 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 <code>GET /api/task-log/<upid></code> zu laden - die gleichen Daten, die Proxmox über <em>Datacenter → Tasks</em>, die auf Backups beschränkt sind, freigibt.",
|
||||
"backupsBody": "Die Backup-Archive auf jedem backupfähigen Speicher (dir, NFS, CIFS, PBS), gelesen mit <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Benachrichtigungen</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"notificationsBody2": "Hier prüfen Sie, was das eigene Benachrichtigungssystem von Proxmox tut. Die Kanäle des Monitors konfigurieren Sie auf der Detailseite <link>Benachrichtigungen</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Wie die Daten gesammelt werden",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Protokolle (Live-Filter)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> mit serverseitigen Filtern für Schweregrad, Unit und Suche."
|
||||
"source": "<code>journalctl</code> mit serverseitig angewendeten Filtern für Priorität, Dienst und Tagesbereich; die Textsuche läuft im Browser."
|
||||
},
|
||||
{
|
||||
"subtab": "Herunterladen",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Sicherungen",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "PVE-Taskhistorie gefiltert nach <code>vzdump</code>, PBS-Transfers, Garbage Collect, Verify."
|
||||
"source": "Backup-Archive, aufgelistet aus jedem Backup-Speicher mit <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Details einer Sicherungsaufgabe",
|
||||
"subtab": "Protokoll der Sicherungsaufgabe (Benachrichtigungen)",
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
"source": "Vollständiges Aufgabenprotokoll im Klartext aus <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Meldeverlauf",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Die SQLite-Tabelle <code>notification_history</code> wird von der Versandschleife gefüllt."
|
||||
"subtab": "Benachrichtigungen",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> über Proxmox-Units, <code>/etc/pve/notifications.cfg</code> und Backup-Aufgaben aus <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Live-Filter und Downloads sind auch über die API erreichbar:",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Ringe, Balken und Minidiagramme verwenden dieselbe Einteilung: <green/> <strong>grün</strong> unter der Warnschwelle, <amber/> <strong>bernsteinfarben</strong> zwischen Warn- und kritischer Schwelle, <red/> <strong>rot</strong> ab der kritischen Schwelle. Empfohlene Standardwerte von ProxMenux :",
|
||||
"thresholdsItems": [
|
||||
"<strong>CPU-Auslastung</strong> — Warnung 85 %, kritisch 95 %.",
|
||||
"<strong>Arbeitsspeicher</strong> — Warnung 85 %, kritisch 95 %. Swap löst ebenfalls ab 5 % Nutzung den kritischen Zustand aus; ein gesunder Proxmox-Host sollte Swap nur selten verwenden.",
|
||||
"<strong>Arbeitsspeicher</strong>: 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 %.",
|
||||
"<strong>CPU-Temperatur</strong> — Warnung 80 °C, kritisch 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Alle Werte sind pro Host konfigurierbar. <link>Einstellungen → Grenzwerte der Zustandsüberwachung</link> 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": [
|
||||
"<strong>Automatische Aktualisierung</strong> — die Liste wird bei geöffnetem Dialog alle 5 Sekunden aktualisiert. Beim Schließen enden die Abfragen.",
|
||||
"<strong>Automatische Aktualisierung</strong> — die Liste wird bei geöffnetem Dialog alle 3 Sekunden aktualisiert. Beim Schließen enden die Abfragen.",
|
||||
"<strong>Filter</strong> — das Suchfeld grenzt die Liste nach Befehl, Benutzer oder PID ein.",
|
||||
"<strong>Inline bar</strong> — 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.",
|
||||
"<strong>Mobiles Layout</strong> — 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 <code>NodeMetricsCharts</code> CPU-, Arbeitsspeicher- und Datenträger-I/O-Verläufe aus dem RRD-Speicher von Proxmox über <code>/api/node/metrics</code>. Wählbar sind <em>1 Stunde / 24 Stunden / 7 Tage / 30 Tage / 1 Jahr</em>. Bei größeren Zeiträumen sinkt die Datenauflösung, damit die Anzeige flüssig bleibt.",
|
||||
"body1": "Unter den Karten zeigt <code>NodeMetricsCharts</code> CPU-, Arbeitsspeicher- und Datenträger-I/O-Verläufe aus dem RRD-Speicher von Proxmox über <code>/api/node/metrics</code>. Wählbar sind <em>1 Stunde / 24 Stunden / 7 Tage / 30 Tage</em>. 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": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Zielanzeige</strong> — Speicherort (PBS-Cloud, PBS-Local, NFS-Backup, …), nach Zustand eingefärbt.",
|
||||
"<strong>Größe</strong> — endgültige Größe der Sicherung auf dem Datenträger."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Sicherung erstellen</strong> 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 <strong>+ Sicherung erstellen</strong> 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": [
|
||||
|
||||
@@ -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 <em>Systemupdates</em> ausstehende Updates, erscheint neben der Statusanzeige <strong>Jetzt aktualisieren</strong>. Der Dialog startet denselben Hostablauf wie <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em>: Repository-Bereinigung, <code>apt full-upgrade</code> über <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/details?refresh=1</code> 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 <em>Systemupdates</em> ausstehende Updates, erscheint neben der Statusanzeige <strong>Jetzt aktualisieren</strong>. Der Dialog startet denselben Hostablauf wie <em>ProxMenux → Utilities and Tools → Proxmox System Update</em>: Repository-Bereinigung, <code>apt full-upgrade</code> über <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/full?refresh=1</code> 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code> nutzen. Anfragen sind mit <code>curl</code> möglich.",
|
||||
"tokens": "Langlebige API-Tokens (365 Tage) werden aus <strong>Einstellungen → API Zugriffstokens</strong> oder über <code>POST /api/auth/generate-api-token</code> generiert.",
|
||||
"tokens": "Langlebige API-Tokens (365 Tage) werden aus <strong>Admin → Sicherheit → API-Tokens</strong> oder über <code>POST /api/auth/generate-api-token</code> generiert.",
|
||||
"bearer": "Token werden als <code>Authorization: Bearer …</code> gesendet. Auch <code>/api/health</code> erwartet den Bearer-Header, daher benötigen Verfügbarkeitsprüfungen ein read_only-Token. Unter <code>/api/auth/*</code> 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 <linkApi>API-Referenz</linkApi>; Vorgefertigte Beispiele für Homepage, Home Assistant, Grafana, Uptime Kuma und ein generisches cURL-Muster finden Sie in <linkIntegrations>Integrationen</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Einstellungen</em>:",
|
||||
"intro": "Der Monitor wird wie jeder systemd-Dienst verwaltet. Zusätzlich gibt es drei Einträge in der ProxMenux-Textoberfläche unter <em>Einstellungen</em>:",
|
||||
"codeComment": "# Manuelle Steuerung",
|
||||
"footer": "Siehe <link>Einstellungen → ProxMenux Monitor</link> für die Umschaltung im Menü und den Statusüberprüfungsablauf."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Einstellungen → Sicherheit → API-Token</strong>. Wählen Sie <em>Token erzeugen</em>, vergeben Sie einen Namen wie <em>homepage</em>, <em>home-assistant</em> oder <em>prometheus</em> und kopieren Sie das Token: Es erscheint <em>nur einmal</em>. 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 <strong>Admin → Sicherheit → API-Token</strong>. Wählen Sie <em>Token erzeugen</em>, vergeben Sie einen Namen wie <em>homepage</em>, <em>home-assistant</em> oder <em>prometheus</em> und kopieren Sie das Token: Es erscheint <em>nur einmal</em>. 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 <link>Zugriff und Authentifizierung</link> beschrieben.",
|
||||
"httpsTitle": "Verwendung von HTTPS anstelle von HTTP",
|
||||
"httpsIntro": "Jedes Rezept unten verwendet <code>http://</code> in den URLs, um die Beispiele kurz zu halten. Wenn Sie TLS auf dem Monitor aktiviert haben (<strong>Settings → Security → SSL/HTTPS</strong>), tauschen Sie <code>http://</code> in jeder URL gegen <code>https://</code> aus – das ist die einzige Änderung. Zwei spezielle Anmerkungen zu bestimmten Werkzeugen:",
|
||||
"httpsIntro": "Jedes Rezept unten verwendet <code>http://</code> in den URLs, um die Beispiele kurz zu halten. Wenn Sie TLS auf dem Monitor aktiviert haben (<strong>Admin → Security → SSL / HTTPS</strong>), tauschen Sie <code>http://</code> in jeder URL gegen <code>https://</code> aus – das ist die einzige Änderung. Zwei spezielle Anmerkungen zu bestimmten Werkzeugen:",
|
||||
"httpsItems": [
|
||||
"<strong>Selbstsignierte Zertifikate.</strong> Die Home-Assistant-Integration <code>rest:</code> prüft TLS standardmäßig. Für ein selbstsigniertes Monitor-Zertifikat setzen Sie <code>verify_ssl: false</code> in jeden REST-Block neben <code>scan_interval:</code> oder nehmen die Monitor-CA in den Vertrauensspeicher auf. Entsprechendes gilt für andere Werkzeuge mit Zertifikatsprüfung.",
|
||||
"<strong>Prometheus</strong> enthält unten bereits <code>scheme: https</code>. Aktivieren oder behalten Sie <code>https</code>, 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 <code>services.yaml</code>-Eintrag:",
|
||||
"authedTitle": "Authentifiziertes Widget",
|
||||
"authedIntro": "Generieren Sie ein API-Token in <strong>Settings → Security → API Tokens</strong> auf dem Monitor, kopieren Sie es und fügen Sie es in den <code>Authorization</code>-Header unten ein - ersetzen Sie das Beispiel-Token, das nach <code>Bearer</code> angezeigt wird, durch das, das Sie gerade kopiert haben:",
|
||||
"authedIntro": "Generieren Sie ein API-Token in <strong>Admin → Security → API Tokens</strong> auf dem Monitor, kopieren Sie es und fügen Sie es in den <code>Authorization</code>-Header unten ein - ersetzen Sie das Beispiel-Token, das nach <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 <strong>Einstellungen → Sicherheit → HTTPS / SSL</strong>. 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 <strong>Admin → Sicherheit → SSL / HTTPS</strong>. 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> von Let's Encrypt signiert ist, öffnen Sie <strong>Einstellungen → Sicherheit → HTTPS / SSL</strong>, prüfen als Aussteller <em>Let's Encrypt</em> statt der lokalen Proxmox-CA und wählen <strong>Proxmox-Zertifikat verwenden</strong>. 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. <strong>Zertifikat aktualisieren</strong> bleibt unter Sicherheit für Diagnose und Wiederherstellung verfügbar."
|
||||
"bodyRich": "Sobald <code>/etc/pve/local/pveproxy-ssl.pem</code> von Let's Encrypt signiert ist, öffnen Sie <strong>Admin → Sicherheit → SSL / HTTPS</strong>, prüfen als Aussteller <em>Let's Encrypt</em> statt der lokalen Proxmox-CA und wählen <strong>Proxmox-Zertifikat verwenden</strong>. 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. <strong>Zertifikat aktualisieren</strong> bleibt unter Sicherheit für Diagnose und Wiederherstellung verfügbar."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Benutzerdefiniertes Zertifikat — wann es sinnvoll ist",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Cómo llegar al panel",
|
||||
"intro": "ProxMenux Monitor escucha en <code>0.0.0.0:8008</code>. Hay tres formas habituales de llegar a él:",
|
||||
"intro": "ProxMenux Monitor escucha en el TCP 8008 en todas las interfaces (<code>::</code>, 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 <code>X-Forwarded-For</code> se requiere PROXMENUX_TRUST_PROXY=1 y un proxy que controles. La presencia de <code>X-Forwarded-Proto</code> o <code>X-Forwarded-Host</code> no activa esa confianza. En los puertos 80/443 el frontend usa URL relativas <code>/api/*</code>; 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: <code>/root/.config/proxmenux-monitor/auth.json</code>, modo <code>0600</code>, propietario <code>root</code>. El archivo guarda <em>hashes</em> (PBKDF2) y <em>material de firma</em> (<code>jwt_secret</code>, <code>totp_secret</code>) — 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 <code>auth.json</code> se regenera (borrado manual, reinstalación, restauración desde un backup con un secret distinto) el <code>jwt_secret</code> 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 <strong>Invalid — regenerate</strong> 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 <code>auth.json</code> se regenera (borrado manual, reinstalación, restauración desde un backup con un secret distinto) el <code>jwt_secret</code> 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 <code>auth.json</code>:",
|
||||
"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 <strong>API token</strong> 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 <code>token_name</code> 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 Admin → Security — 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 <strong>Seguridad → Tokens de acceso API</strong>.",
|
||||
"Abre la sección <strong>Seguridad → API Tokens</strong>.",
|
||||
"Escribe un nombre descriptivo (<em>p. ej. \"Home Assistant\"</em>).",
|
||||
"Vuelve a introducir tu contraseña. Si el 2FA está activado, también el código actual de 6 dígitos.",
|
||||
"Pulsa <strong>Generar token</strong>. Se muestra <strong>una sola vez</strong>: cópialo al momento."
|
||||
"Pulsa <strong>Generar nuevo token</strong> y después <strong>Generar token</strong>. Se muestra <strong>una sola vez</strong>: cópialo al momento."
|
||||
],
|
||||
"generateCli": "Desde la línea de comandos:",
|
||||
"useTitle": "Usar un token",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Dos rutas hacia TLS:",
|
||||
"items": [
|
||||
"<strong>Reverse proxy (recomendado).</strong> Termina TLS en Nginx / Caddy / Traefik y reenvía HTTP en el puerto 8008 al proceso Flask. Snippets más abajo.",
|
||||
"<strong>HTTPS directo en AppImage.</strong> Configura un certificado con <code>POST /api/ssl/configure</code> (interfaz: <strong>Ajustes → SSL</strong>). HTTPS usa <code>gevent.pywsgi</code> 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."
|
||||
"<strong>HTTPS directo en AppImage.</strong> Configura un certificado con <code>POST /api/ssl/configure</code> (interfaz: <strong>Admin → Security → SSL / HTTPS</strong>). HTTPS usa <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Ejemplos de la lista de modelos incluida: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (local)",
|
||||
"tagline": "Usa los modelos expuestos por el servidor Ollama configurado. Los modelos locales se ejecutan allí; los modelos cloud de Ollama envían las peticiones a un proveedor externo. La ejecución local evita cargos de API alojada, pero utiliza tu hardware y electricidad.",
|
||||
"tagline": "Usa los modelos de tu servidor Ollama. Totalmente local, privado y gratuito de ejecutar.",
|
||||
"items": [
|
||||
"Sin API key. Configura el campo <em>Ollama URL</em> a tu servidor (por defecto <code>http://localhost:11434</code> o el host que ejecute tu instancia de Ollama).",
|
||||
"Modelos: <strong>no filtrados.</strong> El Monitor lee los modelos que hayas descargado en el lado de Ollama vía <code>ollama pull <model></code>. El dropdown se llena desde <code>GET /api/tags</code> en tu servidor Ollama.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>Email</strong> — <code>detailed</code>. Email es el canal donde típicamente quieres la foto completa para archivo."
|
||||
],
|
||||
"emailTitle": "El nivel de detalle de Email añade el original",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Entradas del journal filtradas. Query: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Query: <code>?limit=</code> (por defecto 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Emite un evento personalizado. Cuerpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Emite un evento personalizado. Cuerpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: el servicio usa privilegios root para operaciones del host como SMART, <code>pvesh</code> y gestión ZFS. Los procesos del terminal heredan esos permisos.",
|
||||
"<strong><code>Restart=on-failure</code></strong> con espera de 10 segundos: se reinicia automáticamente tras una salida con error.",
|
||||
"<strong><code>After=network.target</code></strong>: ordena el inicio después de ese objetivo; no garantiza IP asignada, DNS ni conectividad externa."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Seguridad y certificados</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"owns": "Shell del host o de cualquier VM/CT en el navegador, con <code>xterm.js</code> sobre WebSockets."
|
||||
"owns": "Shell del navegador en el host Proxmox, con <code>xterm.js</code> sobre WebSockets. Las consolas LXC se abren desde la pestaña VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Seguridad",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL/HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> sobre <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>bits por segundo</strong> (Mbps/Gbps) o <strong>bytes por segundo</strong> (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 <strong>bits por segundo</strong> (Mbps/Gbps) o <strong>bytes por segundo</strong> (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 <code>apt list --upgradable</code> / <code>apk list -u</code> 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 <code>lxc_updates_available</code>. Al desactivarlo, cesan sus llamadas <code>pct exec</code> y se eliminan las entradas LXC de <code>managed_installs.json</code>, por lo que <code>/api/managed-installs</code> 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 VMs & LXCs y alimentan <code>lxc_updates_available</code>. Al desactivarlo, cesan sus llamadas <code>pct exec</code> y se eliminan las entradas LXC de <code>managed_installs.json</code>, por lo que <code>/api/managed-installs</code> deja de mostrar ese estado sin esperar 24 h.",
|
||||
"whatRunsTitle": "Qué ejecuta el análisis",
|
||||
"whatRunsIntro": "Para cada CT en estado <code>running</code> 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. <em>Activar notificaciones</em> 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": [
|
||||
"<notifLink>Notificaciones</notifLink>: 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.",
|
||||
"<notifLink>Notificaciones</notifLink>: 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.",
|
||||
"<aiLink>Asistente de IA</aiLink>: 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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> y <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Respaldado por tres fuentes",
|
||||
"body": "Los almacenamientos Proxmox proceden de <code>pvesm status</code>; ZFS, de <code>zpool status</code>; los discos físicos, de <code>lsblk</code> + <code>smartctl</code>, y <code>nvme</code> 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 <code>pvesm status</code>; ZFS, de <code>zpool status</code>; los discos físicos, de <code>lsblk</code> + <code>smartctl</code>, y <code>nvme</code> 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í",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Entradas totales</strong>: número de registros dentro del intervalo del filtro activo.",
|
||||
"<strong>Errores</strong>: número de entradas con severidad ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Advertencias</strong>: número de entradas con severidad 4 (<code>warning</code>).",
|
||||
"<strong>Backups</strong>: número de entradas de tareas vzdump / PBS en el mismo intervalo."
|
||||
"<strong>Backups</strong>: 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 <code>journalctl</code>. La barra de herramientas ofrece estos filtros:",
|
||||
"logsFilters": [
|
||||
"<strong>Severidad</strong>: emerg / alert / crit / err / warning / notice / info / debug o cualquier combinación.",
|
||||
"<strong>Rango temporal</strong> — últimos 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizado.",
|
||||
"<strong>Búsqueda de texto libre</strong>: subcadena o expresión regular (<code>journalctl --grep</code>).",
|
||||
"<strong>Filtro de unidad</strong>: restringe a una unidad systemd concreta (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Nivel</strong>: all, error, warning o info.",
|
||||
"<strong>Rango temporal</strong>: 1 día / 3 días / 1 semana / 2 semanas / 1 mes, o un número personalizado de días (hasta 90).",
|
||||
"<strong>Búsqueda de texto libre</strong>: subcadena sin distinguir mayúsculas de minúsculas sobre mensaje, servicio, PID, hostname y unidad, aplicada en el navegador.",
|
||||
"<strong>Filtro de servicio</strong>: restringe a un servicio (el <code>SYSLOG_IDENTIFIER</code> 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 <strong>Download</strong> empaqueta el filtro actual en un único archivo <code>.txt</code> vía <code>GET /api/logs/download</code> — ú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 <code>MaxLevelStore=warning</code>, que descarta los mensajes info. Monitor lo detecta al arrancar y añade un archivo de configuración complementario (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) con el umbral <code>info</code> 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 (<code>vzdump</code>, 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 <code>GET /api/task-log/<upid></code> — los mismos datos que Proxmox expone a través de <em>Datacenter → Tasks</em>, acotado a backups.",
|
||||
"backupsBody": "Los archivos de backup de cada almacenamiento con capacidad de backup (dir, NFS, CIFS, PBS), leídos con <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Notificaciones</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"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 <link>Notificaciones</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Cómo se recopilan los datos",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Logs (filtro en vivo)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> con filtros de severidad, unidad y búsqueda aplicados en el servidor."
|
||||
"source": "<code>journalctl</code> con filtros de prioridad, servicio y rango de días aplicados en el servidor; la búsqueda de texto se ejecuta en el navegador."
|
||||
},
|
||||
{
|
||||
"subtab": "Descargar",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Backups",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "Historial de tareas PVE filtrado por <code>vzdump</code>, transferencias PBS, Garbage Collect, Verify."
|
||||
"source": "Archivos de backup listados desde cada almacenamiento de backup con <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Historial de notificaciones",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Tabla SQLite <code>notification_history</code>, alimentada por el bucle de envío."
|
||||
"subtab": "Notificaciones",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> sobre unidades de Proxmox, <code>/etc/pve/notifications.cfg</code> y tareas de backup de <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Tanto el filtro en vivo como las descargas también son accesibles vía API:",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Cada anillo, barra y minigráfico usa la misma escala: <green/> <strong>verde</strong> por debajo de Advertencia, <amber/> <strong>ámbar</strong> entre Advertencia y Crítico, <red/> <strong>rojo</strong> desde Crítico. Valores recomendados incluidos con ProxMenux:",
|
||||
"thresholdsItems": [
|
||||
"<strong>Uso de CPU</strong>: advertencia 85 %, crítico 95 %.",
|
||||
"<strong>Memoria</strong>: advertencia 85 %, crítico 95 %. Swap también activa Crítico al 5 % de uso; un host Proxmox sano debería usarlo rara vez.",
|
||||
"<strong>Memoria</strong>: 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 %.",
|
||||
"<strong>Temperatura de CPU</strong>: advertencia 80 °C, crítico 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Los valores se configuran por host; <link>Ajustes → Umbrales del monitor de salud</link> 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": [
|
||||
"<strong>Actualización automática</strong>: la lista se actualiza cada 5 segundos mientras está abierta y deja de consultar datos al cerrar.",
|
||||
"<strong>Actualización automática</strong>: la lista se actualiza cada 3 segundos mientras está abierta y deja de consultar datos al cerrar.",
|
||||
"<strong>Filtro</strong>: el buscador acota la lista por comando, usuario o PID.",
|
||||
"<strong>Barra en línea</strong> — 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 %.",
|
||||
"<strong>Layout móvil</strong> — 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á <code>NodeMetricsCharts</code>, con gráficas históricas de CPU, memoria y E/S de disco del almacén RRD de Proxmox mediante <code>/api/node/metrics</code>. El selector permite <em>1 hora / 24 horas / 7 días / 30 días / 1 año</em>; la resolución baja al ampliar el intervalo para mantener la fluidez.",
|
||||
"body1": "Bajo las tarjetas está <code>NodeMetricsCharts</code>, con gráficas históricas de CPU, memoria y E/S de disco del almacén RRD de Proxmox mediante <code>/api/node/metrics</code>. El selector permite <em>1 hora / 24 horas / 7 días / 30 días</em>; 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": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Etiqueta de destino</strong> — el almacenamiento donde vive (PBS-Cloud, PBS-Local, NFS-Backup, …) coloreada por estado.",
|
||||
"<strong>Tamaño</strong>: tamaño final en disco del backup."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Crear backup</strong> 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": "<strong>+ Crear backup</strong> 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": [
|
||||
|
||||
@@ -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 <em>Actualizaciones del sistema</em> reporta una o más actualizaciones pendientes, la cabecera de Overview renderiza un botón <strong>Update Now</strong> al lado de la pildora de salud. El botón abre una modal que ejecuta el mismo flujo del lado del host que <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em>: higiene de repos, <code>apt full-upgrade</code> vía el worker seguro <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/details?refresh=1</code>, 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 <em>Actualizaciones del sistema</em> reporta una o más actualizaciones pendientes, la cabecera de Overview renderiza un botón <strong>Update Now</strong> al lado de la pildora de salud. El botón abre una modal que ejecuta el mismo flujo del lado del host que <em>ProxMenux → Utilities and Tools → Proxmox System Update</em>: higiene de repos, <code>apt full-upgrade</code> vía el worker seguro <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/full?refresh=1</code>, 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code>. Las peticiones se pueden hacer con <code>curl</code>.",
|
||||
"tokens": "Los tokens API de larga duración (365 días) se generan en <strong>Configuración → Tokens de acceso API</strong> o mediante <code>POST /api/auth/generate-api-token</code>.",
|
||||
"tokens": "Los tokens API de larga duración (365 días) se generan en <strong>Admin → Security → API Tokens</strong> o mediante <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Envía tokens con <code>Authorization: Bearer …</code>. <code>/api/health</code> también espera la cabecera Bearer, así que las pruebas de disponibilidad necesitan un token read_only. Bajo <code>/api/auth/*</code> 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 <linkApi>Referencia de la API</linkApi>. Los ejemplos para Homepage, Home Assistant, Grafana, Uptime Kuma y cURL están en <linkIntegrations>Integraciones</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Configuración</em>:",
|
||||
"intro": "Monitor se gestiona como cualquier servicio systemd. También tiene tres entradas en la interfaz de texto ProxMenux bajo <em>Configuración</em>:",
|
||||
"codeComment": "# Control manual",
|
||||
"footer": "Consulta <link>Configuración → ProxMenux Monitor</link> para activar/desactivar el servicio y verificar su estado."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Ajustes → Seguridad → Tokens API</strong>. Pulsa <em>Generar token</em>, ponle un nombre, como <em>homepage</em>, <em>home-assistant</em> o <em>prometheus</em>, y cópialo: se muestra <em>una sola vez</em>. Caduca al año por defecto y puede revocarse individualmente. Úsalo para los clientes externos al navegador.",
|
||||
"optAbody1": "Entra en <strong>Admin → Security → API Tokens</strong>. Pulsa <em>Generar token</em>, ponle un nombre, como <em>homepage</em>, <em>home-assistant</em> o <em>prometheus</em>, y cópialo: se muestra <em>una sola vez</em>. 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 <link>Acceso y autenticación</link>.",
|
||||
"httpsTitle": "Usando HTTPS en lugar de HTTP",
|
||||
"httpsIntro": "Cada guía de abajo usa <code>http://</code> en las URLs para mantener los ejemplos cortos. Si has activado TLS en el Monitor (<strong>Settings → Security → SSL/HTTPS</strong>), cambia <code>http://</code> por <code>https://</code> en cada URL — ese es el único cambio. Dos notas específicas para ciertas herramientas:",
|
||||
"httpsIntro": "Cada guía de abajo usa <code>http://</code> en las URLs para mantener los ejemplos cortos. Si has activado TLS en el Monitor (<strong>Admin → Security → SSL / HTTPS</strong>), cambia <code>http://</code> por <code>https://</code> en cada URL — ese es el único cambio. Dos notas específicas para ciertas herramientas:",
|
||||
"httpsItems": [
|
||||
"<strong>Certificados autofirmados.</strong> La integración <code>rest:</code> de Home Assistant verifica TLS por defecto. Si el Monitor está usando su propio cert autofirmado, añade <code>verify_ssl: false</code> a cada bloque REST (junto a <code>scan_interval:</code>), o importa la CA del Monitor al trust store de HA. Lo mismo para cualquier herramienta que rechace certs no confiables.",
|
||||
"<strong>Prometheus</strong> ya tiene <code>scheme: https</code> listo en la configuración de scrape de abajo; descomenta / déjalo como <code>https</code> 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 <code>services.yaml</code>:",
|
||||
"authedTitle": "Widget autenticado",
|
||||
"authedIntro": "Genera un API token en <strong>Settings → Security → API Tokens</strong> en el Monitor, cópialo y pégalo en la cabecera <code>Authorization</code> de abajo — reemplaza el token de ejemplo mostrado tras <code>Bearer</code> con el que acabas de copiar:",
|
||||
"authedIntro": "Genera un API token en <strong>Admin → Security → API Tokens</strong> en el Monitor, cópialo y pégalo en la cabecera <code>Authorization</code> de abajo — reemplaza el token de ejemplo mostrado tras <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 Admin → 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."
|
||||
},
|
||||
"wheresetting": {
|
||||
"heading": "Ubicación del ajuste",
|
||||
"body": "Abre Monitor y ve a <strong>Ajustes → Seguridad → HTTPS / SSL</strong>. 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 <strong>Admin → Security → SSL / HTTPS</strong>. El panel muestra HTTP o HTTPS y, si HTTPS no está activo, las fuentes de certificados detectadas.",
|
||||
"imageAlt": "Panel Admin → Security → 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 Admin → Security → 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> está firmado por Let's Encrypt, abre <strong>Ajustes → Seguridad → HTTPS / SSL</strong>, comprueba que el emisor sea <em>Let's Encrypt</em> y no la CA local de Proxmox, y pulsa <strong>Usar certificado de Proxmox</strong>. 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. <strong>Actualizar certificado</strong> sigue disponible en Seguridad como acción explícita de diagnóstico y recuperación."
|
||||
"bodyRich": "Una vez que <code>/etc/pve/local/pveproxy-ssl.pem</code> está firmado por Let's Encrypt, abre <strong>Admin → Security → SSL / HTTPS</strong>, comprueba que el emisor sea <em>Let's Encrypt</em> y no la CA local de Proxmox, y pulsa <strong>Usar certificado de Proxmox</strong>. 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. <strong>Actualizar certificado</strong> sigue disponible en Seguridad como acción explícita de diagnóstico y recuperación."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Certificado personalizado — cuándo usarlo",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Atteindre le tableau de bord",
|
||||
"intro": "Le ProxMenux Monitor se lie au <code>0.0.0.0:8008</code>. Il y a trois façons communes d'y parvenir:",
|
||||
"intro": "Le ProxMenux Monitor écoute sur le TCP 8008 sur toutes les interfaces (<code>::</code>, 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 <code>X-Forwarded-For</code> nécessite PROXMENUX_TRUST_PROXY=1 et un proxy que vous contrôlez. La seule présence de <code>X-Forwarded-Proto</code> ou <code>X-Forwarded-Host</code> n’active pas la confiance envers le proxy. Sur les ports 80/443, le frontend utilise des URL relatives <code>/api/*</code> ; 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 <code>/root/.config/proxmenux-monitor/auth.json</code>, mode <code>0600</code>, propriétaire <code>root</code>. Le fichier contient des <em>hachages</em> PBKDF2 et des <em>secrets cryptographiques</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> est recréé ou restauré avec un autre secret, <code>jwt_secret</code> change. Les anciens JWT de session et d’API échouent alors avec « Invalid or expired token ». L’interface affiche <strong>Invalide — régénérer</strong> pour les jetons concernés. Révoquez-les et remplacez-les aussi dans Home Assistant, les scripts et les autres clients.",
|
||||
"rotateBody": "Si <code>auth.json</code> est recréé ou restauré avec un autre secret, <code>jwt_secret</code> 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 <code>auth.json</code>:",
|
||||
"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 <strong>jeton API</strong> valable 365 jours. Ce JWT utilise le même secret de signature ; le champ <code>token_name</code> 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 Admin → 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 <strong>Sécurité → Jetons d’accès API</strong>.",
|
||||
"Ouvrez <strong>l’onglet Sécurité → section Jetons d’API</strong>.",
|
||||
"Tapez un nom descriptif (<em>p.ex. \"Home Assistant\"</em>).",
|
||||
"Entrez de nouveau votre mot de passe. Si 2FA est activé, aussi le code à chiffres 6 actuel.",
|
||||
"Cliquez sur <strong>Générer le jeton</strong>. Il s’affiche <strong>une seule fois</strong> : copiez-le immédiatement."
|
||||
"Cliquez sur <strong>Générer un nouveau jeton</strong>, puis sur <strong>Générer le jeton</strong>. Il s’affiche <strong>une seule fois</strong> : copiez-le immédiatement."
|
||||
],
|
||||
"generateCli": "Depuis la ligne de commande :",
|
||||
"useTitle": "Utiliser un jeton",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Deux chemins vers TLS:",
|
||||
"items": [
|
||||
"<strong>Proxy inverse recommandé.</strong> Terminez TLS sur Nginx / Caddy / Traefik et transmettez HTTP au processus Flask sur le port 8008. Exemples ci-dessous.",
|
||||
"<strong>HTTPS direct dans l’AppImage.</strong> Configurez un certificat via <code>POST /api/ssl/configure</code> (interface : <strong>Paramètres → SSL</strong>). HTTPS utilise <code>gevent.pywsgi</code> avec son gestionnaire standard ; flask-sock gère WebSocket pour WSS. Les chemins des certificats sont enregistrés dans la configuration SSL."
|
||||
"<strong>HTTPS direct dans l’AppImage.</strong> Configurez un certificat via <code>POST /api/ssl/configure</code> (interface : <strong>Admin → Sécurité → SSL / HTTPS</strong>). HTTPS utilise <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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 : <a>console.groq.com/keys</a>",
|
||||
"Exemples de la liste de modèles fournie : <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (local)",
|
||||
"tagline": "Utilise les modèles du serveur Ollama configuré. Les modèles locaux s’exécutent sur ce serveur ; les modèles cloud transmettent les requêtes à un fournisseur externe. L’exécution locale évite les frais d’API hébergée, mais utilise votre matériel et votre électricité.",
|
||||
"tagline": "Utilise les modèles de votre serveur Ollama. Entièrement local, privé et gratuit à exécuter.",
|
||||
"items": [
|
||||
"Pas de clé API. Définissez le champ <em>Ollama URL</em> sur votre serveur (par défaut <code>http://localhost:11434</code> ou quel que soit l'hôte exécute votre instance Ollama).",
|
||||
"Modèles: <strong>non filtré.</strong> Le moniteur lit les modèles que vous avez tirés sur le côté Ollama via <code>ollama pull <model></code>. Le menu déroulant est peuplé de <code>GET /api/tags</code> sur votre serveur Ollama.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>Courriel</strong> — <code>detailed</code>. 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",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Entrées de journaux filtrées. Demande : <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Demande : <code>?limit=</code> (50 par défaut)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Émet un événement personnalisé. Corps : <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Émet un événement personnalisé. Corps : <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong> : le service utilise les privilèges root pour SMART, <code>pvesh</code> et la gestion ZFS. Les processus du terminal web héritent de ces droits.",
|
||||
"<strong><code>Restart=on-failure</code></strong> avec attente de dix secondes : le service redémarre automatiquement après un échec.",
|
||||
"<strong><code>After=network.target</code></strong> : ordonne le démarrage après cette cible ; ne garantit ni adresse IP, ni DNS, ni connexion externe."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong> : 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Sécurité et certificats</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"owns": "Shell vers l'hôte ou toute VM/CT dans le navigateur, avec <code>xterm.js</code> via WebSockets."
|
||||
"owns": "Shell dans le navigateur sur l’hôte Proxmox, avec <code>xterm.js</code> via WebSockets. Les consoles LXC s’ouvrent depuis l’onglet VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Sécurité",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL/HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> sur <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>bits par seconde</strong> (Mbps/Gbps) ou <strong>octets par seconde</strong> (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 <strong>bits par seconde</strong> (Mbps / Gbps) ou <strong>octets par seconde</strong> (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 <code>apt list --upgradable</code> / <code>apk list -u</code> 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 <code>lxc_updates_available</code>. Désactivé, il arrête ses appels <code>pct exec</code> et supprime les entrées LXC de <code>managed_installs.json</code> ; <code>/api/managed-installs</code> 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 VMs & LXCs affiche les résultats et alimente <code>lxc_updates_available</code>. Désactivé, il arrête ses appels <code>pct exec</code> et supprime les entrées LXC de <code>managed_installs.json</code> ; <code>/api/managed-installs</code> cesse d’afficher cet état sans attendre 24 h.",
|
||||
"whatRunsTitle": "Ce que l’analyse exécute",
|
||||
"whatRunsIntro": "Pour chaque CT à l’état <code>running</code> 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. <em>Activer les notifications</em> 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": [
|
||||
"<notifLink>Notifications</notifLink> : 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.",
|
||||
"<notifLink>Notifications</notifLink> : 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.",
|
||||
"<aiLink>Assistant IA</aiLink> : 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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> et <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Soutenu par trois sources",
|
||||
"body": "Les stockages Proxmox viennent de <code>pvesm status</code>, ZFS de <code>zpool status</code>, les disques de <code>lsblk</code> + <code>smartctl</code> et les champs NVMe de <code>nvme</code>. L’onglet s’actualise environ toutes les 60 secondes ; ouvrir le détail demande une lecture SMART."
|
||||
"body": "Les stockages Proxmox viennent de <code>pvesm status</code>, ZFS de <code>zpool status</code>, les disques de <code>lsblk</code> + <code>smartctl</code> et les champs NVMe de <code>nvme</code>. 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",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Total des entrées</strong> — nombre de lignes dans la période du filtre actif.",
|
||||
"<strong>Erreurs</strong> — nombre de lignes de gravité ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Avertissements</strong> — nombre de lignes de gravité 4 (<code>warning</code>).",
|
||||
"<strong>Sauvegardes</strong> — nombre de tâches vzdump / PBS dans la même période."
|
||||
"<strong>Sauvegardes</strong> : 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 <code>journalctl</code>. Filtres disponibles dans la barre d'outils :",
|
||||
"logsFilters": [
|
||||
"<strong>Gravité</strong> — emerg / alert / crit / err / warning / notice / info / debug, ou toute combinaison.",
|
||||
"<strong>Délais</strong> — dernier 5 min/ 15 min/ 1 h/ 6 h/ 24 h/ 7 d/sur mesure.",
|
||||
"<strong>Recherche libre</strong> — sous-chaîne ou expression régulière (<code>journalctl --grep</code>).",
|
||||
"<strong>Filtre par unité</strong> — limite les résultats à une unité systemd donnée (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Niveau</strong> : tous, error, warning ou info.",
|
||||
"<strong>Délais</strong> : 1 jour / 3 jours / 1 semaine / 2 semaines / 1 mois, ou un nombre de jours sur mesure (jusqu’à 90).",
|
||||
"<strong>Recherche libre</strong> : 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.",
|
||||
"<strong>Filtre par service</strong> : limite les résultats à un service (le <code>SYSLOG_IDENTIFIER</code> 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 <strong>Download</strong> regroupe le filtre actuel dans un seul fichier <code>.txt</code> via <code>GET /api/logs/download</code> — 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 <code>MaxLevelStore=warning</code>, ce qui écarte les messages info. Monitor le détecte au démarrage et ajoute un fichier de configuration complémentaire (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) avec le seuil <code>info</code>, 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 (<code>vzdump</code>, 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 <code>GET /api/task-log/<upid></code> : les mêmes données que dans <em>Datacenter → Tâches</em>, limitées aux sauvegardes.",
|
||||
"backupsBody": "Les archives de sauvegarde de chaque stockage compatible avec les sauvegardes (dir, NFS, CIFS, PBS), lues avec <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Notifications</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"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 <link>Notifications</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Comment les données sont collectées",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Journaux (filtre en direct)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> avec filtres de gravité, unité et recherche appliqués sur le serveur."
|
||||
"source": "<code>journalctl</code> avec des filtres de priorité, de service et de plage de jours appliqués sur le serveur ; la recherche de texte s’exécute dans le navigateur."
|
||||
},
|
||||
{
|
||||
"subtab": "Télécharger",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Sauvegardes",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "Historique des tâches PVE filtré sur <code>vzdump</code>, 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 <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Historique des notifications",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Table SQLite <code>notification_history</code> alimentée par la boucle d'envoi."
|
||||
"subtab": "Notifications",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> sur les unités Proxmox, <code>/etc/pve/notifications.cfg</code> et les tâches de sauvegarde de <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Le filtre en direct et les téléchargements sont aussi accessibles via l'API :",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Anneaux, barres et mini-courbes suivent la même échelle : <green/> <strong>vert</strong> sous le seuil Avertissement, <amber/> <strong>ambre</strong> entre Avertissement et Critique, <red/> <strong>rouge</strong> à partir de Critique. Valeurs recommandées fournies avec ProxMenux :",
|
||||
"thresholdsItems": [
|
||||
"<strong>Utilisation CPU</strong> — avertissement 85 %, critique 95 %.",
|
||||
"<strong>Mémoire</strong> — avertissement 85 %, critique 95 %. Le swap déclenche aussi le niveau Critique à 5 % d'utilisation ; un hôte Proxmox sain devrait rarement y recourir.",
|
||||
"<strong>Mémoire</strong> : 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 %.",
|
||||
"<strong>Température CPU</strong> — avertissement 80 °C, critique 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Les valeurs sont configurables par hôte. <link>Paramètres → Seuils du moniteur de santé</link> 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": [
|
||||
"<strong>Actualisation automatique</strong> — la liste se met à jour toutes les 5 secondes tant que la fenêtre est ouverte ; les requêtes cessent à sa fermeture.",
|
||||
"<strong>Actualisation automatique</strong> — la liste se met à jour toutes les 3 secondes tant que la fenêtre est ouverte ; les requêtes cessent à sa fermeture.",
|
||||
"<strong>Filtre</strong> — la recherche limite la liste par commande, utilisateur ou PID.",
|
||||
"<strong>Barre en ligne</strong> — 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 %.",
|
||||
"<strong>Disposition mobile</strong> — 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, <code>NodeMetricsCharts</code> affiche les historiques CPU, mémoire et E/S disque du stockage RRD de Proxmox via <code>/api/node/metrics</code>. Le sélecteur propose <em>1 heure / 24 heures / 7 jours / 30 jours / 1 an</em>. La résolution diminue pour les grandes périodes afin de conserver un affichage fluide.",
|
||||
"body1": "Sous les cartes, <code>NodeMetricsCharts</code> affiche les historiques CPU, mémoire et E/S disque du stockage RRD de Proxmox via <code>/api/node/metrics</code>. Le sélecteur propose <em>1 heure / 24 heures / 7 jours / 30 jours</em>. 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": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Destination</strong> — stockage (PBS-Cloud, PBS-Local, NFS-Backup, …), coloré selon son état.",
|
||||
"<strong>Taille</strong> — taille finale sur disque de la sauvegarde."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Créer une sauvegarde</strong> 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 <strong>+ Créer une sauvegarde</strong> 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": [
|
||||
|
||||
@@ -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 <em>Mises à jour système</em> signale des mises à jour en attente, <strong>Mettre à jour maintenant</strong> apparaît près de l’indicateur. La fenêtre lance la procédure de <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em> : nettoyage des dépôts, <code>apt full-upgrade</code> via <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/details?refresh=1</code> 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 <em>Mises à jour système</em> signale des mises à jour en attente, <strong>Mettre à jour maintenant</strong> apparaît près de l’indicateur. La fenêtre lance la procédure de <em>ProxMenux → Utilities and Tools → Proxmox System Update</em> : nettoyage des dépôts, <code>apt full-upgrade</code> via <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/full?refresh=1</code> 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code>. Les requêtes peuvent être faites avec <code>curl</code>.",
|
||||
"tokens": "Les jetons API à longue durée de vie (365 jours) sont générés à partir de <strong>Paramètres → API Tokens</strong> ou via <code>POST /api/auth/generate-api-token</code>.",
|
||||
"tokens": "Les jetons API à longue durée de vie (365 jours) sont générés à partir de <strong>Admin → Sécurité → Jetons API</strong> ou via <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Envoyez les jetons via <code>Authorization: Bearer …</code>. <code>/api/health</code> attend aussi l’en-tête Bearer : les sondes de disponibilité ont donc besoin d’un jeton read_only. Sous <code>/api/auth/*</code> 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 <linkApi>référence API</linkApi>. Des exemples pour Homepage, Home Assistant, Grafana et Uptime Kuma, ainsi qu'un modèle générique cURL, sont proposés dans les <linkIntegrations>intégrations</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Paramètres</em>:",
|
||||
"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 <em>Paramètres</em> :",
|
||||
"codeComment": "# Contrôle manuel",
|
||||
"footer": "Voir <link>Paramètres → ProxMenux Monitor</link> pour activer/désactiver le service dans le menu et vérifier son état."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Paramètres → Sécurité → Jetons API</strong>. Choisissez <em>Générer un jeton</em>, nommez-le par exemple <em>homepage</em>, <em>home-assistant</em> ou <em>prometheus</em>, puis copiez-le : il n’est affiché <em>qu’une fois</em>. 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 <strong>Admin → Sécurité → Jetons API</strong>. Choisissez <em>Générer un jeton</em>, nommez-le par exemple <em>homepage</em>, <em>home-assistant</em> ou <em>prometheus</em>, puis copiez-le : il n’est affiché <em>qu’une fois</em>. 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 <link>Accès et authentification</link>.",
|
||||
"httpsTitle": "Utiliser HTTPS au lieu de HTTP",
|
||||
"httpsIntro": "Chaque recette ci-dessous utilise <code>http://</code> dans les URLs pour garder les exemples courts. Si vous avez activé TLS sur le moniteur (<strong>Paramètres → Sécurité → SSL/HTTPS</strong>), échangez <code>http://</code> contre <code>https://</code> dans chaque URL — c'est le seul changement. Deux notes spécifiques à certains outils:",
|
||||
"httpsIntro": "Chaque recette ci-dessous utilise <code>http://</code> dans les URLs pour garder les exemples courts. Si vous avez activé TLS sur le moniteur (<strong>Admin → Sécurité → SSL / HTTPS</strong>), échangez <code>http://</code> contre <code>https://</code> dans chaque URL — c’est le seul changement. Deux notes spécifiques à certains outils :",
|
||||
"httpsItems": [
|
||||
"<strong>Certificats autosignés.</strong> L’intégration Home Assistant <code>rest:</code> vérifie TLS par défaut. Pour le certificat autosigné du Monitor, ajoutez <code>verify_ssl: false</code> à chaque bloc REST près de <code>scan_interval:</code>, ou ajoutez son AC au magasin de certificats approuvés. Même principe pour les autres outils qui vérifient les certificats.",
|
||||
"<strong>Prometheus</strong> dispose déjà de <code>scheme: https</code> dans l’exemple ci-dessous. Activez ou conservez <code>https</code> 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 <code>services.yaml</code>:",
|
||||
"authedTitle": "Widget authentifié",
|
||||
"authedIntro": "Générez un jeton API dans <strong>Paramètres → Sécurité → API Jetons</strong> sur le moniteur, copiez-le et collez-le dans l'en-tête <code>Authorization</code> ci-dessous — remplacez le jeton d'exemple affiché après <code>Bearer</code> par celui que vous venez de copier:",
|
||||
"authedIntro": "Générez un jeton API dans <strong>Admin → Sécurité → Jetons API</strong> sur le moniteur, copiez-le et collez-le dans l’en-tête <code>Authorization</code> ci-dessous — remplacez le jeton d’exemple affiché après <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 Admin → 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 <strong>Paramètres → Sécurité → HTTPS / SSL</strong>. 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 <strong>Admin → Sécurité → SSL / HTTPS</strong>. Le panneau affiche HTTP ou HTTPS et, si HTTPS est désactivé, les sources de certificats détectées.",
|
||||
"imageAlt": "Panneau Admin → 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 Admin → 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> signé par Let's Encrypt, ouvrez <strong>Paramètres → Sécurité → HTTPS / SSL</strong>, vérifiez que l'émetteur est <em>Let's Encrypt</em> et non l'AC locale de Proxmox, puis cliquez sur <strong>Utiliser le certificat Proxmox</strong>. 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. <strong>Actualiser le certificat</strong> reste disponible dans Sécurité pour le diagnostic et la récupération."
|
||||
"bodyRich": "Une fois <code>/etc/pve/local/pveproxy-ssl.pem</code> signé par Let’s Encrypt, ouvrez <strong>Admin → Sécurité → SSL / HTTPS</strong>, vérifiez que l’émetteur est <em>Let’s Encrypt</em> et non l’AC locale de Proxmox, puis cliquez sur <strong>Utiliser le certificat Proxmox</strong>. 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. <strong>Actualiser le certificat</strong> reste disponible dans Sécurité pour le diagnostic et la récupération."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Certificat personnalisé — quand l'utiliser",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Raggiungere la dashboard",
|
||||
"intro": "ProxMenux Monitor si lega a <code>0.0.0.0:8008</code>. Ci sono tre modi comuni per raggiungerlo:",
|
||||
"intro": "ProxMenux Monitor è in ascolto sulla porta TCP 8008 su tutte le interfacce (<code>::</code>, 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 <code>X-Forwarded-For</code> servono PROXMENUX_TRUST_PROXY=1 e un proxy sotto il tuo controllo. La sola presenza di <code>X-Forwarded-Proto</code> o <code>X-Forwarded-Host</code> non attiva la fiducia nel proxy. Sulle porte 80/443 il frontend usa URL <code>/api/*</code> 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 <code>/root/.config/proxmenux-monitor/auth.json</code>, modalità <code>0600</code>, proprietario <code>root</code>. Contiene <em>hash</em> PBKDF2 e <em>segreti crittografici</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> viene ricreato o ripristinato con un segreto diverso, cambia <code>jwt_secret</code>. I vecchi JWT di sessione e API falliscono con \"Invalid or expired token\". L’interfaccia li segnala come <strong>Non valido — rigenerare</strong>. Revocali e sostituiscili anche in Home Assistant, script e altri client.",
|
||||
"rotateBody": "Se <code>auth.json</code> viene ricreato o ripristinato con un segreto diverso, cambia <code>jwt_secret</code>. 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 <code>auth.json</code>:",
|
||||
"survivesTitle": "Cosa sopravvive al reset",
|
||||
@@ -284,14 +284,14 @@
|
||||
"heading": "Token API di lunga durata",
|
||||
"intro": "Le sessioni scadono dopo 24 ore. Per Homepage, Home Assistant, Grafana o Uptime Kuma crea un <strong>token API</strong> valido 365 giorni. Il JWT usa lo stesso segreto di firma; il campo <code>token_name</code> 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 Admin → Security: nome, prefisso con ultimi quattro caratteri di identificazione, date di creazione e scadenza, revoca.",
|
||||
"generateTitle": "Generare un token",
|
||||
"generateIntro": "Dal cruscotto:",
|
||||
"generateSteps": [
|
||||
"Apri <strong>Sicurezza → Token di accesso API</strong>.",
|
||||
"Apri la sezione <strong>scheda Security → API Tokens</strong>.",
|
||||
"Assegna un nome descrittivo, <em>ad esempio \"Home Assistant\"</em>.",
|
||||
"Reinserisci la password e, con 2FA attivo, il codice attuale a sei cifre.",
|
||||
"Premi <strong>Genera token</strong>. Compare <strong>una sola volta</strong>: copialo subito."
|
||||
"Premi <strong>Generate new token</strong>, poi <strong>Generate token</strong>. Compare <strong>una sola volta</strong>: copialo subito."
|
||||
],
|
||||
"generateCli": "Dalla riga di comando:",
|
||||
"useTitle": "Usare un token",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Due percorsi per TLS:",
|
||||
"items": [
|
||||
"<strong>Proxy inverso consigliato.</strong> Termina TLS su Nginx / Caddy / Traefik e inoltra HTTP al processo Flask sulla porta 8008. Esempi sotto.",
|
||||
"<strong>HTTPS diretto nell’AppImage.</strong> Configura un certificato con <code>POST /api/ssl/configure</code> (interfaccia: <strong>Impostazioni → SSL</strong>). HTTPS usa <code>gevent.pywsgi</code> con il gestore standard; flask-sock gestisce WebSocket per WSS. I percorsi sono salvati nella configurazione SSL."
|
||||
"<strong>HTTPS diretto nell’AppImage.</strong> Configura un certificato con <code>POST /api/ssl/configure</code> (interfaccia: <strong>Admin → Security → SSL / HTTPS</strong>). HTTPS usa <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Esempi dall’elenco di modelli incluso: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (locale)",
|
||||
"tagline": "Usa i modelli esposti dal server Ollama configurato. I modelli locali vengono eseguiti lì; i modelli cloud inoltrano le richieste a un provider esterno. L’esecuzione locale evita costi di API ospitate, ma usa hardware ed elettricità tuoi.",
|
||||
"tagline": "Usa i modelli sul tuo server Ollama. Completamente locale, privato e gratuito.",
|
||||
"items": [
|
||||
"Nessuna chiave API. Impostare il campo <em>Ollama URL</em> sul server (default <code>http://localhost:11434</code> o qualsiasi host esegue l'istanza Ollama).",
|
||||
"Modelli <strong>non filtrati.</strong> Monitor legge i modelli scaricati con <code>ollama pull <model></code>. L’elenco viene caricato da <code>GET /api/tags</code> sul server Ollama.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>Email</strong> — <code>detailed</code>. 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",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Le voci del diario filtrate. Query: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Query: <code>?limit=</code> (predefinito 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Genera un evento personalizzato. Corpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Genera un evento personalizzato. Corpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: il servizio usa privilegi root per SMART, <code>pvesh</code> e gestione ZFS. I processi del terminale web ereditano questi permessi.",
|
||||
"<strong><code>Restart=on-failure</code></strong> con attesa di dieci secondi: il servizio riparte automaticamente dopo un’uscita con errore.",
|
||||
"<strong><code>After=network.target</code></strong>: ordina l’avvio dopo quel target; non garantisce IP assegnato, DNS o connettività esterna."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Sicurezza e certificati</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminale",
|
||||
"owns": "Shell dell'host o di qualsiasi VM/CT nel browser, con <code>xterm.js</code> tramite WebSocket."
|
||||
"owns": "Shell nel browser sull’host Proxmox, con <code>xterm.js</code> tramite WebSocket. Le console LXC si aprono dalla scheda VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Sicurezza",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL/HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> su <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>bit al secondo</strong> (Mbps/Gbps) o <strong>byte al secondo</strong> (MB/s/GB/s). I bit sono predefiniti, come nelle specifiche di schede e provider; i trasferimenti di file usano spesso byte. Grafici, etichette e suggerimenti cambiano subito senza ricaricare."
|
||||
"body": "Scegli come viene mostrata la velocità di rete nella dashboard: <strong>bit al secondo</strong> (Mbps / Gbps) o <strong>byte al secondo</strong> (MB/s / GB/s). I byte sono il valore predefinito, come nella maggior parte degli strumenti di trasferimento file; i bit sono quelli con cui produttori di schede e provider etichettano i prodotti. La scelta è salvata nel browser, quindi ogni browser mantiene la propria. 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 <code>apt list --upgradable</code> / <code>apk list -u</code> nei CT attivi. È acceso per impostazione predefinita. L’opzione in Notifiche → Servizi appare mentre il rilevamento è attivo.",
|
||||
"intro": "L’interruttore tra Soglie e Notifiche controlla l’analisi LXC. Attivo, interroga i gestori di pacchetti dei CT in esecuzione; Hardware mostra i risultati e alimenta <code>lxc_updates_available</code>. Disattivo, ferma le chiamate <code>pct exec</code> e rimuove le voci LXC da <code>managed_installs.json</code>; <code>/api/managed-installs</code> smette di riportare lo stato senza attendere 24 ore.",
|
||||
"intro": "L’interruttore tra Soglie e Notifiche controlla l’analisi LXC. Attivo, interroga i gestori di pacchetti dei CT in esecuzione; i risultati compaiono nei conteggi della scheda VMs & LXCs e alimentano <code>lxc_updates_available</code>. Disattivo, ferma le chiamate <code>pct exec</code> e rimuove subito le voci LXC da <code>managed_installs.json</code>; la dashboard e <code>/api/managed-installs</code> smettono di riportare lo stato senza attendere il ciclo di 24 ore.",
|
||||
"whatRunsTitle": "Cosa esegue l’analisi",
|
||||
"whatRunsIntro": "Per ogni CT in stato <code>running</code> 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. <em>Attiva notifiche</em> avvia l’invio in background, registra una destinazione webhook Proxmox VE per riceverne gli eventi e apre i canali: Telegram, Discord, email, Gotify e altri. La riformulazione con IA è in una sezione avanzata espandibile dello stesso pannello.",
|
||||
"body2": "Le opzioni sono spiegate in pagine dedicate: canali, controlli per evento, messaggi formattati, nome visualizzato, invio con deduplicazione, attesa, raggruppamento e ore silenziose, webhook PVE, provider IA e modalità delle istruzioni:",
|
||||
"items": [
|
||||
"<notifLink>Notifiche</notifLink>: configurazione dei canali (Telegram, Discord, Gotify, email e password per app Gmail / Microsoft, ntfy, Slack, Teams e webhook generico), categorie di eventi, messaggi formattati, nome visualizzato, invio, webhook PVE, cronologia e API.",
|
||||
"<notifLink>Notifiche</notifLink>: 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.",
|
||||
"<aiLink>Assistente IA</aiLink>: provider (OpenAI, Anthropic, Gemini, Groq, OpenRouter, Ollama), modelli, istruzioni predefinite o personalizzate, lingua di uscita, dettaglio per canale e suggerimenti IA."
|
||||
]
|
||||
},
|
||||
@@ -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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> e <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Supportato da tre fonti",
|
||||
"body": "Gli storage Proxmox provengono da <code>pvesm status</code>, ZFS da <code>zpool status</code>, i dischi da <code>lsblk</code> + <code>smartctl</code> e i campi NVMe da <code>nvme</code>. La scheda si aggiorna circa ogni 60 secondi; aprire il dettaglio richiede una lettura SMART."
|
||||
"body": "Gli storage Proxmox provengono da <code>pvesm status</code>, ZFS da <code>zpool status</code>, i dischi da <code>lsblk</code> + <code>smartctl</code> e i campi NVMe da <code>nvme</code>. La scheda si aggiorna circa ogni 30 secondi; aprire il dettaglio richiede una lettura SMART."
|
||||
},
|
||||
"thresholds": {
|
||||
"title": "Colori e soglie di stato applicate qui",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Voci totali</strong> — numero di record nel periodo del filtro attivo.",
|
||||
"<strong>Errori</strong> — numero di voci con gravità ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Avvisi</strong> — numero di voci con gravità 4 (<code>warning</code>).",
|
||||
"<strong>Backup</strong> — numero di voci di attività vzdump / PBS nello stesso periodo."
|
||||
"<strong>Backup</strong>: 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 <code>journalctl</code>. Filtri disponibili nella barra degli strumenti:",
|
||||
"logsFilters": [
|
||||
"<strong>Gravità</strong> — emerg / alert / crit / err / warning / notice / info / debug, o qualsiasi combinazione.",
|
||||
"<strong>Time range</strong> — ultima 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / personalizzato.",
|
||||
"<strong>Ricerca libera</strong> — sottostringa o espressione regolare (<code>journalctl --grep</code>).",
|
||||
"<strong>Filtro per unità</strong> — limita a una specifica unità systemd (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Livello</strong>: all, error, warning o info.",
|
||||
"<strong>Intervallo di tempo</strong>: 1 giorno / 3 giorni / 1 settimana / 2 settimane / 1 mese, oppure un numero personalizzato di giorni (fino a 90).",
|
||||
"<strong>Ricerca libera</strong>: sottostringa senza distinzione tra maiuscole e minuscole su messaggio, servizio, PID, hostname e unità, applicata nel browser.",
|
||||
"<strong>Filtro per servizio</strong>: limita a un servizio (il <code>SYSLOG_IDENTIFIER</code> 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 <strong>Download</strong> raggruppa il filtro corrente in un unico file <code>.txt</code> tramite <code>GET /api/logs/download</code> — utile quando si desidera condividere una fetta di giornale con qualcuno.",
|
||||
"logDetailsModalTitle": "Finestra Dettagli del log",
|
||||
@@ -50,10 +50,10 @@
|
||||
"maxLevelStoreTitle": "Journald MaxLevelStore",
|
||||
"maxLevelStoreBody": "Su una nuova installazione Proxmox, journald usa per impostazione predefinita <code>MaxLevelStore=warning</code>, scartando i messaggi info. Monitor lo rileva all'avvio e aggiunge una configurazione complementare (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) con soglia <code>info</code>, per conservare messaggi informativi e più gravi. Questo non include debug.",
|
||||
"backupsTitle": "Backup",
|
||||
"backupsBody": "Cronologia delle attività Proxmox limitata ai backup. Una riga per attività (<code>vzdump</code>, trasferimenti PBS, Garbage Collect, Verify), con stato (OK / WARNINGS / ERROR), guest interessato, storage di origine, durata e UPID. Fai clic su una riga per caricare il log completo tramite <code>GET /api/task-log/<upid></code>: gli stessi dati esposti da Proxmox in <em>Datacenter → Tasks</em>, limitati ai backup.",
|
||||
"backupsBody": "Gli archivi di backup su ogni storage che supporta i backup (dir, NFS, CIFS, PBS), letti con <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Notifiche</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"notificationsBody2": "Usa questa scheda per verificare cosa fa il sistema di notifiche di Proxmox. I canali di Monitor si configurano nella pagina dettagliata <link>Notifiche</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Come vengono raccolti i dati",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Registri (filtro in tempo reale)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> con filtri per gravità, unità e ricerca applicati sul server."
|
||||
"source": "<code>journalctl</code> con filtri per priorità, servizio e intervallo di giorni applicati sul server; la ricerca testuale viene eseguita nel browser."
|
||||
},
|
||||
{
|
||||
"subtab": "Scarica",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Backup",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "Cronologia delle attività PVE filtrata per <code>vzdump</code>, trasferimenti PBS, Garbage Collect e Verify."
|
||||
"source": "Archivi di backup elencati da ogni storage di backup con <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Dettagli di un'attività di backup",
|
||||
"subtab": "Log delle attività di backup (Notifications)",
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
"source": "Log completo dell'attività in testo semplice, letto da <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Cronologia delle notifiche",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Tabella SQLite <code>notification_history</code> alimentata dal ciclo di invio."
|
||||
"subtab": "Notifiche",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> sulle unità Proxmox, <code>/etc/pve/notifications.cfg</code> e le attività di backup da <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Il filtro in tempo reale e i download sono accessibili anche tramite API:",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Anelli, barre e minigrafici usano la stessa scala: <green/> <strong>verde</strong> sotto Avviso, <amber/> <strong>ambra</strong> tra Avviso e Critico, <red/> <strong>rosso</strong> da Critico in poi. Valori predefiniti consigliati inclusi in ProxMenux:",
|
||||
"thresholdsItems": [
|
||||
"<strong>Utilizzo CPU</strong> — avviso 85 %, critico 95 %.",
|
||||
"<strong>Memoria</strong> — avviso 85 %, critico 95 %. Anche lo swap attiva Critico al 5 % di utilizzo; un host Proxmox sano dovrebbe usarlo raramente.",
|
||||
"<strong>Memoria</strong>: avviso 85 %, critico 95 %. Lo swap attiva Critico solo quando l’uso dello swap supera l’80 % e la RAM disponibile è inferiore al 15 %.",
|
||||
"<strong>Temperatura CPU</strong> — avviso 80 °C, critico 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Ogni valore è configurabile per host. <link>Impostazioni → Soglie del monitor di integrità</link> centralizza le impostazioni e spiega come regolarle.",
|
||||
@@ -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": [
|
||||
"<strong>Aggiornamento automatico</strong> — l'elenco si aggiorna ogni 5 secondi finché la finestra è aperta e interrompe le richieste alla chiusura.",
|
||||
"<strong>Aggiornamento automatico</strong> — l'elenco si aggiorna ogni 3 secondi finché la finestra è aperta e interrompe le richieste alla chiusura.",
|
||||
"<strong>Filtro</strong> — la ricerca limita l'elenco per comando, utente o PID.",
|
||||
"<strong>Barra nella riga</strong> — la colonna della metrica principale disegna una piccola barra scalata al massimo valore nell'elenco filtrato. La graduatoria resta evidente anche se nessun processo si avvicina al 100 %.",
|
||||
"<strong>Disposizione mobile</strong> — sotto 640 px le colonne PID e Utente si nascondono, così Comando, CPU % e Memoria restano visibili senza scorrimento orizzontale."
|
||||
@@ -79,7 +79,7 @@
|
||||
},
|
||||
"middle": {
|
||||
"heading": "Centro: grafici delle metriche del nodo",
|
||||
"body1": "Sotto le schede, <code>NodeMetricsCharts</code> mostra grafici storici di CPU, memoria e I/O disco dal database RRD di Proxmox tramite <code>/api/node/metrics</code>. Il selettore offre <em>1 ora / 24 ore / 7 giorni / 30 giorni / 1 anno</em>. La risoluzione diminuisce con periodi più ampi per mantenere fluido il grafico.",
|
||||
"body1": "Sotto le schede, <code>NodeMetricsCharts</code> mostra grafici storici di CPU, memoria e I/O disco dal database RRD di Proxmox tramite <code>/api/node/metrics</code>. Il selettore offre <em>1 ora / 24 ore / 7 giorni / 30 giorni</em>. La risoluzione diminuisce con periodi più ampi per mantenere fluido il grafico.",
|
||||
"body2": "Sono gli stessi grafici dell'interfaccia web Proxmox per un nodo, integrati nel tema scuro di Monitor e allineati agli altri pannelli."
|
||||
},
|
||||
"bottom": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Destinazione</strong> — storage (PBS-Cloud, PBS-Local, NFS-Backup, …), colorato secondo lo stato.",
|
||||
"<strong>Dimensione</strong> — dimensione finale del backup su disco."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Crea backup</strong> avvia un backup sullo storage indicato come “Backup target” in Proxmox. Il ripristino si esegue nell'interfaccia web Proxmox; Monitor mostra i backup recenti del guest e permette di crearne.",
|
||||
"backupsOutro": "Il pulsante <strong>+ Create Backup</strong> 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": [
|
||||
|
||||
@@ -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 <em>Aggiornamenti di sistema</em> segnala aggiornamenti in attesa, appare <strong>Aggiorna ora</strong> accanto all’indicatore. La finestra esegue la procedura di <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em>: pulizia dei repository, <code>apt full-upgrade</code> tramite <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/details?refresh=1</code> 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 <em>Aggiornamenti di sistema</em> segnala aggiornamenti in attesa, appare <strong>Aggiorna ora</strong> accanto all’indicatore. La finestra esegue la procedura di <em>ProxMenux → Utilities and Tools → Proxmox System Update</em>: pulizia dei repository, <code>apt full-upgrade</code> tramite <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/full?refresh=1</code> 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code>. Le richieste possono usare <code>curl</code>.",
|
||||
"tokens": "I token API a lunga durata (365 giorni) vengono generati in <strong>Impostazioni → Token di accesso API</strong> o tramite <code>POST /api/auth/generate-api-token</code>.",
|
||||
"tokens": "I token API a lunga durata (365 giorni) vengono generati in <strong>Admin → Security → API Tokens</strong> o tramite <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Invia i token con <code>Authorization: Bearer …</code>. Anche <code>/api/health</code> richiede l’intestazione Bearer, quindi i controlli di disponibilità necessitano di un token read_only. Sotto <code>/api/auth/*</code> 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 <linkApi>Riferimento API</linkApi>; esempi per Homepage, Home Assistant, Grafana, Uptime Kuma e cURL sono in <linkIntegrations>Integrazioni</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Impostazioni</em>:",
|
||||
"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 <em>Impostazioni</em>:",
|
||||
"codeComment": "# Controllo manuale",
|
||||
"footer": "Vedi <link>Impostazioni → ProxMenux Monitor</link> per l'attivazione/disattivazione del menu e il flusso di verifica dello stato."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Impostazioni → Sicurezza → Token API</strong>. Premi <em>Genera token</em>, assegna un nome come <em>homepage</em>, <em>home-assistant</em> o <em>prometheus</em> e copialo: appare <em>una sola volta</em>. Scade dopo un anno per impostazione predefinita ed è revocabile singolarmente. Usalo per i client esterni al browser.",
|
||||
"optAbody1": "Apri la dashboard e vai in <strong>Admin → Security → API Tokens</strong>. Premi <em>Generate token</em>, assegna un nome come <em>homepage</em>, <em>home-assistant</em> o <em>prometheus</em> e copialo: appare <em>una sola volta</em>. 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 <link>Accesso e autenticazione</link>.",
|
||||
"httpsTitle": "Utilizzando HTTPS invece di HTTP",
|
||||
"httpsIntro": "Gli esempi usano <code>http://</code> per brevità. Se hai attivato TLS sul Monitor (<strong>Impostazioni → Sicurezza → SSL/HTTPS</strong>), sostituisci <code>http://</code> con <code>https://</code> in ogni URL. Due note per alcuni strumenti:",
|
||||
"httpsIntro": "Gli esempi usano <code>http://</code> per brevità. Se hai attivato TLS sul Monitor (<strong>Admin → Security → SSL / HTTPS</strong>), sostituisci <code>http://</code> con <code>https://</code> in ogni URL. Due note per alcuni strumenti:",
|
||||
"httpsItems": [
|
||||
"<strong>Certificati autofirmati.</strong> L’integrazione Home Assistant <code>rest:</code> verifica TLS per impostazione predefinita. Per un certificato autofirmato del Monitor aggiungi <code>verify_ssl: false</code> a ogni blocco REST accanto a <code>scan_interval:</code>, oppure importa la CA del Monitor tra i certificati attendibili. Lo stesso vale per altri strumenti che verificano i certificati.",
|
||||
"<strong>Prometheus</strong> include già <code>scheme: https</code> nell’esempio sotto. Attiva o mantieni <code>https</code> 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 <code>services.yaml</code> più semplice:",
|
||||
"authedTitle": "widget autenticato",
|
||||
"authedIntro": "Generare un token API in <strong>Impostazioni → Sicurezza → Token API</strong> sul Monitor, copiarlo e incollarlo nell'intestazione <code>Authorization</code> di seguito — sostituire il token di esempio mostrato dopo <code>Bearer</code> con quello appena copiato:",
|
||||
"authedIntro": "Generare un token API in <strong>Admin → Security → API Tokens</strong> sul Monitor, copiarlo e incollarlo nell'intestazione <code>Authorization</code> di seguito — sostituire il token di esempio mostrato dopo <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 Admin → Security, 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 <strong>Impostazioni → Sicurezza → HTTPS / SSL</strong>. 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 <strong>Admin → Security → SSL / HTTPS</strong>. Il pannello mostra HTTP o HTTPS e, se HTTPS non è attivo, le fonti di certificato rilevate.",
|
||||
"imageAlt": "Pannello Admin → Security → 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 Admin → Security → 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> è firmato da Let's Encrypt, apri <strong>Impostazioni → Sicurezza → HTTPS / SSL</strong>, verifica che l'emittente sia <em>Let's Encrypt</em> e non la CA locale Proxmox, poi fai clic su <strong>Usa certificato Proxmox</strong>. 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. <strong>Aggiorna certificato</strong> rimane disponibile in Sicurezza per diagnosi e recupero."
|
||||
"bodyRich": "Quando <code>/etc/pve/local/pveproxy-ssl.pem</code> è firmato da Let's Encrypt, apri <strong>Admin → Security → SSL / HTTPS</strong>, verifica che l'emittente sia <em>Let's Encrypt</em> e non la CA locale Proxmox, poi fai clic su <strong>Usa certificato Proxmox</strong>. 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. <strong>Aggiorna certificato</strong> rimane disponibile in Sicurezza per diagnosi e recupero."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Certificato personalizzato — quando utilizzarlo",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Alcançar o painel",
|
||||
"intro": "ProxMenux Monitor liga-se a <code>0.0.0.0:8008</code>. Há três maneiras comuns de alcançá-lo:",
|
||||
"intro": "O ProxMenux Monitor escuta no TCP 8008 em todas as interfaces (<code>::</code>, 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 <code>X-Forwarded-For</code> exige PROXMENUX_TRUST_PROXY=1 e um proxy sob o seu controlo. A simples presença de <code>X-Forwarded-Proto</code> ou <code>X-Forwarded-Host</code> não ativa a confiança no proxy. Nas portas 80/443, o frontend usa URL <code>/api/*</code> 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 <code>/root/.config/proxmenux-monitor/auth.json</code>, modo <code>0600</code>, proprietário <code>root</code>. Contém <em>hashes</em> PBKDF2 e <em>segredos criptográficos</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> for recriado ou restaurado com outro segredo, <code>jwt_secret</code> muda. Os JWT antigos de sessão e API falham com \"Invalid or expired token\". A interface assinala-os com <strong>Inválido — gerar novamente</strong>. Revogue e substitua os tokens também no Home Assistant, scripts e outros clientes.",
|
||||
"rotateBody": "Se <code>auth.json</code> for recriado ou restaurado com outro segredo, <code>jwt_secret</code> 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 <code>auth.json</code>:",
|
||||
"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 <strong>token API</strong> válido por 365 dias. O JWT usa o mesmo segredo; o campo <code>token_name</code> 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 Admin → Security: 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 <strong>Segurança → Tokens de acesso API</strong>.",
|
||||
"Abra a secção <strong>aba Security → API Tokens</strong>.",
|
||||
"Introduza um nome descritivo, <em>por exemplo \"Home Assistant\"</em>.",
|
||||
"Volta a inserir a tua senha. Se 2FA está ligado, também o código atual 6 dígitos.",
|
||||
"Clique em <strong>Gerar token</strong>. Aparece <strong>uma única vez</strong>: copie-o imediatamente."
|
||||
"Clique em <strong>Generate new token</strong> e depois em <strong>Generate token</strong>. O token aparece <strong>uma única vez</strong>: copie-o imediatamente."
|
||||
],
|
||||
"generateCli": "Da linha de comando:",
|
||||
"useTitle": "Usar um token",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Dois caminhos para o TLS:",
|
||||
"items": [
|
||||
"<strong>Proxy inverso (recomendado).</strong> Terminar TLS em Nginx / Caddy / Traefik e encaminhar HTTP na porta 8008 para o processo Flask. Excertos abaixo.",
|
||||
"<strong>HTTPS direto na AppImage.</strong> Configure um certificado com <code>POST /api/ssl/configure</code> (interface: <strong>Definições → SSL</strong>). HTTPS usa <code>gevent.pywsgi</code> com o handler padrão; flask-sock trata WebSocket para WSS. Os caminhos ficam na configuração SSL."
|
||||
"<strong>HTTPS direto na AppImage.</strong> Configure um certificado com <code>POST /api/ssl/configure</code> (interface: <strong>Admin → Security → SSL / HTTPS</strong>). HTTPS usa <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Exemplos da lista de modelos incluída: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (local)",
|
||||
"tagline": "Utiliza os modelos do servidor Ollama configurado. Os modelos locais executam-se nesse servidor; os modelos cloud encaminham pedidos para um fornecedor externo. A execução local evita custos de API alojada, mas utiliza o seu hardware e eletricidade.",
|
||||
"tagline": "Utiliza modelos do seu servidor Ollama. Totalmente local, privado e gratuito.",
|
||||
"items": [
|
||||
"Nenhuma chave API. Defina o campo <em>Ollama URL</em> para o seu servidor (padrão <code>http://localhost:11434</code> ou qualquer máquina roda sua instância Ollama).",
|
||||
"Modelos: <strong>não filtrados.</strong> O Monitor lê quaisquer modelos que você extraiu no lado Ollama via <code>ollama pull <model></code>. O menu suspenso é preenchido em <code>GET /api/tags</code> em seu servidor Ollama.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>Email</strong> — <code>detailed</code>. Email é o canal onde você normalmente quer a imagem completa para arquivo."
|
||||
],
|
||||
"emailTitle": "Nível de detalhes de e- mail adiciona o original",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Entradas filtradas no diário. Consulta: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Consulta: <code>?limit=</code> (predefinição 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Emite um evento personalizado. Corpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Emite um evento personalizado. Corpo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: o serviço usa privilégios root para SMART, <code>pvesh</code> e gestão ZFS. Os processos do terminal web herdam estas permissões.",
|
||||
"<strong><code>Restart=on-failure</code></strong> com espera de dez segundos: o serviço reinicia automaticamente após uma saída com erro.",
|
||||
"<strong><code>After=network.target</code></strong>: ordena o arranque após esse alvo; não garante IP atribuído, DNS ou ligação externa."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Segurança e certificados</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"owns": "Shell do anfitrião ou de qualquer VM/CT no navegador, com <code>xterm.js</code> sobre WebSockets."
|
||||
"owns": "Shell no navegador no host Proxmox, com <code>xterm.js</code> sobre WebSockets. As consolas LXC abrem a partir do separador VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Segurança",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL/HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> em <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>bits por segundo</strong> (Mbps/Gbps) ou <strong>bytes por segundo</strong> (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: <strong>bits por segundo</strong> (Mbps / Gbps) ou <strong>bytes por segundo</strong> (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 <code>apt list --upgradable</code> / <code>apk list -u</code> 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 <code>lxc_updates_available</code>. Desativado, para as chamadas <code>pct exec</code> e remove entradas LXC de <code>managed_installs.json</code>; <code>/api/managed-installs</code> 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 & LXCs mostra os resultados nos contadores e alimenta <code>lxc_updates_available</code>. Desativado, para as chamadas <code>pct exec</code> e remove entradas LXC de <code>managed_installs.json</code>; <code>/api/managed-installs</code> deixa de mostrar esse estado sem esperar 24 h.",
|
||||
"whatRunsTitle": "O que a análise executa",
|
||||
"whatRunsIntro": "Para cada CT no estado <code>running</code> 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. <em>Ativar notificações</em> 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": [
|
||||
"<notifLink>Notificações</notifLink>: 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.",
|
||||
"<notifLink>Notificações</notifLink>: 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.",
|
||||
"<aiLink>Assistente de IA</aiLink>: 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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> e <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Apoiado por três fontes",
|
||||
"body": "Os armazenamentos Proxmox vêm de <code>pvesm status</code>, ZFS de <code>zpool status</code>, discos de <code>lsblk</code> + <code>smartctl</code> e campos NVMe de <code>nvme</code>. O separador atualiza-se aproximadamente a cada 60 segundos; abrir o detalhe pede uma leitura SMART."
|
||||
"body": "Os armazenamentos Proxmox vêm de <code>pvesm status</code>, ZFS de <code>zpool status</code>, discos de <code>lsblk</code> + <code>smartctl</code> e campos NVMe de <code>nvme</code>. 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",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Total de entradas</strong> — número de registos no intervalo do filtro ativo.",
|
||||
"<strong>Erros</strong> — número de entradas com gravidade ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Avisos</strong> — número de entradas com gravidade 4 (<code>warning</code>).",
|
||||
"<strong>Cópias de segurança</strong> — número de entradas de tarefas vzdump / PBS no mesmo intervalo."
|
||||
"<strong>Cópias de segurança</strong>: 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 <code>journalctl</code>. Filtros disponíveis na barra de ferramentas:",
|
||||
"logsFilters": [
|
||||
"<strong>Gravidade</strong> — emerg / alert / crit / err / warning / notice / info / debug, ou qualquer combinação.",
|
||||
"<strong>Tempo de alcance</strong> — último 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / custom.",
|
||||
"<strong>Pesquisa livre</strong> — subcadeia ou expressão regular (<code>journalctl --grep</code>).",
|
||||
"<strong>Filtro por unidade</strong> — restringe a uma unidade systemd específica (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Nível</strong>: todos, erro, aviso ou informação.",
|
||||
"<strong>Intervalo de tempo</strong>: 1 dia / 3 dias / 1 semana / 2 semanas / 1 mês, ou um número personalizado de dias (até 90).",
|
||||
"<strong>Pesquisa livre</strong>: subcadeia sem distinção entre maiúsculas e minúsculas sobre mensagem, serviço, PID, nome do host e unidade, aplicada no navegador.",
|
||||
"<strong>Filtro por serviço</strong>: restringe a um serviço (o <code>SYSLOG_IDENTIFIER</code> 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 <strong>Download</strong> agrupa o filtro atual em um único arquivo <code>.txt</code> via <code>GET /api/logs/download</code> — ú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 <code>MaxLevelStore=warning</code>, que descarta mensagens info. O Monitor deteta isto no arranque e acrescenta um ficheiro de configuração complementar (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) com o limiar <code>info</code>, 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 (<code>vzdump</code>, 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 <code>GET /api/task-log/<upid></code>: os mesmos dados de <em>Datacenter → Tasks</em>, 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 <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Notificações</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"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 <link>Notificações</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Como os dados são coletados",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Registos (filtro em direto)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> com filtros de gravidade, unidade e pesquisa aplicados no servidor."
|
||||
"source": "<code>journalctl</code> com filtros de prioridade, serviço e intervalo de dias aplicados no servidor; a pesquisa de texto é feita no navegador."
|
||||
},
|
||||
{
|
||||
"subtab": "Transferir",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Cópias de segurança",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "Histórico de tarefas PVE filtrado por <code>vzdump</code>, transferências PBS, recolha de dados não utilizados e verificação."
|
||||
"source": "Arquivos de backup listados de cada armazenamento de backup com <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Detalhes de uma tarefa de cópia de segurança",
|
||||
"subtab": "Registo de tarefa de backup (Notifications)",
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
"source": "Registo completo da tarefa em texto simples, lido de <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Histórico de notificações",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Tabela SQLite <code>notification_history</code> alimentada pelo ciclo de envio."
|
||||
"subtab": "Notificações",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> sobre unidades Proxmox, <code>/etc/pve/notifications.cfg</code> e tarefas de backup de <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "O filtro em direto e as transferências também estão acessíveis através da API:",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Anéis, barras e minigráficos usam a mesma escala: <green/> <strong>verde</strong> abaixo de Aviso, <amber/> <strong>âmbar</strong> entre Aviso e Crítico, <red/> <strong>vermelho</strong> a partir de Crítico. Valores recomendados incluídos no ProxMenux:",
|
||||
"thresholdsItems": [
|
||||
"<strong>Utilização CPU</strong> — aviso 85 %, crítico 95 %.",
|
||||
"<strong>Memória</strong> — 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.",
|
||||
"<strong>Memória</strong>: 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 %.",
|
||||
"<strong>Temperatura CPU</strong> — aviso 80 °C, crítico 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Os valores são configuráveis por host. <link>Definições → Limiares do monitor de saúde</link> 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": [
|
||||
"<strong>Atualização automática</strong> — a lista atualiza a cada 5 segundos enquanto a janela está aberta e deixa de consultar ao fechar.",
|
||||
"<strong>Atualização automática</strong> — a lista atualiza a cada 3 segundos enquanto a janela está aberta e deixa de consultar ao fechar.",
|
||||
"<strong>Filtro</strong> — a pesquisa limita a lista por comando, utilizador ou PID.",
|
||||
"<strong>Barra inline</strong> — 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 %.",
|
||||
"<strong>Disposição móvel</strong> — 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, <code>NodeMetricsCharts</code> apresenta históricos de CPU, memória e E/S de disco do armazenamento RRD do Proxmox através de <code>/api/node/metrics</code>. O seletor oferece <em>1 hora / 24 horas / 7 dias / 30 dias / 1 ano</em>. A resolução diminui em períodos maiores para manter o gráfico fluido.",
|
||||
"body1": "Sob os cartões, <code>NodeMetricsCharts</code> apresenta históricos de CPU, memória e E/S de disco do armazenamento RRD do Proxmox através de <code>/api/node/metrics</code>. O seletor oferece <em>1 hora / 24 horas / 7 dias / 30 dias</em>. 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": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Destino</strong> — armazenamento (PBS-Cloud, PBS-Local, NFS-Backup, …), colorido conforme o estado.",
|
||||
"<strong>Tamanho</strong> — tamanho final em disco da cópia."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Criar cópia de segurança</strong> 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 <strong>+ Create Backup</strong>, 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": [
|
||||
|
||||
@@ -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 <em>Atualizações do sistema</em> indicar atualizações pendentes, surge <strong>Atualizar agora</strong> junto do indicador. A janela executa o fluxo de <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em>: limpeza de repositórios, <code>apt full-upgrade</code> através de <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/details?refresh=1</code> 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 <em>Atualizações do sistema</em> indicar atualizações pendentes, surge <strong>Atualizar agora</strong> junto do indicador. A janela executa o fluxo de <em>ProxMenux → Utilities and Tools → Proxmox System Update</em>: limpeza de repositórios, <code>apt full-upgrade</code> através de <code>update-pve-safe.sh</code>, 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 <code>GET /api/health/full?refresh=1</code> 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code>. As chamadas podem usar <code>curl</code>.",
|
||||
"tokens": "Tokens API de longa duração (365 dias) são gerados em <strong>Configurações → API Tokens de acesso</strong> ou via <code>POST /api/auth/generate-api-token</code>.",
|
||||
"tokens": "Tokens API de longa duração (365 dias) são gerados em <strong>Admin → Security → API Tokens</strong> ou via <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Envie tokens com <code>Authorization: Bearer …</code>. <code>/api/health</code> também espera o cabeçalho Bearer, pelo que os testes de disponibilidade precisam de um token read_only. Em <code>/api/auth/*</code> 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 <linkApi>Referência da API</linkApi>; exemplos para Homepage, Home Assistant, Grafana, Uptime Kuma e cURL estão em <linkIntegrations>Integrações</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Configurações</em>:",
|
||||
"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 <em>Configurações</em>:",
|
||||
"codeComment": "# Controle manual",
|
||||
"footer": "Consulte <link>Configurações → ProxMenux Monitor</link> para alternar no menu e fluxo de verificação de status."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Definições → Segurança → Tokens API</strong>. Clique em <em>Gerar token</em>, dê-lhe um nome como <em>homepage</em>, <em>home-assistant</em> ou <em>prometheus</em> e copie-o: é apresentado <em>uma única vez</em>. Expira ao fim de um ano por predefinição e pode ser revogado individualmente. Use-o em clientes externos ao navegador.",
|
||||
"optAbody1": "Abra <strong>Admin → Security → API Tokens</strong>. Clique em <em>Generate token</em>, dê-lhe um nome como <em>homepage</em>, <em>home-assistant</em> ou <em>prometheus</em> e copie-o: é apresentado <em>uma única vez</em>. 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 <link>Acesso e autenticação</link>.",
|
||||
"httpsTitle": "Usando HTTPS em vez de HTTP",
|
||||
"httpsIntro": "Cada receita abaixo usa <code>http://</code> nas URLs para manter os exemplos curtos. Se você ativou TLS no Monitor (<strong>Configurações → Segurança → SSL/HTTPS</strong>), troque <code>http://</code> para <code>https://</code> em cada URL — essa é a única mudança. Duas notas específicas para certos instrumentos:",
|
||||
"httpsIntro": "Cada receita abaixo usa <code>http://</code> nas URLs para manter os exemplos curtos. Se você ativou TLS no Monitor (<strong>Admin → Security → SSL / HTTPS</strong>), troque <code>http://</code> para <code>https://</code> em cada URL — essa é a única mudança. Duas notas específicas para certos instrumentos:",
|
||||
"httpsItems": [
|
||||
"<strong>Certificados autoassinados.</strong> A integração Home Assistant <code>rest:</code> verifica TLS por predefinição. Para um certificado autoassinado do Monitor, adicione <code>verify_ssl: false</code> a cada bloco REST junto de <code>scan_interval:</code>, ou importe a CA do Monitor para os certificados de confiança. O mesmo se aplica a outras ferramentas que verificam certificados.",
|
||||
"<strong>Prometheus</strong> já inclui <code>scheme: https</code> no exemplo abaixo. Ative ou mantenha <code>https</code> 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 <code>services.yaml</code> mais simples possível:",
|
||||
"authedTitle": "Elemento autenticado",
|
||||
"authedIntro": "Gere um token API em <strong>Configurações → Segurança → API Tokens</strong> no Monitor, copie-o e cole-o no cabeçalho <code>Authorization</code> abaixo — substitua o token de exemplo mostrado após <code>Bearer</code> pelo que você acabou de copiar:",
|
||||
"authedIntro": "Gere um token API em <strong>Admin → Security → API Tokens</strong> no Monitor, copie-o e cole-o no cabeçalho <code>Authorization</code> abaixo — substitua o token de exemplo mostrado após <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 Admin → Security, 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 <strong>Configurações → Segurança → HTTPS / SSL</strong>. 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 <strong>Admin → Security → SSL / HTTPS</strong>. O painel mostra HTTP ou HTTPS e, se HTTPS ainda estiver desativado, as fontes de certificados detetadas.",
|
||||
"imageAlt": "Painel Admin → Security → 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 Admin → Security → 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> estiver assinado por Let's Encrypt, abra <strong>Configurações → Segurança → HTTPS / SSL</strong>, confirme que o emissor é <em>Let's Encrypt</em> e não a CA local Proxmox, e clique em <strong>Usar certificado Proxmox</strong>. 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. <strong>Atualizar certificado</strong> continua disponível em Segurança para diagnóstico e recuperação."
|
||||
"bodyRich": "Quando <code>/etc/pve/local/pveproxy-ssl.pem</code> estiver assinado por Let's Encrypt, abra <strong>Admin → Security → SSL / HTTPS</strong>, confirme que o emissor é <em>Let's Encrypt</em> e não a CA local Proxmox, e clique em <strong>Usar certificado Proxmox</strong>. 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. <strong>Atualizar certificado</strong> continua disponível em Security para diagnóstico e recuperação."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Certificado personalizado — quando usá-lo",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Prístup k panelu",
|
||||
"intro": "ProxMenux Monitor sa viaže na <code>0.0.0.0:8008</code>. Existujú tri bežné spôsoby, ako ju dosiahnuť:",
|
||||
"intro": "ProxMenux Monitor počúva na TCP 8008 na všetkých rozhraniach (<code>::</code>, 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 <code>X-Forwarded-For</code> vyžaduje PROXMENUX_TRUST_PROXY=1 a proxy pod vašou kontrolou. Samotná prítomnosť <code>X-Forwarded-Proto</code> alebo <code>X-Forwarded-Host</code> dôveru v proxy nezapne. Na portoch 80/443 frontend používa relatívne URL <code>/api/*</code>; 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 <code>/root/.config/proxmenux-monitor/auth.json</code>, režim <code>0600</code>, vlastník <code>root</code>. Súbor obsahuje <em>hashe</em> PBKDF2 a <em>tajné kryptografické údaje</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> s iným kľúčom sa zmení <code>jwt_secret</code>. Staré JWT relácií aj API zlyhajú s \"Invalid or expired token\". Rozhranie ich označí <strong>Neplatný — vytvoriť znova</strong>. Zrušte ich a nahraďte aj v Home Assistant, skriptoch a ostatných klientoch.",
|
||||
"rotateBody": "Pri novom vytvorení alebo obnove <code>auth.json</code> s iným kľúčom sa zmení <code>jwt_secret</code>. 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ť <code>auth.json</code>:",
|
||||
"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ý <strong>token API</strong> platný 365 dní. JWT používa rovnaký podpisový kľúč; pole <code>token_name</code> 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 Admin → Security: 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 <strong>Zabezpečenie → Prístupové tokeny API</strong>.",
|
||||
"Otvorte sekciu <strong>karta Security → API Tokens</strong>.",
|
||||
"Zadajte opisný názov, <em>napríklad \"Home Assistant\"</em>.",
|
||||
"Zadajte svoje heslo. Ak je zapnutá 2FA, aj súčasný 6-miestny kód.",
|
||||
"Kliknite na <strong>Vytvoriť token</strong>. Zobrazí sa <strong>iba raz</strong>: hneď ho skopírujte."
|
||||
"Kliknite na <strong>Generate new token</strong> a potom na <strong>Generate token</strong>. Token sa zobrazí <strong>iba raz</strong>: hneď ho skopírujte."
|
||||
],
|
||||
"generateCli": "Z príkazového riadku:",
|
||||
"useTitle": "Použitie tokenu",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Dve cesty k TLS:",
|
||||
"items": [
|
||||
"<strong>Odporúčaný reverzný proxy.</strong> Ukončite TLS na Nginx / Caddy / Traefik a posielajte HTTP procesu Flask na port 8008. Príklady sú nižšie.",
|
||||
"<strong>Priame HTTPS v AppImage.</strong> Certifikát nastavte cez <code>POST /api/ssl/configure</code> (rozhranie: <strong>Nastavenia → SSL</strong>). HTTPS používa <code>gevent.pywsgi</code> so štandardným handlerom; flask-sock obsluhuje WebSocket pre WSS. Cesty certifikátov sa uložia v konfigurácii SSL."
|
||||
"<strong>Priame HTTPS v AppImage.</strong> Certifikát nastavte cez <code>POST /api/ssl/configure</code> (rozhranie: <strong>Admin → Security → SSL / HTTPS</strong>). HTTPS používa <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Príklady z dodaného zoznamu modelov: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (miestne)",
|
||||
"tagline": "Používa modely sprístupnené nastaveným serverom Ollama. Lokálne modely bežia na ňom; cloudové modely Ollama posielajú požiadavky cloudovému poskytovateľovi. Lokálna prevádzka nemá poplatok za hostované API, ale využíva vlastný hardvér a elektrinu.",
|
||||
"tagline": "Používa modely na vašom serveri Ollama. Plne lokálne, súkromné a bezplatné na prevádzku.",
|
||||
"items": [
|
||||
"Kľúč API netreba. Pole <em>Ollama URL</em> nastavte na svoj server, predvolene <code>http://localhost:11434</code>, alebo na hostiteľa s vašou inštanciou Ollama.",
|
||||
"Modely sa <strong>nefiltrujú.</strong> Monitor načíta modely stiahnuté pomocou <code>ollama pull <model></code>. Ponuku naplní z <code>GET /api/tags</code> na serveri Ollama.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>E-mail</strong> — <code>detailed</code>. E-mail je kanál, kde zvyčajne chcete úplný obraz pre archív."
|
||||
],
|
||||
"emailTitle": "Podrobný e-mail pripája pôvodnú správu",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>."
|
||||
"use": "Filtrované záznamy systémového denníka. Parametre: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Parameter: <code>?limit=</code> (predvolene 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Vytvorí vlastnú udalosť. Telo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Vytvorí vlastnú udalosť. Telo: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: služba používa oprávnenia root na SMART, <code>pvesh</code> a správu ZFS. Procesy webového terminálu dedia tieto oprávnenia.",
|
||||
"<strong><code>Restart=on-failure</code></strong> s odstupom desať sekúnd: po chybovom ukončení sa služba automaticky reštartuje.",
|
||||
"<strong><code>After=network.target</code></strong>: zaradí štart po tomto cieli; nezaručuje pridelenú IP, DNS ani vonkajšie spojenie."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: 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"
|
||||
},
|
||||
|
||||
@@ -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 <em>Bezpečnosť a certifikáty</em> 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",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminál",
|
||||
"owns": "Shell hostiteľa alebo ľubovoľnej VM/CT v prehliadači pomocou <code>xterm.js</code> cez WebSockets."
|
||||
"owns": "Shell v prehliadači na hostiteľovi Proxmox pomocou <code>xterm.js</code> cez WebSockets. Konzoly LXC sa otvárajú z karty VMs & LXCs."
|
||||
},
|
||||
{
|
||||
"name": "Zabezpečenie",
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"card": "SSL / HTTPS",
|
||||
"endpoint": "/api/auth/ssl/*",
|
||||
"endpoint": "/api/ssl/*",
|
||||
"source": "<code>openssl x509</code> na <code>/etc/pve/local/pve-ssl.pem</code> + <code>/etc/proxmenux/ssl_config.json</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 <strong>bitoch za sekundu</strong> (Mbps/Gbps) alebo <strong>bajtoch za sekundu</strong> (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": "Zvoľte, ako sa na paneli zobrazuje sieťová priepustnosť: v <strong>bitoch za sekundu</strong> (Mbps/Gbps) alebo <strong>bajtoch za sekundu</strong> (MB/s/GB/s). Predvolené sú bajty, ako ich uvádza väčšina nástrojov na prenos súborov; bity používajú výrobcovia sieťových kariet a poskytovatelia pri označovaní svojich produktov. Voľba sa ukladá v prehliadači, takže každý prehliadač má vlastnú. Nastavenie platí pre všetky grafy, štítky a pomôcky so sieťovou rýchlosťou a uplatní sa 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 <code>apt list --upgradable</code> / <code>apk list -u</code> 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 <code>lxc_updates_available</code>. Vypnutý zastaví volania <code>pct exec</code> a odstráni záznamy LXC z <code>managed_installs.json</code>; <code>/api/managed-installs</code> 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ý prejde všetky bežiace CT a spýta sa správcu balíkov v kontajneri na čakajúce aktualizácie; výsledky sa zobrazia v počtoch na karte VMs & LXCs a vstupujú do oznámenia <code>lxc_updates_available</code>. Vypnutý kontrolu úplne zastaví (žiadne volania <code>pct exec</code>) a všetky existujúce záznamy LXC v <code>managed_installs.json</code> sa okamžite odstránia, takže panel aj koncový bod <code>/api/managed-installs</code> prestanú hlásiť stav aktualizácií LXC bez čakania na ďalší 24-hodinový cyklus.",
|
||||
"whatRunsTitle": "Čo kontrola spúšťa",
|
||||
"whatRunsIntro": "Pre každý CT v stave <code>running</code> s podporovaným správcom balíkov:",
|
||||
"whatRunsItems": [
|
||||
@@ -249,7 +249,7 @@
|
||||
"body1": "Tu zapnete oznámenia ProxMenux Monitor a preformulovanie pomocou AI. <em>Zapnúť oznámenia</em> 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": [
|
||||
"<notifLink>Oznámenia</notifLink>: 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.",
|
||||
"<notifLink>Oznámenia</notifLink>: 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.",
|
||||
"<aiLink>Asistent AI</aiLink>: 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 <code>proxmenux-network-unit</code>."
|
||||
},
|
||||
{
|
||||
"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 <code>excluded_storages</code> a <code>excluded_interfaces</code>."
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Podporované tromi zdrojmi",
|
||||
"body": "Úložiská Proxmox pochádzajú z <code>pvesm status</code>, ZFS zo <code>zpool status</code>, disky z <code>lsblk</code> + <code>smartctl</code> a polia NVMe z <code>nvme</code>. 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 <code>pvesm status</code>, ZFS zo <code>zpool status</code>, disky z <code>lsblk</code> + <code>smartctl</code> a polia NVMe z <code>nvme</code>. 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ú",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"<strong>Celkový počet záznamov</strong> — počet položiek v časovom rozsahu aktívneho filtra.",
|
||||
"<strong>Chyby</strong> — počet záznamov so závažnosťou ≤ 3 (<code>err</code> / <code>crit</code> / <code>alert</code> / <code>emerg</code>).",
|
||||
"<strong>Upozornenia</strong> — počet záznamov so závažnosťou 4 (<code>warning</code>).",
|
||||
"<strong>Zálohy</strong> — počet záznamov úloh vzdump / PBS v rovnakom časovom rozsahu."
|
||||
"<strong>Zálohy</strong>: 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 <code>journalctl</code>. Na paneli nástrojov sú tieto filtre:",
|
||||
"logsFilters": [
|
||||
"<strong>Závažnosť</strong> — emerg / alert / crit / err / warning / notice / info / debug alebo ľubovoľná kombinácia.",
|
||||
"<strong>Časový rozsah</strong> Posledná 5 min/ 15 min/ 1 h / 6 h / 24 h / 7 d / vlastné.",
|
||||
"<strong>Voľné vyhľadávanie textu</strong> — podreťazec alebo regulárny výraz (<code>journalctl --grep</code>).",
|
||||
"<strong>Filter jednotky</strong> — obmedzí výsledky na konkrétnu jednotku systemd (<code>pveproxy.service</code>, <code>nginx.service</code>, …)."
|
||||
"<strong>Úroveň</strong>: všetko, error, warning alebo info.",
|
||||
"<strong>Časový rozsah</strong>: 1 deň / 3 dni / 1 týždeň / 2 týždne / 1 mesiac alebo vlastný počet dní (do 90).",
|
||||
"<strong>Voľné vyhľadávanie textu</strong>: 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.",
|
||||
"<strong>Filter služby</strong>: obmedzí výsledky na jednu službu (<code>SYSLOG_IDENTIFIER</code> 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 <strong>Stiahnuť</strong> vytvorí z aktuálneho filtra jeden súbor <code>.txt</code> cez <code>GET /api/logs/download</code>, 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 <code>MaxLevelStore=warning</code>, čím zahadzuje správy info. Monitor to pri štarte rozpozná a pridá doplnkovú konfiguráciu (<code>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</code>) s prahom <code>info</code>, 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 (<code>vzdump</code>, 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 <code>GET /api/task-log/<upid></code> — rovnaké údaje ako v <em>Datacenter → Úlohy</em>, 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 <code>pvesh get /nodes/localhost/storage/<id>/content</code>. 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 <link>Oznámenia</link>."
|
||||
"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 Settings → Notifications → Notification history.",
|
||||
"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 <link>Oznámenia</link>."
|
||||
},
|
||||
"dataCollected": {
|
||||
"heading": "Spôsob zberu údajov",
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"subtab": "Záznamy (živý filter)",
|
||||
"endpoint": "/api/logs",
|
||||
"source": "<code>journalctl --output json --since <range></code> s filtrami závažnosti, jednotky a vyhľadávania použitými na serveri."
|
||||
"source": "<code>journalctl</code> s filtrami priority, služby a rozsahu dní uplatnenými na serveri; vyhľadávanie textu prebieha v prehliadači."
|
||||
},
|
||||
{
|
||||
"subtab": "Stiahnuť",
|
||||
@@ -74,17 +74,17 @@
|
||||
{
|
||||
"subtab": "Zálohy",
|
||||
"endpoint": "/api/backups",
|
||||
"source": "História úloh PVE filtrovaná podľa <code>vzdump</code>, 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 <code>pvesh get /nodes/localhost/storage/<id>/content</code>."
|
||||
},
|
||||
{
|
||||
"subtab": "Podrobnosti úlohy zálohovania",
|
||||
"subtab": "Záznam úlohy zálohovania (Notifications)",
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
"source": "Plný textový záznam úloh čítaný z <code>/var/log/pve/tasks/<index>/<upid></code>."
|
||||
},
|
||||
{
|
||||
"subtab": "História oznámení",
|
||||
"endpoint": "/api/notifications/history",
|
||||
"source": "Tabuľka SQLite <code>notification_history</code>, ktorú plní odosielacia slučka."
|
||||
"subtab": "Oznámenia",
|
||||
"endpoint": "/api/notifications",
|
||||
"source": "<code>journalctl --grep</code> nad jednotkami Proxmox, <code>/etc/pve/notifications.cfg</code> a úlohy zálohovania z <code>pvesh get /cluster/tasks</code>."
|
||||
}
|
||||
],
|
||||
"apiIntro": "Živý filter aj sťahovanie sú dostupné cez API:",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"thresholdsIntro": "Prstence, ukazovatele a minigrafy používajú rovnakú škálu: <green/> <strong>zelená</strong> pod prahom Upozornenie, <amber/> <strong>jantárová</strong> medzi Upozornenie a Kritické, <red/> <strong>červená</strong> od prahu Kritické vyššie. Odporúčané predvolené hodnoty ProxMenux:",
|
||||
"thresholdsItems": [
|
||||
"<strong>Využitie CPU</strong> — upozornenie 85 %, kritické 95 %.",
|
||||
"<strong>Pamäť</strong> — 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.",
|
||||
"<strong>Pamäť</strong>: upozornenie 85 %, kritické 95 %. Swap vyvolá kritický stav, iba ak využitie swapu presiahne 80 % a dostupná RAM klesne pod 15 %.",
|
||||
"<strong>Teplota CPU</strong> — upozornenie 80 °C, kritické 90 °C."
|
||||
],
|
||||
"thresholdsOutro": "Hodnoty možno nastaviť pre každého hostiteľa. <link>Nastavenia → Prahy monitora stavu</link> 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": [
|
||||
"<strong>Automatické obnovenie</strong> — zoznam sa aktualizuje každých 5 sekúnd, kým je okno otvorené; po zatvorení sa dotazy zastavia.",
|
||||
"<strong>Automatické obnovenie</strong> — zoznam sa aktualizuje každé 3 sekundy, kým je okno otvorené; po zatvorení sa dotazy zastavia.",
|
||||
"<strong>Filter</strong> — vyhľadávanie obmedzí zoznam podľa príkazu, používateľa alebo PID.",
|
||||
"<strong>Ukazovateľ v riadku</strong> — 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 %.",
|
||||
"<strong>Mobilné rozloženie</strong> — 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 <code>NodeMetricsCharts</code> históriu CPU, pamäte a diskového I/O z úložiska RRD Proxmox cez <code>/api/node/metrics</code>. Volič ponúka <em>1 hodina / 24 hodín / 7 dní / 30 dní / 1 rok</em>. Pri dlhšom období klesá rozlíšenie údajov, aby bol graf plynulý.",
|
||||
"body1": "Pod kartami zobrazuje <code>NodeMetricsCharts</code> históriu CPU, pamäte a diskového I/O z úložiska RRD Proxmox cez <code>/api/node/metrics</code>. Volič ponúka <em>1 hodina / 24 hodín / 7 dní / 30 dní</em>. 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": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"<strong>Cieľ</strong> — úložisko (PBS-Cloud, PBS-Local, NFS-Backup, …), farebne podľa stavu.",
|
||||
"<strong>Veľkosť</strong> — konečná veľkosť zálohy na disku."
|
||||
],
|
||||
"backupsOutro": "<strong>+ Vytvoriť zálohu</strong> 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 <strong>+ Create Backup</strong> 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": [
|
||||
|
||||
@@ -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 <em>Aktualizácie systému</em> hlásia čakajúce aktualizácie, pri indikátore sa zobrazí <strong>Aktualizovať teraz</strong>. Okno vykoná postup z <em>ProxMenux → Settings post-install Proxmox → Proxmox System Update</em>: čistenie repozitárov, <code>apt full-upgrade</code> cez <code>update-pve-safe.sh</code>, 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á <code>GET /api/health/details?refresh=1</code> 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 <em>Aktualizácie systému</em> hlásia čakajúce aktualizácie, pri indikátore sa zobrazí <strong>Aktualizovať teraz</strong>. Okno vykoná postup z <em>ProxMenux → Utilities and Tools → Proxmox System Update</em>: čistenie repozitárov, <code>apt full-upgrade</code> cez <code>update-pve-safe.sh</code>, 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á <code>GET /api/health/full?refresh=1</code> 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",
|
||||
|
||||
@@ -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 <code>/api/prometheus</code>. Požiadavky možno posielať cez <code>curl</code>.",
|
||||
"tokens": "Tokeny API s dlhou životnosťou (365 dni) sa generujú z <strong>Nastavenia → API prístupových tokenov</strong> alebo prostredníctvom <code>POST /api/auth/generate-api-token</code>.",
|
||||
"tokens": "Tokeny API s dlhou životnosťou (365 dni) sa generujú z <strong>Admin → Security → API Tokens</strong> alebo prostredníctvom <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Tokeny posielajte ako <code>Authorization: Bearer …</code>. Aj <code>/api/health</code> očakáva hlavičku Bearer, takže kontroly dostupnosti potrebujú token read_only. Pod <code>/api/auth/*</code> 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 <linkApi>Referenčnej príručke API</linkApi>; príklady pre Homepage, Home Assistant, Grafana, Uptime Kuma a cURL sú v <linkIntegrations>Integrácie</linkIntegrations>."
|
||||
},
|
||||
"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 <em>Nastavenia</em>:",
|
||||
"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 <em>Nastavenia</em>:",
|
||||
"codeComment": "# Manuálne ovládanie",
|
||||
"footer": "Pozrite si <link>Nastavenia → ProxMenux Monitor</link>, kde nájdete postup prepínania a overovania stavu v ponuke."
|
||||
},
|
||||
|
||||
@@ -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 <strong>Nastavenia → Bezpečnosť → API tokeny</strong>. Kliknite na <em>Generovať token</em>, zadajte názov ako <em>homepage</em>, <em>home-assistant</em> alebo <em>prometheus</em> a skopírujte ho: zobrazí sa <em>iba raz</em>. Predvolene platí rok a možno ho samostatne odvolať. Používajte ho pre klientov mimo prehliadača.",
|
||||
"optAbody1": "Otvorte <strong>Admin → Security → API Tokens</strong>. Kliknite na <em>Generovať token</em>, zadajte názov ako <em>homepage</em>, <em>home-assistant</em> alebo <em>prometheus</em> a skopírujte ho: zobrazí sa <em>iba raz</em>. 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 <link>Prístup a overenie</link>.",
|
||||
"httpsTitle": "Používanie HTTPS namiesto HTTP",
|
||||
"httpsIntro": "Príklady používajú pre stručnosť <code>http://</code>. Ak ste na Monitore zapli TLS (<strong>Nastavenia → Bezpečnosť → SSL/HTTPS</strong>), v každej URL nahraďte <code>http://</code> za <code>https://</code>. Dve poznámky pre konkrétne nástroje:",
|
||||
"httpsIntro": "Príklady používajú pre stručnosť <code>http://</code>. Ak ste na Monitore zapli TLS (<strong>Admin → Security → SSL / HTTPS</strong>), v každej URL nahraďte <code>http://</code> za <code>https://</code>. Dve poznámky pre konkrétne nástroje:",
|
||||
"httpsItems": [
|
||||
"<strong>Certifikáty podpísané vlastným kľúčom.</strong> Integrácia Home Assistant <code>rest:</code> predvolene overuje TLS. Pri takomto certifikáte Monitora pridajte <code>verify_ssl: false</code> do každého bloku REST vedľa <code>scan_interval:</code> alebo importujte CA Monitora medzi dôveryhodné certifikáty. Rovnako postupujú iné nástroje overujúce certifikáty.",
|
||||
"<strong>Prometheus</strong> má v príklade nižšie pripravené <code>scheme: https</code>. Zapnite alebo ponechajte <code>https</code>, 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 <code>services.yaml</code>:",
|
||||
"authedTitle": "Overený grafický prvok",
|
||||
"authedIntro": "Na Monitore vytvorte token v <strong>Nastavenia → Bezpečnosť → API tokeny</strong>. Skopírujte ho do hlavičky <code>Authorization</code> nižšie: ukážkový token za <code>Bearer</code> nahraďte vlastným.",
|
||||
"authedIntro": "Na Monitore vytvorte token v <strong>Admin → Security → API Tokens</strong>. Skopírujte ho do hlavičky <code>Authorization</code> nižšie: ukážkový token za <code>Bearer</code> 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.",
|
||||
|
||||
@@ -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 Admin → Security, 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 <strong>Nastavenia → Zabezpečenie → HTTPS / SSL</strong>. 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 <strong>Admin → Security → SSL / HTTPS</strong>. Panel zobrazuje HTTP alebo HTTPS a pri vypnutom HTTPS rozpoznané zdroje certifikátov.",
|
||||
"imageAlt": "Panel Admin → Security → 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 Admin → Security → 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 <code>/etc/pve/local/pveproxy-ssl.pem</code> podpísaný Let's Encrypt, otvorte <strong>Nastavenia → Zabezpečenie → HTTPS / SSL</strong>, overte vydavateľa <em>Let's Encrypt</em> namiesto miestnej CA Proxmox a kliknite na <strong>Použiť certifikát Proxmox</strong>. 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. <strong>Aktualizovať certifikát</strong> zostáva v Zabezpečení dostupné na diagnostiku a obnovu."
|
||||
"bodyRich": "Keď je <code>/etc/pve/local/pveproxy-ssl.pem</code> podpísaný Let's Encrypt, otvorte <strong>Admin → Security → SSL / HTTPS</strong>, overte vydavateľa <em>Let's Encrypt</em> namiesto miestnej CA Proxmox a kliknite na <strong>Použiť certifikát Proxmox</strong>. 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. <strong>Aktualizovať certifikát</strong> zostáva v Zabezpečení dostupné ako explicitná diagnostická a obnovovacia akcia."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Vlastný certifikát — kedy ho použiť",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"reaching": {
|
||||
"heading": "Öppna instrumentpanelen",
|
||||
"intro": "ProxMenux Monitor binder till <code>0.0.0.0:8008</code>. Det finns tre vanliga sätt att nå den:",
|
||||
"intro": "ProxMenux Monitor lyssnar på TCP 8008 på alla gränssnitt (<code>::</code>, 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 <code>X-Forwarded-For</code> kräver PROXMENUX_TRUST_PROXY=1 och en proxy du kontrollerar. Enbart förekomsten av <code>X-Forwarded-Proto</code> eller <code>X-Forwarded-Host</code> aktiverar inte proxyförtroende. På portarna 80/443 använder frontend relativa <code>/api/*</code>-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 <code>/root/.config/proxmenux-monitor/auth.json</code>, med läge <code>0600</code> och ägare <code>root</code>. Filen innehåller PBKDF2-<em>hashar</em> och <em>kryptografiska hemligheter</em> (<code>jwt_secret</code>, <code>totp_secret</code>), 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 <code>auth.json</code> återskapas eller återställs med en annan hemlighet ändras <code>jwt_secret</code>. Gamla sessions- och API-JWT misslyckas med \"Invalid or expired token\". Gränssnittet visar <strong>Ogiltigt — skapa på nytt</strong>. Återkalla och ersätt berörda token även i Home Assistant, skript och andra klienter.",
|
||||
"rotateBody": "Om <code>auth.json</code> återskapas eller återställs med en annan hemlighet ändras <code>jwt_secret</code>. 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 <code>auth.json</code> 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 <strong>API-token</strong> giltigt i 365 dagar för Homepage, Home Assistant, Grafana eller Uptime Kuma. JWT:t använder samma signeringshemlighet; fältet <code>token_name</code> 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 Admin → 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 <strong>Säkerhet → API-åtkomsttoken</strong>.",
|
||||
"Skriv ett beskrivande namn (<em>t.ex. \"Home Assistant\"</em>).",
|
||||
"Skriv in ditt lösenord. Om 2FA är på, även den nuvarande 6-siffriga koden.",
|
||||
"Välj <strong>Generera token</strong>. Det visas <strong>endast en gång</strong>: kopiera direkt."
|
||||
"Välj <strong>Generera ny token</strong> och sedan <strong>Generera token</strong>. Det visas <strong>endast en gång</strong>: kopiera direkt."
|
||||
],
|
||||
"generateCli": "Från kommandoraden:",
|
||||
"useTitle": "Använd en token",
|
||||
@@ -310,7 +310,7 @@
|
||||
"intro": "Två vägar till TLS:",
|
||||
"items": [
|
||||
"<strong>Omvänd proxy rekommenderas.</strong> Avsluta TLS på Nginx / Caddy / Traefik och vidarebefordra HTTP till Flask på port 8008. Exempel nedan.",
|
||||
"<strong>Direkt HTTPS i AppImage.</strong> Ange certifikat via <code>POST /api/ssl/configure</code> (gränssnitt: <strong>Inställningar → SSL</strong>). HTTPS använder <code>gevent.pywsgi</code> med standardhanteraren; flask-sock hanterar WebSocket för WSS. Certifikatsökvägar sparas i SSL-konfigurationen."
|
||||
"<strong>Direkt HTTPS i AppImage.</strong> Ange certifikat via <code>POST /api/ssl/configure</code> (gränssnitt: <strong>Admin → Säkerhet → SSL / HTTPS</strong>). HTTPS använder <code>gevent.pywsgi</code> 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."
|
||||
|
||||
@@ -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: <a>console.groq.com/keys</a>",
|
||||
"Exempel från den medföljande modellistan: <code>allam-2-7b</code>, <code>qwen/qwen3.8-27b</code>, <code>openai/gpt-oss-20b</code>, <code>openai/gpt-oss-120b</code>.",
|
||||
@@ -165,7 +165,7 @@
|
||||
},
|
||||
"ollama": {
|
||||
"heading": "Ollama (lokal)",
|
||||
"tagline": "Använder modeller som din konfigurerade Ollama-server visar. Lokala modeller körs där; Ollamas molnmodeller vidarebefordrar anrop till en molnleverantör. Lokal körning undviker avgifter för ett hostat API men använder egen hårdvara och el.",
|
||||
"tagline": "Använder modeller på din Ollama-server. Helt lokalt, privat och gratis att köra.",
|
||||
"items": [
|
||||
"Ingen API nyckel. Ställ in <em>Ollama URL</em>-fältet till din server (standard <code>http://localhost:11434</code> eller vilken värd som helst kör din Ollama-instans).",
|
||||
"Modellerna <strong>filtreras inte.</strong> Monitor läser modeller som hämtats med <code>ollama pull <model></code>. Listrutan hämtas från <code>GET /api/tags</code> på din Ollama-server.",
|
||||
@@ -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": [
|
||||
"<strong>Telegram, Discord, Gotify</strong> — <code>standard</code>.",
|
||||
"<strong>Telegram, Discord, Gotify, Pushover, Apprise</strong> — <code>standard</code>.",
|
||||
"<strong>E-post</strong> — <code>detailed</code>. E-post är den kanal där du vanligtvis vill ha hela bilden för arkiv."
|
||||
],
|
||||
"emailTitle": "Detaljerad e-post lägger till originalet",
|
||||
|
||||
@@ -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: <code>?level=&service=&limit=</code>"
|
||||
"use": "Filtrerade journalposter. Query: <code>?priority=&service=&limit=&since_days=</code> (<code>priority</code> 0-7, <code>since_days</code> 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 <code>pvesh get /cluster/tasks</code>. Query: <code>?limit=</code> (standard 50)."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/task-log/<upid>",
|
||||
@@ -462,7 +462,7 @@
|
||||
{
|
||||
"endpoint": "/api/notifications/send",
|
||||
"method": "POST",
|
||||
"use": "Skapar en egen händelse. Begärans innehåll: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"body\":\"...\",\"data\":'{''}''}'</code>."
|
||||
"use": "Skapar en egen händelse. Begärans innehåll: <code>'{'\"event_type\":\"custom\",\"severity\":\"WARNING\",\"title\":\"...\",\"message\":\"...\",\"data\":'{''}''}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/notifications/test-ai",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"items": [
|
||||
"<strong><code>User=root</code></strong>: tjänsten använder root-behörighet för SMART, <code>pvesh</code> och ZFS-hantering. Webbterminalens processer ärver behörigheten.",
|
||||
"<strong><code>Restart=on-failure</code></strong> med tio sekunders väntan: tjänsten startas om automatiskt efter ett fel.",
|
||||
"<strong><code>After=network.target</code></strong>: ordnar start efter målet; garanterar inte tilldelad IP, DNS eller extern anslutning."
|
||||
"<strong><code>After=network.target pve-cluster.service</code></strong>: ordnar start efter nätverksmålet och Proxmox klusterfilsystem; garanterar inte tilldelad IP, DNS eller extern anslutning."
|
||||
],
|
||||
"inspectTitle": "Granska aktuell enhet"
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user