{
"meta": {
"title": "Proxmox-integrationer — Homepage, Home Assistant, Grafana, Prometheus | ProxMenux Monitor",
"description": "Exempel att kopiera för att ansluta ProxMenux Monitor till Homepage, Home Assistant, Grafana via Prometheus och Uptime Kuma, med rätt konfiguration, API-endpoints och autentiseringsheader.",
"ogTitle": "Proxmox-integrationer — Homepage, Home Assistant, Grafana, Prometheus",
"ogDescription": "Guide för att ansluta ProxMenux Monitor till Homepage, Home Assistant, Grafana, Prometheus och Uptime Kuma.",
"twitterTitle": "Proxmox-integrationer | ProxMenux Monitor",
"twitterDescription": "Anvisningar för Homepage, Home Assistant, Grafana, Prometheus och Uptime Kuma."
},
"header": {
"title": "Integrationer",
"description": "Exempel att kopiera för verktygen i ditt hemlabb: Homepage, Home Assistant, Grafana via Prometheus och Uptime Kuma. Varje exempel visar förväntad konfiguration, vilken Monitor-endpoint som används och rätt autentiseringsheader.",
"section": "ProxMenux-övervakning"
},
"intro": {
"title": "Vad du kan bygga från denna sida",
"body": "Kopiera respektive exempel till valt verktyg. Endpoints beskrivs i API-referensen; denna sida visar hur de används i Homepage, Home Assistant och Grafana. Skärmbilderna visar resultatet av konfigurationerna."
},
"auth": {
"heading": "Autentisering: det enda varje recept behöver",
"intro": "De flesta endpoints som används av dessa integrationer är autentiserade. Du har två sätt att tillfredsställa detta krav.",
"optAtitle": "Alternativ A – API token (rekommenderas för integrationer)",
"optAbody1": "Öppna Inställningar → Säkerhet → API-token. Välj Skapa token, ge den ett namn som homepage, home-assistant eller prometheus och kopiera den: den visas bara en gång. Den gäller ett år som standard och kan återkallas separat. Använd den för klienter utanför webbläsaren.",
"optAbody2": "Från den punkten är varje begäran bara:",
"optBtitle": "Alternativ B – inloggningsflöde (användarnamn + lösenord)",
"optBbody": "Användbart för skript som autentiserar som en mänsklig användare. Den returnerade token är kortlivad; de flesta integrationer bör föredra Alternativ A.",
"outro": "TOTP-fältet behövs bara med tvåfaktorsautentisering påslagen. Rotation och återkallande av token, lösenordsregler och granskningslogg beskrivs i Åtkomst och autentisering.",
"httpsTitle": "Använda HTTPS istället för HTTP",
"httpsIntro": "Exemplen använder http:// för korthet. Om TLS är påslaget i Monitor (Inställningar → Säkerhet → SSL/HTTPS), byt http:// mot https:// i varje URL. Två verktygsspecifika anmärkningar:",
"httpsItems": [
"Självsignerade certifikat. Home Assistants rest:-integration verifierar TLS som standard. Med Monitors självsignerade certifikat kan du lägga till verify_ssl: false i varje REST-block bredvid scan_interval: eller importera dess CA i betrodda certifikat. Detsamma gäller andra verktyg som verifierar certifikat.",
"Prometheus har redan scheme: https i exemplet nedan. Aktivera eller behåll https när TLS är påslaget i Monitor."
]
},
"homepage": {
"heading": "Homepage",
"headingHref": "https://gethomepage.dev",
"intro": "Homepage är en statisk och anpassningsbar appöversikt. ProxMenux Monitor ansluts via den inbyggda widgeten customapi: lägg till en tjänst i services.yaml, starta om Homepage och kortet visar aktuella värden.",
"iconCalloutTitle": "Den officiella ProxMenux logotypen är på dashboardicons.com",
"iconCalloutBody": "Exemplen använder icon: proxmenux.png. Homepage slår upp enkla filnamn på dashboardicons.com, ett ikonbibliotek för självhostade översikter. ProxMenux finns på dashboardicons.com/icons/external/proxmenux och hämtas vid första visningen. Samma sak fungerar för tusentals verktyg som Telegram, Discord, Grafana och Tailscale: ange icon: <name>.png i tjänsten.",
"imageAlt": "Homepage-översikt med tre ProxMenux Monitor-kort (EDGE, VOID, DREAM) som visar upptid, CPU, RAM och temperatur per värd",
"imageCaption": "Tre ProxMenux Monitor-instanser som Homepage-kort: upptid, CPU, RAM och CPU-temperatur läses från /api/system på varje värd var 10:e s.",
"basicTitle": "Grundläggande widget - ingen autentisering",
"basicIntro": "Använd detta när ProxMenux Monitor är på ett pålitligt nätverk och du har inte aktiverat autentisering på Monitor sidan ännu. Den enklaste möjliga services.yaml-posten:",
"authedTitle": "Autentiserad widget",
"authedIntro": "Skapa en API-token under Inställningar → Säkerhet → API-token i Monitor. Kopiera den till headern Authorization nedan och ersätt exempeltoken efter Bearer.",
"authedOutro": "Starta om Homepage så visar kortet aktuella värden. Återanvänd token i widgetar som läser samma Monitor-instans.",
"multiTitle": "Multi-widget setup – system, lagring, nätverk",
"multiIntro": "För fler detaljer skapar du tre kort med olika endpoints: system, lagring och nätverk. Använd samma token för denna Monitor-instans.",
"multiCalloutTitle": "Flera Proxmox-värdar",
"multiCalloutBody": "Upprepa blocket per värd för att få korten på bilden. Varje post använder http://<host>:8008 för sin instans. Skapa och spara en token per värd: separata installationer har egna signeringsnycklar, så en token fungerar inte automatiskt på andra värdar."
},
"homeAssistant": {
"heading": "Home Assistant",
"headingHref": "https://www.home-assistant.io",
"intro": "Exemplen använder Home Assistants inbyggda rest-integration utan särskild HACS-komponent. Den läser endpoints i API-referensen och skapar sensorer och attribut för automationer. Konfigurationen ger ungefär 25 sensorer för resurser, hälsa, VM/CT, lagring, nätverk och uppdateringar. Lägg till den i configuration.yaml och ladda om eller starta om HA.",
"imageAlt": "Home Assistant-översikt med hälsostatus, CPU-/RAM-/temperaturmätare, VM-antal, lagringsanvändning och räknare för aktiva fel",
"imageCaption": "ProxMenux Monitor som en förstklassig Home Assistant-integration - sensorer byggda från YAML-receptet nedan.",
"step1Title": "1 · Spara API-token",
"step1Body": "Spara token i secrets.yaml separat från huvudkonfigurationen. Lägg Bearer-prefix och token i ett värde som kan användas som header. Filen är inte krypterad och måste också hållas privat. Platsen beror på installationen, oftast /config/secrets.yaml i HA OS eller Container.",
"step2Title": "2 · Lägg till REST-konfigurationen",
"step2Body": "Sex REST-block täcker huvudområdena. Deras scan_interval följer ändringstakten: resurser var 30:e s, hälsa var 60:e s och inventeringar var 5–10:e minut. Klistra in i configuration.yaml:",
"step3Title": "3 · Lägg till binära sensorer och mallhjälpare",
"step3Body": "Två binära sensorer och två mallsensorer kompletterar integrationen. De förenklar automationer och villkorade Lovelace-kort utan att upprepa Jinja-uttryck överallt.",
"step4Title": "4 · Ladda om och kontrollera",
"step4Body": "Kontrollera först syntaxen under Utvecklarverktyg → YAML → Kontrollera konfiguration. Ladda sedan om All YAML-konfiguration eller starta om HA. Filtrera Inställningar → Enheter och tjänster → Entiteter efter proxmenux. De ungefär 25 entiteterna bör få värden inom ett avläsningsintervall.",
"replaceTitle": "Ersätter en tidigare version av detta recept?",
"replaceBody": "Efter en äldre version kan registret behålla gamla ID:n och kort visa Entiteten hittades inte. Ta bort tidigare rest:- och template:-block från configuration.yaml och ladda om. Filtrera Inställningar → Enheter och tjänster → Entiteter efter proxmenux och ta bort gamla återställda eller otillgängliga poster. Lägg in aktuellt YAML och ladda om för att registrera nya entiteter.",
"step5Title": "5 · Lovelace-översikt",
"step5Body": "YAML skapar ett vertical-stack-kort med logotyp, nyckeltal, system, VM, lagring, nätverk och ett villkorat problemkort. Öppna översikten, välj pennan, Lägg till kort och sedan Manuellt längst ned och klistra in:",
"viewTipTitle": "Vill du ha det som en fullständig instrumentpanelvy istället för ett enda kort?",
"viewTipBody": "Öppna trepunktsmenyn → Redigerare för råkonfiguration och lägg till en vy med denna rubrik ovanför listan cards::",
"viewTipOutro": "Det ger dig en dedikerad flik / bild i din instrumentpanel med sin egen ikon och titel, istället för ett långt kort på en befintlig vy.",
"altViewTitle": "Alternativ - en dedikerad instrumentpanelvy",
"altViewIntro": "Lägg till en vy med YAML nedan för en egen flik i en befintlig översikt. En vy är en flik i översikten och skapar ingen ny post i sidofältet. Steg:",
"altViewSteps": [
"Öppna instrumentbrädan där du vill ha den nya fliken.",
"Klicka på pennan för att redigera översikten uppe till höger.",
"Klicka på fliken + i slutet av de befintliga flikarna för att skapa en ny vy.",
"Välj Kodredigerare uppe till höger i dialogen för att växla mellan visuell redigering och YAML.",
"Klistra YAML nedanför.",
"Spara. Vyn ProxMenux Monitor visas som flik i översikten med sina kort."
],
"twoEditorsTitle": "Två YAML-redigerare i HA - välj rätt",
"twoEditorsIntro": "Home Assistant har två YAML-redigerare som ser lika ut men förväntar sig olika format:",
"twoEditorsItems": [
"Redigerare för en vy — via + eller Redigera vy → Kodredigerare. Tar en vy med title:, path: och cards: på högsta nivån utan inledande bindestreck.",
"Råredigerare för hela översikten — via trepunktsmenyn. Tar hela listan views:, med varje vy som listpost med inledande -."
],
"twoEditorsOutro": "Fel format kan ge en Namnlös vy och cards: []. YAML nedan är för redigeraren av en enskild vy; kopiera det som det visas.",
"viewImageAlt": "Egen Home Assistant-vy för ProxMenux Monitor: picture-entity-huvud, glance-nyckeltal och entitetskort för system, VM, lagring och nätverk i flera kolumner",
"viewImageCaption": "Vyn ProxMenux Monitor på bred skärm. Masonry placerar kort i kolumner automatiskt; layouten beror på inställd vytyp.",
"twoColTipTitle": "Vill du ha en fast tvåkolumnlayout istället för auto layout?",
"twoColTipBody": "Lägg två kort, som System + VM eller Lagring + Nätverk, i en gemensam horizontal-stack så att de visas bredvid varandra vid alla skärmbredder:",
"twoColTipOutro": "På mobilen förblir raden hoptryckt. HA:s automatiska layout utan horizontal-stack anpassar sig bättre till smala skärmar.",
"step6Title": "6 · Automationer",
"step6Body": "Tre automationer för vanliga reaktioner: ersätt notify.mobile_app_<your_phone> med den aviseringstjänst du använder.",
"logoTitle": "Om ProxMenux logotyp",
"logoBody": "picture-entity-kortet hämtar den officiella logotypen från dashboardicons.com, ett gratis ikonbibliotek för självhostade översikter. Posten finns på dashboardicons.com/icons/external/proxmenux. Home Assistant hämtar SVG:n via HTTPS vid första visningen och cachar den.",
"logoBrokenTitle": "Om logokortet visar en bruten bild",
"logoBrokenIntro": "Vissa HA-installationer (brandväggade nätverk, innehållsblockerare, värdar utan offentligt internet) kan inte nå jsdelivr.net vid rendertid. Fixen är en lokal kopia:",
"logoBrokenSteps": [
"Ladda ner SVG från cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/proxmenux.svg.",
"Spara det till /config/www/icons/proxmenux.svg på din HA-värd.",
"I Lovelace YAML, ersätt image: URL med /local/icons/proxmenux.svg. Spara och ladda - bilden görs från den lokala filen, inget internet behövs."
],
"scanTipTitle": "scan_interval tumregel",
"scanTipBody": "Börja med att läsa /api/system var 30:e s. /api/health/full läser normalt ett bakgrundsresultat giltigt i upp till sex minuter; avläsning var 60:e s kringgår inte cachen. Prova fem minuter för /api/storage/summary och en timme för /api/proxmenux/update-status. Anpassa efter hårdvara och antal värdar."
},
"grafana": {
"heading": "Prometheus + Grafana",
"promHref": "https://prometheus.io",
"grafanaHref": "https://grafana.com",
"intro": "ProxMenux Monitor erbjuder GET /api/prometheus i Prometheus textformat 0.0.4. Med autentisering påslagen krävs en Bearer-token. Låt Prometheus samla mätvärden och Grafana visualisera tidsseriedatabasen.",
"imageAlt": "Grafana-översikt med ProxMenux-mätvärden: CPU-mätare, minneshistorik, antal startade VM och nätverkstrafik",
"imageCaption": "En enkel Grafana-översikt av ProxMenux-data samlade av Prometheus: CPU, minne, startade VM och nätverkstrafik. Hela katalogen finns i API-referens → Prometheus-mätvärden.",
"step1Title": "1 · Lägg till insamlingsjobbet i Prometheus",
"step1Body": "Skicka API-token via Prometheus inbyggda authorization-block, som också stöder inläsning från fil.",
"step1After": "Ladda om Prometheus med kill -HUP <PID> (ersätt PID med dess process-ID), systemctl reload prometheus om tjänsten stöder det eller docker compose restart prometheus för containern. Under Status → Targets bör proxmenux bli UP inom ett intervall. Etiketten node=\"<hostname>\" skiljer värdar åt.",
"tokenTipTitle": "Spara token i en separat fil",
"tokenTipBody": "Håll token separat från konfigurationen i produktion. Med credentials_file: /etc/prometheus/secrets/proxmenux.token läser Prometheus den ur en fil med rättigheterna 0600.",
"step2Title": "2 · Kontrollera insamlingen med några frågor",
"step2Body": "Kontrollera före Grafana att Prometheus har data. Öppna http://<prometheus-host>:9090, välj Query och kör någon av frågorna nedan. Du bör få aktuella värden från Proxmox-värden:",
"headerQuery": "Fråga",
"headerConfirms": "Vad den bekräftar",
"verifyRows": [
{
"query": "up{job=\"proxmenux\"}",
"confirms": "Ger 1 om Prometheus lyckas samla data från Monitor, annars 0. Den snabbaste första kontrollen."
},
{
"query": "proxmox_cpu_usage",
"confirms": "Aktuell CPU-belastning på Proxmox-värden i procent. Värdet bör ändras när frågan uppdateras med några sekunders mellanrum."
},
{
"query": "proxmox_vms_running",
"confirms": "Antal startade gästmaskiner. Jämför med Proxmox-gränssnittet."
},
{
"query": "proxmox_uptime_seconds / 86400",
"confirms": "Värdens upptid i dagar. Bör motsvara uptime i Proxmox-terminalen."
}
],
"calloutTitle": "401 när endpointens URL öppnas direkt kan vara normalt",
"calloutBody": "Med autentisering påslagen öppnar länken under Status → Targets/api/prometheus i webbläsaren utan Prometheus Bearer-header. Svaret kan innehålla '{'\"error\":\"Authentication required\"'}'. Kontrollera målets verkliga State: UP för att bekräfta insamlingen via Prometheus.",
"step3Title": "3 · Lägg till Prometheus som en Grafana datakälla",
"step3Body": "Öppna Connections → Data sources → Add new → Prometheus i Grafana. Ange URL, till exempel http://prometheus.lan:9090, spara och testa. Om Prometheus kräver autentisering ställs den in separat här. Monitors token hör till Prometheus insamlingsjobb.",
"step4Title": "4 · Bygg paneler med dessa PromQL-frågor",
"step4Body": "Ett starturval av mätvärden som brukar övervakas på en Proxmox-värd:",
"headerPanel": "Panelidé",
"headerPromql": "PromQL-fråga",
"panelRows": [
{
"panel": "CPU-mätare per värd",
"promql": "proxmox_cpu_usage"
},
{
"panel": "Minnesanvändningsmätare per värd",
"promql": "proxmox_memory_usage_percent"
},
{
"panel": "Använt och totalt minne (tidsserie)",
"promql": "proxmox_memory_used_bytes / 1024 / 1024 / 1024"
},
{
"panel": "Startade VM/CT per värd",
"promql": "proxmox_vms_running"
},
{
"panel": "CPU-temperatur",
"promql": "proxmox_cpu_temperature_celsius"
},
{
"panel": "Nätverksgenomströmning RX (byte/s)",
"promql": "rate(proxmox_interface_bytes_received_total[5m])"
},
{
"panel": "Nätverksgenomströmning TX (byte/s)",
"promql": "rate(proxmox_interface_bytes_sent_total[5m])"
},
{
"panel": "Genomsnittlig belastning (1m)",
"promql": "proxmox_load_average{period=\"1m\"}"
},
{
"panel": "Använt diskutrymme i procent per monteringspunkt",
"promql": "proxmox_disk_usage_percent"
},
{
"panel": "UPS-batteriets laddningsnivå",
"promql": "proxmox_ups_battery_charge_percent"
},
{
"panel": "GPU-temperatur per kortplats",
"promql": "proxmox_gpu_temperature_celsius"
}
],
"outro": "Lägg till varje fråga som Grafana-panel med Stat för värden och Time series för trender och gruppera efter kategori. Använd node som översiktsvariabel (Settings → Variables → New → Query → label_values(proxmox_cpu_usage, node)) för att filtrera per värd."
},
"uptimeKuma": {
"heading": "Uptime Kuma och andra statuskontroller",
"href": "https://github.com/louislam/uptime-kuma",
"intro": "Använd GET /api/system-info för en nyckelordskontroll. Denna route kräver ingen token och ger värdnamn, upptid och hälsa som healthy, warning eller critical. Den är offentlig, till skillnad från de skyddade detaljerade hälsoendpoints.",
"kumaTitle": "Uptime Kuma - HTTP nyckelordsövervakning",
"kumaSteps": [
"I Uptime Kuma klickar du på + Lägg till ny Monitor.",
"Monitor Typ: HTTP(s) - Keyword.",
"Visningsnamn: ProxMenux Monitor — pve01.",
"URL: http://pve01.lan:8008/api/system-info.",
"Nyckelord: healthy (värdet av health.status när värden är OK).",
"Heartbeat Interval: 60 sekunder är tillräckligt.",
"Spara. Routen system-info kräver ingen Bearer-header."
],
"healthchecksTitle": "healthchecks.io / pingar från cronjobb",
"healthchecksBody": "Ett cronjobb kan läsa /api/system-info och testa .health.status == \"healthy\". Först efter lyckat test skickar det en framgångsping till sin unika Healthchecks.io-URL. Tjänsten tar emot jobbpingar och frågar inte Monitor själv. Enbart HTTP 2xx bevisar inte god värdhälsa.",
"richTitle": "Vill du ha mer detaljerade hälsodata?",
"richBody": "Använd GET /api/health/full för hela tillståndet med tio kategorier, aktiva och avfärdade fel. Svaret innehåller översiktsfönstrets data och kräver Bearer-token när autentisering är påslagen."
},
"workflows": {
"heading": "n8n, Zapier och anpassade skript",
"intro": "Arbetsflöden och skript kan skicka aviseringar med POST till /api/notifications/send, 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 HTTP Request-nod i n8n med POST, URL ovan och samma JSON som curl. Välj generiska Header Auth-uppgifter: namn Authorization och värde Bearer YOUR_API_TOKEN, och ersätt platshållaren. Anslut ett schema, en webhook eller en föregående nod som utlösare.",
"severityBody": "Allvarlighetsgrad anges som INFO, WARNING eller CRITICAL med versaler. Objektet data ger händelsekontext och mallfält. På denna slutpunkt får AI-omskrivningen bara titel och text; fält i data skickas inte till leverantören. Se Aviseringar → Händelsekatalog för händelsernas betydelse."
},
"pveWebhook": {
"heading": "Inbyggd Proxmox VE-webhook (inkommande)",
"intro1": "PVE fick aviseringssystemet i 8.1; inbyggda webhookmål kräver Proxmox VE 8.3 eller senare. Aktivera aviseringar i Inställningar försöker registrera Monitor som mål. PVE-meddelanden som skickas dit, som backup- eller replikeringsrapporter, går in i dess sändningsflöde. Konfigurationen måste vara tillgänglig och skrivbar.",
"intro2": "Förlopp, PVE:s meddelandemall, poster i /etc/pve/notifications.cfg och klusterbeteende beskrivs i Aviseringar → PVE-webhookintegration."
},
"whereNext": {
"heading": "Gå vidare",
"items": [
{
"label": "API-referens",
"href": "/docs/monitor/api",
"tail": " — endpoints med metod, sökväg och fullständig Prometheus-mätvärdeskatalog."
},
{
"label": "Aviseringar",
"href": "/docs/monitor/notifications",
"tail": " — händelsekällor, kanaler, sändningsflöde och PVE-webhookintegration i detalj."
},
{
"label": "AI-assistent",
"href": "/docs/monitor/ai-assistant",
"tail": " — valfri omskrivning av malltexter till begripligt språk före sändning till Telegram, Discord, e-post eller Gotify."
},
{
"label": "Åtkomst och autentisering",
"href": "/docs/monitor/access-auth",
"tail": " — skapa och återkalla API-token för exemplen, granskningslogg och TLS-inställningar."
}
]
}
}