mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
Describe the Monitor pages as the code behaves
This commit is contained in:
@@ -19,7 +19,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:",
|
||||
"outro": "Direktåtkomst motsvarar standardenheten för systemd. Omvänd proxy och Secure Gateway beskrivs nedan. Klient-IP från <code>X-Forwarded-For</code> kräver PROXMENUX_TRUST_PROXY=1 och en proxy du kontrollerar. Enbart <code>X-Forwarded-Proto</code> eller <code>X-Forwarded-Host</code> aktiverar inte detta förtroende; frontend bygger API-URL:er från webbläsarens ursprung."
|
||||
"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": {
|
||||
"heading": "Första starten",
|
||||
@@ -117,8 +117,8 @@
|
||||
"loginImageCaption": "När autentiseringen är konfigurerad börjar varje besök på instrumentbrädan här. Med 2FA aktiverad ber skärmen om 6-siffrig kod i ett andra steg efter att lösenordet accepteras.",
|
||||
"loginFlowTitle": "Inloggningsflöde",
|
||||
"twofaIntro": "Med 2FA returnerar första anropet <code>requires_totp: true</code>. Upprepa det med den sexsiffriga koden:",
|
||||
"publicTitle": "Offentlig åtkomst och skyddade kontroller",
|
||||
"publicIntro": "Inloggning och autentiseringsstatus är offentliga. Kontot kan skapas så länge användarnamn och lösenord inte sparats, även efter att skydd avböjts. Systemdata kräver autentisering när skyddet är aktivt:",
|
||||
"publicTitle": "Offentliga slutpunkter (utan token)",
|
||||
"publicIntro": "Inloggning, autentiseringsstatus, första konfigurationen och den lätta slutpunkten <code>/api/system-info</code> är offentliga:",
|
||||
"publicItems": [
|
||||
"<code>/api/auth/login</code> och <code>/api/auth/status</code> är offentliga. <code>/api/auth/setup</code> skapar första kontot och vägrar skriva över befintliga inloggningsuppgifter.",
|
||||
"<code>/api/system-info</code> är en offentlig ändpunkt med grundläggande systeminformation, inklusive <code>health.status</code>. Den kräver ingen token. Även /api/auth/status är offentlig och passar för en tillgänglighetskontroll."
|
||||
@@ -146,7 +146,7 @@
|
||||
},
|
||||
{
|
||||
"asset": "TOTP-hemlighet för 2FA",
|
||||
"algorithm": "Standard-TOTP (RFC 6238) med base32-kodad hemlighet. De åtta engångskoderna för återställning lagras som SHA-256-hashar.",
|
||||
"algorithm": "Standard-TOTP (RFC 6238) med base32-kodad hemlighet. De åtta reservkoderna är engångskoder och lagras som SHA-256-hashar.",
|
||||
"where": "<code>auth.json</code> → <code>totp_secret</code> + <code>backup_codes[]</code>"
|
||||
},
|
||||
{
|
||||
@@ -243,17 +243,17 @@
|
||||
}
|
||||
],
|
||||
"backupTitle": "Varför säkerhetskopior behövs",
|
||||
"backupBody": "Om enheten försvinner, använd en sparad återställningskod eller återställ en säkerhetskopia som du ordnat i förväg. Molnsynkronisering och exporter skiljer sig mellan appar; kontrollera att TOTP-hemligheterna kan återställas. Root-åtkomst på värden möjliggör också återställning enligt nedan. Spara en separat, säker kopia.",
|
||||
"backupBody": "Om autentiseringsenheten försvinner, använd en sparad reservkod eller återställ appen från en säkerhetskopia som du ordnat i förväg. Molnsynkronisering och lokala exporter skiljer sig mellan appar; kontrollera att den valda metoden verkligen återställer TOTP-hemligheterna. Root-åtkomst på värden möjliggör också återställning enligt nedan. Spara en separat, säker kopia.",
|
||||
"setupTitle": "Ställ in steg för steg från panelen",
|
||||
"setupImageAlt": "2FA-inställning med QR-kod och återställningskoder",
|
||||
"setupImageCaption": "2FA-dialogen visar QR-kod, Base32-hemlighet för manuell inmatning och åtta engångskoder för återställning. Kopiera dem innan dialogen stängs; de visas inte igen.",
|
||||
"setupImageCaption": "Installationsdialogen för 2FA visar en QR-kod, en Base32-hemlighet för manuell inmatning och, efter verifieringen, åtta reservkoder för engångsbruk. Kopiera koderna innan dialogen stängs; de visas inte igen.",
|
||||
"setupSteps": [
|
||||
"<strong>Installera autentiseringsappen på din telefon</strong> (eller öppna din lösenordshanterare). En av apparna från tabellen ovan. Du behöver bara göra det en gång - samma app kommer att hålla koder för varje tjänst du skyddar.",
|
||||
"<strong>Logga in på panelen</strong> med användarnamn och lösenord.",
|
||||
"<strong>Öppna fliken Säkerhet</strong> och välj <strong>Aktivera 2FA</strong>. Dialogen visar QR-kod, Base32-hemlighet och åtta återställningskoder.",
|
||||
"<strong>Öppna fliken Säkerhet</strong> i instrumentpanelens sidofält och klicka sedan på <strong>Aktivera 2FA</strong> och <strong>Starta installationen</strong>. Dialogen visar en QR-kod och den manuella nyckeln; de åtta reservkoderna visas när koden har verifierats.",
|
||||
"<strong>Lägg till posten i autentiseringsappen:</strong>",
|
||||
"<strong>Spara återställningskoderna.</strong> Förvara alla åtta i en lösenordshanterare, krypterad anteckning eller säker papperskopia. Varje kod fungerar en gång när appen är otillgänglig.",
|
||||
"<strong>Bekräfta med den aktuella sexsiffriga koden</strong> från appen i fältet \"Verifieringskod\" och skicka. Koden ändras var 30:e sekund; använd nästa om den hinner löpa ut.",
|
||||
"<strong>Bekräfta med den aktuella sexsiffriga koden</strong> från appen i fältet \"Verifieringskod\" i installationsdialogen och skicka. Koden ändras var 30:e sekund; använd nästa om den hinner löpa ut medan du skriver.",
|
||||
"<strong>Spara reservkoderna.</strong> Förvara efter verifieringen alla åtta säkert i en lösenordshanterare, krypterad anteckning eller säker papperskopia. Varje kod fungerar en gång om autentiseringsappen är otillgänglig.",
|
||||
"<strong>Klart.</strong> 2FA är aktivt. Nästa inloggning frågar först efter lösenord och sedan den aktuella sexsiffriga koden."
|
||||
],
|
||||
"setupStep4Sub": [
|
||||
@@ -261,17 +261,17 @@
|
||||
"<em>Manuellt alternativ</em> när skanning inte är möjlig, exempelvis på samma telefon: <em>Lägg till konto</em> → <em>Ange inställningsnyckel</em>. Välj ett namn som <em>Proxmox Monitor</em>, klistra in Base32-hemligheten, lämna <em>Typ</em> som <em>Tidsbaserad</em> och spara."
|
||||
],
|
||||
"testTitle": "Test innan du loggar ut",
|
||||
"testBody": "Behåll den nuvarande sessionen och testa en ny inloggning i ett privat fönster <em>omedelbart</em> efter inställningen. Kontrollera serverns och telefonens klockor om koden nekas, innan du stänger den fungerande sessionen. Om åtkomsten redan är förlorad, använd återställningskod eller redigera <code>auth.json</code> från värdens skal.",
|
||||
"testBody": "Behåll den nuvarande sessionen och testa en ny inloggning i ett privat fönster <em>omedelbart</em> efter inställningen. Kontrollera serverns och telefonens klockor om koden nekas, innan du loggar ut från den fungerande sessionen. Om åtkomsten redan är förlorad, använd en reservkod eller redigera <code>auth.json</code> från värdens skal.",
|
||||
"lostTitle": "Förlorad autentiseringsapp",
|
||||
"lostIntro": "Tre återställningsmetoder, från minst till mest ingripande:",
|
||||
"lostItems": [
|
||||
"<strong>Använd en återställningskod.</strong> Ange en av de åtta sparade koderna i TOTP-fältet. Den fungerar en gång; oanvända koder förblir giltiga. Ställ sedan in 2FA på nytt i inställningarna för åtta nya koder.",
|
||||
"<strong>Använd en reservkod.</strong> Ange en av de åtta sparade koderna i TOTP-fältet. Den fungerar en gång; oanvända koder förblir giltiga. Öppna Säkerhet efter inloggningen, välj <strong>Inaktivera 2FA</strong> och sedan <strong>Aktivera 2FA</strong> för att få åtta nya koder.",
|
||||
"<strong>Återställ appen från moln eller säkerhetskopia.</strong> Med inställd molnsynkronisering kan appen installeras och kontot öppnas på en ny enhet: Google, Microsoft, Authy, Apple Passwords via iCloud-nyckelring, Ente eller 2FAS. Med en exportfil från Aegis, Raivo eller FreeOTP+, installera appen och importera filen.",
|
||||
"<strong>Stäng av 2FA från värdens skal.</strong> Om övriga metoder saknas, redigera <code>/root/.config/proxmenux-monitor/auth.json</code> som root via SSH eller konsol. Sätt <code>totp_enabled</code> till <code>false</code>, spara och starta om tjänsten:"
|
||||
],
|
||||
"lostShellOutro": "Du kan logga in med användarnamn + lösenord bara, sedan aktivera 2FA från Inställningar.",
|
||||
"disableTitle": "Inaktivera 2FA",
|
||||
"disableBody": "Öppna <strong>Säkerhet</strong> och välj <strong>Inaktivera 2FA</strong>. <code>POST /api/auth/totp/disable</code> kräver aktuellt lösenord och giltig TOTP- eller återställningskod. Hemligheten och återställningskoderna tas bort. Ta även bort den gamla posten i appen.",
|
||||
"disableBody": "Öppna <strong>Säkerhet</strong> och välj <strong>Inaktivera 2FA</strong>. <code>POST /api/auth/totp/disable</code> kräver aktuellt lösenord och en giltig TOTP- eller reservkod. TOTP-hemligheten och reservkoderna tas bort. Ta även bort den gamla posten i autentiseringsappen.",
|
||||
"rejectedTitle": "Den sexsiffriga koden nekas alltid",
|
||||
"rejectedIntro": "TOTP är tidsbaserat. Serverns och telefonens klockor bör skilja mindre än cirka 30 s. Två kontroller:",
|
||||
"rejectedItems": [
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
},
|
||||
"intro": {
|
||||
"title": "Avstängt som standard, aktiveras med ett reglage",
|
||||
"body": "AI-omskrivning är avstängd som standard. Aktivera den under <em>Inställningar → Aviseringar → Avancerat: AI-förbättring</em>. Om kontextberikning eller omskrivning misslyckas skickas originalmallen. Varje omskrivning har högst 25 sekunders väntetid; därefter används mallen i stället för obegränsad väntan."
|
||||
"body": "AI-omskrivning är avstängd som standard. Aktivera den under <em>Inställningar → Aviseringar → Avancerat: AI-förbättring</em>. Om kontextberikning eller omskrivning misslyckas skickar sändaren originalmallen. Omskrivningar i händelsernas sändningskö har en tidsgräns på 25 sekunder; när den nås skickas mallen i stället för att vänta."
|
||||
},
|
||||
"howItWorks": {
|
||||
"heading": "Hur det fungerar",
|
||||
@@ -109,7 +109,7 @@
|
||||
],
|
||||
"customNote": "Läget med egen prompt har en fast gräns på 500 utdatatoken oavsett detaljnivå. Du styr prompten och gränsen motverkar alltför långa svar.",
|
||||
"sizingTitle": "Praktisk storlek",
|
||||
"sizingBody": "Uppskatta förbrukningen som omskrivna händelser × AI-kanaler × in- och utdatatoken per anrop. Exempel: 50 händelser × en kanal × (500 indata + 300 utdata) = 40 000 token per dag. Förbrukning och kostnad beror på modell, kontext, cache och leverantörsgränser. <link>Detaljnivå per kanal</link> visar <code>brief</code> för chatt i stället för <code>standard</code>, med fortsatt detaljerad e-post."
|
||||
"sizingBody": "Uppskatta förbrukningen som omskrivna händelser × AI-aktiverade kanaler × in- och utdatatoken per anrop. Exempel: 50 händelser × en kanal × (2 000 indata + 300 utdata) blir cirka 115 000 token per dag, eftersom standardsystemprompten ensam är ungefär 1 500 token. Faktisk förbrukning och kostnad beror på modell, kontext, cache och leverantörsgränser. Avsnittet <link>Detaljnivå per kanal</link> visar hur du använder <code>brief</code> för chatt i stället för <code>standard</code>, med fortsatt detaljerade e-postrapporter."
|
||||
},
|
||||
"providers": {
|
||||
"heading": "AI-leverantörer",
|
||||
@@ -142,7 +142,7 @@
|
||||
"items": [
|
||||
"API-nyckel: <a>console.anthropic.com/settings/keys</a>",
|
||||
"Exempel från den medföljande modellistan: <code>claude-haiku-4-5-20251001</code>, <code>claude-sonnet-4-6</code>, <code>claude-opus-4-6</code>.",
|
||||
"Medföljande rekommendation: <strong><code>claude-haiku-4-5-20251001</code></strong>. Denna exakta version är rekommenderad; de äldre Claude 3.5-posterna finns inte längre i listan."
|
||||
"Medföljande rekommendation: <strong><code>claude-haiku-4-5-20251001</code></strong>, en fast ögonblicksbild i stället för ett rörligt alias."
|
||||
]
|
||||
},
|
||||
"gemini": {
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
{
|
||||
"endpoint": "/api/vms/<vmid>/backup",
|
||||
"method": "POST",
|
||||
"use": "Skapar en vzdump-säkerhetskopia av VM eller LXC. Valfria fält att anpassa till lagringen: <code>storage</code> (PVE-mål), <code>mode</code> (<code>snapshot</code>, <code>suspend</code> eller <code>stop</code>), <code>compress</code> (<code>zstd</code>, <code>lzo</code>, <code>gzip</code> eller <code>none</code>), <code>protected</code> (<code>true</code> eller <code>false</code>), <code>notes</code>, <code>notification</code> (<code>auto</code>, <code>always</code>, <code>failure</code> eller <code>never</code>) och <code>pbs_change_detection</code> (<code>default</code>, <code>legacy</code> eller <code>data</code>). Returnerar PVE-uppgiftens UPID."
|
||||
"use": "Skapar en vzdump-säkerhetskopia av en VM eller LXC. Fält i begäran, alla valfria om inte standardvärdena passar lagringsupplägget: <code>storage</code> (en PVE-lagring), <code>mode</code> (<code>snapshot</code>, <code>suspend</code> eller <code>stop</code>), <code>compress</code> (<code>zstd</code>, <code>lzo</code>, <code>gzip</code> eller <code>none</code>), <code>protected</code> (<code>true</code> eller <code>false</code>), <code>notes</code> och <code>pbs_change_detection</code> (<code>default</code>, <code>legacy</code> eller <code>data</code>). Returnerar PVE-uppgiftens UPID."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/vms/<vmid>/backups",
|
||||
@@ -286,7 +286,7 @@
|
||||
{
|
||||
"endpoint": "/api/storage/smart/<disk>/test",
|
||||
"method": "POST",
|
||||
"use": "Startar ett SMART-självtest. Schema för begäran: <code>'{'\"type\":\"short\"|\"long\"'}'</code>."
|
||||
"use": "Startar ett SMART-självtest. Schema för begäran: <code>'{'\"test_type\":\"short\"|\"long\"'}'</code>."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/storage/smart/schedules",
|
||||
|
||||
@@ -73,13 +73,13 @@
|
||||
"intro": "AppImage innehåller ett filsystem som monteras vid körning. <code>AppRun</code> i roten ställer in miljön och startar <code>flask_server.py</code>:",
|
||||
"consequencesIntro": "Två konsekvenser av denna layout:",
|
||||
"consequences": [
|
||||
"<strong>Medföljande Python-miljö.</strong> Tolken och paketen finns i AppImage utan installation i värdens system-Python. Appen använder fortfarande kärngränssnitt och externa värdverktyg.",
|
||||
"<strong>Medföljande Python-paket.</strong> Python-paketen levereras i AppImage och körs med värdens egen Python-tolk 3.11 (PVE 8) eller 3.13 (PVE 9), utan att något installeras i värdens system-Python. Appen använder fortfarande värdens kärngränssnitt och externa värdverktyg.",
|
||||
"<strong>Maskinvaruklienter ingår.</strong> Här finns <code>ipmitool</code>, <code>lm-sensors</code> och <code>upsc</code>. Mätningar kräver maskinvarustöd, sensoråtkomst och för UPS en konfigurerad NUT-server."
|
||||
]
|
||||
},
|
||||
"flask": {
|
||||
"heading": "Flask-appens struktur",
|
||||
"intro": "<code>flask_server.py</code> skapar en <code>Flask(__name__)</code>-instans med begränsat CORS, registrerar nio blueprints direkt och initierar terminalen. Tabellen visar huvudmoduler; även granskning, VM-säkerhetskopiering och PBS registreras. PVE-förladdning körs bara på PVE-värdar.",
|
||||
"intro": "<code>flask_server.py</code> skapar en <code>Flask(__name__)</code>-instans med begränsade CORS-ursprung, registrerar tio blueprints direkt och initierar terminalrutterna. Tabellen visar huvudmodulerna; blueprints för PBS, Monitor-länkar, granskning och VM-säkerhetskopiering registreras också. PVE-specifik förladdning körs bara på PVE-värdar.",
|
||||
"headerBlueprint": "Blueprint / modul",
|
||||
"headerPrefix": "Ruttprefix",
|
||||
"headerOwns": "Ansvar",
|
||||
@@ -242,10 +242,10 @@
|
||||
"Uppdateringar: väntande paket och säkerhetsuppdateringar.",
|
||||
"Loggar: ihållande mönster, toppar och kaskader i systemjournalen.",
|
||||
"Minne: OOM-händelser och ihållande minnestryck.",
|
||||
"Temperatur: CPU- och diskvärden jämförs med övervakningsgränser; tillgängliga sensorer beror på maskinvaran.",
|
||||
"CPU: användning och CPU-temperatur jämförs med de konfigurerbara gränserna; tillgängliga sensorer beror på maskinvaran.",
|
||||
"Säkerhet: inloggningsfel, blockeringar och Fail2Ban-jailstatus."
|
||||
],
|
||||
"afterIntro": "Resultat använder stabil <code>error_key</code>, kategori och allvarlighetsgrad. Rader i <code>errors</code> uppdateras med <code>last_seen</code> och räknare utan dubbletter. Aviseringssändning har även egna fingeravtryck och väntetider.",
|
||||
"afterIntro": "Resultat använder stabil <code>error_key</code>, kategori och allvarlighetsgrad. Befintliga poster i <code>errors</code> uppdateras på plats (<code>last_seen</code>, allvarlighetsgrad, orsak) i stället för att dupliceras. Aviseringssändning har även egna regler för fingeravtryck och väntetider.",
|
||||
"cycleEnd": "Rensning kan lösa gamla fel med kategorins <em>tid för undertryckning</em> och statusregler, ta bort övergivna poster för borttagna resurser och radera <code>events</code> äldre än 30 dagar. Kategorierna beskrivs i <link>Panel → Health Monitor</link>."
|
||||
},
|
||||
"notifications": {
|
||||
@@ -264,9 +264,9 @@
|
||||
"intro": "Fliken <em>Terminal</em> ansluter en lätt <code>xterm.js</code>-klient till ett PTY på servern via WebSocket. Två lägen finns:",
|
||||
"items": [
|
||||
"<strong>HTTP-läge, standard:</strong> den inbyggda Flask-servern med <code>flask-sock</code> hanterar byte till WebSocket-protokollet.",
|
||||
"<strong>HTTPS-/WSS-läge:</strong> använder <code>gevent.pywsgi.WSGIServer</code> med <code>geventwebsocket.handler.WebSocketHandler</code> för WebSocket över TLS."
|
||||
"<strong>HTTPS-/WSS-läge:</strong> TLS-servern använder <code>gevent.pywsgi.WSGIServer</code> med sin standardhanterare; <code>flask-sock</code> hanterar WebSocket-anslutningar över TLS."
|
||||
],
|
||||
"outro": "Terminalprocesser ärver <code>User=root</code>. Med autentisering på kräver WebSocket en kortlivad engångsbiljett från den autentiserade biljettslutpunkten med administratörsbehörighet. Om autentisering är avstängd eller avböjd följer anslutningen det oautentiserade läget.",
|
||||
"outro": "Terminalens underprocesser ärver <code>User=root</code> från tjänsten. För att öppna en WebSocket krävs en kortlivad engångsbiljett från den autentiserade slutpunkten för terminalbiljetter med administratörsbehörighet.",
|
||||
"proxyNote": "Med omvänd proxy måste WebSocket och dess headers <code>Upgrade</code> och <code>Connection</code> vidarebefordras. Terminalen kräver det."
|
||||
},
|
||||
"proxy": {
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
}
|
||||
],
|
||||
"reportTitle": "Rapport om nätverkslatens (PDF)",
|
||||
"reportIntro": "Båda lägena har knappen <strong>Rapport</strong> bredvid målväljaren. Den skapar en PDF med mätningarna som du kan bifoga ett supportärende hos internetleverantören.",
|
||||
"reportIntro": "Båda lägena har knappen <strong>Rapport</strong> bredvid målväljaren. Den öppnar en utskrivbar rapport över mätningarna; spara den som PDF från webbläsarens utskriftsdialog och bifoga den till ett supportärende hos internetleverantören.",
|
||||
"reportPreviewAlt": "Första PDF-sidan i latensrapporten med sammanfattning, mätare, statistik, diagram och gränsvärdesguide",
|
||||
"reportPreviewCaption": "Första sidan innehåller sammanfattning, mätare, huvudstatistik, latens över tid och gränsvärdesguide. Från sida 2 följer mättabellen och metoden.",
|
||||
"downloadLabel": "Hämta exempelrapport om latens (PDF)",
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
"configCaption": "Redigera jailen sshd: sänk <em>Max Retries</em> om du bara använder SSH från ditt eget undernät, eller öka <em>Ban Time</em> för en översikt som är åtkomlig från internet.",
|
||||
"outro": "Guiden <em>Installation, konfiguration och avinstallation</em> beskriver även manuell installation, ändringen av SSH MaxAuthTries och kopplingen till loggen <code>proxmenux-auth.log</code>. Se <link>ProxMenux → Säkerhet → Fail2Ban</link>.",
|
||||
"calloutTitle": "Utan Fail2Ban blockerar den här mekanismen inga IP-adresser",
|
||||
"calloutBody": "ProxMenux Monitor kontrollerar IP-adresser som blockerats av Fail2Ban på <em>applikationsnivå</em> innan Flask-begäranden behandlas. Den frågar fail2ban-client och sparar resultatet i cache i 30 sekunder; ingen SQL-tabell med blockeringar läses. Utan Fail2Ban loggas misslyckade inloggningar i <code>proxmenux-auth.log</code>, men mekanismen blockerar inga IP-adresser."
|
||||
"calloutBody": "ProxMenux Monitor kontrollerar IP-adresser som blockerats i Fail2Bans jail <code>proxmenux</code> på <em>applikationsnivå</em> innan Flask-begäranden behandlas och sparar resultatet i cache i 30 sekunder. Utan Fail2Ban loggas misslyckade inloggningar i <code>proxmenux-auth.log</code> och inloggningsslutpunkten begränsas till 5 försök per IP var 5:e minut, men ingen IP-adress blockeras."
|
||||
},
|
||||
"lynis": {
|
||||
"heading": "Säkerhetsgranskning med Lynis",
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
},
|
||||
"thresholds": {
|
||||
"heading": "Gränsvärden i Health Monitor",
|
||||
"intro": "Förra kortet anger <em>tystnadens längd efter avfärdande</em>; detta anger <strong>värdet som utlöser en varning</strong>. De flesta gränskontroller har justerbara värden för <strong>Varning</strong> och <strong>Kritiskt</strong>. Tabellen förklarar undantag som kombinerad swapregel och aktuell RAM-detektor.",
|
||||
"intro": "Förra kortet anger <em>tystnadens längd efter avfärdande</em>; detta anger <strong>värdet som utlöser en varning</strong>. De flesta gränskontroller har justerbara värden för <strong>Varning</strong> och <strong>Kritiskt</strong>. Tabellen nedan förklarar undantag som den kombinerade swapregeln.",
|
||||
"whatForTitle": "Vad det används till",
|
||||
"whatForIntro": "Standardvärdena är en utgångspunkt, men varje miljö har egna förutsättningar:",
|
||||
"whatForItems": [
|
||||
@@ -85,7 +85,7 @@
|
||||
"Välj temperaturgränser efter diskens specifikationer och faktiska förhållanden. Passiv eller forcerad kylning avgör inte ensam en allmänt lägre eller högre säker gräns.",
|
||||
"En tungt virtualiserad värd kan få CPU-toppar vid byggen utan att varna för varje topp på 80 %, men måste fortfarande varna vid långvarig överbelastning."
|
||||
],
|
||||
"whatForOutro": "Ändringar som stöds gäller <strong>vid nästa kontroll</strong>. Health Monitor läser <code>/usr/local/share/proxmenux/health_thresholds.json</code> varje cykel utan omstart. Vissa indikatorer, som disktemperatur, använder värdena; vissa kapacitetsstaplar har egna gränser. RAM-raden beskriver ett aktuellt undantag.",
|
||||
"whatForOutro": "Ändringar av tröskelvärden som stöds gäller <strong>vid nästa kontroll</strong>. Health Monitor läser <code>/usr/local/share/proxmenux/health_thresholds.json</code> varje cykel utan omstart. Utvalda indikatorer, bland annat disktemperatur, använder värdena; vissa kapacitetsstaplar behåller egna visuella gränser.",
|
||||
"coloursTitle": "Statusfärger för Varning och Kritiskt",
|
||||
"coloursIntro": "Widgetar med det konfigurerade paret Varning/Kritiskt följer de tre lägena nedan. Andra indikatorer, som PVE-kapacitetsstaplar, har egna gränser; färgen ensam visar inte att Health Monitor har larmat.",
|
||||
"headerColour": "Färg",
|
||||
@@ -125,7 +125,7 @@
|
||||
"section": "Minne",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Värdens RAM-belastning. Den konfigurerbara standarden visar Kritiskt vid 95 %, men aktuell detektor använder en fast regel på 90 % över tid; inställningen ändrar för närvarande inte den körningsgrenen."
|
||||
"gates": "Värdens RAM-belastning."
|
||||
},
|
||||
{
|
||||
"section": "Swap (endast kritisk nivå)",
|
||||
@@ -185,7 +185,7 @@
|
||||
"section": "PVE-lagring",
|
||||
"warning": "85 %",
|
||||
"critical": "95 %",
|
||||
"gates": "Lagring som hanteras av PVE: LVM, LVM-thin, ZFS-pool, RBD/Ceph och PBS. Alla är inte blocklagringssystem."
|
||||
"gates": "Endast PVE-lagring av typerna LVM, LVM-thin, ZFS-pool, RBD, CephFS och PBS. Katalog-, NFS- och CIFS-lagring täcks av raden för värdens diskutrymme."
|
||||
},
|
||||
{
|
||||
"section": "ZFS-pool",
|
||||
@@ -218,7 +218,7 @@
|
||||
"toggleTitle": "Aviseringsreglage när detektering är på",
|
||||
"toggleBody": "Reglaget <code>lxc_updates_available</code> per kanal under <strong>Aviseringar → Tjänster</strong> visas bara när detektering är på. När den stängs av döljs raden för alla kanaler. Valet sparas i databasen och samma värde återkommer när detektering slås på.",
|
||||
"purgeTitle": "Vad som rensas när detektering stängs av",
|
||||
"purgeBody": "Avstängning tar genast bort <code>type=lxc</code>-poster från <code>/usr/local/share/proxmenux/managed_installs.json</code>. Räknarna för LXC-uppdateringar i Hårdvara försvinner vid nästa omladdning. Påslagning fyller registret vid nästa kontroll, eller tidigare med manuell API-uppdatering."
|
||||
"purgeBody": "Avstängning tar genast bort alla <code>type=lxc</code>-poster från <code>/usr/local/share/proxmenux/managed_installs.json</code>. Räknarna för LXC-uppdateringar på fliken VM och LXC töms vid nästa uppdatering av instrumentpanelen. Påslagning fyller registret vid nästa identifieringscykel, eller tidigare med manuell API-uppdatering."
|
||||
},
|
||||
"storageExclusions": {
|
||||
"heading": "Exklusioner för fjärrlagring",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
"items": [
|
||||
"<strong>Enhetssökväg</strong> — <code>/dev/sda</code>, <code>/dev/nvme0n1</code>.",
|
||||
"<strong>Typetikett</strong> — SATA / NVMe och tillhörande ikon.",
|
||||
"<strong>Systemetikett</strong> — orange markering för diskar som identifierats som operativsystemets diskar. Identifieringen använder monteringarna <code>/</code> och <code>/boot</code> och ger etiketten <em>System</em>. En saknad etikett bevisar inte att disken kan raderas eller användas för annat utan risk.",
|
||||
"<strong>Systemetikett</strong> — orange markering för diskar som värden använder: systemets monteringspunkter (<code>/</code>, <code>/boot</code>, <code>/usr</code>, <code>/var</code>…), aktiv swap, ZFS-poolmedlemmar, fysiska LVM-volymer, aktiva RAID-medlemmar eller etiketter på systempartitioner. En saknad etikett bevisar inte att disken kan raderas eller användas för annat utan risk.",
|
||||
"<strong>Modell</strong> — tillverkare och modell från <code>smartctl -i</code>.",
|
||||
"<strong>Kapacitet</strong> — i lättlästa enheter.",
|
||||
"<strong>Temperatur</strong> — aktuellt värde i °C, färgat efter disktyp; NVMe använder högre gränser än SATA.",
|
||||
@@ -112,7 +112,7 @@
|
||||
"pdfPreviewAlt": "Första sidan i SMART-rapporten med sammanfattning, PASSED-ring och diskinformation",
|
||||
"pdfPreviewCaption": "Första sidan: sammanfattning, PASSED-ring och fullständig diskinformation. Exempel-PDF:en innehåller SSD-slitage, alla SMART-attribut och testhistorik.",
|
||||
"pdfDownloadLabel": "Hämta exempelrapport för SMART (PDF)",
|
||||
"pdfSectionsIntro": "Rapporten har sex huvudavsnitt:",
|
||||
"pdfSectionsIntro": "Rapporten innehåller dessa huvudavsnitt:",
|
||||
"pdfSections": [
|
||||
"<strong>Sammanfattning</strong> — PASSED/FAILED, begriplig diskbedömning — bra, sliten eller felande — och fyra uppgifter: rapporttid, senaste testtyp, resultat och kontrollerade attribut.",
|
||||
"<strong>Diskinformation</strong> — modell, serienummer, kapacitet, typ HDD/SSD/NVMe, familj, formfaktor, gränssnitt (SATA 3.3 · 6.0 Gb/s, …), TRIM, temperatur och optimal gräns, drifttimmar, starter, SMART, väntande/omallokerade sektorer och CRC-fel.",
|
||||
@@ -127,7 +127,7 @@
|
||||
"historyImageCaption": "Diskens SMART-historik. Varje rad visar typ, tid, ålder, markering av senaste test samt hämtning av <code>smartctl</code>-utdata och borttagning.",
|
||||
"historyIntro": "Sparade slutförda korta och utökade tester för disken. Varje post innehåller ursprungliga <code>smartctl</code>-utdata och fälten som Monitor tolkar för översikten. Åtgärder per rad:",
|
||||
"historyItems": [
|
||||
"<strong>Hämta</strong> — sparar JSON-ögonblicksbilden med rapportens <code>smartctl -a</code>-data. Praktiskt när tillverkarsupporten behöver ursprungliga diagnostikfält.",
|
||||
"<strong>Hämta</strong> — sparar testets JSON-ögonblicksbild (utdata från <code>smartctl -a --json</code>, eller <code>nvme smart-log</code> på NVMe när smartctl misslyckas). Praktiskt när tillverkarsupporten behöver ursprungliga diagnostikfält.",
|
||||
"<strong>Ta bort</strong> — raderar ett test manuellt ur historiken. Lagringsgränsen i Schema (<em>senaste 5 / 10 / 20</em>) tar automatiskt bort de äldsta."
|
||||
],
|
||||
"scheduleTitle": "Flik 4 — Schema",
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Monitor — Översikt: VM och LXC | ProxMenux-dokumentation",
|
||||
"description": "Inventering av gäster med CPU, minne och disk i realtid. Detaljerna visar konfiguration, resurser, säkerhetskopior, senaste Proxmox-loggresultat, anteckningar och Starta / Stäng av / Starta om / Tvinga stopp."
|
||||
"description": "Fliken VM och LXC inventerar alla gäster på värden med CPU-, minnes- och diskanvändning i realtid. Detaljerna per gäst visar konfiguration, resurser, säkerhetskopior, konsolloggen för OCI-containrar, anteckningar och Starta / Stäng av / Starta om / Tvinga stopp."
|
||||
},
|
||||
"header": {
|
||||
"title": "Översikt: VM och LXC",
|
||||
"description": "Hela nodens gästinventering: fyra mätvärden överst, en sorterbar lista över VM och LXC samt gästdetaljer med konfiguration, resurser, säkerhetskopior, loggar och Starta / Stäng av / Starta om / Tvinga stopp.",
|
||||
"description": "Hela nodens gästinventering: fyra mätvärden överst, en sorterbar lista över alla VM och LXC nedanför samt gästdetaljer med konfiguration, resurser, säkerhetskopior, konsolloggen för OCI-containrar och de fyra livscykelkontrollerna (Starta / Stäng av / Starta om / Tvinga stopp).",
|
||||
"section": "ProxMenux Monitor · Översikt"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Kontroller för gäster",
|
||||
"body": "Här styr du gästernas livscykel. Åtgärder går via <code>POST /api/vms/<vmid>/control</code> efter uttrycklig bekräftelse och uppdaterar gästens rad. Tvingad avstängning kräver den särskilda knappen Tvinga stopp."
|
||||
"body": "Här styr du gästernas livscykel. Livscykelåtgärder går via <code>POST /api/vms/<vmid>/control</code>; Starta om och Tvinga stopp ber dig skriva VMID för att bekräfta, och svaret visas i gästens rad. Tvingad avstängning kräver den särskilda knappen Tvinga stopp."
|
||||
},
|
||||
"topRow": {
|
||||
"heading": "Övre raden: fyra statistikkort",
|
||||
@@ -186,9 +186,9 @@
|
||||
"source": "PVE RRD-data (<code>pvesh get /nodes/<node>/qemu/<id>/rrddata</code>) kondenserade till en diagramvänlig form."
|
||||
},
|
||||
{
|
||||
"section": "Senaste Proxmox-loggresultat",
|
||||
"endpoint": "/api/vms/<vmid>/logs",
|
||||
"source": "<code>pvesh get /nodes/<node>/<qemu|lxc>/<vmid>/log --start 0 --limit 1000</code>. Om kommandot misslyckas returneras en tom lista; detta ger inte fullständiga systemloggar inifrån gästen."
|
||||
"section": "OCI-konsollogg (fliken Loggar)",
|
||||
"endpoint": "/api/lxc/<vmid>/console-log",
|
||||
"source": "Konsolutdata från avbildningens huvudprocess, läst från <code>/var/log/proxmenux/oci/<vmid>.console.log</code> på värden. Visas endast för OCI-containrar."
|
||||
},
|
||||
{
|
||||
"section": "Backups tillgängliga för gäst",
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
{
|
||||
"category": "Lagring",
|
||||
"checks": "Proxmox-lagring, rotfilsystem",
|
||||
"events": "Rotfilsystemet eller andra övervakade filsystem passerar inställda utrymmeströsklar (85% varning / 95% kritiskt som standard); NFS-export offline; misslyckad CIFS-autentisering; full LVM-thin-pool."
|
||||
"events": "Rotfilsystemet eller andra övervakade filsystem passerar inställda utrymmeströsklar (85% varning / 95% kritiskt som standard); otillgänglig PVE-lagring; hängande eller oväntat skrivskyddade NFS-/CIFS-monteringar; LVM-thin och annan poollagring som passerar samma trösklar."
|
||||
},
|
||||
{
|
||||
"category": "Disker och SMART",
|
||||
@@ -98,7 +98,7 @@
|
||||
{
|
||||
"category": "Systemuppdateringar",
|
||||
"checks": "I väntan på uppdateringar, säkerhetsuppdateringar, kärna / PVE-version, systemålder",
|
||||
"events": "Väntande säkerhetsuppdateringar eller uppdateringar av den kärna som används; system som inte uppdaterats på länge. Knappen <em>Uppdatera nu</em> visas i översiktens sidhuvud när uppdateringar finns. Den kör hela ProxMenux-flödet och uppdaterar hälsan med <code>?refresh=1</code> vid stängning utan att invänta nästa cykel."
|
||||
"events": "Väntande säkerhetsuppdateringar eller uppdateringar av den kärna som används; system som inte uppdaterats på länge. Kategorin Uppdateringar i fönstret Hälsostatus visar knappen <em>Uppdatera nu</em> när uppdateringar väntar. Den kör hela ProxMenux-uppdateringsflödet direkt i fönstret; vid stängning uppdateras hälsan med <code>?refresh=1</code> så att indikatorn visar det nya tillståndet utan att invänta nästa cykel."
|
||||
},
|
||||
{
|
||||
"category": "Säkerhet och certifikat",
|
||||
@@ -158,7 +158,7 @@
|
||||
},
|
||||
"dismiss": {
|
||||
"heading": "Avfärda larm och ange undertryckningstid",
|
||||
"intro": "Vissa händelser kvarstår, som <em>Systemuppdateringar: uppdateringar tillgängliga</em> tills värden uppdaterats. En avisering var femte minut behövs inte. Knappen <em>Uppdatera nu</em> i översikten löser just det fallet direkt. För andra fall eller uppskjutna uppdateringar finns två sammankopplade sätt att tysta larm:",
|
||||
"intro": "Vissa händelser kvarstår av naturen, som <em>Systemuppdateringar: uppdateringar tillgängliga</em> tills värden uppdaterats, och en avisering var femte minut i en vecka behövs inte. Knappen <em>Uppdatera nu</em> i kategorin Uppdateringar i fönstret Hälsostatus löser just det fallet direkt. För andra fall eller uppskjutna uppdateringar erbjuder hälsoövervakningen också två sammankopplade sätt att tysta larm:",
|
||||
"step1": "<strong>Avfärda en enskild händelse</strong> i fönstret. Menyn erbjuder <strong>24 timmar</strong>, <strong>7 dagar</strong> eller <strong>Permanent</strong>, oberoende av kategorins standard. Valet skickar <code>POST /api/health/acknowledge</code> med <code>error_key</code> och valda <code>suppression_hours</code> (<code>-1</code> för permanent). Händelsen flyttas till Avfärdade med tidsstämpeln <code>acknowledged_at</code>.",
|
||||
"dropdownImageAlt": "Meny för att avfärda ett larm: 24 timmar, 7 dagar eller permanent",
|
||||
"dropdownImageCaption": "Vald tid gäller bara detta larm; utan enskilt val används kategorins standard. Permanent avfärdade larm har ett bärnstensfärgat märke <em>Permanent</em> och utlöses normalt inte igen. Undantaget för kritisk CPU-temperatur beskrivs nedan.",
|
||||
@@ -187,7 +187,7 @@
|
||||
},
|
||||
{
|
||||
"finding": "ZFS pool DEGRADED / FAULTED",
|
||||
"why": "ZFS-poolernas kapacitetskontroller tillåter uttryckligen avfärdande. Andra poolfynd följer sin egen flagga. Kvittering reparerar inte en degraderad eller felaktig pool."
|
||||
"why": "Fynd om ZFS-poolernas tillstånd (DEGRADED, FAULTED, UNAVAIL) tillåter uttryckligen avfärdande, liksom kontroller av poolkapacitet. Kvittering reparerar inte en degraderad eller felaktig pool."
|
||||
},
|
||||
{
|
||||
"finding": "Disk-I/O-fel med SMART FAILED",
|
||||
@@ -289,7 +289,7 @@
|
||||
},
|
||||
"rest": {
|
||||
"heading": "REST-slutpunkter",
|
||||
"intro": "Fönstrets åtgärder kan anropas via API för skript, översikter och botar. Med Monitors autentisering påslagen behövs en giltig Bearer-token från inloggning eller API-tokenskärmen. Ändringar som kvittering, sparande eller rensning av övergivna fel kräver full_admin; read_only får 403. Med autentisering avstängd eller avböjd tillåter dessa kontroller åtkomst utan token.",
|
||||
"intro": "Fönstrets åtgärder kan också anropas via API för skript, egna översikter och botar. Anrop kräver en giltig Bearer-token, antingen från inloggning eller API-tokenskärmen. Ändringar som kvittering av larm, sparande av undertryckningsinställningar eller rensning av övergivna fel kräver omfånget full_admin; read_only får 403.",
|
||||
"headerEndpoint": "Slutpunkt",
|
||||
"headerMethod": "Metod",
|
||||
"headerUse": "Användning",
|
||||
@@ -297,7 +297,7 @@
|
||||
{
|
||||
"endpoint": "/api/health",
|
||||
"method": "GET",
|
||||
"use": "Lätt kontroll som ger JSON med <code>status</code>, <code>timestamp</code> och <code>version</code>. Passar Uptime Kumas nyckelordskontroller; när Monitors autentisering är påslagen måste klienten skicka en Bearer-header."
|
||||
"use": "Lätt kontroll som ger JSON med <code>status</code>, <code>timestamp</code> och <code>version</code>. Passar Uptime Kumas nyckelordskontroller; klienten måste skicka en Bearer-header."
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/health/status",
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Terminal",
|
||||
"description": "Värdskal och konsolåtkomst till VM/CT som stöds i webbläsaren via <code>xterm.js</code> och WebSockets. Följer valt autentiseringsläge: om autentisering är avstängd eller avböjd kan klienter med nätåtkomst öppna en session utan inloggning. Det innebär ingen granskning av varje kommando."
|
||||
"description": "Värdskal och konsolåtkomst till VM/CT som stöds i webbläsaren via <code>xterm.js</code> och WebSockets. Sessioner granskas inte per kommando."
|
||||
},
|
||||
{
|
||||
"name": "Säkerhet",
|
||||
@@ -114,7 +114,7 @@
|
||||
"heading": "REST API och integrationer",
|
||||
"intro": "REST-endpointar ger övervakningsdata som JSON över HTTP/HTTPS för Homepage, Home Assistant, Uptime Kuma och skript. Grafana kan använda den separata Prometheus-textexportören på <code>/api/prometheus</code>. Anrop kan göras med <code>curl</code>.",
|
||||
"tokens": "Långlivade API-token (365 dagar) skapas under <strong>Inställningar → API-åtkomsttoken</strong> eller via <code>POST /api/auth/generate-api-token</code>.",
|
||||
"bearer": "Skicka token som <code>Authorization: Bearer …</code>. Den offentliga <code>/api/health</code> passar tillgänglighetskontroller utan inloggning. Under <code>/api/auth/*</code> finns offentliga inställnings-/inloggnings-/statusrutter och skyddad konto-/tokenhantering; alla är inte anonyma.",
|
||||
"bearer": "Skicka token som <code>Authorization: Bearer …</code>. Även <code>/api/health</code> förväntar sig Bearer-headern, så tillgänglighetskontroller behöver en read_only-token. Under <code>/api/auth/*</code> finns både offentliga inställnings-/inloggnings-/statusrutter och skyddade rutter för konto-/tokenhantering; alla är inte anonyma.",
|
||||
"catalog": "Den fullständiga slutpunktskatalogen, vägledning för tokenrotation och bästa säkerhetspraxis finns i <linkApi>API Referens</linkApi>; Färdiga exempel för Homepage, Home Assistant, Grafana, Uptime Kuma och ett generiskt cURL-mönster finns i <linkIntegrations>Integrationer</linkIntegrations>."
|
||||
},
|
||||
"serviceControl": {
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
"heading": "n8n, Zapier och anpassade skript",
|
||||
"intro": "Arbetsflöden och skript kan <em>skicka</em> aviseringar med POST till <code>/api/notifications/send</code>, exempelvis vid CI-fel eller långa cronjobb. Direktsändning kringgår händelsekö och spärrtid per händelseavtryck. Kanalformatering, valfri AI och leverans finns kvar. Hantera eventuella dubbletter i anroparen.",
|
||||
"n8nBody": "Använd en <em>HTTP Request</em>-nod i n8n med POST, URL ovan och samma JSON som curl. Välj generiska Header Auth-uppgifter: namn <em>Authorization</em> och värde <code>Bearer YOUR_API_TOKEN</code>, och ersätt platshållaren. Anslut ett schema, en webhook eller en föregående nod som utlösare.",
|
||||
"severityBody": "Allvarlighetsgrad anges som <code>INFO</code>, <code>WARNING</code> eller <code>CRITICAL</code> med versaler. Objektet <code>data</code> ger sammanhang. AI använder renderad titel och text samt stödd berikning; godtyckliga fält ingår inte säkert i prompt eller resultat. Se <link>Aviseringar → Händelsekatalog</link>."
|
||||
"severityBody": "Allvarlighetsgrad anges som <code>INFO</code>, <code>WARNING</code> eller <code>CRITICAL</code> med versaler. Objektet <code>data</code> ger händelsekontext och mallfält. På denna slutpunkt får AI-omskrivningen bara titel och text; fält i <code>data</code> skickas inte till leverantören. Se <link>Aviseringar → Händelsekatalog</link> för händelsernas betydelse."
|
||||
},
|
||||
"pveWebhook": {
|
||||
"heading": "Inbyggd Proxmox VE-webhook (inkommande)",
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
"Öppna <a>account.microsoft.com/security</a> och aktivera tvåstegsverifiering.",
|
||||
"Om kontot erbjuder <em>Avancerade säkerhetsalternativ</em> → <em>Applösenord</em>, välj <em>Skapa ett nytt applösenord</em>. Det garanterar inte att e-posttjänsten godtar SMTP med lösenord.",
|
||||
"Om Microsoft skapar ett applösenord, kopiera det och kontrollera att SMTP-tjänsten godtar det.",
|
||||
"Använd bara dessa godkända inställningar om tjänsten tillåter SMTP med lösenord: <em>Server</em> <code>smtp.office365.com</code> för Exchange Online, <em>Port</em> <code>587</code>, <em>TLS-läge</em> <code>STARTTLS</code>, <em>Användarnamn</em> din e-postadress och <em>Lösenord</em> den tillåtna SMTP-inloggningsuppgiften. Personliga Outlook.com-konton har andra inställningar och krav."
|
||||
"Fyll bara i tjänstens godkända inställningar om den tillåter SMTP med lösenord: <em>SMTP-värd</em> <code>smtp.office365.com</code> för Exchange Online, <em>Port</em> <code>587</code>, <em>TLS-läge</em> <code>STARTTLS</code>, <em>Användarnamn</em> din postlådeadress och <em>Lösenord</em> den tillåtna SMTP-inloggningsuppgiften. Personliga Outlook.com-konton har andra inställningar och autentiseringskrav; utgå inte från att dessa uppgifter fungerar."
|
||||
],
|
||||
"relayTitle": "Eget SMTP-relä",
|
||||
"relayBody": "Anslut Monitor till ett SMTP-relä du kontrollerar, till exempel Postfix. Reläet hanterar tjänstens autentisering. Anpassa Monitors autentisering och TLS-läge till reläet; att det körs lokalt stänger inte av kryptering."
|
||||
@@ -266,7 +266,7 @@
|
||||
"howItems": [
|
||||
"<strong>Aktiveras per kanal.</strong> Avstängt som standard. Aktivera sammanfattning på önskade kanaler och behåll direktleverans på andra.",
|
||||
"<strong>Leveranstid</strong> i lokal tidszon, som standard 09:00. Du kan välja en annan tid; sammanfattningen skickas inom ungefär 60 sekunder från den minuten.",
|
||||
"<strong>Ingår i sammanfattningen:</strong> lämpliga allmänna händelser med nivån <strong>INFO</strong>. Exempel: <em>programuppdatering tillgänglig</em>, <em>Tailscale-uppdatering tillgänglig</em>, <em>ProxMenux-optimeringsuppdatering tillgänglig</em>, <em>APT-säkerhetsuppdateringar väntar</em> och <em>frekvensgräns nådd</em>. Säkerhetskopieringsresultat och andra undantagna åtgärdshändelser skickas direkt.",
|
||||
"<strong>Ingår i sammanfattningen:</strong> lämpliga allmänna händelser med nivån <strong>INFO</strong>. Exempel: <em>programuppdatering tillgänglig</em>, <em>Tailscale-uppdatering tillgänglig</em>, <em>ProxMenux-optimeringsuppdatering tillgänglig</em> och <em>APT-säkerhetsuppdateringar väntar</em>. Säkerhetskopieringsresultat och andra undantagna åtgärdshändelser skickas direkt.",
|
||||
"<strong>Fördröjs aldrig av den dagliga sammanfattningen:</strong>",
|
||||
"<strong>Beständig lagring.</strong> Väntande händelser sparas i SQLite-tabellen <code>digest_pending</code> till vald tid. En omstart av Monitor förlorar inte innehållet.",
|
||||
"<strong>Tyst när inget har hänt.</strong> Om inga INFO-händelser väntar skickas ingen sammanfattning."
|
||||
@@ -301,7 +301,7 @@
|
||||
{
|
||||
"stage": "Väntetid mellan upprepningar",
|
||||
"what": "Efter lyckad leverans undertrycks samma fingeravtryck och tillståndet sparas i <code>notification_last_sent</code>. Grundvärden för <code>CRITICAL</code>, <code>WARNING</code> och <code>INFO</code> är 86 400 s, liksom för <code>resources</code> och <code>updates</code>. Undantag: 5 s för VM/CT-åtgärder och värdens avstängning/omstart, 10 s för säkerhetskopierings-/replikeringsresultat och 1 800–3 600 s för flera hälsokategorier. Egna händelse- eller gruppinställningar kan ersätta värdena.",
|
||||
"tunable": "Ja — uttryckliga väntetider för händelsetyp eller grupp ersätter standardvärdena i sändningskonfigurationen."
|
||||
"tunable": "Endast via inställnings-API:t — en nyckel <code>cooldown.<event_type></code> eller <code>cooldown.<group></code> ersätter standardvärdena; det finns ingen kontroll i gränssnittet."
|
||||
},
|
||||
{
|
||||
"stage": "Gruppering av händelsetoppar",
|
||||
@@ -330,7 +330,7 @@
|
||||
"<strong>Metod och URL.</strong> <code>POST http://127.0.0.1:8008/api/notifications/webhook</code> när HTTPS är avstängt i Monitor. Med HTTPS används en separat lokal HTTP-mottagare på port 8009. Båda finns på samma värd.",
|
||||
"<strong>Meddelandemall.</strong> JSON med PVE:s Handlebars-funktioner. PVE sparar mallen base64-kodad i konfigurationen. Avkodad blir den:",
|
||||
"<strong>Matchare.</strong> Ett tillhörande <code>matcher: proxmenux-matcher</code>-block med <code>mode all</code> skickar alla PVE-aviseringar till målet.",
|
||||
"<strong>Privat konfiguration.</strong> Installationen skriver blocket <code>webhook: proxmenux-webhook</code> i <code>/etc/pve/priv/notifications.cfg</code>, med den delade hemligheten base64-kodad. Det offentliga målet hänvisar till hemligheten för att skicka X-Webhook-Secret. Blocket är alltså inte tomt."
|
||||
"<strong>Privat konfiguration.</strong> Installationen skriver det matchande blocket <code>webhook: proxmenux-webhook</code> i <code>/etc/pve/priv/notifications.cfg</code> med en <code>secret</code>-post som heter X-Webhook-Secret, base64-kodad. Det offentliga målblocket innehåller bara body-mallen, metoden och URL:en. Det privata blocket är ingen tom stub."
|
||||
],
|
||||
"securityTitle": "Så skyddas mottagaren",
|
||||
"securityIntro": "Webhookmottagaren på <code>POST /api/notifications/webhook</code> tillämpar olika säkerhetskontroller beroende på anropets källa:",
|
||||
|
||||
Reference in New Issue
Block a user