mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
Merge remote-tracking branch 'origin/develop' into HEAD
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Uppförandekod | ProxMenux-dokumentation",
|
||||
"description": "ProxMenux uppförandekod och rekommenderade arbetssätt för bidragsgivare, testare och användare.",
|
||||
"ogTitle": "Uppförandekod | ProxMenux-dokumentation",
|
||||
"ogDescription": "Förväntningar på ansvar för koden, rapportering av säkerhetsbrister och omfattningen av PR:ar i ProxMenux-projektet."
|
||||
},
|
||||
"errors": {
|
||||
"notFound": "Fel: CODE_OF_CONDUCT.md-filen hittades inte.",
|
||||
"loadFailed": "Fel: Det går inte att läsa in uppförandekodens innehåll."
|
||||
},
|
||||
"contentMarkdown": "# 📝 Uppförandekod och rekommendationer\n\nDetta dokument fastställer **principer och riktlinjer** för användningen av **ProxMenux**, för att främja **respekt, samarbete och säkerhet** i utvecklingen.\n\n## 📌 1. Källangivelser och erkännande\n\n- Om **skript, kodavsnitt eller idéer** från andra kodarkiv eller utvecklare används ska den ursprungliga upphovspersonen alltid anges.\n- En kommentar i koden eller dokumentationen ska ange källan och om möjligt länka till det ursprungliga kodarkivet.\n- Vid användning av kod med en viss **licens** måste dess villkor följas.\n\n### ✅ Exempel på korrekt källangivelse i koden:\n\n```bash\n# Skript baserat på arbetet av [Upphovsperson] i [Länk till kodarkiv]\n```\n\n## 🔒 2. Säkerhet och ansvar för koden\n\n- All kod i detta arkiv följer rekommenderade arbetssätt för säker utveckling.\n- Bidrag som avsiktligt inför sårbarheter eller osäkra arbetssätt tillåts inte.\n- Skript får aldrig äventyra systemsäkerheten eller användarnas data.\n- Bidrag bör granskas med avseende på säkerhet och stabilitet före införandet.\n\n### ⚠️ Ansvarsfull rapportering av sårbarheter\n\nOm du upptäcker en säkerhetssårbarhet ska du INTE rapportera den i offentliga ärenden eller forum.\n\nRapportera den i stället privat via e-post:\n\n📧 proxmenux@macrimi.pro\n\nLäs vår [säkerhetspolicy](./SECURITY.md) för mer information om sårbarheter och hur de rapporteras.\n\n## 🤝 3. Gemenskapens riktlinjer\n\nAlla användare måste följa dessa riktlinjer för att upprätthålla en respektfull och professionell miljö:\n\n- ✅ Var respektfull och konstruktiv i diskussioner.\n- ❌ Trakasserier, hatretorik och stötande beteende tolereras inte.\n- ✅ Ge återkoppling professionellt och undvik personangrepp.\n- ❌ Överträdelser kan leda till varningar eller avstängningar beroende på allvarlighetsgrad.\n\n##\n\nDetta dokument främjar etisk kodanvändning, säkerhetsmedvetenhet och en respektfull gemenskap.\n\n📢 Låt oss bygga något fantastiskt tillsammans!\n"
|
||||
}
|
||||
@@ -0,0 +1,293 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Bidra till ProxMenux | ProxMenux Dokumentation",
|
||||
"description": "Så bidrar du till ProxMenux: grenmodell (main / develop / feature/*), pull request-flöde, skripthuvud med författare och valfri stödlänk, gränssnitt i två faser, meddelandefunktioner och vägen till en stabil utgåva.",
|
||||
"ogTitle": "Bidra till ProxMenux",
|
||||
"ogDescription": "Grenmodell, arbetsflöde, författarangivelse i skripthuvudet och regler för gränssnitt i två faser som bidragsgivare ska följa."
|
||||
},
|
||||
"header": {
|
||||
"title": "Bidra till ProxMenux",
|
||||
"description": "ProxMenux välkomnar bidrag från gemenskapen: nya skript, rättningar, förbättrade dialogrutor, översättningar och integrationer. Sidan beskriver arkivets struktur, grenmodellen, pull request-flödet, skripthuvudet med författare och valfri stödlänk samt de designregler varje bidrag ska följa.",
|
||||
"section": "Om"
|
||||
},
|
||||
"twoPagesCallout": {
|
||||
"title": "Två relaterade sidor, ett projekt",
|
||||
"body": "Förväxla inte sidan med <contributorsLink>Bidragsgivare</contributorsLink>, som uppmärksammar dem som redan bidrar: testare, granskare och utvecklare. Den här sidan är för <em>dig</em> som vill börja bidra och förklarar hur du förbereder en pull request för sammanslagning."
|
||||
},
|
||||
"branching": {
|
||||
"heading": "Grenmodell",
|
||||
"intro": "ProxMenux använder en grenmodell med tre nivåer:",
|
||||
"headerBranch": "Gren",
|
||||
"headerPurpose": "syfte",
|
||||
"rows": [
|
||||
{
|
||||
"branch": "main",
|
||||
"purposeRich": "Stabil kod som är klar för produktion. Bara ändringar som är klara för utgivning slås samman här. Det är den version slutanvändare får vid en vanlig installation av ProxMenux."
|
||||
},
|
||||
{
|
||||
"branch": "develop",
|
||||
"purposeRich": "Aktiv utvecklingsgren. Allt nytt arbete tas först in här; det är betakanalen. När en stabil utgåva är klar förs den härifrån till <code>main</code>."
|
||||
},
|
||||
{
|
||||
"branch": "feature/*",
|
||||
"purposeRich": "Kortlivade grenar per funktion, fix eller förbättring. Skapad från <code>develop</code>, fusioneras tillbaka till <code>develop</code> via en Pull begäran efter granskning."
|
||||
}
|
||||
],
|
||||
"calloutTitle": "Vad detta innebär för användare",
|
||||
"calloutBody": "Slutanvändare som spårar <code>main</code> får testade releaser. Användare som vill ha de senaste funktionerna tidigt - och inte har något emot enstaka grova kanter - kan följa <code>develop</code>. Nya funktioner passerar alltid genom <code>develop</code> först; ingenting når <code>main</code> utan att gå igenom den cykeln."
|
||||
},
|
||||
"workflow": {
|
||||
"heading": "Arbetsflöde för pull requests",
|
||||
"intro": "Från idé till fusion i fem steg:",
|
||||
"step1Lead": "<strong>Skapa en funktionsgren från <code>develop</code></strong>:",
|
||||
"step1Code": "git clone https://github.com/MacRimi/ProxMenux.git\ncd ProxMenux\ngit checkout develop\ngit pull origin develop\ngit checkout -b feature/your-feature-name",
|
||||
"step1Trail": "Använd ett beskrivande grennamn: <code>feature/zfs-arc-tuning</code>, <code>feature/fix-iommu-detection</code>, <code>feature/add-tailscale-script</code>.",
|
||||
"step2Lead": "<strong>Arbeta med ändringarna och skicka upp grenen:</strong>",
|
||||
"step2Code": "# Make your changes, then:\ngit add scripts/...\ngit commit -m \"Add ZFS ARC tuning script\"\ngit push -u origin feature/your-feature-name",
|
||||
"step3": "<strong>Öppna en pull request mot <code>develop</code></strong>, inte mot <code>main</code>. Kontrollera på GitHub att basgrenen är <code>develop</code>. Beskriv vad skriptet gör och ändrar och vilka Proxmox VE-versioner det testats på.",
|
||||
"step4": "<strong>Efter granskning slås ändringarna samman i <code>develop</code>.</strong> En underhållare granskar kodkvalitet, skripthuvud och gränssnittets två faser. Om ändringar begärs skickar du fler incheckningar till samma gren; PR:n uppdateras automatiskt.",
|
||||
"step5": "<strong>Stabila utgåvor förs från <code>develop</code> till <code>main</code>.</strong> Vid utgivning flyttas <code>main</code> fram till <code>develop</code> med fast-forward och taggas. Ditt bidrag ingår i nästa stabila version."
|
||||
},
|
||||
"scriptHeader": {
|
||||
"heading": "Skripthuvud: metadata och beskrivning",
|
||||
"intro": "Varje ProxMenux-skript börjar med två intilliggande kommentarsblock som bildar skripthuvudet. <strong>Båda krävs</strong>: de anger författare och syfte utan att läsaren behöver gå igenom själva koden.",
|
||||
"bullets": [
|
||||
"<strong>Övre blocket: metadata.</strong> Författare, valfria GitHub-/stödlänkar, underhållare, upphovsrätt, licens, version och uppdateringsdatum. Här ges också <em>erkännande åt bidragsgivare</em>: för ett nytt skript anger du ditt namn och valfritt GitHub-sida och stödprofil, till exempel Ko-fi, GitHub Sponsors eller Buy Me a Coffee.",
|
||||
"<strong>Nedre blocket: beskrivning.</strong> Ett kort stycke på enkel engelska förklarar skriptet. Det läses <em>före</em> koden och ska på egen hand klargöra syfte, huvudåtgärder, berörda resurser och förutsättningar."
|
||||
],
|
||||
"licenseCalloutTitle": "Licenslinjen är fast - GPL-3.0",
|
||||
"licenseCalloutBody": "ProxMenux ges ut under <strong>GNU General Public License v3.0</strong>. Alla skript har samma licens. Raden <code>License</code> i skripthuvudet ska alltid ha GPL-3.0-hänvisningen i exemplet nedan; den väljs inte per skript. Genom att bidra godkänner du GPL-3.0: alla får läsa, ändra och sprida skriptet och ändringarna med samma licens. Fullständig text: <licenseLink>MacRimi/ProxMenux/LICENSE</licenseLink>.",
|
||||
"templateCode": "#!/bin/bash\n\n# ==========================================================\n# ProxMenux - A menu-driven script for Proxmox VE management\n# ==========================================================\n# Author : Your Name\n# GitHub : github.com/yourhandle\n# Sponsor : ko-fi.com/yourhandle\n# Maintainer : MacRimi\n# Copyright : (c) 2026 MacRimi & contributors\n# License : (GPL-3.0) (https://github.com/MacRimi/ProxMenux/blob/main/LICENSE)\n# Version : 1.0\n# Last Updated: DD/MM/YYYY\n# ==========================================================\n# Description:\n# Short paragraph explaining what the script does.\n# Mention the main actions (e.g. \"creates a ZFS pool\",\n# \"configures IOMMU and reboots\", \"imports an ISO into a VM\"),\n# the resources it touches, and any prerequisites the user\n# should be aware of before running it.\n# ==========================================================",
|
||||
"optionalNote": "Raderna <code>GitHub</code> och <code>Sponsor</code> är valfria. Utelämna dem om du inte vill publicera dem. Allt annat krävs.",
|
||||
"whyCalloutTitle": "Varför detta är viktigt",
|
||||
"whyCalloutBody": "Bidrag till öppen källkod är frivilligt arbete. Namn och eventuell stödlänk direkt i källkoden ger författaren synligt erkännande vid varje läsning, i stället för att döljas bakom projektet. Beskrivningen har ett annat syfte: den är det första en framtida underhållare eller nyfiken användare läser. En tydlig beskrivning avgör ofta om skriptet inger förtroende eller undviks."
|
||||
},
|
||||
"structure": {
|
||||
"heading": "Projektstruktur",
|
||||
"intro": "Var olika typer av skript finns i arkivet:",
|
||||
"treeCode": "scripts/\n├── menus/ # Top-level menu scripts (entry points)\n├── storage/ # Disk, storage and passthrough scripts\n├── share/ # NFS, Samba, local share scripts\n├── vm/ # VM creation and configuration scripts\n├── gpu_tpu/ # GPU / TPU passthrough scripts\n├── post_install/ # Post-install automation scripts\n├── backup_restore/ # Backup and restore scripts\n├── utilities/ # System utility scripts\n├── global/ # Shared helper libraries (sourced by other scripts)\n├── utils.sh # Shared utility functions and message helpers\n└── help_info_menu.sh # Interactive help and command reference",
|
||||
"outro": "Varje skript läser in <code>utils.sh</code> vid start med source för att få meddelandefunktioner, väntindikator, färgvariabler och översättningssystem. Gemensamma hjälpbibliotek i <code>scripts/global/</code> läses uttryckligen in av de skript som behöver dem."
|
||||
},
|
||||
"twoPhase": {
|
||||
"heading": "Regler för gränssnitt i två faser",
|
||||
"intro": "Detta är den viktigaste regeln i ProxMenux och den som oftast leder till ändringskrav i PR:er. Varje skript delas in i <strong>exakt två faser</strong>:",
|
||||
"headerPhase": "Fas",
|
||||
"headerPurpose": "syfte",
|
||||
"headerScreen": "Skärmtillstånd",
|
||||
"rows": [
|
||||
{
|
||||
"phaseRich": "<strong>Fas 1 — Urval</strong>",
|
||||
"purposeRich": "Samla varje användarbeslut. Kör något förberedande arbete som behövs (sonder, skanningar, kontroller).",
|
||||
"screenRich": "<code>dialog</code>-överlägg. Om en kontroll mellan två menyer tar mer än någon sekund, visa en <code>msg_info</code>-väntindikator så att användaren ser att skriptet inte hängt sig. Anropa sedan <code>stop_spinner</code> direkt före nästa dialogruta."
|
||||
},
|
||||
{
|
||||
"phaseRich": "<strong>Fas 2 - Utförande</strong>",
|
||||
"purposeRich": "Utför varje operation. Visa hela framstegshistorien som ackumuleras på skärmen.",
|
||||
"screenRich": "Synliga <code>msg_info</code>/<code>msg_ok</code>-meddelanden; aldrig <code>dialog</code>."
|
||||
}
|
||||
],
|
||||
"principle": "Principen är <strong>samla alla val först och kör sedan allt</strong>. Användaren ser först ordnade dialogmenyer (fas 1), sedan en loggliknande körningsvy (fas 2). Faserna blandas inte: inga dialogrutor mitt i körningen och inga förloppsmeddelanden under valet.",
|
||||
"phase1Heading": "Fas 1 - typiskt mönster",
|
||||
"phase1Code": "# Silent preparatory work between dialogs\nmsg_info \"$(translate \"Checking disk assignments...\")\"\nASSIGNED_TO=$(check_assignments \"$DISK\")\nstop_spinner # ← clears line silently, result saved in variable\n\n# Next dialog can now use ASSIGNED_TO\nif [ -n \"$ASSIGNED_TO\" ]; then\n dialog --yesno \"$(translate \"Disk already assigned. Continue?\")\" $UI_YESNO_H $UI_YESNO_W\nfi\n\n# Collect multiple decisions per item with parallel arrays\ndeclare -a DISK_LIST=()\ndeclare -a DISK_FORMAT_TYPES=()\ndeclare -a DISK_MOUNT_POINTS=()\nfor DISK in $SELECTED; do\n msg_info \"$(translate \"Analyzing disk...\")\"\n CURRENT_FS=$(lsblk -no FSTYPE \"$DISK\" | xargs)\n stop_spinner\n\n FORMAT=$(dialog --backtitle \"$BACKTITLE\" \\\n --title \"$(translate \"Select Filesystem\")\" \\\n --menu \"...\" $UI_SHORT_MENU_H $UI_SHORT_MENU_W $UI_SHORT_MENU_LIST_H \\\n \"ext4\" \"...\" \"xfs\" \"...\" \"btrfs\" \"...\" \\\n 2>&1 >/dev/tty)\n [ -z \"$FORMAT\" ] && continue\n\n DISK_LIST+=(\"$DISK\")\n DISK_FORMAT_TYPES+=(\"$FORMAT\")\ndone",
|
||||
"phase1RulesIntro": "<strong>Regler för fas 1:</strong>",
|
||||
"phase1Rules": [
|
||||
"Om en <code>msg_info</code>-väntindikator körs och du ska öppna en <code>dialog</code>- eller <code>whiptail</code>-meny, anropa först <code>stop_spinner</code>. Indikatorn kan inte samexistera med verktygens överlägg. Om ingen indikator är aktiv behövs inget anrop.",
|
||||
"Använd <code>show_proxmenux_logo</code> + <code>msg_title</code> + <code>msg_info</code> för att ge visuellt sammanhang åt längre åtgärder i fas 1, exempelvis en kontroll som tar minst fem sekunder. Funktionen rensar redan skärmen; anropa inte <code>clear</code> före den.",
|
||||
"Anropa inte <code>show_proxmenux_logo</code> mellan dialogmenyer när det saknas något att visa. Att rensa skärmen för en tom terminal ger bara visuellt brus.",
|
||||
"Lagra alla val och kontrollresultat i variabler eller parallella arrayer. Sammanfattningen visas i början av fas 2, inte i fas 1."
|
||||
],
|
||||
"phase2Heading": "Fas 2 - typiskt mönster",
|
||||
"phase2Code": "# ── PHASE 2 — EXECUTION ─────────────────────────────\nshow_proxmenux_logo\nmsg_title \"$(translate \"My Script Title\")\"\n\n# Recap Phase 1 preparatory results — show what was already done\nmsg_ok \"$(translate \"CT $CTID selected.\")\"\nmsg_ok \"$(translate \"Repositories verified.\")\"\nmsg_ok \"$(translate \"Disks to process: ${#DISK_LIST[@]}\")\"\n\n# Now execute operations\nfor i in \"${!DISK_LIST[@]}\"; do\n DISK=\"${DISK_LIST[$i]}\"\n FORMAT=\"${DISK_FORMAT_TYPES[$i]}\"\n\n msg_info \"$(translate \"Formatting\") $DISK $(translate \"as\") $FORMAT...\"\n mkfs.\"$FORMAT\" \"$DISK\" >/dev/null 2>&1\n msg_ok \"$(translate \"Formatted.\")\"\ndone\n\nmsg_ok \"$(translate \"Completed. ${#DISK_LIST[@]} disk(s) processed.\")\"\nmsg_success \"$(translate \"Press Enter to return to menu...\")\"\nread -r",
|
||||
"phase2Rules": "<strong>Regler för fas 2:</strong> börja med <code>show_proxmenux_logo + msg_title</code> och sammanfatta genast fas 1 som <code>msg_ok</code>-rader. Anropa aldrig <code>show_proxmenux_logo</code> igen, eftersom det raderar förloppshistoriken. Använd inte <code>dialog</code>; om ett val under körningen är oundvikligt, använd <code>whiptail</code> enligt nästa avsnitt."
|
||||
},
|
||||
"dialogVsWhiptail": {
|
||||
"headingRich": "När du ska använda <code>dialog</code> vs <code>whiptail</code>",
|
||||
"intro": "Båda verktygen ritar textbaserade gränssnitt men beter sig olika på skärmen. ProxMenux använder dem därför i två skilda faser.",
|
||||
"headerTool": "Verktyg",
|
||||
"headerWhen": "När du ska använda den",
|
||||
"headerEffect": "Effekt på skärmen",
|
||||
"rows": [
|
||||
{
|
||||
"toolRich": "<strong><code>dialog</code></strong>",
|
||||
"whenRich": "<strong>Alltid i fas 1.</strong> Alla interaktiva val, som VM, disk, filsystem eller bekräftelse av en åtgärd, använder <code>dialog</code>. Det är ProxMenux standardverktyg för gränssnitt.",
|
||||
"effectRich": "Tar över terminalen, rensar skärmen, ritar sitt överlägg och återställer föregående tillstånd när den stängs. Det fungerar i fas 1 eftersom inga användbara resultat visas ännu."
|
||||
},
|
||||
{
|
||||
"toolRich": "<strong><code>whiptail</code></strong>",
|
||||
"whenRich": "<strong>Bara i fas 2, när det är oundvikligt.</strong> Ett typiskt fall är en omstartsfråga när körningen är klar. Använd inte <code>whiptail</code> för att fråga ”fortsätt?” mitt i körningen; det beslutet skulle ha fattats i fas 1.",
|
||||
"effectRich": "Ett lättare överlägg som <em>inte</em> rensar terminalens innehåll. Historiken från <code>msg_ok</code>/<code>msg_info</code> i fas 2 syns bakom dialogrutan. Därför passar det när förlopp redan visas på skärmen."
|
||||
}
|
||||
],
|
||||
"calloutTitle": "Varför uppdelningen är viktig",
|
||||
"calloutBody": "Om du anropar <code>dialog</code> mitt i fas 2 försvinner alla <code>msg_ok</code>-rader användaren har följt. Det synliga händelseförloppet raderas. <code>whiptail</code> undviker det. Regeln bevarar alltså användarens bild av vad skriptet hittills har gjort.",
|
||||
"rebootHeading": "Omstartsfråga: det typiska whiptail-fallet i fas 2",
|
||||
"rebootIntro": "Om ett skript kan kräva omstart efter exempelvis aktivering av IOMMU eller ändrade kärnparametrar använder slutfrågan i fas 2 <code>whiptail</code>. Ha alltid en Nej-gren som säger att den berörda resursen inte ska användas före omstart:",
|
||||
"rebootCode": "if [[ \"$HOST_REBOOT_REQUIRED\" == \"yes\" ]]; then\n echo \"\"\n if whiptail --title \"$(translate \"Reboot Required\")\" --yesno \\\n \"\\n$(translate \"A host reboot is required before starting the VM. Reboot now?\")\" \\\n 13 78; then\n msg_warn \"$(translate \"Rebooting the system...\")\"\n reboot\n else\n echo \"\"\n msg_info2 \"$(translate \"Do not start the VM until the system has been rebooted.\")\"\n fi\nfi\n\nmsg_success \"$(translate \"Press Enter to return to menu...\")\"\nread -r"
|
||||
},
|
||||
"messageFunctions": {
|
||||
"heading": "Referens för meddelandefunktioner",
|
||||
"intro": "Alla finns i <code>utils.sh</code>. Använd dem som standard för synlig utdata så att skripten får ett enhetligt utseende. Om en ny funktion behövs, till exempel en allvarlighetsnivå eller layouthjälpare, föreslå den i din pull request. Den granskas och läggs till i <code>utils.sh</code> om den är användbar för fler skript.",
|
||||
"headerFunction": "Funktion",
|
||||
"headerWhen": "När man ska använda",
|
||||
"headerSpinner": "Förloppsindikator",
|
||||
"rows": [
|
||||
{
|
||||
"function": "msg_info \"text\"",
|
||||
"whenRich": "Operation pågår.",
|
||||
"spinner": "Börjar"
|
||||
},
|
||||
{
|
||||
"function": "stop_spinner",
|
||||
"whenRich": "Slutet av tyst förberedande arbete i fas 1 - dödar spinner, rensar linjen.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_ok \"text\"",
|
||||
"whenRich": "Operationen lyckades. Använd också för \"funktion aktiverad\" även när en omstart krävs.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_warn \"text\"",
|
||||
"whenRich": "Faktisk varning eller nedbrutet tillstånd.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_error \"text\"",
|
||||
"whenRich": "Allvarligt fel.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_info2 \"text\"",
|
||||
"whenRich": "Icke blockerande upplysning på en cyan informationsrad.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_success \"text\"",
|
||||
"whenRich": "Avslutande frågan ”Tryck Enter för att återgå” i slutet av fas 2.",
|
||||
"spinner": "Stopp"
|
||||
},
|
||||
{
|
||||
"function": "msg_title \"text\"",
|
||||
"whenRich": "Fet rubrik med inbyggda mellanrum. Används i början av fas 2.",
|
||||
"spinner": "—"
|
||||
},
|
||||
{
|
||||
"function": "show_proxmenux_logo",
|
||||
"whenRich": "Rensar skärmen och visar logotypen. Anropas <em>en gång</em> i början av fas 2.",
|
||||
"spinner": "—"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dialogConventions": {
|
||||
"heading": "dialogkonventioner",
|
||||
"bullets": [
|
||||
"Skicka alltid <code>--backtitle \"$BACKTITLE\"</code> till varje <code>dialog</code>- och <code>whiptail</code>-anrop. <code>$BACKTITLE</code> är alltid <code>\"ProxMenux\"</code>, satt en gång i skripthuvudet och aldrig överskrivet. Användaren ska alltid se projektnamnet som ram, inte skriptets egen titel.",
|
||||
"Omslut alltid rubriker och meddelanden med <code>$(translate \"...\")</code>.",
|
||||
"Omdirigera alltid <code>dialog</code>-utgången med <code>2>&1 >/dev/tty</code> - den fångade stdouten blir användarens val, medan dialogrutan själv drar på terminalen.",
|
||||
"Använd standard UI dimension variabler (<code>$UI_MENU_H</code>, <code>$UI_MSG_W</code>, etc.) för konsekvent storlek över skript.",
|
||||
"Kontrollera alltid tomma eller avbrutna val och hantera dem korrekt."
|
||||
],
|
||||
"exampleIntro": "Fullständigt exempel: skapa en VM-valmeny och hantera avbrott.",
|
||||
"exampleCode": "# 1) Build the list of VMs as alternating \"ID NAME\" pairs.\n# dialog --menu expects this exact shape: tag1 description1 tag2 description2 ...\nVM_LIST=\"\"\nfor vmid in $(qm list | awk 'NR>1 {print $1}'); do\n vm_name=$(qm config \"$vmid\" | awk -F': ' '/^name:/ {print $2}')\n VM_LIST=\"$VM_LIST $vmid \\\"$vm_name\\\"\"\ndone\n\n# 2) Show the dialog. Captured stdout is the user's selection (the VMID).\nVMID=$(eval \"dialog --backtitle \\\"\\$BACKTITLE\\\" \\\n --title \\\"\\$(translate \\\"Select VM\\\")\\\" \\\n --menu \\\"\\$(translate \\\"Choose a VM from the list:\\\")\\\" \\\n \\$UI_MENU_H \\$UI_MENU_W \\$UI_MENU_LIST_H \\\n $VM_LIST \\\n 2>&1 >/dev/tty\")\n\n# 3) Empty result means the user pressed Cancel or Esc — exit silently.\nif [ -z \"$VMID\" ]; then\n exit 0\nfi\n\n# 4) Continue with the rest of Phase 1, knowing VMID is now set.\necho \"User selected VMID=$VMID\""
|
||||
},
|
||||
"translation": {
|
||||
"heading": "Översättningspolicy",
|
||||
"intro": "Alla användarsynliga strängar måste inslagas med funktionen <code>translate</code>. ProxMenux översätter dem automatiskt till alla språk - du skriver engelska, användaren läser sitt modersmål.",
|
||||
"code": "msg_ok \"$(translate \"Operation completed successfully.\")\"\nmsg_error \"$(translate \"Failed to start container\") $CTID.\"\ndialog --title \"$(translate \"Select Storage\")\" ...",
|
||||
"bullets": [
|
||||
"Skriv strängar på engelska - översättning hanteras automatiskt av bygget.",
|
||||
"Håll strängar koncis. Undvik inbäddningsvariabler inom långa meningar där det är möjligt.",
|
||||
"Översätt <strong>inte</strong> variabelnamn, sökvägar eller tekniska identifierare."
|
||||
]
|
||||
},
|
||||
"variableStyle": {
|
||||
"heading": "Regler för variabler och stil",
|
||||
"bullets": [
|
||||
"Använd <code>UPPER_CASE</code> för script-nivå variabler.",
|
||||
"Använd <code>lower_case</code> för lokala funktionsvariabler (deklarera med <code>local</code>).",
|
||||
"Sätt alla variabelexpansioner inom citattecken: <code>\"$VAR\"</code>, inte <code>$VAR</code>.",
|
||||
"Använd <code>[[ ]]</code> för villkor, inte <code>[ ]</code> (förutom där POSIX krävs).",
|
||||
"<code>show_proxmenux_logo</code> är det avsedda sättet att rensa skärmen: den rensar och visar projektlogotypen för att ge visuellt sammanhang. Anropa den en gång i början av fas 2, och valfritt före ett längre block med väntindikator i fas 1."
|
||||
],
|
||||
"standardNamesIntro": "Standardvariabla namn över hela projektet:",
|
||||
"standardNamesCode": "CTID # container ID\nVMID # virtual machine ID\nDISK # device path (e.g. /dev/sdb)\nPARTITION # partition path (e.g. /dev/sdb1)\nSTORAGE # Proxmox storage name\nMOUNT_POINT # filesystem mount path",
|
||||
"redirectHeading": "Omdirigera verktygsutgång under fas 2",
|
||||
"redirectIntro": "Fas 2 visar en logg med <code>msg_info → msg_ok</code>-rader. Om ett anropat verktyg, som apt, mkfs, qm, pct eller dd, skriver till stdout/stderr rullar dess utdata förbi meddelandena och stör överblicken. Användaren kan inte längre skilja skriptets förlopp från verktygets detaljer.",
|
||||
"withoutRedirectIntro": "<strong> Utan omdirigering</strong> - vad användaren ser om du inte hanterar ljudet:",
|
||||
"withoutRedirectCode": "ℹ Installing kernel package...\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following NEW packages will be installed:\n proxmox-kernel-6.5\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 12.5 MB of archives.\nAfter this operation, 47.2 MB of additional disk space will be used.\nGet:1 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 ...\n... [200+ more lines of dpkg output] ...\n✓ Kernel installed.",
|
||||
"withRedirectIntro": "<strong> Med omdirigering</strong> - hur samma operation ser ut när buller skickas någon annanstans:",
|
||||
"withRedirectCode": "ℹ Installing kernel package...\n✓ Kernel installed.\nℹ Configuring kernel command line...\n✓ Configured.\nℹ Refreshing boot loader...\n✓ Boot loader updated.",
|
||||
"twoPatternsIntro": "Två mönster att välja mellan:",
|
||||
"discardLead": "<strong>Kasta utdata</strong> när de inte behövs: snabbast och enklast.",
|
||||
"discardCode": "DEBIAN_FRONTEND=noninteractive apt-get install -y \"$package\" >/dev/null 2>&1",
|
||||
"logLead": "<strong>Skicka utdata till en loggfil</strong> när de kan behöva granskas senare, exempelvis vid en misslyckad installation eller för att se vad dpkg gjorde. Det är det föredragna mönstret för apt-åtgärder:",
|
||||
"logCode": "apt-get install -y \"$package\" >> \"$log_file\" 2>&1",
|
||||
"referenceOutro": "Skriptet <code>scripts/global/update-pve9_2.sh</code> är ett referensimplementering - varje <code>apt-get</code>-samtal skickar ut till en loggfil så att användaren bara ser det rena <code>msg_info → msg_ok</code>-flödet, medan loggen på disken låter dig rekonstruera exakt vad apt gjorde om något går fel."
|
||||
},
|
||||
"dosAndDonts": {
|
||||
"heading": "Do's och Don'ts",
|
||||
"doHeading": "✅ Gör",
|
||||
"doBullets": [
|
||||
"<code>stop_spinner</code> före en <code>dialog</code> i fas 1 endast när en <code>msg_info</code> spinner körs för närvarande.",
|
||||
"Fas 2 börjar med <code>show_proxmenux_logo + msg_title + msg_ok</code> för att sammanfatta resultaten från fas 1.",
|
||||
"Använd <code>msg_ok</code> för framgångsrikt aktiverade funktioner - även om en omstart krävs.",
|
||||
"Använd <code>whiptail</code> (inte <code>dialog</code>) för någon post-exekveringsprompt som måste visas i Fas 2.",
|
||||
"Ha alltid en Nej-gren i omstartsfrågor som säger att den berörda resursen inte ska startas före omstart.",
|
||||
"Bevakning VM-bara logik genom att kontrollera <code>[[ -f \"/etc/pve/qemu-server/$'{'vmid'}'.conf\" ]]</code> - controllers och NVMe PCIe kan inte läggas till LXC containrar.",
|
||||
"Använd <code>ensure_repositories</code> från <code>utils-install-functions.sh</code> istället för ovillkorlig <code>apt-get update</code>.",
|
||||
"Använd parallella arrayer i Fas 1 när varje objekt behöver flera dialoger."
|
||||
],
|
||||
"dontHeading": "❌ Gör inte",
|
||||
"dontBullets": [
|
||||
"Anropa <code>dialog</code> medan en väntindikator är aktiv.",
|
||||
"Hoppa över fas 1 recap i början av fas 2.",
|
||||
"Anropa <code>show_proxmenux_logo</code> en andra gång; det raderar allt fas 2 har visat.",
|
||||
"Använd <code>dialog</code> i Fas 2 (använd <code>whiptail</code> för det sällsynta oundvikliga fallet).",
|
||||
"Använda enbart <code>clear</code>.",
|
||||
"Omge <code>msg_title</code> med tomma <code>echo \"\"</code>-rader; mellanrum ingår redan.",
|
||||
"Använd <code>msg_warn</code> för att rapportera en framgångsrikt aktiverad funktion - det är en <code>msg_ok</code>.",
|
||||
"Kör ovillkorlig <code>apt-get update</code> - använd <code>ensure_repositories</code>."
|
||||
]
|
||||
},
|
||||
"submitting": {
|
||||
"heading": "Skicka in ditt bidrag",
|
||||
"steps": [
|
||||
"Skapa en fork av <code>MacRimi/ProxMenux</code> på GitHub och klona din fork.",
|
||||
"Skapa en <code>feature/*</code>-gren från <code>develop</code> (se <em>Grenmodell</em> ovan).",
|
||||
"Följ denna guide för nya eller modifierade skript. Skriv rubriken med ditt namn; lägg till den valfria sponsorlinjen om du vill.",
|
||||
"Testa ditt manus på en riktig Proxmox VE-instans - både Fas 1 (varje dialogruta) och Fas 2 (varje operation lyckas och rullar tillbaka rent på fel).",
|
||||
"Öppna en pull request <strong>mot <code>develop</code></strong> med en tydlig beskrivning: skriptets syfte, ändringar och den Proxmox VE-version som användes för tester.",
|
||||
"Se till att ditt bidrag respekterar <cocLink>Uppförandekod</cocLink>."
|
||||
],
|
||||
"securityOutro": "För säkerhetskänsliga problem följer du rapporteringsprocessen i <securityLink>SECURITY.md</securityLink> i stället för att öppna ett offentligt ärende."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Nästa steg",
|
||||
"items": [
|
||||
{
|
||||
"kind": "external",
|
||||
"url": "https://github.com/MacRimi/ProxMenux/blob/main/CONTRIBUTING.md",
|
||||
"label": "CONTRIBUTING.md (fullständig guide)",
|
||||
"tail": " — källan till sanning för varje konvention, inklusive avancerade hårdvarumönster."
|
||||
},
|
||||
{
|
||||
"kind": "internal",
|
||||
"href": "/docs/about/contributors",
|
||||
"label": "Bidragsgivare",
|
||||
"tail": " — personerna vars arbete har format ProxMenux-utgåvor. Detta är en annan sida."
|
||||
},
|
||||
{
|
||||
"kind": "internal",
|
||||
"href": "/docs/about/code-of-conduct",
|
||||
"label": "Uppförandekod",
|
||||
"tail": " - standarderna varje bidragsgivare går med på att följa."
|
||||
},
|
||||
{
|
||||
"kind": "external",
|
||||
"url": "https://github.com/MacRimi/ProxMenux/discussions",
|
||||
"label": "GitHub Discussions",
|
||||
"tail": " - fråga innan du bygger om du inte är säker på om en idé passar, eller att hitta medarbetare på en större funktion."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Bidragsgivare | ProxMenux-dokumentation",
|
||||
"description": "Ett erkännande till dem som gör ProxMenux möjligt: testare, granskare och utvecklare som bidrar till varje version.",
|
||||
"ogTitle": "Bidragsgivare | ProxMenux-dokumentation",
|
||||
"ogDescription": "Möt bidragsgivarna bakom ProxMenux."
|
||||
},
|
||||
"header": {
|
||||
"title": "Bidragsgivare",
|
||||
"description": "ProxMenux växer tack vare sina bidragsgivare. Den här sidan uppmärksammar deras arbete: att testa versioner före publicering, hitta regressioner, granska PR:ar och påverka utvecklingen av nya funktioner.",
|
||||
"section": "Om"
|
||||
},
|
||||
"beyond": {
|
||||
"title": "Utöver denna lista",
|
||||
"body": "Många fler bidrar genom felrapporter, funktionsförslag i Discussions, betatestning och översättningar. Den fullständiga listan över kodbidragsgivare finns i <extlink>GitHubs bidragsgivargraf</extlink>. Den här sidan lyfter fram dem som är mest aktiva med att testa och granska ProxMenux-versioner."
|
||||
},
|
||||
"testers": {
|
||||
"heading": "Testare och granskare",
|
||||
"intro": "De här personerna var bland de första att bidra till projektet. Deras tester, felrapporter och förbättringsförslag hjälpte ProxMenux att bli vad det är i dag.",
|
||||
"roles": {
|
||||
"testing": "Testning",
|
||||
"testingReviewer": "Testning och granskning"
|
||||
},
|
||||
"youtube": "YouTube"
|
||||
},
|
||||
"contribute": {
|
||||
"heading": "Vill du bidra?",
|
||||
"intro": "Alla bidrag är välkomna - kod, testning, design, dokumentation eller bara dela dina idéer:",
|
||||
"tester": "<strong>Testare</strong> — prova <beta>betakanalen</beta> och rapportera vad som fungerar och vad som inte fungerar före de stabila versionerna.",
|
||||
"developer": "<strong>Utvecklare</strong> — Bash, Next.js (TypeScript) och lite Python för översättningens virtuella miljö (venv). PR:ar välkomnas på <gh>GitHub</gh>.",
|
||||
"designer": "<strong>Designer</strong> — UI förbättringar, ikoner, skärmdumpar för dokumentation.",
|
||||
"ideas": "<strong>Idéer</strong> — öppna en tråd i <disc>GitHub Discussions</disc> innan du skapar ett ärende med ett funktionsförslag."
|
||||
},
|
||||
"coc": {
|
||||
"title": "Läs uppförandekoden först",
|
||||
"body": "Läs <coclink>uppförandekoden och rekommenderade arbetssätt</coclink> innan du skickar in kod eller rapporterar problem. Där beskrivs förväntningar på kodansvar, rapportering av säkerhetsbrister och omfattningen av PR:ar."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Vanliga frågor | ProxMenux-dokumentation",
|
||||
"description": "Vanliga frågor om ProxMenux: funktioner, installation, kompatibilitet från PVE 8, anpassning, uppdateringar, säkerhet, produktionsanvändning, systemfiler, bidrag och avinstallation.",
|
||||
"ogTitle": "Vanliga frågor | ProxMenux-dokumentation",
|
||||
"ogDescription": "Vanliga frågor om ProxMenux installation, kompatibilitet, säkerhet och hur du kan bidra."
|
||||
},
|
||||
"header": {
|
||||
"title": "Vanliga frågor",
|
||||
"description": "Vanliga frågor om ProxMenux: vad det är, vem det passar, installation, uppdatering, avinstallation, kompatibilitet, anpassning, säkerhet och bidrag. Om din fråga saknas, titta i GitHub Discussions eller skapa ett ärende.",
|
||||
"section": "Om"
|
||||
},
|
||||
"quickLinks": {
|
||||
"title": "Snabba länkar",
|
||||
"installationLabel": "Installation",
|
||||
"installationSuffix": " — installationskommandot på en rad och dess beroenden.",
|
||||
"introductionLabel": "Introduktion",
|
||||
"introductionSuffix": " — vad ProxMenux gör, på fem minuter.",
|
||||
"uninstallLabel": "Avinstallera",
|
||||
"uninstallSuffix": " — ren borttagning.",
|
||||
"issuesLabel": "GitHub Issues",
|
||||
"discussionsLabel": "Diskussioner"
|
||||
},
|
||||
"q1": {
|
||||
"question": "Vad är ProxMenux, och vad används det för?",
|
||||
"p1Rich": "<strong>ProxMenux</strong> är ett interaktivt menystyrt verktyg som gör <strong>Proxmox VE</strong> tillgängligt oavsett teknisk erfarenhet. Det förenklar körningen av kommandon och låter dig hantera systemet utan avancerade Linux-kunskaper.",
|
||||
"p2": "Mindre erfarna användare kan köra kommandon via strukturerade menyer och behöver skriva mindre i terminalen. Erfarna administratörer sparar steg i återkommande uppgifter som härdning efter installation, GPU-passthrough, import av OVF-VM:ar och rotation av ZFS-snapshots.",
|
||||
"p3": "Proxmox VE används ofta för:",
|
||||
"items": [
|
||||
"Virtualisering i företagsklass",
|
||||
"HomeLab och personliga molnlösningar",
|
||||
"Multimedieservrar, automatisering och mycket mer"
|
||||
]
|
||||
},
|
||||
"q2": {
|
||||
"question": "Hur installerar jag ProxMenux?",
|
||||
"p1Rich": "Följ <installlink>installationsguiden</installlink>. Kortfattat:",
|
||||
"stableInstall": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\"",
|
||||
"p2": "När installationen är klar startar du verktyget med:",
|
||||
"menuCmd": "menu"
|
||||
},
|
||||
"q3": {
|
||||
"question": "Är ProxMenux kompatibel med alla Proxmox-versioner?",
|
||||
"bodyRich": "<strong>Nej — ProxMenux kräver Proxmox VE 8 eller senare.</strong> PVE 7 och äldre stöds inte. Uppgradera först PVE 7 till 8.x enligt Proxmox officiella anvisningar. Därefter kan ProxMenux hantera steget från 8 till 9 via <upgradelink>Verktyg → Uppgradera PVE 8 till PVE 9</upgradelink>."
|
||||
},
|
||||
"q4": {
|
||||
"question": "Kan jag anpassa ProxMenux?",
|
||||
"p1Rich": "Uppdateringar kan skriva över lokala ändringar i huvudskripten, så undvik att redigera dessa filer direkt. Det här <em>kan</em> du anpassa:",
|
||||
"items": [
|
||||
"Konsolens välkomstbanner med verktyget <strong>FastFetch</strong> i menyn för efterinstallation.",
|
||||
"Vilka valfria komponenter installeras (Monitor, Fail2Ban, Lynis ...) - välj under installation eller via den relevanta menyn senare."
|
||||
]
|
||||
},
|
||||
"q5": {
|
||||
"question": "Hur uppdaterar jag ProxMenux?",
|
||||
"p1Rich": "När en ny version finns upptäcker ProxMenux den nästa gång du kör <code>menu</code> och erbjuder en uppdatering. Om du accepterar ersätts verktygets filer och konfiguration i den befintliga installationen. Du behöver inte ladda ned något manuellt.",
|
||||
"p2Rich": "Användare av den stabila versionen får stabila uppdateringar, och betaanvändare får betauppdateringar. När en stabil version släpps meddelar betan det nästa gång menyn öppnas och erbjuder automatiskt byte. Läs mer om <betalink>betaprogrammet</betalink>."
|
||||
},
|
||||
"q6": {
|
||||
"question": "Var kan jag rapportera problem eller föreslå funktioner?",
|
||||
"p1Rich": "Rapportera buggar i <issueslink>GitHub Issues</issueslink>. Beskriv stegen för att återskapa felet, felmeddelandet och vid behov Monitor-utdata från <code>journalctl -u proxmenux-monitor -n 50</code>.",
|
||||
"p2Rich": "För <strong>säkerhetsproblem</strong>: <strong>publicera inte detaljerna</strong>. Följ rutinen för ansvarsfull rapportering i <coclink>uppförandekoden och rekommendationerna</coclink>."
|
||||
},
|
||||
"q7": {
|
||||
"question": "Kan jag bidra till ProxMenux?",
|
||||
"p1Rich": "<strong>Absolut.</strong> ProxMenux är ett samarbetsprojekt med öppen källkod. Du kan bidra med kod (Bash, Next.js/TypeScript och översättningsverktyg i Python), tester, dokumentation, design eller idéer.",
|
||||
"item1Rich": "Diskutera idéer i <discusslink>GitHub Discussions</discusslink> innan du skapar en funktionsförfrågan.",
|
||||
"item2Rich": "Läs <coclink>uppförandekoden och rekommendationerna</coclink> innan du skickar en pull request.",
|
||||
"item3Rich": "På <contriblink>sidan för medverkande</contriblink> ser du vilka som för närvarande testar och granskar projektet."
|
||||
},
|
||||
"q8": {
|
||||
"question": "Ändrar ProxMenux kritiska systemfiler?",
|
||||
"p1Rich": "<strong>Installationen av ProxMenux lägger till följande komponenter.</strong>",
|
||||
"item1Rich": "Beroenden via apt: <code>dialog</code>, <code>curl</code>, <code>jq</code> och <code>git</code>. Översättningarna använder färdiga JSON-kataloger. Installationsprogrammet lägger inte till någon virtuell översättningsmiljö på värden.",
|
||||
"item2Rich": "Skriptträdet på <code>/usr/local/share/proxmenux/</code>.",
|
||||
"item3Rich": "Startkommandot i <code>/usr/local/bin/menu</code>.",
|
||||
"item4Rich": "Valfritt: Monitors systemd-tjänst <code>proxmenux-monitor.service</code>.",
|
||||
"p2Rich": "ProxMenux ändrar <em>inte</em> Proxmox centrala konfiguration om du inte uttryckligen begär det via en särskild meny. Nätverksreparationen redigerar till exempel <code>/etc/network/interfaces</code>, men först efter din bekräftelse och efter att en säkerhetskopia har skapats."
|
||||
},
|
||||
"q9": {
|
||||
"question": "Är det säkert att använda ProxMenux i produktion?",
|
||||
"bodyRich": "<strong>Ja.</strong> Eftersom ProxMenux bara ändrar Proxmox centrala filer på uttrycklig begäran kan det användas i produktionsmiljöer. Som med all automatisering bör du först testa i en kontrollerad miljö och ha säkerhetskopior innan du kör destruktiva åtgärder, till exempel uppgradering från PVE 8 till 9, diskformatering eller borttagning av en VM."
|
||||
},
|
||||
"q10": {
|
||||
"question": "Hur avinstallerar jag ProxMenux?",
|
||||
"p1Rich": "I ProxMenux: <strong>Inställningar → Avinstallera ProxMenux</strong>. Avinstallationen tar bort skriptträdet, startkommandot och Monitor-tjänsten samt, om du väljer det, utvalda beroenden. Den återställer <code>/root/.bashrc</code> och <code>/etc/motd</code> från säkerhetskopiorna som Post-Install skapade, om de finns (annars tas ProxMenux-raden bort ur MOTD).",
|
||||
"p2Rich": "Fullständiga instruktioner: <uninstalllink>Avinstallera ProxMenux</uninstalllink>."
|
||||
},
|
||||
"q11": {
|
||||
"question": "VirusTotal flaggar installationsadressen — är den säker?",
|
||||
"p1Rich": "Resultatet 1/95 från <em>Chong Lua Dao</em>, som rapporterades i ärende #162, bedömdes av projektansvarig som ett falsklarm. Installationsprogrammet startas med ett kommando som laddar ned och kör skriptet (<code>bash -c \"$(wget -qLO - …)\"</code>) och kan ladda ned <code>jq</code> från dess officiella GitHub-utgåva. Detta <em>beteende</em> kan utlösa heuristiska skannrar. Den historiska rapporten säger inget avgörande om alla framtida nedladdningar.",
|
||||
"p2Rich": "ProxMenux har helt öppen källkod och du kan granska installationsskriptet rad för rad: <scriptlink>install_proxmenux.sh</scriptlink>. Mer bakgrund finns i <issuelink>ärende #162</issuelink>."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Om projektet | ProxMenux-dokumentation",
|
||||
"description": "Om ProxMenux: projektmål, bidragsgivare, vanliga frågor och uppförandekod. Ett menystyrt hanteringsverktyg med öppen källkod för Proxmox VE 8+, utvecklat och underhållet av MacRimi tillsammans med en liten grupp testare och bidragsgivare.",
|
||||
"ogTitle": "Om projektet | ProxMenux-dokumentation",
|
||||
"ogDescription": "Om ProxMenux — ett menystyrt hanteringsverktyg med öppen källkod för Proxmox VE 8+."
|
||||
},
|
||||
"header": {
|
||||
"title": "Om",
|
||||
"description": "Projektinformation, vanliga frågor, bidragsgivare och uppförandekod. ProxMenux är ett menystyrt hanteringsverktyg med öppen källkod för Proxmox VE 8+, utvecklat och underhållet av MacRimi med hjälp av en liten grupp testare och bidragsgivare.",
|
||||
"section": "Om"
|
||||
},
|
||||
"callout": {
|
||||
"title": "Öppen källkod, utvecklad av gemenskapen",
|
||||
"body": "ProxMenux har GPL-3.0-licens och utvecklas öppet på GitHub. Varje skript kan granskas och varje ändring spåras. Felrapporter, idéer, kod och testning välkomnas."
|
||||
},
|
||||
"section": {
|
||||
"heading": "I detta avsnitt",
|
||||
"options": [
|
||||
{
|
||||
"icon": "HelpCircle",
|
||||
"href": "/docs/about/faq",
|
||||
"title": "FAQ",
|
||||
"description": "Vanliga frågor: vad ProxMenux är, installation, kompatibilitet, anpassning, uppdateringar, säkerhet, användning i produktion och avinstallation."
|
||||
},
|
||||
{
|
||||
"icon": "Users",
|
||||
"href": "/docs/about/contributors",
|
||||
"title": "Bidragsgivare",
|
||||
"description": "Ett erkännande till dem som gör ProxMenux möjligt: testare, granskare och utvecklare som bidrar till varje version."
|
||||
},
|
||||
{
|
||||
"icon": "ScrollText",
|
||||
"href": "/docs/about/code-of-conduct",
|
||||
"title": "Uppförandekod",
|
||||
"description": "Projektvärden, kodansvarsförväntningar och bidragsriktlinjer. Obligatorisk läsning innan du öppnar en PR eller rapport."
|
||||
}
|
||||
]
|
||||
},
|
||||
"involved": {
|
||||
"heading": "Bli involverad",
|
||||
"intro": "Tre ställen att engagera sig i projektet:",
|
||||
"cards": [
|
||||
{
|
||||
"href": "https://github.com/MacRimi/ProxMenux/issues/new",
|
||||
"title": "🐛 Rapportera en bugg",
|
||||
"description": "GitHub Issues — bifoga loggar och steg för att återskapa problemet."
|
||||
},
|
||||
{
|
||||
"href": "https://github.com/MacRimi/ProxMenux/discussions",
|
||||
"title": "💡 Föreslå en funktion",
|
||||
"description": "GitHub Discussions — dela idéer innan du öppnar en PR."
|
||||
},
|
||||
{
|
||||
"href": "https://github.com/MacRimi/ProxMenux/pulls",
|
||||
"title": "🔀 Skicka en PR",
|
||||
"description": "GitHub Pull Requests - läs uppförandekoden först."
|
||||
}
|
||||
]
|
||||
},
|
||||
"support": {
|
||||
"heading": "Stöd projektet",
|
||||
"introRich": "Om ProxMenux sparar tid åt dig är det enklaste sättet att hjälpa andra hitta det att <starlink>ge förrådet en ⭐ på GitHub</starlink>. Om du vill göra mer:",
|
||||
"kofiLabel": "Stöd på Ko-fi",
|
||||
"kofiOutro": " — Köper underhållaren en kaffe och håller utvecklingen på gång."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Skapa säkerhetskopior — interaktivt säkerhetskopieringsflöde | ProxMenux",
|
||||
"description": "Det interaktiva säkerhetskopieringsflödet i ProxMenux: två ingångspunkter (Scripts TUI-meny och Monitors webbgränssnitt), tre destinationer, två profillägen, ett gemensamt steg för tillfällig förberedelse och en bekräftelsedialog. Sidan beskriver matrisen med sex alternativ, standardprofilen och den anpassade profilen samt vad användaren ser från valet av säkerhetskopia tills arkivet sparas på destinationen.",
|
||||
"ogTitle": "ProxMenux Backup - skapa backup",
|
||||
"ogDescription": "Det interaktiva säkerhetskopieringsflödet med tre destinationer, två profiler och ett gemensamt steg för tillfällig förberedelse.",
|
||||
"twitterTitle": "Skapa backups | ProxMenux",
|
||||
"twitterDescription": "Interaktivt backupflöde med tre destinationer och två profillägen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Skapa backups",
|
||||
"description": "Det interaktiva säkerhetskopieringsflödet: välj en destination och en profil, granska bekräftelsen och följ hur arkivet sparas. De två ingångspunkterna använder samma backend och skapar identiska arkiv.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Två ingångspunkter, identisk funktionalitet",
|
||||
"body": "Scripts TUI och Monitors webbgränssnitt erbjuder <strong>exakt samma funktioner</strong>. Varje säkerhetskopia — manuell eller schemalagd — går genom samma valmatris (tre destinationer × två profiler) och anropar samma backendfunktion per cell (<code>_bk_pbs</code>, <code>_bk_borg</code> eller <code>_bk_local</code>). Arkiven som skapas via de två ingångspunkterna är identiska. Valet beror på vad man föredrar: TUI passar för SSH och skript; Monitor erbjuder musklick tillsammans med vyerna för aviseringar och löpande loggutdata."
|
||||
},
|
||||
"entryPoints": {
|
||||
"heading": "De två ingångspunkterna",
|
||||
"rows": [
|
||||
{
|
||||
"entry": "ProxMenux Scripts (TUI)",
|
||||
"path": "menu → Utilities → Host Config Backup",
|
||||
"detail": "Dialogbaserat flöde, SSH-vänligt. Huvudmenyn presenterar de sex alternativen direkt. Använder <code>backup_menu</code> i <code>backup_host.sh</code>."
|
||||
},
|
||||
{
|
||||
"entry": "ProxMenux Monitor (Webb UI)",
|
||||
"path": "Backups tab → Create backup",
|
||||
"detail": "Guidebaserat flöde. Samma sex alternativ visas i ett formulär med två steg (destination → profil). Samma backendfunktioner anropas via Flask-API:et."
|
||||
}
|
||||
]
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Manuella och schemalagda säkerhetskopior",
|
||||
"body": "Säkerhetskopior kan produceras i två lägen: <strong>manuellt</strong> (det interaktiva flöde som beskrivs på denna sida - användaren plockar en destination och en profil från en meny och följer hur arkivet sparas) eller <strong>schemalagt</strong> (ett obevakat jobb som körs på en timer i cron-stil och tillämpar bevarandeinställningarna för jobbet). Båda lägena stöder samma tre destinationer och samma två profiler, och båda är tillgängliga från båda ingångspunkterna - Scripts TUI-meny och Monitors Backups-flik. Planerade jobb använder samma backendfunktioner som manuellt flöde genom <code>run_scheduled_backup.sh</code>; de arkiv som produceras är oskiljbara.",
|
||||
"seeAlso": "Sidan schemalagda jobb täcker hela flödet, inklusive hur man skapar ett jobb, bifogar det till en befintlig PVE vzdump timer och konfigurerar retentionsvärdena.",
|
||||
"monitorAlt": "ProxMenux Monitor Backups-fliken som visar den nya schemalagda backup-dialogen med destination, profil, schema och fält för bevarande.",
|
||||
"monitorCaption": "Schemalagd säkerhetskopia — ProxMenux Monitor. Samma guidedialog som skapar en manuell säkerhetskopia har fält för schema och bevarande längst ner för obevakad körning."
|
||||
},
|
||||
"matrix": {
|
||||
"heading": "Matrisen med sex alternativ",
|
||||
"intro": "Valet avgör både vilken backend som körs och vilken strategi för sökvägsval som används. Se sidorna för respektive destination för konfigurationsdetaljer om varje cell.",
|
||||
"rows": [
|
||||
{
|
||||
"combo": "1",
|
||||
"destination": "PBS",
|
||||
"profile": "Standard",
|
||||
"action": "Laddar upp standardprofilen och de beständiga tilläggen till ett konfigurerat PBS-arkiv."
|
||||
},
|
||||
{
|
||||
"combo": "2",
|
||||
"destination": "Borg",
|
||||
"profile": "Standard",
|
||||
"action": "Skapar ett arkiv med standardprofilen plus beständiga tillägg i det valda Borg-förvaret."
|
||||
},
|
||||
{
|
||||
"combo": "3",
|
||||
"destination": "Lokal",
|
||||
"profile": "Standard",
|
||||
"action": "Skriver ett <code>.tar.zst</code>-arkiv med standardprofilen plus beständiga tillägg till det konfigurerade lokala målet."
|
||||
},
|
||||
{
|
||||
"combo": "4",
|
||||
"destination": "PBS",
|
||||
"profile": "Anpassad",
|
||||
"action": "Öppnar sökvägsväljaren före uppladdningen till PBS; användaren markerar sökvägar och kan lägga till nya."
|
||||
},
|
||||
{
|
||||
"combo": "5",
|
||||
"destination": "Borg",
|
||||
"profile": "Anpassad",
|
||||
"action": "Öppnar sökvägsväljaren innan Borg-arkivet skapas."
|
||||
},
|
||||
{
|
||||
"combo": "6",
|
||||
"destination": "Lokal",
|
||||
"profile": "Anpassad",
|
||||
"action": "Öppnar sökvägsväljaren innan det lokala <code>.tar.zst</code>-arkivet skrivs."
|
||||
}
|
||||
]
|
||||
},
|
||||
"profiles": {
|
||||
"heading": "Standard vs anpassad profil",
|
||||
"defaultTitle": "Standardprofil",
|
||||
"defaultBody": "Standardprofilen är den kurerade listan från <code>hb_default_profile_paths</code> (dokumenterad i <em>Hur det fungerar</em> under <em>Sökvägskategorier</em>) plus varje post i den filen med beständiga tillägg <code>/usr/local/share/proxmenux/backup-extra-paths.txt</code>. Användaren bekräftar destinationen och krypteringsalternativen och backupen fortsätter utan ytterligare sökvägsval.",
|
||||
"customTitle": "Anpassad profil",
|
||||
"customBody": "Den anpassade profilen öppnar en checklista med alla sökvägar i standardprofilen (omarkerade) och alla beständiga tillägg (förmarkerade, med prefixet <code>[+]</code>). Användaren markerar sökvägarna för denna körning och kan trycka på <em>Lägg till anpassad sökväg</em> för att lägga till en ny absolut sökväg. Sökvägar som läggs till här sparas i <code>backup-extra-paths.txt</code> så att framtida säkerhetskopior tar med dem automatiskt. Att avmarkera ett beständigt tillägg utesluter det från denna körning men tar inte bort det ur filen — borttagning görs separat via <em>Hantera anpassade sökvägar</em>, utanför säkerhetskopieringsflödet.",
|
||||
"customPickerAlt": "Checklista för anpassad profil med standardprofilens sökvägar (omarkerade) och beständiga tillägg (förmarkerade med prefixet [+]), samt knappar för att lägga till en sökväg eller bekräfta valet.",
|
||||
"customPickerCaption": "Anpassad profil — sökvägsväljaren. Standardprofilens sökvägar är omarkerade; beständiga tillägg är förmarkerade med prefixet [+]. Användaren markerar sökvägarna för denna körning.",
|
||||
"manageCustomAlt": "Menyn för att hantera anpassade sökvägar med listan över beständiga tillägg och alternativ för att lägga till, ta bort eller redigera dem.",
|
||||
"manageCustomCaption": "Hantera anpassade sökvägar — platsen där beständiga tillägg läggs till eller tas bort. Varje sökväg här ingår automatiskt i säkerhetskopior med standardprofilen utan att den anpassade sökvägsväljaren behöver öppnas."
|
||||
},
|
||||
"commonPipeline": {
|
||||
"heading": "Vad som går oavsett destination",
|
||||
"intro": "När profilen har fastställts kör varje backend samma tillfälliga förberedelsesteg innan den går vidare till sin egen uppladdningsmetod. <code>hb_prepare_staging</code> bygger arkivträdet i <code>/tmp/proxmenux-DESTINATION-stage.XXXXXX</code> och fyller vart och ett av de tre datablocken.",
|
||||
"steps": [
|
||||
{
|
||||
"step": "1",
|
||||
"name": "Sammanställning av rootfs",
|
||||
"detail": "Kör <code>rsync -a</code> för varje vald sökväg till <code>staging_root/rootfs/</code>. Databasen pmxcfs i <code>/var/lib/pve-cluster/config.db</code> sparas separat via <code>sqlite3 .backup</code> för att få en konsekvent ögonblicksbild utan att stoppa klustret; hjälpfilerna <code>.db-wal</code> / <code>.db-shm</code> utesluts från rsync. Om <code>sqlite3</code> saknas sparas i stället en fil <code>config.db.raw-fallback</code>, som återställningen använder som databas vid importen. Flyktiga undersökvägar (bash-historik, cache, papperskorg) utesluts från <code>/root/</code>. Sökvägar som saknas i källan registreras i <code>metadata/missing_paths.txt</code> utan att säkerhetskopieringen avbryts."
|
||||
},
|
||||
{
|
||||
"step": "2",
|
||||
"name": "Manifestgenerering",
|
||||
"detail": "<code>build_manifest.sh</code> samordnar de sex insamlingsmodulerna och skriver <code>manifest.json</code> i roten av den tillfälliga katalogen. Om en modul misslyckas får det berörda avsnittet ett dokumenterat tomt standardvärde; manifestet är fortfarande giltigt."
|
||||
},
|
||||
{
|
||||
"step": "3",
|
||||
"name": "Paketinventering",
|
||||
"detail": "<code>apt-mark showmanual</code> fångas verbatim i <code>metadata/packages.manual.list</code>. Komponentstatus är redan inne i det återställda rootfs (<code>components_status.json</code>) eftersom <code>/usr/local/share/proxmenux/</code> är en del av standardprofilen."
|
||||
},
|
||||
{
|
||||
"step": "4",
|
||||
"name": "Information om körningen",
|
||||
"detail": "<code>metadata/run_info.env</code> registrerar säkerhetskopieringens identitet - värdnamn, tidsstämpel, kärnversion - som används av återställningens kompatibilitetskontroll för att bestämma riktningen mellan kärnversionerna."
|
||||
},
|
||||
{
|
||||
"step": "5",
|
||||
"name": "Avisering (start)",
|
||||
"detail": "<code>hb_notify_lifecycle \"start\"</code> utlöses. Om aviseringar är konfigurerade i Monitor skickas händelsen <em>Säkerhetskopiering av värden startad</em> till användaren. Inget skickas om inga kanaler har konfigurerats."
|
||||
}
|
||||
]
|
||||
},
|
||||
"included": {
|
||||
"heading": "Vad går in och vad stannar ut",
|
||||
"intro": "Varje sökväg i den fastställda profilen (standard + beständiga tillägg + val i anpassat läge) kopieras med <code>rsync -aAXH --numeric-ids</code>. En delad uteslutningslista gäller för varje sökväg, och två kataloger har ytterligare sökvägsspecifika uteslutningar.",
|
||||
"globalTitle": "Globala uteslutningar (tillämpas varje väg)",
|
||||
"globalItems": [
|
||||
"<code>images/</code> - bilddumpar.",
|
||||
"<code>dump/</code> — utdata från vzdump.",
|
||||
"<code>tmp/</code> - tillfälliga filer.",
|
||||
"<code>*.log</code> loggfiler."
|
||||
],
|
||||
"rootTitle": "<code>/root/</code>-uteslutningar",
|
||||
"rootBody": "<code>/root/</code> ingår i standardprofilen så att användarens skript och konfiguration sparas i arkivet. Flyktiga undersökvägar utesluts:",
|
||||
"rootItems": [
|
||||
"<code>.bash_history</code>",
|
||||
"<code>.cache/</code>",
|
||||
"<code>tmp/</code>",
|
||||
"<code>.local/share/Trash/</code>"
|
||||
],
|
||||
"proxmenuxTitle": "<code>/usr/local/share/proxmenux/</code>-uteslutningar",
|
||||
"proxmenuxBody": "Denna katalog skickar användarstatus endast - <code>components_status.json</code>, preferenser, post-install cache. Kod som destinationen redan har från sin egen ProxMenux-installation utesluts så att en återställning inte överskriver målets nuvarande binärer med äldre:",
|
||||
"proxmenuxItems": [
|
||||
"<code>restore-pending/</code>, <code>scripts/</code>, <code>web/</code>",
|
||||
"<code>monitor-app/</code>, <code>monitor-app.*/</code>, <code>AppImage/</code>",
|
||||
"<code>images/</code>, <code>json/</code>",
|
||||
"<code>utils.sh</code>, <code>helpers_cache.json</code>",
|
||||
"<code>ProxMenux-Monitor.AppImage*</code>, <code>install_proxmenux*.sh</code>"
|
||||
],
|
||||
"notInProfileTitle": "Vägar utanför profilen",
|
||||
"notInProfileBody": "Allt som inte anges i <code>hb_default_profile_paths</code> och inte läggs till som en anpassad eller ihållande extra är inte en del av backupen. Anmärkningsvärda exempel:",
|
||||
"notInProfileItems": [
|
||||
"<strong>VM- och LXC-diskar</strong> - hanteras av <code>vzdump</code>, inte av denna funktion. Gästkonfigurationsfiler under <code>/etc/pve/nodes/*/qemu-server/*.conf</code> och <code>lxc/*.conf</code> fångas (de lever under <code>/etc/pve</code>) så återställningen reproducerar inventeringen; diskarna själva är återanslutna från en befintlig vzdump / PBS backup.",
|
||||
"<strong><code>/boot</code> och <code>/boot/efi</code></strong> - kärnbinärer, initramfs och UEFI ESP-partitionen regenereras av målets egen <code>update-initramfs</code>, <code>update-grub</code> eller <code>proxmox-boot-tool refresh</code> efter återställningen. Starthanteraren kopieras aldrig ordagrant.",
|
||||
"<strong>Filsystem för kärnan och systemets körning</strong> — <code>/proc</code>, <code>/sys</code>, <code>/dev</code> och <code>/run</code> är pseudofilsystem som skapas av kärnan och udev; de lagras inte beständigt någonstans.",
|
||||
"<strong>Paketbinärer under <code>/usr/bin</code>, <code>/usr/lib</code>, <code>/lib</code>, <code>/sbin</code></strong> - ominstallerad av målets APT från <code>packages.manual.list</code>.",
|
||||
"<strong><code>/var/log/</code>, <code>/var/tmp/</code>, <code>/var/cache/</code></strong> - per-värd runtime tillstånd, inte återställd.",
|
||||
"<strong><code>/home/USER</code></strong> - inte i standardprofilen. Lägg till det som en anpassad väg när ett system bär hemkataloger som måste överleva en återställning."
|
||||
],
|
||||
"customPathsTitle": "Hur anpassade vägar hanteras",
|
||||
"customPathsBody": "En anpassad väg som läggs till i anpassat läge eller kvarstår i <code>backup-extra-paths.txt</code> går igenom samma <code>rsync</code>-pipeline som standardprofilvägar. Globala uteslutningar gäller. Om den anpassade vägen råkar vara under <code>/root/</code> eller <code>/usr/local/share/proxmenux/</code> gäller fortfarande de vägspecifika uteslutningarna ovan. Varje arkiverad väg - standard eller anpassad - registreras i <code>metadata/paths_archived.txt</code>. Sökvägar som inte finns på källan registreras i <code>metadata/missing_paths.txt</code> utan att stoppa backupen."
|
||||
},
|
||||
"archiveStructure": {
|
||||
"heading": "Arkivstruktur",
|
||||
"intro": "Den tillfälliga katalog som varje backend skapar har samma struktur oavsett destination. Tar-arkivet, PBS-arkivet <code>.pxar</code> eller Borg-arkivet lagrar detta träd oförändrat.",
|
||||
"tree": "backup-[timestamp]/\n├── manifest.json # structured host state (kernel_params, hardware, storage, guests, components, source_host)\n├── metadata/\n│ ├── packages.manual.list # output of apt-mark showmanual\n│ ├── run_info.env # hostname, timestamp, kernel version, pmxcfs method\n│ ├── paths_archived.txt # exact list of paths that reached rootfs/\n│ └── missing_paths.txt # paths from the profile absent on source\n└── rootfs/\n ├── etc/ # /etc/pve, /etc/network, /etc/systemd/network, /etc/ssh, /etc/apt, ...\n ├── root/ # /root without volatile subpaths\n ├── usr/local/ # /usr/local/bin, /usr/local/sbin, /usr/local/share/proxmenux (state only)\n └── var/ # /var/lib/pve-cluster (config.db via sqlite3 .backup), /var/spool/cron/crontabs"
|
||||
},
|
||||
"confirmation": {
|
||||
"heading": "Sammanfattning för bekräftelse",
|
||||
"body": "Innan backend skriver något till destinationen visar ProxMenux en sammanfattande dialog med destinationen, backup-ID eller arkivnamn, krypteringstillstånd och listan över vägar som kopieras. Avbokning här avbryter backupen rent - staging katalogen tas bort av <code>trap</code> kroken på backend funktionen och ingen partiell data når destinationen."
|
||||
},
|
||||
"writing": {
|
||||
"heading": "Skriva till destinationen",
|
||||
"intro": "Efter bekräftelsen kör varje backend sitt eget skrivsteg. Sidorna för destinationerna beskriver hur det fungerar; de gemensamma delarna är loggen, sidofilen och aviseringen om slutförande.",
|
||||
"rows": [
|
||||
{
|
||||
"topic": "Loggfil",
|
||||
"detail": "Varje backend skriver sin fullständiga utdata till <code>/tmp/proxmenux-DESTINATION-backup-YYYYMMDD_HHMMSS.log</code> och, på misslyckande, erbjuder att öppna den i en rullande dialog. Loggsökvägen visas i sammanfattningen endast när filen har innehåll."
|
||||
},
|
||||
{
|
||||
"topic": "Sidecar (endast lokal)",
|
||||
"detail": "<code>hb_write_archive_sidecar</code> släpper en <code>*.proxmenux.json</code> bredvid det lokala arkivet så att Monitor identifierar det som en ProxMenux-värdbackup även efter flytt eller namnbyte."
|
||||
},
|
||||
{
|
||||
"topic": "Avisering (slutförd/misslyckad)",
|
||||
"detail": "<code>hb_notify_lifecycle \"complete\"</code> eller <code>\"fail\"</code> utlöses med varaktighet, arkivstorlek och — vid fel — den sista loggraden som ser ut att beskriva ett fel."
|
||||
}
|
||||
]
|
||||
},
|
||||
"finishedScreens": {
|
||||
"heading": "Vad en färdig backup ser ut",
|
||||
"intro": "Samma slutförandehändelse uppträder av båda ingångspunkterna. TUI skriver ett sammanfattande block till terminalen; Monitor's Backups-fliken visar körningen i arkivlistan med storlek, varaktighet och statusmärken.",
|
||||
"scriptsAlt": "ProxMenux Scripts TUI visar en färdig värd backup — destination, backup ID, snapshot väg, data storlek, varaktighet och kryptering tillstånd.",
|
||||
"scriptsCaption": "Avslutad backup - ProxMenux Scripts (TUI). Slutförande blocket trycker destinationen, backup-ID, vilket resulterar i snapshot eller arkivnamn, datastorlek, varaktighet och krypteringstillstånd.",
|
||||
"monitorAlt": "ProxMenux Monitor Backups-fliken som visar en färdig värdbackuppost med storlek, varaktighet, metodmärke och krypteringsindikator.",
|
||||
"monitorCaption": "Avslutad backup - ProxMenux Monitor Backups-fliken. Den nya säkerhetskopian visas i arkivlistan med destinationsmetodens märke, storlek, varaktighet och - när det är tillämpligt - krypteringslåsindikatorn."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Nästa steg",
|
||||
"items": [
|
||||
{
|
||||
"label": "Destinationer",
|
||||
"href": "/docs/backup-restore/destinations",
|
||||
"tail": " - konfigurationsdetaljer för Local, PBS och Borg."
|
||||
},
|
||||
{
|
||||
"label": "Planerade jobb",
|
||||
"href": "/docs/backup-restore/scheduled-jobs",
|
||||
"tail": " - kör samma backup obevakad på ett schema istället för interaktivt."
|
||||
},
|
||||
{
|
||||
"label": "Återställande",
|
||||
"href": "/docs/backup-restore/restoring",
|
||||
"tail": " — flödet som förbrukar vad denna sida producerar."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Återställning mellan kärnversioner — riktning, säkert urval och komplettering | ProxMenux",
|
||||
"description": "Hur ProxMenux återställer en värdbackup på ett mål som kör en annan stor kärnversion. Dokument hur riktningen av felmatchen detekteras, det säkra subsetfiltret som hoppar över boot-kritiska vägar när målet kör en nyare kärna än backupen, och den fyrfasiga kärnan-agnostiska hydrering som återanvänder användarjustering som IOMMU, VFIO IDs och anpassade cmdline tokens utan att kopiera kernel-tied filer verbatim.",
|
||||
"ogTitle": "ProxMenux Backup - cross-kernel restaurering och hydrering",
|
||||
"ogDescription": "Återställning mellan kärnversioner med riktningskontroll, säkert urval och kärnoberoende komplettering.",
|
||||
"twitterTitle": "Cross-kernel återställning | ProxMenux",
|
||||
"twitterDescription": "Hur ProxMenux hanterar en återställning när målkärnan skiljer sig från säkerhetskopiorna."
|
||||
},
|
||||
"header": {
|
||||
"title": "Återställning mellan kärnversioner",
|
||||
"description": "Hur ProxMenux hanterar en återställning när målvärden kör en annan kärna från den som spelas in i backupen - särskilt när målet kör en nyare kärna. Dokument hur skillnaden upptäcks, hur startkritiska vägar som kan bryta målet filtreras, och hur användarens egen konfiguration återanvänds utan att kopiera kärnbundna filer verbatim.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Varje kärnhopp hanteras annorlunda",
|
||||
"body": "En Proxmox värd kärna identifieras av en version sträng som <code>6.17.13-2-pve</code>. De två första siffrorna (<strong>6.17</strong> i det här exemplet) definierar den stora versionen: när de ändras kan vissa konfigurationsfiler skrivna för den tidigare kärnan inte vara giltiga på den nya. När återställningen upptäcker att backupen och målet har olika stora kärnversioner, flödesgrenarna baserat på hoppets riktning - oavsett om backupen är äldre eller nyare än målet - eftersom de två fallen har motsatta fellägen. Säkerhetskopior nyare än målet återställs rent as-is (bänk-verifierad över flera kärnhopp). Säkerhetskopior äldre än målet behöver ett filter för att undvika att bryta målets start med konfiguration skriven för en kärna som sedan dess har ändrats."
|
||||
},
|
||||
"directionCheck": {
|
||||
"heading": "Riktningskontroll",
|
||||
"intro": "Under kompatibilitetskontrollen jämför <code>hb_compat_check</code> kärnan registrerad i backupens manifest mot målets nuvarande kärna (<code>uname -r</code>) och klassificerar återställningen i ett av tre fall, lagrad i den interna variabla <code>HB_COMPAT_KERNEL_DIRECTION</code>:",
|
||||
"rows": [
|
||||
{
|
||||
"direction": "same",
|
||||
"condition": "Den stora kärnversionen matchar mellan backup och mål.",
|
||||
"behavior": "Det fullständiga återställningsflödet går oförändrat. Inget extra filter, ingen hydrering, inget särskilt meddelande i UI."
|
||||
},
|
||||
{
|
||||
"direction": "bk_newer",
|
||||
"condition": "Säkerhetskopians kärna är NYARE än målets (exempel: säkerhetskopian gjordes på 7.0 och målet kör 6.17).",
|
||||
"behavior": "Hela återställningsflödet körs oförändrat som vid <code>same</code>, utan filter. Rapporterade tester visade ominstallation av drivrutiner för målkärnan, fungerande IOMMU-konfiguration och start av VM:ar med GPU-genomkoppling."
|
||||
},
|
||||
{
|
||||
"direction": "bk_older",
|
||||
"condition": "Säkerhetskopians kärna är ÄLDRE än målets (exempel: säkerhetskopian gjordes på 6.17 och målet kör 7.0).",
|
||||
"behavior": "Det säkra filtret och fyrfasens hydrering nedan aktiveras. Återställningen fortsätter - målet reproducerar källan, men startkritiska filer kopieras inte."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whyBkNewerIsSafe": {
|
||||
"heading": "Varför en backup med en nyare kärna än målet återställer oförändrad",
|
||||
"body": "När återställningen går mot ett mål med en <em>äldre</em>-kärna än den som spelas in i backupen, är varje mekanism som återställningen beror på oberoende av kärnversionen. GPU-drivrutininstallatörer och andra PCI-enhetsinstallatörer upptäcker körkärnan med <code>uname -r</code> och sammanställer DKMS mot vad målet har. APT-paketet installerar binärer byggda för målets distribution. IOMMU cmdline tokens som <code>intel_iommu=on</code> är stabila över stora kärnversioner. Backupen bär vägar skrivna under en nyare kärna, men de vägar (modul svartlistor, GRUB standarder, initramfs config) är fortfarande giltig syntax på den äldre - kärnor ignorerar tokens de inte känner igen i stället för att misslyckas. Detta fall är likvärdigt i praktiken med en återställning av samma kärna, och ProxMenux behandlar det som sådant."
|
||||
},
|
||||
"safeSubsetFilter": {
|
||||
"heading": "Det säkra filtret (endast när målkärnan är nyare)",
|
||||
"intro": "När målkärnan är nyare än backupen, tillägger kompatibilitetskontrollen 16 boot-kritiska vägar från <code>hb_unsafe_paths_cross_version</code> till <code>RS_SKIP_PATHS</code>. Dessa vägar är uteslutna från återställningen eftersom att skriva en version av dem från en äldre kärna över ett mål som kör en nyare har orsakat kärnpaniker i bänkprov. Vägarna täcker fem kategorier:",
|
||||
"categoryRows": [
|
||||
{
|
||||
"category": "Starthanterare",
|
||||
"paths": "<code>/etc/default/grub</code>, <code>/etc/kernel</code>",
|
||||
"reason": "GRUB standarder knutna till den tidigare kärnordern, och proxmox-boot-tool tillstånd (cmdline, ESP UUID, krokar) som refererar vägar och identifierare från den äldre installationen."
|
||||
},
|
||||
{
|
||||
"category": "Kernel moduler och boot artefakter",
|
||||
"paths": "<code>/etc/modules-load.d</code>, <code>/etc/modprobe.d</code>, <code>/etc/initramfs-tools</code>",
|
||||
"reason": "Autoload listor som kan referera moduler döpt mellan kärn majors, modulalternativ som kanske inte gäller, initramfs krokar skrivna för den äldre kärnan."
|
||||
},
|
||||
{
|
||||
"category": "Lagring stack och filsystem identitet",
|
||||
"paths": "<code>/etc/fstab</code>, <code>/etc/multipath</code>, <code>/etc/iscsi</code>, <code>/etc/udev/rules.d</code>, <code>/etc/zfs</code>",
|
||||
"reason": "UUID som kanske inte finns på denna installation, multipath drivrutiner som ändras mellan kärnor, iSCSI parametrar som utvecklas, udev regler som kan binda till icke-existerande delsystem, ZFS tillstånd (<code>zpool.cache</code> + <code>hostid</code>) som kan låsa poolen som främmande."
|
||||
},
|
||||
{
|
||||
"category": "APT-källor",
|
||||
"paths": "<code>/etc/apt</code>",
|
||||
"reason": "APT-källor kan utlösa en nedgradering av kritiska paket på nästa uppgradering."
|
||||
},
|
||||
{
|
||||
"category": "systemd",
|
||||
"paths": "<code>/etc/systemd/system</code>, <code>/etc/systemd/journald.conf</code>, <code>/etc/systemd/logind.conf</code>, <code>/etc/systemd/system.conf</code>, <code>/etc/systemd/user.conf</code>",
|
||||
"reason": "Enhetsåsidosättningar och .wants-länkar bundna till en äldre huvudversion av systemd samt inställningsnycklar som kanske inte kan tolkas av en nyare version."
|
||||
}
|
||||
],
|
||||
"outroBody": "Filtret kör FÖRE bekräftelsedialogen så att användaren ser den exakta listan över vägar som kommer att hoppas, kategoriseras av förnuftet. Återställningen fortsätter fortfarande - allt annat (VM-/LXC-konfiguration, nätverk, /etc/pve, användare, cron, ProxMenux tillstånd, paket, drivrutiner, /root) återställs normalt."
|
||||
},
|
||||
"hydration": {
|
||||
"heading": "Kernel-agnostisk hydrering",
|
||||
"intro": "Filtret utelämnar startkritiska filer, så kompletteringen återställer utvalda inställningar: IOMMU-parametrar, VFIO-ID:n, eget <code>GRUB_TIMEOUT</code> och nvidia-spärrlistor. Den körs när målkärnan är nyare. Cmdline-nycklar på målet bevaras och saknade moduler läggs till. Tillåtna GRUB-värden och användarfiler kan ersätta avvikande målinnehåll. Upprepning med samma indata är idempotent.",
|
||||
"phaseRows": [
|
||||
{
|
||||
"phase": "1a - GRUB väg",
|
||||
"detail": "För GRUB-värdar (ext4/lvm). <code>_rs_hyd_grub</code> sammanfogar parametrar från säkerhetskopians <code>manifest.kernel_params.cmdline_extra</code> i målets <code>GRUB_CMDLINE_LINUX_DEFAULT</code> och hoppar över nycklar som redan finns. Därefter återställs tillåtna <code>GRUB_*</code>-nycklar (<code>GRUB_TIMEOUT</code>, <code>GRUB_TIMEOUT_STYLE</code>, <code>GRUB_DEFAULT</code>, <code>GRUB_TERMINAL</code>, <code>GRUB_DISABLE_OS_PROBER</code>, <code>GRUB_SERIAL_COMMAND</code>, <code>GRUB_GFXMODE</code>, <code>GRUB_GFXPAYLOAD_LINUX</code>) från säkerhetskopians <code>/etc/default/grub</code> när värdena skiljer sig från målets."
|
||||
},
|
||||
{
|
||||
"phase": "1b — systemd-boot / ZFS",
|
||||
"detail": "För systemd-boot (vanligen ZFS på roten). <code>_rs_hyd_kernel_cmdline</code> sammanfogar användarparametrar från <code>cmdline_extra</code> i målets <code>/etc/kernel/cmdline</code> och bevarar målets startparametrar <code>root=</code>, <code>boot=</code> och <code>rootflags=</code>."
|
||||
},
|
||||
{
|
||||
"phase": "2 — /etc/modules Sammanslagning",
|
||||
"detail": "<code>_rs_hyd_modules</code> Lägger till moduler från <code>manifest.kernel_params.modules_loaded_at_boot</code> som finns i den vita listan (<code>vfio</code>, <code>vfio_pci</code>, <code>vfio_iommu_type1</code>, <code>vfio_virqfd</code>, <code>kvm</code>, <code>kvm_intel</code>, <code>kvm_amd</code>, <code>nvidia</code>, <code>nvidia_drm</code>, <code>nvidia_modeset</code>, <code>nvidia_uvm</code>, <code>i915</code>, <code>xe</code>) och inte redan närvarande i målets mål <code>/etc/modules</code>."
|
||||
},
|
||||
{
|
||||
"phase": "3 — Kopiera tillåtna filer",
|
||||
"detail": "<code>_rs_hyd_files</code> kopierar användarskrivna filer från staging rootfs till det levande målet när innehållet skiljer sig. Whitelist täcker VFIO/nvidia/blacklist-filer under <code>/etc/modprobe.d</code>, <code>/etc/modules-load.d</code> och ProxMenux VFIO bind regel + nvidia udev regler under <code>/etc/udev/rules.d</code>. Distro-ägda filer (<code>pve-blacklist.conf</code>, <code>mdadm.conf</code>, <code>nvme.conf</code>) är avsiktligt uteslutna - deras innehåll utvecklas mellan releaser."
|
||||
},
|
||||
{
|
||||
"phase": "4 — Framtvinga ombyggnad efter uppstart",
|
||||
"detail": "De fyra faserna skriver direkt till det levande målet UTANFÖR den normala återställningsledningen. För att göra de sammanslagna tokens/modulerna/filerna träder i kraft vid nästa start, <code>HB_HYDRATION_APPLIED=1</code> förökar genom <code>plan.env</code> för att <code>apply_pending_restore.sh</code>, som tvingar <code>NEEDS_INITRAMFS=1</code> och <code>NEEDS_GRUB=1</code> Oavsett vad som fanns i appliceringslistan. Post-boot dispatcher regenererar sedan initramfs och uppdaterar bootloader."
|
||||
}
|
||||
]
|
||||
},
|
||||
"planCommit": {
|
||||
"heading": "Plan och commit — användaren ser först en förhandsvisning",
|
||||
"body": "Kompletteringen körs i två lägen. Innan bekräftelsedialogen kör ProxMenux <code>_rs_apply_bk_older_hydration</code> i <code>plan</code>-läge: det beräknar exakt vad som skulle slås samman, fyller <code>RS_HYDRATION_SUMMARY</code> med ett grönt block som listar varje åtgärd och returnerar utan att skriva. Bekräftelsedialogen visar att grönt block tillsammans med den gula listan över uteslutna sökvägar, så användaren ser I FÖRVÄG vad som kommer att återanvändas automatiskt. När användaren bekräftar, ProxMenux kör samma hjälpare i <code>commit</code> läge - samma faser, samma logik, men denna gång varje fas skriver till levande mål. Annullera bekräftelsedialogen lämnar målet orört."
|
||||
},
|
||||
"flowDiagram": {
|
||||
"heading": "Flödet när målkärnan är nyare än backupens",
|
||||
"intro": "Stegen som läggs till när målkärnan är nyare sitter inuti det normala återställningsflödet. Allt annat - varmt applicera, i väntan på förberedelse, paketinstallation, post-boot dispatcher - körs identiskt till en same-kernel restaurering.",
|
||||
"diagram": " ┌────────────────────────────────────────────────────────────┐\n │ hb_compat_check │\n │ HB_COMPAT_KERNEL_DIRECTION = bk_older │\n └───────────────────────────┬────────────────────────────────┘\n │\n ▼\n ┌────────────────────────────────────────────────────────────┐\n │ Add 16 boot-critical paths to RS_SKIP_PATHS │\n │ /etc/default/grub, /etc/kernel, /etc/modules-load.d, ... │\n └───────────────────────────┬────────────────────────────────┘\n │\n ▼\n ┌────────────────────────────────────────────────────────────┐\n │ _rs_apply_bk_older_hydration \"plan\" │\n │ Compute what would be merged │\n │ Populate RS_HYDRATION_SUMMARY (green block) │\n │ No writes │\n └───────────────────────────┬────────────────────────────────┘\n │\n ▼\n ┌────────────────────────────────────────────────────────────┐\n │ Confirmation dialog │\n │ Amber: paths skipped by safe-subset filter │\n │ Green: tokens/files reapplied by hydration │\n │ User accepts or cancels │\n └───────────────────────────┬────────────────────────────────┘\n │ (accepted)\n ▼\n ┌────────────────────────────────────────────────────────────┐\n │ _rs_apply_bk_older_hydration \"commit\" │\n │ Phase 1a/1b: merge cmdline tokens + GRUB keys │\n │ Phase 2: append modules to /etc/modules │\n │ Phase 3: copy whitelisted vfio/nvidia files │\n │ Set HB_HYDRATION_APPLIED=1 │\n └───────────────────────────┬────────────────────────────────┘\n │\n ▼\n ┌────────────────────────────────────────────────────────────┐\n │ Rest of the restore runs normally │\n │ _rs_apply hot (skips RS_SKIP_PATHS) │\n │ _rs_prepare_pending_restore (writes plan.env with │\n │ HB_HYDRATION_APPLIED=1) │\n │ packages.manual.list install │\n │ Reboot │\n │ apply_pending_restore.sh (forces NEEDS_INITRAMFS=1, │\n │ NEEDS_GRUB=1 because of the hydration flag) │\n │ apply_cluster_postboot.sh │\n │ update-initramfs -u -k all │\n │ update-grub / proxmox-boot-tool refresh │\n │ component --auto-reinstall │\n └────────────────────────────────────────────────────────────┘"
|
||||
},
|
||||
"concreteExamples": {
|
||||
"heading": "Konkreta exempel",
|
||||
"intro": "Kompletteringen är inte abstrakt - det ger observerbara, korrekta resultat för vanliga scenarier. Två exempel som hydrering hanterar automatiskt:",
|
||||
"rows": [
|
||||
{
|
||||
"scenario": "GPU-genomkoppling (VFIO)",
|
||||
"detail": "Källan hade <code>intel_iommu=on iommu=pt</code> i cmdline, <code>vfio</code>/<code>vfio_pci</code>/<code>vfio_iommu_type1</code> i <code>/etc/modules</code>, en <code>/etc/modprobe.d/vfio.conf</code> med <code>options vfio-pci ids=10de:2216</code> och en <code>/etc/modprobe.d/blacklist-nvidia.conf</code>. Hydration sammanfogar cmdline-tokens i målets GRUB eller kernel cmdline, appends vfio-modulerna till <code>/etc/modules</code> och kopierar de två användarskrivna modprobe-filerna. På nästa start är IOMMU aktiv, VFIO-moduler laddas, GPU är bunden till vfio-pci och VM kommer upp med genomgående arbete."
|
||||
},
|
||||
{
|
||||
"scenario": "Anpassade GRUB standarder",
|
||||
"detail": "Källan hade <code>GRUB_TIMEOUT=1</code> och <code>GRUB_DISABLE_OS_PROBER=true</code>. Hydration läser båda nycklarna från säkerhetskopieringens <code>/etc/default/grub</code>, ser att de skiljer sig från den färska installationens standarder och skriver om de två linjerna i målets fil (som lämnar allt annat, inklusive <code>GRUB_DISTRIBUTOR</code>, orörd)."
|
||||
}
|
||||
]
|
||||
},
|
||||
"callout": {
|
||||
"warningTitle": "Vad kompletteringen utelämnar när målkärnan är nyare",
|
||||
"warningBody": "Hydration återanvänder endast konfigurationen ProxMenux vet att vara säker över kärnversioner: IOMMU-tokens, VFIO-ID, vitlistade GRUB-nycklar och moduler från en fast lista (<code>vfio*</code>, <code>nvidia*</code>, <code>i915</code>, <code>xe</code>, <code>kvm*</code>). Allt utanför den uppsättningen - anpassade initramfs krokar under <code>/etc/initramfs-tools/hooks/</code>, icke-vitlistade filer under <code>/etc/modprobe.d/</code>, användarskrivna systemd-enhetsåsidosättningar - förblir uteslutna. Anledningen är konkret: dessa filer kan ringa kärnintern gränssnitt (modul API, <code>/sys</code> layout, <code>udev</code> krokar) som ändras mellan stora versioner och tillämpar dem verbatim över den nyare kärnan kan förhindra att målet startar. När exakt reproduktion av startkedjan krävs måste återställningen köras på en värd med samma stora kärnversion som backup."
|
||||
},
|
||||
"codeReference": {
|
||||
"heading": "Där mekanismerna lever",
|
||||
"intro": "För utvecklare som vill spåra eller förlänga cross-kernel beteende:",
|
||||
"rows": [
|
||||
{
|
||||
"component": "Direktionsdetektering",
|
||||
"location": "<code>hb_compat_check</code> i <code>lib_host_backup_common.sh</code>. Sätter <code>HB_COMPAT_KERNEL_DIRECTION</code>."
|
||||
},
|
||||
{
|
||||
"component": "Sökvägslista för säkert urval",
|
||||
"location": "<code>hb_unsafe_paths_cross_version</code> i <code>lib_host_backup_common.sh</code>. Ger <code>path\\treason</code>-linjer som används av både CLI-filtret och Web endpoint <code>/api/host-backups/restore/prepare</code>."
|
||||
},
|
||||
{
|
||||
"component": "Hydrationsfaser",
|
||||
"location": "<code>_rs_hyd_grub</code>, <code>_rs_hyd_kernel_cmdline</code>, <code>_rs_hyd_modules</code>, <code>_rs_hyd_files</code> i <code>backup_host.sh</code>. Orkestrerad av <code>_rs_apply_bk_older_hydration</code>."
|
||||
},
|
||||
{
|
||||
"component": "Framtvingad ombyggnad efter uppstart",
|
||||
"location": "<code>apply_pending_restore.sh</code> läser <code>HB_HYDRATION_APPLIED</code> från <code>plan.env</code> och tvingar <code>NEEDS_INITRAMFS=1</code>/<code>NEEDS_GRUB=1</code>."
|
||||
},
|
||||
{
|
||||
"component": "Web Preview",
|
||||
"location": "<code>/api/host-backups/restore/prepare</code> i <code>flask_server.py</code>. Läser in hjälpbiblioteket, kör <code>_rs_apply_bk_older_hydration</code> i planläge, returnerar åtgärderna till webbmodalen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Vart ska man gå nästa",
|
||||
"items": [
|
||||
{
|
||||
"label": "Återställande",
|
||||
"href": "/docs/backup-restore/restoring",
|
||||
"tail": " — Den fullständiga återställningspipeline denna sidas mekanismer ansluter till."
|
||||
},
|
||||
{
|
||||
"label": "Hur det fungerar",
|
||||
"href": "/docs/backup-restore/how-it-works",
|
||||
"tail": " — manifestet och insamlingsrutinerna som skapar blocket <code>kernel_params</code> som kompletteringen läser."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Borg-mål — förvarstyper, SSH-autentisering, kryptering | ProxMenux",
|
||||
"description": "Borg-målet lagrar ProxMenux värdsäkerhetskopior i ett lokalt förvar, på en monterad extern disk eller på en fjärrserver via SSH. Beskriver sökordningen för borg-programmet, de fyra inledande SSH-nyckelalternativen, repokey-kryptering, sparade mål och lagringsregler per schemalagt jobb.",
|
||||
"ogTitle": "ProxMenux Backup - Borg destination",
|
||||
"ogDescription": "Så lagrar ProxMenux värdsäkerhetskopior i Borg-förvar med SSH-autentisering och repokey-kryptering.",
|
||||
"twitterTitle": "Borg som mål för säkerhetskopior | ProxMenux",
|
||||
"twitterDescription": "Lokala, USB och SSH-serverade Borg repositorier för värdbackups."
|
||||
},
|
||||
"header": {
|
||||
"title": "Borg",
|
||||
"description": "Borg-destinationen skriver värdbackups till ett Borg-förvar. Tre förvarstyper stöds: lokal filsystemväg, monterad extern disk eller fjärrserver via SSH. Chunk-nivå deduplicering över alla arkiv i förvaret och valfri repokey kryptering.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"aboutBorg": {
|
||||
"heading": "Vad Borg är",
|
||||
"body": "Borg (även stavat BorgBackup) är en öppen källkod som deduplicerar backupverktyg som upprätthålls av Borg Backup community. Det lagrar varje arkiv som en uppsättning av variabel-längd bitar inuti ett arkiv; bitar delas över arkiv så åter backa upp oförändrade data har nästan noll lagringskostnad. Borg är inte knuten till Proxmox - det är ett allmänt ändamål backupverktyg som används i många miljöer. ProxMenux använder den som en av de tre destinationerna för värdbackups; varje Borg-specifik mekanism som beskrivs på denna sida (förvarstyper, borg-serve över SSH, repokey kryptering, beskärning) är standard Borg beteende."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Blockbaserad deduplicering med lokala förvar eller förvar via SSH",
|
||||
"body": "Ett Borg-förvar lagrar block som delas mellan alla arkiv. Att säkerhetskopiera en oförändrad fil igen överför och lagrar därför inga nya data. ProxMenux kör <code>borg create</code> vid säkerhetskopiering och <code>borg extract</code> vid återställning. Förvaret kan ligga på samma filsystem som källan, på en monterad extern disk eller på en fjärrvärd via SSH."
|
||||
},
|
||||
"binarySourcing": {
|
||||
"heading": "Det körbara borg-programmet",
|
||||
"intro": "Borg är inte en bas beroende av ProxMenux installer. När en backup körs, <code>hb_ensure_borg</code> löser binären från fyra källor i ordning och returnerar den första som fungerar:",
|
||||
"rows": [
|
||||
{
|
||||
"priority": "1",
|
||||
"source": "Systemets <code>borg</code>",
|
||||
"detail": "Om värden redan har <code>borg</code> installerat via APT (<code>which borg</code> löser), den binära används."
|
||||
},
|
||||
{
|
||||
"priority": "2",
|
||||
"source": "Cache för tillståndskatalogen",
|
||||
"detail": "<code>/usr/local/share/proxmenux/borg</code> — sparat från en tidigare GitHub-nedladdning på värden."
|
||||
},
|
||||
{
|
||||
"priority": "3",
|
||||
"source": "Monitors AppImage-paket",
|
||||
"detail": "<code>/usr/local/share/proxmenux/monitor-app/usr/bin/borg</code> - den AppImage buntar en signerad borg-linux64. Detta är offline-säker väg: en värd utan internet har fortfarande en fungerande <code>borg</code>."
|
||||
},
|
||||
{
|
||||
"priority": "4",
|
||||
"source": "GitHub nedladdning",
|
||||
"detail": "<code>wget</code> mot <code>borg-linux64</code> URL under <code>github.com/borgbackup/borg/releases/</code>, verifierad mot en konstant SHA-256 i <code>lib_host_backup_common.sh</code> (<code>HB_BORG_LINUX64_SHA256</code>). På checksum missmatch binären kasseras och backupen aborter. Den nedladdade filen är cachad i tillståndskatalogen så efterföljande säkerhetskopior använder sökväg 2."
|
||||
}
|
||||
]
|
||||
},
|
||||
"repoTypes": {
|
||||
"heading": "Förvarstyper",
|
||||
"intro": "Förvarstypen väljs när ett mål läggs till. Varje typ löser sig till en annan adress som Borg förstår.",
|
||||
"rows": [
|
||||
{
|
||||
"type": "remote",
|
||||
"url": "ssh://USER@HOST/RPATH",
|
||||
"detail": "Repository bor på en fjärrserver som kör <code>borg serve</code>. Kräver en SSH-anslutning till den servern."
|
||||
},
|
||||
{
|
||||
"type": "usb",
|
||||
"url": "/mnt/MOUNTPOINT/borgbackup",
|
||||
"detail": "Repository bor på en monterad extern disk (typiskt USB). Monteringen löses via <code>hb_prompt_mounted_path</code>, som upptäcker, monterar eller formaterar USB-partitioner efter behov."
|
||||
},
|
||||
{
|
||||
"type": "local",
|
||||
"url": "/backup/borgbackup (any absolute path)",
|
||||
"detail": "Repository bor på en lokal katalog. Meningsfullt endast när målkatalogen är på en separat fysisk disk - ett förvar på samma disk som källan skyddar mot operatörsfel men inte mot diskfel."
|
||||
}
|
||||
]
|
||||
},
|
||||
"serverSetup": {
|
||||
"heading": "Förbereda Borg-servern (server sida)",
|
||||
"intro": "<code>remote</code> repository typ förväntar sig en fungerande Borg server tillgänglig över SSH. ProxMenux startar inte själva servern - den tillåter bara en nyckel mot ett befintligt konto på den. Det här avsnittet dokumenterar vad servern behöver innan ProxMenux kan ansluta.",
|
||||
"hostChoicesTitle": "Där servern kan leva",
|
||||
"hostChoicesBody": "Alla Linux värd med SSH åtkomst kvalificerar. Vanliga inställningar:",
|
||||
"hostChoicesItems": [
|
||||
"En dedikerad NAS eller backup box (Debian, Ubuntu, TrueNAS SCALE med ett skal).",
|
||||
"En LXC-behållare inuti en Proxmox-nod. Litet fotavtryck, isolerat från värden som kör säkerhetskopiorna.",
|
||||
"En annan Proxmox värd på samma LAN, eller en VM var som helst nås över SSH."
|
||||
],
|
||||
"lxcWarningTitle": "LXC som Borg server",
|
||||
"lxcWarningBody": "Om Borg-servern körs i en LXC kräver generate-auto ett konto som tillåter SSH-inloggning med lösenord när nyckeln installeras. Annars används manuell nyckelinstallation eller alternativet generate-pct via PVE-värden.",
|
||||
"requirementsTitle": "Krav på servern",
|
||||
"requirementsRows": [
|
||||
{
|
||||
"requirement": "Körbart borg-program på <code>/usr/bin/borg</code>",
|
||||
"detail": "<code>command=\"/usr/bin/borg serve ...\"</code>-linjen ProxMenux skriver i <code>authorized_keys</code> hårdkoder som väg. Installera via APT (<code>apt install borgbackup</code>) sätter den där. En fristående binär måste symlinkeras till <code>/usr/bin/borg</code>."
|
||||
},
|
||||
{
|
||||
"requirement": "Ett dedikerat användarkonto (vanligtvis <code>borg</code>)",
|
||||
"detail": "Äger förvarskatalogen och tar emot inkommande SSH-anslutningar. Behöver inte sudo eller skal åtkomst - authorized_keys-linjen inaktiverar interaktiva skal ändå."
|
||||
},
|
||||
{
|
||||
"requirement": "En skrivbar repository katalog",
|
||||
"detail": "Den väg som operatören ger ProxMenux (till exempel <code>/backup/borgbackup</code>) måste finnas på servern och ägas av borganvändaren."
|
||||
},
|
||||
{
|
||||
"requirement": "SSH daemon accepterar borganvändaren",
|
||||
"detail": "<code>PubkeyAuthentication yes</code> (standard). Lösenordsautentisering behövs endast för en-shot <em>generate-auto</em>-flödet - efter att nyckeln är installerad kan servern inaktivera lösenord auth helt."
|
||||
}
|
||||
],
|
||||
"minimalSetupTitle": "Minimal serverkonfiguration",
|
||||
"minimalSetupBody": "På en Borg-server med Debian eller Ubuntu ger fyra kommandon som root en grundkonfiguration:",
|
||||
"minimalSetupCmd": "apt install borgbackup\nuseradd -m -d /home/borg -s /bin/bash borg\nmkdir -p /backup/borgbackup\nchown borg:borg /backup/borgbackup",
|
||||
"minimalSetupNote": "När servern är förberedd och SSH-lösenordsinloggning är tillgänglig kan <code>generate-auto</code> installera nyckeln via ett konto som får skriva i borg-användarens authorized_keys. Senare säkerhetskopior använder nyckeln, begränsad till <code>borg serve</code> på den konfigurerade sökvägen. Utan lösenordsinloggning installeras nyckeln manuellt eller via PVE-värden."
|
||||
},
|
||||
"sshAuth": {
|
||||
"heading": "SSH autentisering (klientsida)",
|
||||
"intro": "Remote Borg repositorier är tillgängliga över SSH. Anslutningen går från ProxMenux-värden till ett användarkonto på Borg-servern som kör <code>borg serve</code>. Den här användaren heter vanligtvis <code>borg</code>, inte admin/root-användaren av servern - borg-serve-kommandoraden låser anslutningen till den specifika förvaringsbanan (se de viktigaste strategierna nedan).",
|
||||
"strategiesTitle": "SSH-nyckelalternativ",
|
||||
"strategiesIntro": "När ett fjärrmål läggs till frågar ProxMenux efter SSH-användare, värd, port och fjärrsökväg och erbjuder fyra autentiseringsval. Alternativet generate-pct erbjuds om lösenordsautentisering nekas. Lägena beskrivs nedan:",
|
||||
"strategyRows": [
|
||||
{
|
||||
"mode": "generate-auto",
|
||||
"label": "Rekommenderas",
|
||||
"detail": "ProxMenux skapar eller återanvänder ett ed25519-nyckelpar på <code>~/.ssh/borg_proxmenux_HOST_ed25519</code> och använder <code>sshpass</code> för att testa inloggningen och installera den offentliga nyckeln i <code>~borg/.ssh/authorized_keys</code>. Lösenordet tillhör ett konto som får skriva i filen, oftast root eller borg. Det används under installationen och sparas inte."
|
||||
},
|
||||
{
|
||||
"mode": "generate-manual",
|
||||
"label": "Inget admin lösenord på denna värd",
|
||||
"detail": "ProxMenux genererar nyckelparet som ovan men visar hela <code>authorized_keys</code>-linjen för operatören att klistra in manuellt i servern. Admin lösenord lämnar aldrig ProxMenux värd eftersom det aldrig bett om."
|
||||
},
|
||||
{
|
||||
"mode": "generate-pct",
|
||||
"label": "Borg server är en PVE LXC",
|
||||
"detail": "Borg-servern körs inuti en LXC på en PVE-nod. ProxMenux tillåter nyckeln via <code>pct exec</code> från PVE-värden - root på PVE-värden skriver in i LXC <code>~borg/.ssh/authorized_keys</code> utan att behöva SSH i LXC själv."
|
||||
},
|
||||
{
|
||||
"mode": "existing",
|
||||
"label": "Använd en befintlig nyckel",
|
||||
"detail": "ProxMenux skannar <code>/root/.ssh/</code> och <code>$HOME/.ssh/</code> för parseable ed25519/RSA privata nycklar och listar dem. Operatören väljer en eller bläddrar manuellt till en icke-standardväg."
|
||||
},
|
||||
{
|
||||
"mode": "none",
|
||||
"label": "Standard SSH konfig",
|
||||
"detail": "Ingen anpassad nyckel - Borg är beroende av värdens standard SSH-konfiguration (vanligtvis <code>~/.ssh/id_rsa</code> eller en SSH-agent)."
|
||||
}
|
||||
],
|
||||
"restrictTitle": "authorized_keys-linjen",
|
||||
"restrictBody": "För varje skapad nyckel begränsar raden <code>authorized_keys</code> som ProxMenux skriver på servern nyckeln till följande borg-serve-anrop för den konfigurerade förvarssökvägen:",
|
||||
"restrictLine": "command=\"/usr/bin/borg serve --restrict-to-path RPATH\",restrict PUBKEY",
|
||||
"restrictNote": "<code>command=</code> tvingar varje SSH-session med hjälp av den här nyckeln för att bara köra borg-serve-kommandot; <code>restrict</code> inaktiverar portöverföring, agentöverföring, X11-överföring och PTY-tilldelning. Nyckeln kan inte användas för att öppna ett interaktivt skal på servern eller för att komma åt någon annan förvaringsväg, även om kontot har bredare privilegier."
|
||||
},
|
||||
"savedTargets": {
|
||||
"heading": "Sparade mål",
|
||||
"intro": "Ett sparat mål behåller förvarskonfigurationen under ett tydligt namn, så att uppgifterna inte behöver anges igen. Filer i ProxMenux tillståndskatalog:",
|
||||
"rows": [
|
||||
{
|
||||
"file": "borg-targets.txt",
|
||||
"content": "En linje per mål: <code>NAME|REPO|SSH_KEY_PATH|ENCRYPT_MODE</code>. Läs av <code>hb_collect_borg_configs</code> för att befolka målvalsmenyn."
|
||||
},
|
||||
{
|
||||
"file": "borg-pass-NAME.txt",
|
||||
"content": "Lösenfras för målet som anges som NAME ovan (<code>chmod 600</code>). Finns endast om repokey-kryptering har valts."
|
||||
}
|
||||
],
|
||||
"outro": "Det är valfritt att spara målet. Om frågan avböjs sparas ingen namngiven målkonfiguration, men en skapad SSH-nyckel tas inte bort. Om repokey aktiveras utan ett sparat mål lagrar ProxMenux ändå lösenfrasen i den äldre filen borg-pass.txt."
|
||||
},
|
||||
"encryption": {
|
||||
"heading": "Kryptering",
|
||||
"body": "Repositorier inleds med ett krypteringsläge via <code>hb_borg_init_if_needed</code>: den moderna <code>borg repo-create -e MODE</code> när den är tillgänglig, eller arvet <code>borg init --encryption=MODE</code>. ProxMenux avslöjar två lägen: <code>repokey</code> (standard) och <code>none</code>. I <code>repokey</code>-läget lagrar Borg krypteringsnyckeln inuti själva förvaret; tillgång kräver en passfras, som ProxMenux uppmanar till två gånger med match validering och lagrar i <code>borg-pass-NAME.txt</code> för sparade mål, annars i den äldre fil som beskrivs ovan. En obligatorisk bekräftelsedialog visas efter passfrasen sparas: passfrasen är det enda sättet att komma åt krypterade arkiv och förlora det gör varje arkiv i förvaret oåterkallelig."
|
||||
},
|
||||
"runtimeEnv": {
|
||||
"heading": "Runtime miljö",
|
||||
"intro": "ProxMenux exporterar följande miljövariabler innan <code>borg</code>. De konfigurerar anslutningen och låser upp förvaret utan att bädda in hemligheter i kommandoraden.",
|
||||
"rows": [
|
||||
{
|
||||
"var": "BORG_RSH",
|
||||
"value": "ssh -i SSH_KEY_PATH -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new [-p PORT]",
|
||||
"purpose": "Fjärrskalskommandot som Borg använder för SSH-förvar. En vald nyckel lägger till identitetsalternativen. När ett mål läggs till med en annan port än standard lägger ProxMenux även till -p PORT; sparade mål, schemalagda jobb och Monitor använder i stället porten i ssh://-URL:en. Utan egen nyckel, och för ett nytt mål med standardport, lämnas variabeln osatt och Borg använder värdens SSH-konfiguration."
|
||||
},
|
||||
{
|
||||
"var": "BORG_PASSPHRASE",
|
||||
"value": "(passfras från borg-pass-NAME.txt)",
|
||||
"purpose": "låser upp repokey. Ange endast när målet använder <code>repokey</code>-kryptering. Aldrig visas i processargumentlistan."
|
||||
},
|
||||
{
|
||||
"var": "BORG_ENCRYPT_MODE",
|
||||
"value": "repokey | none",
|
||||
"purpose": "Används av <code>hb_borg_init_if_needed</code> när du startar ett förvar som ännu inte existerar. Ignorerad av <code>borg create</code> på befintliga repositorier."
|
||||
},
|
||||
{
|
||||
"var": "BORG_RELOCATED_REPO_ACCESS_IS_OK",
|
||||
"value": "yes",
|
||||
"purpose": "Undertrycker den interaktiva prompten Borg höjer när förvaringsadressen skiljer sig från webbadressen som den ursprungligen nåddes från (gemensamt efter ett monteringsnamn eller SSH-värd som nås via ny adress)."
|
||||
},
|
||||
{
|
||||
"var": "BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK",
|
||||
"value": "yes",
|
||||
"purpose": "Undertrycker den interaktiva prompten Borg höjer första gången ett okrypterat förvar nås från en ny klient."
|
||||
}
|
||||
]
|
||||
},
|
||||
"archiveFormat": {
|
||||
"heading": "Arkivnamn och retention",
|
||||
"intro": "Varje backup skapar ett nytt arkiv inuti förvaret.",
|
||||
"namePattern": "hostcfg-HOSTNAME-YYYYMMDD_HHMMSS",
|
||||
"retentionBody": "För schemalagda jobb kör <code>run_scheduled_backup.sh</code> <code>borg prune</code> mot förvaret efter varje framgångsrik backup med lagringsvärdena konfigurerade på jobbet (<code>--keep-last</code>, <code>--keep-daily</code>, <code>--keep-weekly</code>). Interaktiva säkerhetskopior inte beskär."
|
||||
},
|
||||
"restoreAccess": {
|
||||
"heading": "Hämta vid återställning",
|
||||
"body": "Återställningsflödet listar arkiv med <code>borg list REPO</code> och extraherar den valda med <code>borg extract REPO::ARCHIVE-NAME</code> i en staging katalog som <code>_rs_check_layout</code> matar till standardåterställning pipeline. För manuell hämtning utanför ProxMenux samma kommandon arbete; det extraherade trädet är den standard tre-payload layout som beskrivs i <em>Hur det fungerar</em>."
|
||||
},
|
||||
"references": {
|
||||
"heading": "Referenser",
|
||||
"intro": "Officiell Borg-dokumentation för komponenterna ProxMenux är beroende av.",
|
||||
"items": [
|
||||
{
|
||||
"label": "Borg dokumentation",
|
||||
"href": "https://borgbackup.readthedocs.io/",
|
||||
"tail": " - huvudingångspunkt som täcker koncept, distribution, snabbstart och varje kommando."
|
||||
},
|
||||
{
|
||||
"label": "borg create",
|
||||
"href": "https://borgbackup.readthedocs.io/en/stable/usage/create.html",
|
||||
"tail": " - kommandot ProxMenux åberopar varje backup, med alla stödda flaggor."
|
||||
},
|
||||
{
|
||||
"label": "Repository kryptering",
|
||||
"href": "https://borgbackup.readthedocs.io/en/stable/usage/init.html#encryption-mode",
|
||||
"tail": " - krypteringslägen Borg stöder, inklusive repokey som ProxMenux använder som standard."
|
||||
},
|
||||
{
|
||||
"label": "borg serve och driftsättning via SSH",
|
||||
"href": "https://borgbackup.readthedocs.io/en/stable/deployment/central-backup-server.html",
|
||||
"tail": " - hur man ställer in en central Borg-server som nås över SSH, inklusive borg-serve-kommandot och restrict-to-path-flaggan ProxMenux skriver i authorized_keys."
|
||||
},
|
||||
{
|
||||
"label": "borg prune",
|
||||
"href": "https://borgbackup.readthedocs.io/en/stable/usage/prune.html",
|
||||
"tail": " — lagringsreglerna bakom --keep-last / --keep-daily / --keep-weekly som ProxMenux tillämpar per schemalagt jobb."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Destinationer för säkerhetskopior — lokalt, Proxmox Backup Server, Borg | ProxMenux",
|
||||
"description": "Tre lagringsbackender tar emot samma säkerhetskopieringsinnehåll från ProxMenux: ett lokalt .tar.zst-arkiv på ett skrivbart filsystem, en PBS-säkerhetskopia i en Proxmox Backup Server-datastore eller ett Borg-arkiv i ett lokalt eller fjärranslutet Borg-arkivlager. Varje backend har egna egenskaper för komprimering, deduplicering, kryptering och nätverk.",
|
||||
"ogTitle": "ProxMenux mål för säkerhetskopior",
|
||||
"ogDescription": "Lokal, Proxmox Backup Server och Borg - tre lagringsbackends för samma värdbackup payload.",
|
||||
"twitterTitle": "Destinationer för ProxMenux-säkerhetskopior | ProxMenux",
|
||||
"twitterDescription": "Lokal arkiv, Proxmox Backup Server och Borg backends för värdbackups."
|
||||
},
|
||||
"header": {
|
||||
"title": "Destinationer",
|
||||
"description": "Tre lagringsbackends som stöds av ProxMenux Backup: lokal arkiv, Proxmox Backup Server (rekommenderas) och Borg. Varje får samma tre-payload arkiv; de skiljer sig i lagringsformat, deduplicering, krypteringsmodell och nätverkskrav.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Samma nyttolast, tre backends",
|
||||
"body": "Varje säkerhetskopia skapar samma tre datablock (rootfs, manifest, program). Det som skiljer destinationerna åt är hur innehållet lagras och hämtas inför en återställning. Varje backend är en separat funktion i <code>backup_host.sh</code> — <code>_bk_local</code>, <code>_bk_pbs</code>, <code>_bk_borg</code> — men alla tre använder samma tillfälliga förberedelsesteg (<code>hb_prepare_staging</code>) och samma återställningskod. Valet av destination påverkar bara skrivning och hämtning; det ändrar inte hur återställningen fungerar eller använder arkivet."
|
||||
},
|
||||
"comparison": {
|
||||
"heading": "Funktionsjämförelse",
|
||||
"intro": "Följande tabell listar de konkreta skillnaderna mellan de tre backends som de beter sig i ProxMenux idag. Alla värden beskriver observerat beteende av backend själv, inte redaktionella rekommendationer.",
|
||||
"rows": [
|
||||
{
|
||||
"feature": "Lagringsformat",
|
||||
"local": "Enkel <code>.tar.zst</code>-fil (eller <code>.tar.gz</code> om <code>zstd</code> är frånvarande).",
|
||||
"pbs": "PBS-säkerhetskopia (<code>.pxar</code>-block i datastoren).",
|
||||
"borg": "Borg arkiv inuti ett Borg-förvar (segmentfiler)."
|
||||
},
|
||||
{
|
||||
"feature": "Kompression",
|
||||
"local": "zstd (standardnivå) via <code>tar --zstd</code>. gzip fallback.",
|
||||
"pbs": "Hanteras av proxmox-backup-client. ProxMenux åsidosätter inte komprimeringsinställningarna.",
|
||||
"borg": "Borgs inbyggda komprimering. ProxMenux anropar borg create utan att åsidosätta komprimeringsinställningarna."
|
||||
},
|
||||
{
|
||||
"feature": "Deduplicering",
|
||||
"local": "Ingen. Varje backup är ett fullt oberoende arkiv.",
|
||||
"pbs": "Full chunk-nivå deduplicering över alla säkerhetskopior i databutiken.",
|
||||
"borg": "Full chunk-nivå deduplicering över alla arkiv i förvaret."
|
||||
},
|
||||
{
|
||||
"feature": "Kryptering i vila",
|
||||
"local": "Ingen (förlitar sig på skydd av filsystemnivå).",
|
||||
"pbs": "Valfri kryptering på klientsidan med en nyckelfil. När den är aktiverad laddas återställningsbloben upp som en separat säkerhetskopieringsgrupp.",
|
||||
"borg": "Valfri repokey kryptering (nyckel lagrad i repan, upplåst med en passfras)."
|
||||
},
|
||||
{
|
||||
"feature": "Bevarande / rensning",
|
||||
"local": "Tillämpas per schemalagt jobb via <code>KEEP_LAST</code>. Gamla arkiv tas bort tillsammans med sina sidofiler och körningsloggar. Interaktiva säkerhetskopior utför ingen rensning.",
|
||||
"pbs": "Tillämpas per schemalagt jobb via <code>proxmox-backup-client prune --keep-last / --keep-daily / --keep-weekly</code>. Interaktiva säkerhetskopior utför ingen rensning.",
|
||||
"borg": "Tillämpas per schemalagt jobb via <code>borg prune --keep-last / --keep-daily / --keep-weekly</code>. Interaktiva säkerhetskopior utför ingen rensning."
|
||||
},
|
||||
{
|
||||
"feature": "Nätverk",
|
||||
"local": "Ingen. Skriver till en lokal monteringspunkt (vanligtvis en intern disk eller en USB-enhet).",
|
||||
"pbs": "TCP till PBS-servern (standardport 8007). Kräver PBS-uppgifter + fingeravtryck.",
|
||||
"borg": "Lokal filsystemväg eller SSH tunnel till en avlägsen Borg värd."
|
||||
},
|
||||
{
|
||||
"feature": "Beroenden",
|
||||
"local": "<code>tar</code>, <code>zstd</code> (på Proxmox som standard).",
|
||||
"pbs": "Paketet <code>proxmox-backup-client</code> (medföljer Proxmox VE 8+).",
|
||||
"borg": "<code>borg</code> binär. Autotillhandahållen av ProxMenux från Monitor AppImage-paketet när det saknas."
|
||||
},
|
||||
{
|
||||
"feature": "Åtkomst för återställning",
|
||||
"local": "Alla värdar med tar+zstd kan extrahera arkivet. Inget PBS/Borg behövs.",
|
||||
"pbs": "Kräver <code>proxmox-backup-client</code>, PBS-inloggningsuppgifter och nyckelfilen (om säkerhetskopian är krypterad).",
|
||||
"borg": "Kräver <code>borg</code> + sökvägen till arkivlagret + passfrasen (om krypterad)."
|
||||
}
|
||||
],
|
||||
"captionCode": "feature",
|
||||
"captionLocal": "Lokal",
|
||||
"captionPbs": "Proxmox Backup Server (rekommenderas)",
|
||||
"captionBorg": "Borg"
|
||||
},
|
||||
"sameArchive": {
|
||||
"heading": "Arkivlayouten ändras inte med destinationen",
|
||||
"body": "Alla tre destinationerna innehåller samma struktur med <code>rootfs/</code> + <code>metadata/</code> + <code>manifest.json</code> som beskrivs i <em>Så fungerar det</em>. Ett uppackat lokalt <code>.tar.zst</code>-arkiv, ett <code>.pxar</code>-arkiv återställt från PBS och ett Borg-arkiv uppackat med <code>borg extract</code> ger samma katalogträd. Återställningskoden (<code>_rs_check_layout</code>, <code>_rs_apply</code>, <code>_rs_prepare_pending_restore</code>) läser samma tre datablock utan att behöva veta vilken destination de kommer från."
|
||||
},
|
||||
"extractStandalone": {
|
||||
"heading": "Extrahera en backup utanför ProxMenux",
|
||||
"intro": "Alla tre arkivformat kan läsas med standardverktyg utan ProxMenux installerat på läsvärden. Kommandona nedan producerar samma katalogträd som en återställning konsumerar internt.",
|
||||
"localCmd": "# From a local .tar.zst archive:\ntar --zstd -xf hostcfg-HOST-TIMESTAMP.tar.zst\n\n# From a .tar.gz fallback:\ntar -xzf hostcfg-HOST-TIMESTAMP.tar.gz",
|
||||
"pbsCmd": "# From a PBS backup (requires proxmox-backup-client):\nproxmox-backup-client restore \\\n --repository USER@REALM@HOST:DATASTORE \\\n host/hostcfg-HOST/BACKUP-TIME \\\n hostcfg.pxar /tmp/hostcfg\n\n# Add --keyfile KEY-PATH when the backup is encrypted.",
|
||||
"borgCmd": "# Från ett Borg-arkiv (kräver borg och passfrasen för krypterade arkivlager):\nborg extract REPO-PATH::ARCHIVE-NAME\n\n# Från ett fjärranslutet arkivlager via SSH:\nborg extract ssh://USER@HOST:PORT/REPO-PATH::ARCHIVE-NAME",
|
||||
"note": "Det extraherade trädet kan sedan inspekteras manuellt eller matas till en manuell återställning. Se de enskilda destinationssidorna för det exakta hämtningsflödet ProxMenux använder under huven."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Detaljer per destination",
|
||||
"intro": "Varje destination har sin egen sida som täcker konfigurationsflödet, on-disk-formatet och hämtningskommandot som används av återställningen.",
|
||||
"items": [
|
||||
{
|
||||
"label": "Lokalt arkiv",
|
||||
"href": "/docs/backup-restore/destinations/local",
|
||||
"tail": " — förkonfigurera ett lokalt mål, montera USB-enheter, skydd mot att arkivet inkluderar sig självt samt JSON-sidofilen som låter Monitor identifiera filen."
|
||||
},
|
||||
{
|
||||
"label": "Proxmox Backup Server (rekommenderas)",
|
||||
"href": "/docs/backup-restore/destinations/pbs",
|
||||
"tail": " — val av datastore, inloggningsuppgifter och certifikatets fingeravtryck, nyckelfilens livscykel, återställningspassfras samt uppladdning av återställningsbloben till PBS för återställning efter en nyinstallation."
|
||||
},
|
||||
{
|
||||
"label": "Borg",
|
||||
"href": "/docs/backup-restore/destinations/borg",
|
||||
"tail": " — lokala arkivlager och arkivlager via SSH, var Borg-binären hämtas (system / cache / Monitors AppImage-paket / GitHub), initiering av arkivlager, hantering av passfraser och SSH-nycklar för fjärranslutna arkivlager."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Lokalt arkivmål — tar.zst på ett filsystem eller en USB-enhet | ProxMenux",
|
||||
"description": "Det lokala säkerhetskopieringsmålet skriver ett enda .tar.zst-arkiv till en skrivbar katalog: en intern disk, en Proxmox-monteringspunkt, en NFS-delning eller en USB-enhet. Sidan beskriver konfigurationen, hur USB-enheter upptäcks och monteras, skyddet mot att skriva arkivet till en sökväg som säkerhetskopieras samt JSON-sidofilen som identifierar arkivet.",
|
||||
"ogTitle": "ProxMenux Backup - Lokal arkiv destination",
|
||||
"ogDescription": "Hur ProxMenux skriver lokala säkerhetskopior som .tar.zst arkiv och hur man konfigurerar destinationskatalogen eller USB-enheten.",
|
||||
"twitterTitle": "Lokal backup destination | ProxMenux",
|
||||
"twitterDescription": "Hur ProxMenux skriver lokala säkerhetskopior som .tar.zst arkiv på ett filsystem eller USB-enhet."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lokalt arkiv",
|
||||
"description": "Det lokala målet skriver ett enda komprimerat tar-arkiv till en skrivbar katalog på värden: en intern disk, ett monterat NFS- eller SMB-filsystem eller en USB-enhet.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "En fristående fil",
|
||||
"body": "En lokal säkerhetskopia producerar en enda <code>hostcfg-HOST-TIMESTAMP.tar.zst</code>-fil (eller <code>.tar.gz</code> när <code>zstd</code> är frånvarande). Filen innehåller hela arkivträdet - <code>manifest.json</code>, <code>metadata/</code> och <code>rootfs/</code> - och kan återställas på någon Proxmox värd med ProxMenux återställningsflöde, eller extraheras manuellt med <code>tar --zstd -xf</code> på alla Linux-system. Ingen server, ingen initiering av arkivlager, inget externt beroende. Detta är destinationen med den kortaste återhämtningsvägen när varken PBS eller Borg är tillgänglig."
|
||||
},
|
||||
"targetConfig": {
|
||||
"heading": "Konfigurera målkatalogen",
|
||||
"intro": "Det lokala målet är en <strong>enda sparad målkatalog</strong> — inte en lista. ProxMenux sparar användarens val i <code>/usr/local/share/proxmenux/local-target.conf</code> och läser det vid varje säkerhetskopiering. Om inget mål har konfigurerats används standardvärdet <code>HB_LOCAL_TARGET_DEFAULT = /var/lib/vz/dump</code> (samma katalog som Proxmox använder för sina egna <code>vzdump</code>-utdata). Målet konfigureras via <em>Konfigurera säkerhetskopieringsmål → Lokala mål</em>:",
|
||||
"options": [
|
||||
"<strong>Använd standard (<code>/var/lib/vz/dump</code>).</strong> Proxmox lokal lagring. Finns på varje Proxmox-installation; arkivet sitter bredvid vzdump-utdata och hämtas av fliken Monitor's Backups automatiskt.",
|
||||
"<strong>Ange en anpassad sökväg.</strong> Alla absoluta filsystemsökvägar kan användas: en NFS-montering, en SMB-delning monterad via <code>fstab</code>, ett särskilt ZFS-dataset eller en andra intern disk. ProxMenux kontrollerar att sökvägen finns och är en katalog innan valet sparas.",
|
||||
"<strong>Välj en USB-enhet.</strong> Öppnar USB-undermenyn (nedan), som upptäcker flyttbara enheter och erbjuder sig att montera eller formatera en."
|
||||
]
|
||||
},
|
||||
"usbFlow": {
|
||||
"heading": "USB-enhetsdetektering och montering",
|
||||
"intro": "USB-undermenyn listar partitioner på flyttbara enheter som rapporteras av <code>lsblk</code>. Varje partition visas med storlek, filsystemets etikett och aktuellt tillstånd. Tillståndet avgör vilken åtgärd ProxMenux erbjuder.",
|
||||
"statesTitle": "De tre enhetstillstånden",
|
||||
"stateRows": [
|
||||
{
|
||||
"state": "monterad",
|
||||
"shown": "Storlek · etikett · [fstype] · → /mount/point",
|
||||
"action": "Partitionen är redan monterad. Om den väljs sparas dess aktuella monteringspunkt som lokalt mål. Ingen ny montering utförs."
|
||||
},
|
||||
{
|
||||
"state": "ej monterad",
|
||||
"shown": "Storlek · etikett · [fstype] · (ej monterad — kommer att monteras)",
|
||||
"action": "Ett filsystem är närvarande men inte monterat. På bekräftelse kör ProxMenux <code>hb_mount_usb_partition</code>: skapar <code>/mnt/backup-LABEL</code> (eller en UUID-baserad väg om det inte finns någon etikett), monterar partitionen och sparar monteringspunkten som det lokala målet."
|
||||
},
|
||||
{
|
||||
"state": "tom",
|
||||
"shown": "Storlek · rå USB-disk — inget filsystem (kommer att FORMATERAS)",
|
||||
"action": "Enheten har inget filsystem. Denna destruktiva åtgärd skyddas av två bekräftelser. Först förklarar en Ja/Nej-dialog att disken raderas. Sedan måste användaren <strong>skriva den exakta enhetssökvägen</strong> (t.ex. <code>/dev/sdb</code>) innan ProxMenux skapar en ny GPT med en ext4-partition och monterar den."
|
||||
}
|
||||
],
|
||||
"notMountedFallback": "Om ingen USB-enhet upptäcks visar undermenyn ett vanligt inmatningsfält. Användaren kan ange valfri sökväg till en monteringspunkt; om sökvägen inte är en registrerad monteringspunkt visas en varning i en bekräftelsedialog innan processen fortsätter."
|
||||
},
|
||||
"safetyCheck": {
|
||||
"heading": "Säkerhetskontroll - destination inuti en backupbana",
|
||||
"body": "Innan du skriver arkivet, verifierar <code>_bk_local</code> att destinationskatalogen <strong>inte</strong> är en undersökväg till någon katalog som säkerhetskopieras. Ett vanligt misstag skulle vara att lägga till <code>/root</code> till profilen och välja <code>/root/backups</code> som destination — arkivet skulle då inkludera sig självt, antingen producera ett korrupt arkiv eller växa utan gräns tills skivan fylls. Kontrollen löser båda sökvägarna med <code>readlink -m</code>, jämför dem och, vid konflikt, avbryter säkerhetskopieringen med en dialogruta som namnger den motstridiga sökvägen och listar tre sätt att lösa den: välj en destination utanför den motstridiga sökvägen, ta bort den anpassade posten som innehåller destinationen, eller använd anpassat läge för att avmarkera den motstridiga sökvägen för denna körning."
|
||||
},
|
||||
"archiveFormat": {
|
||||
"heading": "Arkivformat och komprimering",
|
||||
"intro": "Utdatafilnamnet bäddar in källvärdnamnet och backup timestamp så att en katalog med flera arkiv sorterar kronologiskt och varje fil är självidentifierande.",
|
||||
"namePattern": "hostcfg-HOSTNAME-YYYYMMDD_HHMMSS.tar.zst",
|
||||
"compressionTitle": "Kompression",
|
||||
"compressionBody": "Huvudmetoden använder <code>tar --zstd -cf</code> — ett enda kommando som komprimerar med zstd:s standardnivå. Om <code>zstd</code> saknas på källan (ovanligt på Proxmox, men möjligt på minimala installationer) används <code>gzip</code>. Om <code>pv</code> finns vid denna reservmetod läggs en förloppsindikator till så att användaren ser arkivstorleken växa i realtid; utan <code>pv</code> används vanlig <code>tar -czf</code> utan förloppsutdata.",
|
||||
"sourceTitle": "Vad går in i arkivet",
|
||||
"sourceBody": "Kommandot tar anropas med <code>-C \"$staging_root\" .</code> och arkiverar därmed <strong>hela roten i den tillfälliga katalogen</strong>: <code>rootfs/</code>, <code>metadata/</code> och <code>manifest.json</code>. Alla tre datablocken ligger bredvid varandra högst upp i tar-arkivet. Uppackningen ger exakt samma träd som återställningskoden använder."
|
||||
},
|
||||
"sidecar": {
|
||||
"heading": "JSON-sidofilen",
|
||||
"intro": "Varje framgångsrik lokal backup producerar en följeslagare fil: <code>HOSTNAME-TIMESTAMP.tar.zst.proxmenux.json</code>, skriven bredvid arkivet av <code>hb_write_archive_sidecar</code>. Denna lilla JSON-fil låter ProxMenux Monitor identifiera arkivet som en ProxMenux-värdbackup även om det senare flyttas, bytas namn eller arkiveras någon annanstans.",
|
||||
"contentTitle": "Sidofilens innehåll",
|
||||
"contentBody": "Sidofilen lagrar schemaversionen, om säkerhetskopian kom från en interaktiv körning eller ett schemalagt jobb (<code>kind</code>), jobb-ID för schemalagda körningar, det profilläge som används (<code>default</code> eller <code>custom</code>), källvärdnamnet, den ursprungliga arkivbasnamnet, en tidsstämpel för skapandet i ISO-8601-format och arkivstorleken i byte.",
|
||||
"whyBody": "Monitors Backups-flik söker igenom konfigurerade lokala kataloger efter <code>*.proxmenux.json</code>-sidofiler, inte efter <code>*.tar.zst</code>-filer, eftersom en <code>.tar.zst</code> utan sidofil kanske inte är en ProxMenux-säkerhetskopia. Sökningen är snabb (JSON-filer är små) och kopplingen fungerar även efter namnbyte om sidofilen får ett motsvarande nytt namn."
|
||||
},
|
||||
"restoreAccess": {
|
||||
"heading": "Återställande från ett lokalt arkiv",
|
||||
"body": "ProxMenux återställningsflödet upptäcker lokala arkiv genom att skanna det konfigurerade lokala målet efter sidofiler och visa dem i arkivlistan. Valet av ett arkiv utlöser <code>_rs_check_layout</code>, som extraherar tarball i en staging katalog och bekräftar strukturen med tre datablock innan du fortsätter. För manuell utvinning utanför ProxMenux ger <code>tar --zstd -xf hostcfg-HOSTNAME-TIMESTAMP.tar.zst -C /tmp/hostcfg</code> samma träd som återställningskoden förbrukar."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox Backup Server destination - förvar, kryptering, återhämtning | ProxMenux",
|
||||
"description": "PBS-målet lagrar ProxMenux värdsäkerhetskopior som PBS-säkerhetskopior. Sidan beskriver automatisk identifiering från /etc/pve/storage.cfg, manuell PBS-konfiguration, uppladdning av .pxar, klientkryptering med nyckelfil och en valfri återställningskopia skyddad med lösenfras samt återställning av nyckeln från flera källor på en nyinstallerad värd.",
|
||||
"ogTitle": "ProxMenux Backup - Proxmox Backup Server destination",
|
||||
"ogDescription": "Hur ProxMenux skriver värdbackups till Proxmox Backup Server med klient-side keyfile kryptering och återhämtning escrow.",
|
||||
"twitterTitle": "PBS som mål för säkerhetskopior | ProxMenux",
|
||||
"twitterDescription": "Proxmox Backup Server som mål med nyckelfilskryptering och en återställningskopia skyddad med lösenfras."
|
||||
},
|
||||
"header": {
|
||||
"title": "Proxmox Backup Server",
|
||||
"description": "PBS-målet laddar upp hela förberedelsekatalogen som en enda .pxar-säkerhetskopia till ett Proxmox Backup Server-datalager. Klientkryptering med nyckelfil är valfri, liksom uppladdning av en återställningskopia av nyckelfilen, skyddad med lösenfras, bredvid varje säkerhetskopia.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"recommendedBadge": "Rekommenderad destination",
|
||||
"aboutPbs": {
|
||||
"heading": "Vad Proxmox Backup Server är",
|
||||
"body": "Proxmox Backup Server (PBS) är Proxmox egen backup server produkt, utvecklad och underhålls av samma team som författare Proxmox VE. Det är en dedikerad säkerhetskopieringsserver utformad för att ta emot säkerhetskopior från Proxmox VE-värdar (VM, LXCs och - via <code>proxmox-backup-client</code> - godtyckliga värdkataloger) med chunk-baserad deduplicering, klient-side-kryptering och lagringspolicy tillämpad server-side. ProxMenux använder PBS som en av de tre destinationerna för värdbackups; varje PBS-specifik mekanism som beskrivs på denna sida (backupgrupper, <code>.pxar</code> arkiv, <code>--backup-id</code>, keyfile kryptering) är standard PBS beteende."
|
||||
},
|
||||
"intro": {
|
||||
"title": "En säkerhetskopia per körning, deduplicering på blocknivå",
|
||||
"body": "En PBS-säkerhetskopia skapar en enda post i datalagret under säkerhetskopierings-ID:t <code>host/hostcfg-HOSTNAME/BACKUP-TIME</code>. Innehållet är ett <code>.pxar</code>-arkiv med samma struktur i tre delar som beskrivs i <em>Så fungerar det</em>. PBS deduplicerar block mellan alla säkerhetskopior i datalagret, så senare säkerhetskopior av samma värd överför och lagrar endast ändrade block. ProxMenux tillämpar själv lagringsreglerna för schemalagda jobb: efter varje lyckad körning kör <code>run_scheduled_backup.sh</code> kommandot <code>proxmox-backup-client prune</code> med <code>--keep-last</code> / <code>--keep-daily</code> / <code>--keep-weekly</code> och jobbets inställda värden."
|
||||
},
|
||||
"repoSelection": {
|
||||
"heading": "Repository urval",
|
||||
"intro": "ProxMenux upptäcker PBS repositorier från två källor på varje backup. Operatören väljer en från en enhetlig meny; valet bestämmer <code>HB_PBS_REPOSITORY</code>, <code>HB_PBS_SECRET</code> och <code>HB_PBS_FINGERPRINT</code> för körningen.",
|
||||
"sourceRows": [
|
||||
{
|
||||
"source": "Proxmox storage.cfg (identifierad automatiskt)",
|
||||
"path": "/etc/pve/storage.cfg + /etc/pve/priv/storage/NAME.pw",
|
||||
"content": "Varje <code>pbs:</code>-avsnitt i Proxmox egen lagringskonfiguration identifieras automatiskt. Server, datalager, användarnamn och fingeravtryck hämtas från avsnittet. Lösenordet läses från Proxmox egen katalog för inloggningsuppgifter. Uppgifterna behöver inte anges på nytt i ProxMenux; förvaret är tillgängligt så snart det har konfigurerats i Proxmox."
|
||||
},
|
||||
{
|
||||
"source": "ProxMenux manuell konfig",
|
||||
"path": "/usr/local/share/proxmenux/pbs-manual-configs.txt + pbs-pass-NAME.txt + pbs-fingerprint-NAME.txt",
|
||||
"content": "Läggs till via <em>Konfigurera säkerhetskopieringsmål → PBS-mål → Lägg till PBS</em>. Du anger namn, användarnamn (<code>root@pam</code> eller <code>user@pbs!token</code>), värd eller IP-adress, datalager och lösenord. Om lösenordet lämnas tomt visas frågan igen; annars skulle en tom uppgift sparas utan varning och alla senare säkerhetskopior misslyckas med ett otydligt autentiseringsfel. Detta används när PBS-målet inte är registrerat som Proxmox-lagring."
|
||||
}
|
||||
],
|
||||
"menuTitle": "Urvalsmenyn",
|
||||
"menuBody": "Båda källorna visas i en enda meny, varje rad märkt med sitt ursprung (<code>[proxmox]</code> eller <code>[manual]</code>). Anteckningar vars lösenord inte kunde lösas är taggade med en <code>⚠ no password</code>-varning - välja en utlöser ett lösenord återinträde innan backupen startar. Fingeravtrycket överförs till <code>proxmox-backup-client</code> via <code>PBS_FINGERPRINT</code>-miljövariabeln; när det saknas frågar klienten operatören att acceptera servercertifikatet interaktivt på den första säkerhetskopian."
|
||||
},
|
||||
"backupCommand": {
|
||||
"heading": "Backup kommandot",
|
||||
"intro": "Uppladdningen sker med ett enda anrop till <code>proxmox-backup-client backup</code>. ProxMenux använder <code>env</code> för att överföra lösenord, krypteringslösenord och fingeravtryck till klienten som miljövariabler.",
|
||||
"cmd": "env \\\n PBS_PASSWORD=\"$HB_PBS_SECRET\" \\\n PBS_ENCRYPTION_PASSWORD=\"$HB_PBS_ENC_PASS\" \\\n PBS_FINGERPRINT=\"$HB_PBS_FINGERPRINT\" \\\n proxmox-backup-client backup \\\n hostcfg.pxar:$staging_root \\\n --repository USER@REALM@HOST:DATASTORE \\\n --backup-type host \\\n --backup-id hostcfg-HOSTNAME \\\n --backup-time BACKUP-EPOCH \\\n [--keyfile /usr/local/share/proxmenux/pbs-key.conf]",
|
||||
"backupIdTitle": "Namnge säkerhetskopierings-ID",
|
||||
"backupIdBody": "Standard-ID är <code>hostcfg-HOSTNAME</code>. Operatören bekräftar eller redigerar det före uppladdning; tecken utanför <code>[A-Za-z0-9_-]</code> och avslutande bindestreck tas bort. Att återanvända samma ID är avsiktligt: PBS behandlar ID:t som en <em>grupp</em>, och varje senare säkerhetskopia blir en ny post i gruppen med gemensam deduplicering med tidigare körningar.",
|
||||
"pxarTitle": "Varför källan är hela staging roten",
|
||||
"pxarBody": "<code>.pxar</code>-källan är hela <code>staging_root</code> - <code>rootfs/</code>, <code>metadata/</code> och <code>manifest.json</code> tillsammans. Tidigare versioner passerade <code>$staging_root/rootfs</code> som källa; som lämnade <code>metadata/</code> ur arkivet och återställningens kompatibilitetskontroll hade ingenting att läsa, försämrade att korsa värd varningar även på samma värd återställningar. Gamla säkerhetskopior som skapats med rootfs-bara källan återställs fortfarande korrekt via <code>_rs_check_layout</code>: s fall-3 gren, som lindrar en platt <code>etc/var/root/usr</code> träd tillbaka till en <code>rootfs/</code> hierarki."
|
||||
},
|
||||
"encryption": {
|
||||
"heading": "Klient-side kryptering",
|
||||
"glossaryHint": "Avsnittet använder termerna <em>nyckelfil</em>, <em>lösenfras</em> och <em>återställningskuvert</em>. <glosarioLink>Ordlistan</glosarioLink> sammanfattar skillnaderna med en mening per term.",
|
||||
"intro": "PBS klientkryptering med nyckelfil krypterar blocken på källvärden före uppladdning. Kryptering är valfri i ProxMenux. När den aktiveras väljer operatören uttryckligen ja eller nej till att även lagra en återställningskopia av nyckelfilen, skyddad med lösenfras, på PBS. Valet kan ändras senare i Monitor. Själva nyckelfilen finns alltid på den kanoniska sökvägen <code>/usr/local/share/proxmenux/pbs-key.conf</code> och återanvänds utan nya frågor vid varje senare krypterad säkerhetskopiering.",
|
||||
"keyfileTitle": "Ställ in nyckelfilen",
|
||||
"keyfileBody": "Krypteringsdialogen visas vid värdens första krypterade säkerhetskopiering. Först frågar den om säkerhetskopian ska krypteras: <em>Nej</em> fortsätter utan kryptering och <em>Ja</em> går till steg två. Det steget beror på om en nyckelfil redan finns på <code>/usr/local/share/proxmenux/pbs-key.conf</code>. I så fall återanvänds den utan frågor och säkerhetskopieringen fortsätter; inte heller senare säkerhetskopieringar frågar igen. Annars visar en meny två alternativ. <em>Skapa en ny nyckelfil</em> kör <code>proxmox-backup-client key create --kdf none</code>. <em>Använd en befintlig nyckelfil</em> identifierar automatiskt en PVE-hanterad nyckel: om det valda PBS-förvaret är registrerat i Proxmox med en krypteringsnyckel på <code>/etc/pve/priv/storage/<NAME>.enc</code>, kopieras filen utan frågor till ProxMenux kanoniska sökväg. Om ingen PVE-hanterad nyckel matchar förvaret efterfrågas den absoluta sökväg där operatören redan har placerat nyckelfilen på värden. I båda fallen installeras filen på den kanoniska sökvägen med <code>chmod 600</code>.",
|
||||
"modesTitle": "En nyckelfil per värd eller en gemensam nyckelfil",
|
||||
"modesIntro": "Båda driftsmodellerna stöds och ingen är obligatorisk. Operatören väljer utifrån hur värdarna är organiserade.",
|
||||
"modesPerHostTitle": "En nyckelfil per värd (standard)",
|
||||
"modesPerHostBody": "Varje värd genererar sin egen nyckelfil första gången det möjliggör PBS-kryptering. Isolering är maximal: att kompromissa med nyckelfilen hos en värd exponerar inte någon annans säkerhetskopior. Rekommenderas för produktionsflottor och för miljöer där värdar har olika ägare eller överensstämmelse gränser.",
|
||||
"modesSharedTitle": "Gemensam nyckelfil (importeras på varje värd)",
|
||||
"modesSharedBody": "En huvudnyckelfil skapas en gång och installeras på varje värd via alternativet <em>Använd en befintlig nyckelfil</em>. Hanteringen blir enklare: en enda hemlighet att skydda, och varje värd kan dekryptera alla andra värdars arkiv. Det är användbart för konsolidering, återställningsövningar mellan värdar och central verifiering av säkerhetskopior. Nackdelen är att en läcka av den gemensamma nyckeln exponerar alla värdar samtidigt. Rekommenderas för hemlabb och miljöer där alla värdar har samma ägare och ingår i samma tillitsområde.",
|
||||
"recoveryTitle": "Ladda upp nyckeln till PBS – operatören bestämmer",
|
||||
"recoveryBody": "Direkt efter valet av nyckelfil ställer ProxMenux den uttryckliga frågan <em>Ladda upp nyckeln till PBS?</em> med två svar. <strong>Ingen återställningsfil laddas upp till PBS förrän operatören svarar Ja.</strong> Standardvalet är <em>Nej, behåll endast lokalt</em>: nyckelfilen ligger kvar på den kanoniska lokala sökvägen, ProxMenux laddar inte upp någon återställningsfil till PBS och operatören ansvarar själv för kopian utanför värden. Knappen <em>Ladda ner nyckelfil</em> på PBS-målets rad i Monitor ger en kopia vid behov. Valet <em>Ja, ladda upp</em> efterfrågar en återställningslösenfras två gånger och kontrollerar att svaren matchar. ProxMenux skyddar nyckelfilen med AES-256-CBC och PBKDF2 (600 000 iterationer, slumpmässigt salt) och skapar <code>pbs-key.recovery.enc</code>. Varje senare krypterad säkerhetskopia laddar upp detta kuvert till PBS som en tillhörande säkerhetskopieringsgrupp. Dessa uppladdningar skickar varken lösenfrasen eller nyckelfilen i klartext till PBS. Valet kan ändras när som helst i Monitor: kontrollen på PBS-målets rad växlar Ja/Nej och tillämpar omedelbart Börja ladda upp, Sluta ladda upp eller Uppdatera lösenfras beroende på aktuellt tillstånd.",
|
||||
"blobUploadTitle": "Tillhörande säkerhetskopieringsgrupp på PBS",
|
||||
"blobUploadBody1": "När läget är <em>Ja, ladda upp</em> laddar ProxMenux upp återställningskuvertet till PBS efter varje krypterad säkerhetskopiering, som en andra tillhörande grupp. Den har samma namn som värdens grupp med suffixet <code>-keyrecovery</code>. Grupperna visas bredvid varandra i datalagrets lista: en för värdsäkerhetskopior och en för återställningskuvert. <strong>Kuvertet lämnar aldrig värden i klartext</strong>: krypteringen sker på värden med AES-256-CBC och PBKDF2 innan några data överförs (<code>openssl enc -aes-256-cbc -pbkdf2 -iter 600000 -salt</code>). PBS tar endast emot det redan krypterade kuvertet.",
|
||||
"envelopeSecurityTitle": "Överför nyckelåterhämtningsfilen till PBS en säkerhetsrisk?",
|
||||
"envelopeSecurityBody": "Keyrecovery-filen krypteras i transit och i vila. Återhämtningspassfrasen lämnar aldrig värden: kryptering sker lokalt före uppladdningen, och PBS ser bara det redan krypterade resultatet. En PBS-administratör - eller någon med tillgång till databutiken - kan ladda ner nyckelrecovery-filen, men utan återställningspassfrasen kan de inte läsa nyckelfilen inuti: det är ogenomskinlig chiffertext. Rekonstruera nyckelfilen kräver båda bitarna samtidigt, nyckelrecovery-filen och passfrasen, och endast operatören håller båda.",
|
||||
"blobUploadConstraintTitle": "Varför två grupper istället för en enda krypterad",
|
||||
"blobUploadConstraintBody": "Ett enda anrop till <code>proxmox-backup-client backup</code> krypterar antingen alla sina arkiv med samma nyckelfil eller inget av dem. Värdsäkerhetskopian måste krypteras med värdens nyckelfil, men återställningskuvertet kan inte skickas med i samma uppladdning: då skulle det krypteras med just den nyckelfil som det innehåller. På en nyinstallerad värd skulle det inte gå att öppna, eftersom nyckelfilen skulle behövas för att dekryptera sig själv. Därför laddas de två filerna upp separat och visas som två grupper. PBS-klienten krypterar värdsäkerhetskopian med nyckelfilen, medan ProxMenux krypterar kuvertet med lösenfrasen före uppladdning. Två olika krypteringslager skyddar två olika innehåll.",
|
||||
"blobUploadImageAlt": "PBS-gränssnittet visar säkerhetskopieringsgrupperna hostcfg-HOSTNAME och hostcfg-HOSTNAME-keyrecovery bredvid varandra i datalagrets lista.",
|
||||
"blobUploadImageCaption": "PBS-gränssnittet — de tillhörande säkerhetskopieringsgrupperna. Huvudgruppen innehåller värdsäkerhetskopiorna; gruppen -keyrecovery innehåller nyckelfilen skyddad med lösenfras.",
|
||||
"recoverTitle": "Återhämtning på en ny värd",
|
||||
"recoverBody": "Om nyckelfilen saknas på den kanoniska sökvägen, efter en ominstallation eller uttrycklig borttagning, provar återställningen tre källor i ordning och stannar vid den första användbara nyckeln. Först kopieras en matchande PVE-hanterad nyckel från <code>/etc/pve/priv/storage/<NAME>.enc</code> utan frågor till den kanoniska sökvägen, om den finns för det valda PBS-förvaret. Om det finns en <code>-keyrecovery</code>-grupp på PBS laddas sedan den senaste ögonblicksbilden ner och operatören anger återställningslösenfrasen för att dekryptera den. Om båda alternativen misslyckas eller avböjs efterfrågas till sist den absoluta sökvägen till nyckelfilen på värden, och filen kopieras till den kanoniska sökvägen. Monitor visar samma importflöde i säkerhetskopians detaljdialog. En gul panel visas överst när Återställ, Ladda ner eller Visa innehåll behöver en nyckel som saknas. Om en installerad nyckel inte matchar säkerhetskopian returnerar PBS <code>wrong key — manifest's key XX does not match provided key YY</code>. Samma tre åtgärder visar då en strukturerad panel med manifestets nödvändiga nyckelfingeravtryck tydligt utmärkt, så att operatören kan identifiera rätt nyckelfil att importera för säkerhetskopian.",
|
||||
"monitorManagementTitle": "Hantera nyckelfilen från Monitor",
|
||||
"monitorManagementBody": "Monitor visar nyckelfilens kontroller direkt på varje PBS-målrad i säkerhetskopieringskonfigurationen. Tre åtgärder finns: <em>Ladda ner</em> exporterar den aktuella filen till webbläsaren; <em>Ladda upp</em> ersätter den installerade filen med operatörens fil, och den gamla skrivs över först när den nya har installerats på den kanoniska sökvägen; <em>Ta bort</em> tar bort filen från värden. Bredvid finns kontrollen för återställningskopian: ett Ja/Nej-val för <em>Ladda upp nyckeln till PBS?</em>, ett lösenfrasfält när Ja väljs och en knapp som beroende på tillstånd tillämpar <em>Börja ladda upp</em>, <em>Sluta ladda upp</em> eller <em>Uppdatera lösenfras</em>. Alla åtgärder använder samma Flask-slutpunkter som terminalgränssnittet, så effekten på disk och tillståndet på PBS blir identiska från båda gränssnitten."
|
||||
},
|
||||
"restoreAccess": {
|
||||
"heading": "Hämta vid återställning",
|
||||
"body": "Återställningen hittar ProxMenux värdsäkerhetskopior på PBS genom att lista grupperna i det konfigurerade förvaret och filtrera efter ID-mönster. Fliken Säkerhetskopior i Monitor visar samma lista. När en säkerhetskopia väljs körs <code>proxmox-backup-client restore</code> med samma förvar, lösenord och fingeravtryck, samt <code>--keyfile</code> om kopian är krypterad. Arkivet <code>.pxar</code> packas upp i en förberedelsekatalog som <code>_rs_check_layout</code> lämnar vidare till den vanliga återställningen. Utanför ProxMenux kan samma kommando packa upp arkivet till valfri sökväg för att granska trädet eller återställa manuellt."
|
||||
},
|
||||
"references": {
|
||||
"heading": "Referenser",
|
||||
"intro": "Officiell Proxmox Backup Server-dokumentation för komponenterna ProxMenux är beroende av.",
|
||||
"items": [
|
||||
{
|
||||
"label": "Proxmox Backup Server dokumentation",
|
||||
"href": "https://pbs.proxmox.com/docs/",
|
||||
"tail": " - huvudingångspunkt som täcker installation, administration, lagring, användare och roller."
|
||||
},
|
||||
{
|
||||
"label": "proxmox-backup-client",
|
||||
"href": "https://pbs.proxmox.com/docs/backup-client.html",
|
||||
"tail": " — kommandoradsverktyget som ProxMenux använder för varje säkerhetskopiering och återställning. Beskriver säkerhetskopierings-ID, typer, arkiv, förvarssyntax och miljövariabler."
|
||||
},
|
||||
{
|
||||
"label": "Kryptering på klientsidan",
|
||||
"href": "https://pbs.proxmox.com/docs/backup-client.html#encryption",
|
||||
"tail": " — skapa nyckelfiler, --kdf-lägen och krypteringsmodellen som ProxMenux utökar med en återställningskopia skyddad med lösenfras."
|
||||
},
|
||||
{
|
||||
"label": "Datalagerhantering",
|
||||
"href": "https://pbs.proxmox.com/docs/storage.html",
|
||||
"tail": " - skapa och hantera datastorer som tar emot värdbackups, inklusive chunk-store layout och behörigheter."
|
||||
},
|
||||
{
|
||||
"label": "Gallring och skräpinsamling",
|
||||
"href": "https://pbs.proxmox.com/docs/maintenance.html#pruning",
|
||||
"tail": " — lagringsreglerna bakom --keep-last / --keep-daily / --keep-weekly som ProxMenux tillämpar per schemalagt jobb, samt hur PBS frigör oanvända block efter gallring."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Ordlista - Backup & Restore | ProxMenux",
|
||||
"description": "Termer i ProxMenux system för säkerhetskopiering och återställning: kryptering, nyckelfil, passfras, återställningskuvert, PBS, datablock, rootfs, manifest, körprocess och komplettering mellan kärnversioner.",
|
||||
"ogTitle": "Backup & Återställ ordlista | ProxMenux",
|
||||
"ogDescription": "Tydliga definitioner för ordförråd som används över ProxMenux backup och återställa dokumentation.",
|
||||
"twitterTitle": "Backup & Återställ ordlista | ProxMenux",
|
||||
"twitterDescription": "Passfras, keyfile, återhämtningskuvert, rootfs, manifest, PBS, bitar - alla definierade på ett ställe."
|
||||
},
|
||||
"header": {
|
||||
"title": "Ordlista",
|
||||
"description": "Termer i dokumentationen för säkerhetskopiering och återställning, med definitioner.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"body": "Termer grupperas efter tema. Varje post ger termen och en kort definition."
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"title": "Kryptering och nyckelåterställning",
|
||||
"intro": "Vocabulary för PBS kryptering block. Det handlar om två distinkta hemligheter: en binär nyckelfil och en skriftlig passfras.",
|
||||
"entries": [
|
||||
{
|
||||
"id": "passphrase-recuperacion",
|
||||
"term": "Återställningslösenfras",
|
||||
"def": "Text lösenord användaren väljer för att skydda <a href=\"#sobre-recuperacion\">återställningskuvertet</a>. Det uppmanas två gånger med en matchkontroll, och används endast för att kryptera kuvertet och för att dekryptera det om nyckelfilen någonsin behöver återställas. <strong>Det är inte passfrasen som låser upp nyckelfilen själv</strong>, och det skickas aldrig till PBS. Under en normal backup lämnar den aldrig värden."
|
||||
},
|
||||
{
|
||||
"id": "clave-cifrado",
|
||||
"term": "Keyfile (krypteringsnyckel)",
|
||||
"def": "Nyckelfil som proxmox-backup-client använder för att kryptera <a href=\"#chunk\">datablock</a> före uppladdning till PBS. Utan rätt nyckel kan krypterade data inte läsas. ProxMenux sparar filen på <code>/usr/local/share/proxmenux/pbs-key.conf</code> med läge <code>600</code>. Skydda den: <a href=\"#sobre-recuperacion\">återställningskuvertet</a> finns för att återställa filen om den förloras."
|
||||
},
|
||||
{
|
||||
"id": "contrasena-keyfile",
|
||||
"term": "Keyfile passfras (KDF passfras)",
|
||||
"def": "Valfri passfras som keyfilen själv kan bära, skiljer sig från <a href=\"#passphrase-recuperacion\">återställningspassfrasen</a>. Det finns bara när nyckelfilen skapades med <code>--kdf scrypt</code> (vanligtvis en importerad nyckelfil). Utan det kan nyckelfilen inte låsas upp för användning. ProxMenux sparar den i krypterad form på värden så att schemalagda säkerhetskopior kan köras utan en interaktiv prompt."
|
||||
},
|
||||
{
|
||||
"id": "sobre-recuperacion",
|
||||
"term": "Återhämtningskuvert",
|
||||
"def": "<a href=\"#clave-cifrado\">Nyckelfilen</a> är insvept i ett extra lager: det är krypterat med <a href=\"#passphrase-recuperacion\">Återhämtningspassfras</a> Använda <a href=\"#aes-256-cbc\">AES-256-CBC</a> och <a href=\"#pbkdf2\">PBKDF2</a> innan den någonsin lämnar värden. Det är det som laddas upp till PBS som den <code>-keyrecovery</code> grupp. Utan passfrasen är kuvertet ogenomskinligt: ladda ner det från PBS avslöjar inte keyfile."
|
||||
},
|
||||
{
|
||||
"id": "cifrado-cliente",
|
||||
"term": "Klient-side kryptering",
|
||||
"def": "Krypteringsmodell där data krypteras på källvärden innan de laddas upp. PBS får bara och lagrar chiffertext; inte ens en PBS-administratör med databutiksåtkomst kan läsa den utan nyckelfilen. ProxMenux bygger på denna modell och lägger till <a href=\"#sobre-recuperacion\">återställningskuvertet</a> ovanpå."
|
||||
},
|
||||
{
|
||||
"id": "kdf-none",
|
||||
"term": "--kdf none",
|
||||
"def": "Alternativ till <code>proxmox-backup-client key create</code> som producerar en nyckelfil utan bifogad passfras. Nyckelfilen kan användas direkt utan en prompt, vilket är viktigt för schemalagda jobb som körs obevakad. Detta är vad ProxMenux använder som standard när man skapar en ny nyckelfil."
|
||||
},
|
||||
{
|
||||
"id": "kdf-scrypt",
|
||||
"term": "--kdf scrypt",
|
||||
"def": "Alternativ till <code>proxmox-backup-client key create</code> som producerar en nyckelfil skyddad av en <a href=\"#contrasena-keyfile\">nyckelfilspassfras</a>. Varje användning av nyckelfilen kräver att låsa upp den med den passfrasen. ProxMenux accepterar denna typ av nyckelfil på import och lagrar passfrasen krypterad så schemalagda säkerhetskopior kan fortfarande köras obevakad."
|
||||
},
|
||||
{
|
||||
"id": "aes-256-cbc",
|
||||
"term": "AES-256-CBC",
|
||||
"def": "Standard symmetrisk chiffer. ProxMenux använder den (via <code>openssl enc -aes-256-cbc</code>) för att linda <a href=\"#clave-cifrado\">nyckelfilen</a> med <a href=\"#passphrase-recuperacion\">återställningspassfrasen</a> och producera <a href=\"#sobre-recuperacion\">kuvertet</a>."
|
||||
},
|
||||
{
|
||||
"id": "pbkdf2",
|
||||
"term": "PBKDF2",
|
||||
"def": "Kryptografisk funktion som förvandlar en mänskligt utformad passfras till en binär nyckel som är lämplig för kryptering. Det saktar ner brute-force försök genom att tillämpa många iterationer. ProxMenux använder den med 600 000 iterationer och ett slumpmässigt salt när man krypterar återhämtningskuvertet."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Backup struktur",
|
||||
"intro": "Termer som beskriver vad som lever i en säkerhetskopia, oavsett destination.",
|
||||
"entries": [
|
||||
{
|
||||
"id": "rootfs",
|
||||
"term": "rootfs / rotfilsystem",
|
||||
"def": "Filbaserad kopia av källvärdens filsystem skapad med <code>rsync</code> enligt <a href=\"#perfil-defecto\">standardprofilen</a> och <a href=\"#rutas-personalizadas\">egna sökvägar</a>. Det är ingen hel diskavbildning: endast sökvägar med konfiguration eller tillstånd som Proxmox inte kan återskapa självt kopieras."
|
||||
},
|
||||
{
|
||||
"id": "manifiesto",
|
||||
"term": "Manifest (manifest.json)",
|
||||
"def": "Strukturerad JSON-dokument som beskriver källvärden vid backuptid: hårdvara, lagring, kärna, ProxMenux-installerade komponenter och inventering av VM och LXC. Den produceras av sex oberoende samlare. Återställningsflödet använder det för att jämföra källa och mål."
|
||||
},
|
||||
{
|
||||
"id": "staging",
|
||||
"term": "Staging katalog",
|
||||
"def": "Tillfällig katalog där ProxMenux monterar de tre blocken (rootfs, metadata och manifest) innan du packar dem och laddar upp till destinationen. Det tas bort automatiskt när backupen slutar, även på abort."
|
||||
},
|
||||
{
|
||||
"id": "perfil-defecto",
|
||||
"term": "Standardprofil",
|
||||
"def": "Utvalda sökvägar som ProxMenux kopierar som standard i varje säkerhetskopia. Omfattar PVE-konfiguration, nätverk, SSH, kärna, apt, ProxMenux-verktyg och mer. Definieras i koden och beskrivs på sidan <em>Hur det fungerar</em>."
|
||||
},
|
||||
{
|
||||
"id": "rutas-personalizadas",
|
||||
"term": "Anpassade vägar",
|
||||
"def": "Extra vägar som användaren lägger till ovanpå <a href=\"#perfil-defecto\">default profil</a>. Antingen ihållande (lagras i <code>backup-extra-paths.txt</code>) eller per-run (plockad i anpassat läge)."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Destinationer och lagring",
|
||||
"intro": "Villkor bundna till var backup landar - PBS server, lokal arkiv eller Borg repository - och hur PBS organiserar data.",
|
||||
"entries": [
|
||||
{
|
||||
"id": "repositorio-pbs",
|
||||
"term": "PBS-arkivet",
|
||||
"def": "Kombination av Proxmox Backup Server + <a href=\"#datastore\">datastore</a> + användare som tar emot backupen. Identifierad av strängen <code>user@realm@host:datastore</code>. En enda PBS-server kan vara värd för flera förråd."
|
||||
},
|
||||
{
|
||||
"id": "datastore",
|
||||
"term": "Datalager",
|
||||
"def": "Ett visst lagringsutrymme på en PBS-server där säkerhetskopior och deras datablock finns. Varje datalager ligger på ett filsystem på PBS-servern och har egna behörigheter och regler."
|
||||
},
|
||||
{
|
||||
"id": "chunk",
|
||||
"term": "Datablock / deduplicering av datablock",
|
||||
"def": "PBS delar varje backup i varierande storlek bitar, identifierar varje bit av sin hash och lagrar varje bit bara en gång, även om det visas i många olika säkerhetskopior. Detta innebär successiva säkerhetskopior av samma värd - eller över liknande värdar - ta mycket lite extra utrymme."
|
||||
},
|
||||
{
|
||||
"id": "fingerprint",
|
||||
"term": "Fingeravtryck",
|
||||
"def": "Kryptografiskt fingeravtryck av PBS-serverns TLS-certifikat. Den låter kunden verifiera att den talar till den avsedda servern utan att förlita sig på en myndighet för offentlig certifikat. ProxMenux passerar den till <code>proxmox-backup-client</code> via <code>PBS_FINGERPRINT</code> miljövariabel."
|
||||
},
|
||||
{
|
||||
"id": "grupo-copia",
|
||||
"term": "Säkerhetskopia grupp",
|
||||
"def": "Logisk container inuti PBS under vilken successiva säkerhetskopior av samma tillgång ackumuleras. Varje ny backup delar deduplicering med tidigare i samma grupp. ProxMenux använder två grupper per värd när kryptering är aktiverad: en för värdbackupen och en med ett <code>-keyrecovery</code>-suffix för <a href=\"#sobre-recuperacion\">återställningskuvertet</a>."
|
||||
},
|
||||
{
|
||||
"id": "backup-id",
|
||||
"term": "Säkerhetskopierings-ID",
|
||||
"def": "Namnet på <a href=\"#grupo-copia\">backup grupp</a>. ProxMenux standarder till <code>hostcfg-HOSTNAME</code> och låter användaren redigera det innan uppladdning; ostödda tecken tas bort automatiskt."
|
||||
},
|
||||
{
|
||||
"id": "pxar",
|
||||
"term": ".pxar",
|
||||
"def": "PBS-inhemska arkivformat för kataloger. Det beter sig som en tar-arkiv optimerad för chunk deduplicering: snarare än att lagra en ogenomskinlig fil bryter PBS innehållet i återanvändbara bitar."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Körning och schemaläggning",
|
||||
"intro": "Termer i ProxMenux system för schemalagda jobb.",
|
||||
"entries": [
|
||||
{
|
||||
"id": "runner",
|
||||
"term": "Körprocess",
|
||||
"def": "<code>run_scheduled_backup.sh</code>-skriptet som utför en schemalagd säkerhetskopia. Den läser jobbkonfigen, lanserar matchande backend (Local, PBS eller Borg), tillämpar lagring på framgång och skickar konfigurerade meddelanden."
|
||||
},
|
||||
{
|
||||
"id": "trabajo-programado",
|
||||
"term": "Schemalagt jobb",
|
||||
"def": "Bestående konfiguration av en återkommande backup. Håller destination, referenser, kryptering, schema och lagring. Lever på <code>/var/lib/proxmenux/backup-jobs/<id>.env</code>."
|
||||
},
|
||||
{
|
||||
"id": "modo-adjunto",
|
||||
"term": "Anslutet läge",
|
||||
"def": "Jobb utan egen timer. En job-end-hook i PVE <code>vzdump</code> utlöser det efter gästsäkerhetskopior när mållagringen matchar. Det valda överordnade jobbet ger lagring och lagringsregler, som läses om från det överordnade jobbet vid varje körning, men hooken matchar lagring, inte jobb-ID. Även en annan uppgift med samma lagring kan utlösa det. Endast Local och PBS."
|
||||
},
|
||||
{
|
||||
"id": "timer-systemd",
|
||||
"term": "systemd-timer",
|
||||
"def": "Standard systemd-mekanism som skjuter ett kommando i en kalender. ProxMenux skapar en timer per <em>oberoende</em> schemalagt jobb; <a href=\"#modo-adjunto\">attach-mode</a> jobb använder ingen timer, de körs via PVE script-hook."
|
||||
},
|
||||
{
|
||||
"id": "retencion",
|
||||
"term": "Lagringsregler (keep-last, keep-daily…)",
|
||||
"def": "Policy som bestämmer vilka äldre säkerhetskopior som ska hållas och vilka som ska beskäras. Definieras per jobb med parametrar som <code>keep-last</code>, <code>keep-daily</code>, <code>keep-weekly</code>, <code>keep-monthly</code>. Tillämpad av körprocessen efter varje framgångsrik backup."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Återställa",
|
||||
"intro": "Termer från återställningsflödet.",
|
||||
"entries": [
|
||||
{
|
||||
"id": "restauracion-universal",
|
||||
"term": "Universell återställning",
|
||||
"def": "ProxMenux-återställningsflödet extraherar inte bara filsystemet: det läser manifestet för att upptäcka skillnader mellan källa och mål, reproducerar systemkonfigurationen och kör om installatörerna för ProxMenux-hanterade komponenter. Målet är att reproducera källvärden, inte bara arkivet."
|
||||
},
|
||||
{
|
||||
"id": "hidratacion",
|
||||
"term": "Komplettering mellan kärnversioner",
|
||||
"def": "Återställ pass som sammanfogar användarens egen konfiguration från källan (IOMMU-tokens, VFIO-enhets-ID, anpassade quirks, GRUB-nycklar) ovanpå målets färska startkonfiguration, utan att kopiera källans kärnbundna filer verbatim. Kör när målkärnan är nyare än backupen."
|
||||
},
|
||||
{
|
||||
"id": "cross-kernel",
|
||||
"term": "Återställning mellan kärnversioner",
|
||||
"def": "Återställ var målets kärna skiljer sig från (vanligtvis är nyare än) källan. Kräver <a href=\"#hidratacion\">hydration</a> pass för att undvika att dra längs filer oförenliga med målets kärna."
|
||||
},
|
||||
{
|
||||
"id": "instalador-postboot",
|
||||
"term": "Installerare efter uppstart",
|
||||
"def": "Komponenter installerade efter den första starten av den restaurerade värden (NVIDIA drivrutiner, Coral TPU drivrutiner, AMD GPU verktyg, Intel GPU verktyg). Varje installatör körs mot målets kärna, så den restaurerade värden beror inte på att källans kärna är närvarande."
|
||||
},
|
||||
{
|
||||
"id": "compatibility-check",
|
||||
"term": "Kompatibilitetskontroll",
|
||||
"def": "Jämförelse mellan källans manifest och målets tillstånd som ProxMenux utför i början av återställningen. Det bestämmer vilka delar som kopieras verbatim, som behöver hydrering och som återskapas av en installatör."
|
||||
},
|
||||
{
|
||||
"id": "equipo-recien-instalado",
|
||||
"term": "Färsk installation",
|
||||
"def": "Värd bara ominstallerad från början, utan lokal <a href=\"#clave-cifrado\">nyckelfil</a>. Återställa en krypterad säkerhetskopia kräver första återställning av nyckelfilen från <a href=\"#sobre-recuperacion\">återställningskuvertet</a> lagrad på PBS, med hjälp av <a href=\"#passphrase-recuperacion\">återställningspassfrasen</a>."
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"whereNext": {
|
||||
"heading": "Nästa steg",
|
||||
"items": [
|
||||
{
|
||||
"label": "Hur det fungerar",
|
||||
"href": "/docs/backup-restore/how-it-works",
|
||||
"tail": " — där rootfs, manifest och applikationsinventering passar in i en backup."
|
||||
},
|
||||
{
|
||||
"label": "Proxmox Backup Server-mål",
|
||||
"href": "/docs/backup-restore/destinations/pbs",
|
||||
"tail": " - där klient-side kryptering, keyfile, återställningspassfras och kuvert dokumenteras på djupet."
|
||||
},
|
||||
{
|
||||
"label": "Återställande",
|
||||
"href": "/docs/backup-restore/restoring",
|
||||
"tail": " — Återställande flöde och manifest användning."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Hur ProxMenux Backup fungerar internt - rootfs, manifest, applikationer",
|
||||
"description": "Detaljerat innehåll i en ProxMenux-säkerhetskopia: rootfs kopierat med rsync enligt standardprofilens sökvägar, ett strukturerat manifest från sex oberoende insamlare och programinventeringen som styr automatisk ominstallation av paket och komponenter efter återställning.",
|
||||
"ogTitle": "Hur ProxMenux Backup fungerar internt",
|
||||
"ogDescription": "De tre nyttolasterna av en ProxMenux-backup förklarade: rootfs, manifest och applikationer.",
|
||||
"twitterTitle": "Hur ProxMenux Backup fungerar | ProxMenux",
|
||||
"twitterDescription": "De tre nyttolasterna av en ProxMenux-backup och hur återställningen reproducerar källvärden från dem."
|
||||
},
|
||||
"header": {
|
||||
"title": "Hur det fungerar",
|
||||
"description": "Den interna nedbrytningen av en ProxMenux-backup - filsystem, manifest och applikationsinventering - och hur återställningen förbrukar alla tre för att reproducera källvärden på ett mål som kanske inte delar samma kärna.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Ett arkiv, tre delar",
|
||||
"body": "Varje säkerhetskopia skapar tre tydliga delar under en gemensam förberedelsekatalog. Arkivet som laddas upp till målet (lokalt <code>.tar.zst</code>, PBS-säkerhetskopia eller Borg-arkiv) innehåller samma struktur. Återställningen använder alla tre: <strong>manifestet</strong> läses före ändringar för att upptäcka avvikelser och bestämma undantag; <strong>rootfs</strong> ger konfigurationsfiler som tillämpas direkt eller efter omstart; <strong>programinventeringen</strong> styr paketinstallation och ominstallation av komponenter efter start. Varje del kan granskas eller packas upp oberoende."
|
||||
},
|
||||
"layout": {
|
||||
"heading": "Arkivlayout",
|
||||
"intro": "Varje arkiv följer samma trädlayout oavsett destination. <code>metadata/</code> underkatalog håller de strukturerade nyttolasterna; <code>rootfs/</code> underkatalog håller filsystemet kopiera.",
|
||||
"treeCaption": "Förberedelsekatalogen som skapas vid säkerhetskopiering. Alla mål får samma träd i sitt eget format: tar för lokala mål, PBS-block för PBS och Borg-segment för Borg.",
|
||||
"tree": "backup-[timestamp]/\n├── manifest.json # structured host state\n├── metadata/\n│ ├── packages.manual.list # apt-mark showmanual\n│ ├── run_info.env # backup run identity + kernel version + pmxcfs method\n│ ├── paths_archived.txt # exact list of paths that reached rootfs/\n│ └── missing_paths.txt # paths from the profile absent on source\n└── rootfs/\n ├── etc/ # /etc/pve, /etc/network, /etc/systemd/network, /etc/ssh, …\n ├── root/ # /root (with volatile subdirs excluded)\n ├── usr/local/ # /usr/local/bin, /usr/local/share/proxmenux, …\n └── var/ # /var/lib/pve-cluster (config.db via sqlite3 .backup), /var/spool/cron/…"
|
||||
},
|
||||
"rootfs": {
|
||||
"heading": "Innehållet i rootfs",
|
||||
"intro": "Trädet <code>rootfs/</code> är en <strong>vanlig filsystemkopia</strong> som skapas med <code>rsync</code> från källvärden. Det innehåller en utvald <strong>standardprofil</strong> med sökvägar som behövs för Proxmox-återställning samt <strong>egna sökvägar</strong> som användaren lägger till i jobbet eller den interaktiva sessionen. Urvalet är avsiktligt begränsat till sökvägar som <em>innehåller konfiguration</em> eller <em>lagrar tillstånd som Proxmox inte kan återskapa själv</em>.",
|
||||
"defaultProfileTitle": "Standardprofilen",
|
||||
"defaultProfileBody": "Standardprofilen definieras av <code>hb_default_profile_paths</code> i <code>lib_host_backup_common.sh</code>. Den omfattar åtta fasta kategorier och vid behov ZFS-tillstånd, som tillsammans beskriver en fungerande Proxmox-värd:",
|
||||
"categoriesTitle": "Sökvägskategorier",
|
||||
"categoryRows": [
|
||||
{
|
||||
"category": "PVE-kärna",
|
||||
"paths": "/etc/pve, /var/lib/pve-cluster, /etc/vzdump.conf",
|
||||
"why": "Cluster filsystem innehåll och vzdump standarder. Pmxcfs databas (<code>config.db</code>) fångas som en konsekvent ögonblicksbild via <code>sqlite3 .backup</code> utan att stoppa klustret, och <code>.db-wal</code> / <code>.db-shm</code> sidovagnar är uteslutna från rsync. När <code>sqlite3</code> inte är tillgänglig, skapas i stället <code>config.db.raw-fallback</code>, som automatiskt används som databas vid återställning."
|
||||
},
|
||||
{
|
||||
"category": "Värd identitet och nätverk",
|
||||
"paths": "/etc/hostname, /etc/hosts, /etc/timezone, /etc/resolv.conf, /etc/network, /etc/systemd/network",
|
||||
"why": "Det värden behöver för att komma upp i nätverket med samma identitet. Filerna <code>.link</code> under <code>/etc/systemd/network</code> kopplar nätverkskortens namn till deras MAC-adresser, så att namnen bevaras vid ominstallation och hårdvaruändringar."
|
||||
},
|
||||
{
|
||||
"category": "Åtkomst och autentisering",
|
||||
"paths": "/etc/ssh, /etc/sudoers, /etc/sudoers.d, /etc/pam.d, /etc/security",
|
||||
"why": "SSH-nycklar, sudoregler och PAM-konfiguration. Att förlora dessa låser användaren ur den restaurerade värden."
|
||||
},
|
||||
{
|
||||
"category": "Kärna och uppstart",
|
||||
"paths": "/etc/default/grub, /etc/kernel, /etc/modules, /etc/modules-load.d, /etc/modprobe.d, /etc/sysctl.conf, /etc/sysctl.d, /etc/udev/rules.d, /etc/fstab, /etc/iscsi, /etc/multipath",
|
||||
"why": "IOMMU-parametrar, svartlistor för moduler, VFIO-enhets-ID, monteringstabell och lagringskonfiguration."
|
||||
},
|
||||
{
|
||||
"category": "Skal och språkinställningar",
|
||||
"paths": "/etc/environment, /etc/bash.bashrc, /etc/inputrc, /etc/profile, /etc/profile.d, /etc/locale.gen, /etc/locale.conf",
|
||||
"why": "Systemgemensam skalkonfiguration, miljövariabler och inställningar för generering av språkmiljöer."
|
||||
},
|
||||
{
|
||||
"category": "Pakethantering och cron",
|
||||
"paths": "/etc/apt, /etc/cron.d, /etc/cron.{daily,hourly,weekly,monthly}, /etc/cron.allow, /etc/cron.deny, /var/spool/cron/crontabs",
|
||||
"why": "APT-källor för konsekvent paketlösning, schemalagda uppgifter som definieras av användaren."
|
||||
},
|
||||
{
|
||||
"category": "ProxMenux tillstånd och verktyg",
|
||||
"paths": "/etc/proxmenux, /etc/systemd/system, /etc/log2ram.conf, /etc/logrotate.conf, /etc/logrotate.d, /etc/lm-sensors, /etc/sensors3.conf, /etc/fail2ban, /etc/snmp, /etc/postfix, /etc/wireguard, /etc/openvpn, /etc/grafana, /etc/influxdb, /etc/prometheus, /etc/telegraf, /etc/zabbix",
|
||||
"why": "Valfri men vanlig Proxmox verktyg. Saknade vägar noteras i <code>metadata/missing_paths.txt</code> utan att stoppa backupen."
|
||||
},
|
||||
{
|
||||
"category": "ProxMenux-program och root-kontot",
|
||||
"paths": "/usr/local/bin, /usr/local/sbin, /usr/local/share/proxmenux, /var/lib/proxmenux, /root (flyktiga subdirs exkluderade)",
|
||||
"why": "ProxMenux-installerade binärer och per användare konfiguration under <code>/root</code>. Volatila vägar (<code>.bash_history</code>, <code>.cache/</code>, <code>tmp/</code>, <code>.local/share/Trash/</code>) utesluts från kopian. <code>/var/lib/proxmenux</code> håller de schemalagda backupjobben och värdens tillstånd som hålls av ProxMenux; återställningsstagningen, återställningskopiorna och efteråtsmarkörerna är uteslutna, eftersom de tillhör värden som kör en återställning."
|
||||
},
|
||||
{
|
||||
"category": "ZFS tillstånd (villkor)",
|
||||
"paths": "/etc/zfs",
|
||||
"why": "Det ingår endast när källvärden kör ZFS. innehåller <code>zpool.cache</code> och <code>hostid</code>."
|
||||
}
|
||||
],
|
||||
"customTitle": "Utöka profilen med anpassade vägar",
|
||||
"customBody": "Utöver standardprofilen erbjuder ProxMenux två sätt att inkludera ytterligare vägar i en säkerhetskopia. De komponerar utan konflikt och gäller både interaktiva säkerhetskopior och schemalagda jobb.",
|
||||
"customExtrasTitle": "1. Persistenta extrafunktioner (per-host-fil)",
|
||||
"customExtrasBody": "En textfil på <code>/usr/local/share/proxmenux/backup-extra-paths.txt</code> innehåller en lista över absoluta vägar som användaren har markerat som \"alltid inkluderar\" på denna värd. När en säkerhetskopia körs i <strong>Default</strong>-läge, appenderar ProxMenux dessa vägar till standardprofilen automatiskt utan att fråga. Filen redigeras från gränssnittet - ingen manuell redigering behövs - och kvarstår över omstart och uppdateringar. En absolut väg per rad; <code>#</code> kommentarer är tillåtna.",
|
||||
"customModeTitle": "2. Anpassat läge (per körning)",
|
||||
"customModeBody": "Att starta en säkerhetskopia i <strong>Custom</strong>-läge ersätter den automatiska tillämpningen av standardprofilen med en checklista som visar varje väg: standardprofilerade poster och de ihållande extrafunktionerna (prefixed med <code>[+]</code> och förmarkerade). Användaren markerar eller avmarkerar poster för den specifika körningen, och kan också trycka på <em>Lägg till anpassad sökväg</em> för att ange en ny väg - som sedan kvarstår till extrafilen för framtida säkerhetskopior.",
|
||||
"customMissingTitle": "Vägar frånvarande från källan",
|
||||
"customMissingBody": "Varje väg från profilen (standard eller tillägg) som inte finns på källvärden registreras i <code>metadata/missing_paths.txt</code> inuti arkivet. Säkerhetskopieringen misslyckas varken eller slutar - användaren ser en sammanfattning av arkiverade vägar och saknade vägar i slutet. I praktiken sker detta för valfria verktygsvägar som <code>/etc/wireguard</code> eller <code>/etc/prometheus</code> när dessa verktyg inte är installerade."
|
||||
},
|
||||
"manifest": {
|
||||
"heading": "Manifestdelen",
|
||||
"intro": "<code>manifest.json</code> är ett strukturerat JSON-dokument som beskriver källvärden vid backupen. Den produceras av <strong>sex oberoende insamlare</strong> orkestrerad av <code>build_manifest.sh</code>. Varje samlare läser endast data, producerar ett väldefinierat JSON-fragment och faller tillbaka till ett säkert tomt standard om det misslyckas - manifestet är fortfarande användbart om ett avsnitt är ofullständigt.",
|
||||
"orchestratorCaption": "De sex samlarna komponerar manifestet. Varje samlare körs i sin egen underprocess; ett misslyckande i en faller tillbaka till en dokumenterad säker standard och varnar men inte avbryter backupen.",
|
||||
"collectorRows": [
|
||||
{
|
||||
"collector": "collect_source_host.sh",
|
||||
"produces": "source_host",
|
||||
"content": "Hostname, PVE version (<code>pveversion</code>), PBS version om värden kör backup-server roll, kärna (<code>uname -r</code>), startläge (efi/bios), root filsystem typ, CPU modell + arkitektur, minne i KB."
|
||||
},
|
||||
{
|
||||
"collector": "collect_hardware.sh",
|
||||
"produces": "hardware_inventory",
|
||||
"content": "GPU (med leverantör och ProxMenux installer mapping), TPUs (Coral USB + M.2 med <code>lsusb</code> / <code>lspci</code> detektering), NICs (med MAC, PCI slot och bro medlemskap), trådlösa enheter. GPU-poster bär en <code>passthrough_eligible</code>-heuristisk."
|
||||
},
|
||||
{
|
||||
"collector": "collect_storage.sh",
|
||||
"produces": "storage_inventory",
|
||||
"content": "ZFS-pooler (med pooltyp + medlemsdisker löste <code>/dev/disk/by-id/*</code>, <code>/dev/disk/by-partuuid/*</code> eller rå <code>/dev/sdX</code>-vägar beroende på hur varje pool ursprungligen skapades), LVM-volymgrupper + tunna pooler, fysiska diskar med SMART-kapacitet, PVE <code>storage.cfg</code>-poster, externa monteringar."
|
||||
},
|
||||
{
|
||||
"collector": "collect_kernel.sh",
|
||||
"produces": "kernel_params",
|
||||
"content": "Parametrar som operatören lagt till i <code>/proc/cmdline</code>, utan standardposter som <code>BOOT_IMAGE=</code>, <code>root=</code>, <code>ro/rw</code>, <code>quiet</code> och <code>splash</code>; moduler som laddas vid start från <code>/etc/modules</code>; sökvägar till <code>/etc/modprobe.d/*.conf</code>-filer med faktiska direktiv (<code>options</code>, <code>blacklist</code>, <code>install</code>, <code>alias</code>, <code>softdep</code>)."
|
||||
},
|
||||
{
|
||||
"collector": "collect_proxmenux_state.sh",
|
||||
"produces": "proxmenux_installed_components",
|
||||
"content": "Läser <code>/usr/local/share/proxmenux/managed_installs.json</code> (registret över allt ProxMenux har installerat) och <code>installed_tools.json</code>. Varje post håller installationsbanan (<code>menu_script</code>) så att återställningen kan utlösa exakt samma installationsflöde."
|
||||
},
|
||||
{
|
||||
"collector": "collect_guests.sh",
|
||||
"produces": "vms_lxcs_at_backup",
|
||||
"content": "Uppräknar VMs (<code>qm list</code>) och LXCs (<code>pct list</code>) närvarande vid backuptid - VMID, namn, aktuell status. Endast inventeringen: de faktiska gästdata är <code>vzdump</code>/PBS."
|
||||
}
|
||||
],
|
||||
"schemaTitle": "Schema validering",
|
||||
"schemaBody": "manifestet validerar mot <code>scripts/backup_restore/schema/manifest.schema.json</code>. Kör <code>build_manifest.sh --validate</code> utlöser en Python-side JSON Schema validering (kräver <code>python3</code> + <code>jsonschema</code>). Om modulen inte är närvarande, är kontrollen hoppad tyst - validering är i första hand ett utvecklarhjälp, inte ett drifttidsberoende."
|
||||
},
|
||||
"applications": {
|
||||
"heading": "Applikationsinventeringen",
|
||||
"intro": "Två inventeringar listar programvara utöver Proxmox VE:s baspaket: paketlistan under <code>metadata/</code> och komponentregistret i rootfs, som beskrivs nedan. Återställningen använder APT eller ProxMenux egna installationsprogram för att återskapa användarens programvara enligt det ursprungliga installationssättet.",
|
||||
"packagesTitle": "packages.manual.list",
|
||||
"packagesBody": "En alfabetisk textlista från <code>apt-mark showmanual</code> med alla APT-paket som <em>uttryckligen installerats</em> på källvärden. Beroenden till Proxmox VE:s bassystem ingår inte; målets APT installerar dem automatiskt. Under återställningen läser <code>_rs_run_complete_extras</code> listan och använder ett <em>filter mot borttagning i kaskad</em> i tre steg: <code>dpkg -s</code> hittar redan installerade paket, andra huvudversioner av bibliotek identifieras och <code>apt-get install --simulate</code> kontrollerar risken för följdborttagningar. Återstående paket installeras med <code>apt-get install -y</code>.",
|
||||
"componentsTitle": "components_status.json (del av rootfs)",
|
||||
"componentsBody": "En JSON registret under <code>/usr/local/share/proxmenux/</code> som registrerar varje komponent ProxMenux har installerat med sitt exakta tillstånd: version, ProxMenux-specifika flaggor (för NVIDIA: <code>patched</code> boolean; för Coral: DKMS version). Denna fil lever i rootfs - inte i <code>metadata/</code> - eftersom det är <em>läses efter</em> att rootfs har kopierats till målet. Post-boot dispatcher (<code>apply_cluster_postboot.sh</code>) itererar över sina poster och kör varje komponent <code>--auto-reinstall</code> krok, som läser det inspelade tillståndet och reproducerar installationen mot målets nuvarande kärna.",
|
||||
"componentInstallersTitle": "Installationsprogram för komponenter",
|
||||
"componentInstallersBody": "Fyra ProxMenux installatörer exponerar för närvarande en <code>--auto-reinstall</code> ingångspunkt:",
|
||||
"installerRows": [
|
||||
{
|
||||
"component": "nvidia_driver",
|
||||
"installer": "gpu_tpu/nvidia_installer.sh",
|
||||
"action": "Läser <code>version</code> + <code>patched</code>. Ladda ner exakt samma NVIDIA runfil, bygger DKMS-moduler mot målets kärna, applicerar ProxMenux-patchen om källan hade den."
|
||||
},
|
||||
{
|
||||
"component": "coral_driver",
|
||||
"installer": "gpu_tpu/install_coral.sh",
|
||||
"action": "Läser versionen av Coral-drivrutinen och kompilerar DKMS-modulen för målets kärna."
|
||||
},
|
||||
{
|
||||
"component": "amdgpu_top",
|
||||
"installer": "gpu_tpu/amd_gpu_tools.sh",
|
||||
"action": "Läser den inspelade versionen. Laddar ner exakt <code>.deb</code> från GitHub release."
|
||||
},
|
||||
{
|
||||
"component": "intel_gpu_tools",
|
||||
"installer": "gpu_tpu/intel_gpu_tools.sh",
|
||||
"action": "APT-installerar paketet. Idempotent om det redan finns från <code>packages.manual.list</code>."
|
||||
}
|
||||
]
|
||||
},
|
||||
"restoreFlow": {
|
||||
"heading": "Hur återställningen förbrukar de tre nyttolasterna",
|
||||
"intro": "Återställningen är en sexstegs pipeline. Varje steg läser en specifik delmängd av arkivet och uppdaterar målvärden. Inget stadium kräver att källvärden kan nås - arkivet är helt fristående.",
|
||||
"stagesCaption": "Steg 1 använder manifestet för att bestämma vad du ska röra. Steg 2 kopierar rootfs vägar som är säkra att tillämpa på ett körsystem. Stadium 3 iscensätter de riskfyllda vägarna för nästa start. Steg 3b importerar icke-rot ZFS datapooler vars diskar är alla närvarande. Steg 4 hanterar paket. Stage 5 körs efter omstart och ominstallerar komponenter mot målets kärna.",
|
||||
"stageRows": [
|
||||
{
|
||||
"stage": "1",
|
||||
"name": "Kompatibilitetskontroll",
|
||||
"reads": "manifest.json",
|
||||
"action": "Kör <code>hb_compat_check</code>. Jämför källa vs mål hårdvara (NIC, lagrings-ID), PVE-version och stor kärnversion. Set <code>HB_COMPAT_KERNEL_DIRECTION</code> (<code>same</code>, <code>bk_newer</code> eller <code>bk_older</code>) och befolkar <code>RS_SKIP_PATHS</code> med hårdvara-drift och cross-kernel uteslutningar."
|
||||
},
|
||||
{
|
||||
"stage": "2",
|
||||
"name": "Tillämpning under drift",
|
||||
"reads": "rootfs/ (endast säkra vägar)",
|
||||
"action": "<code>_rs_apply … hot</code> kopierar <code>hb_classify_path</code>=<code>hot</code>-poster direkt till live-målet. Allt under <code>/etc/pve</code>, <code>/etc/network</code> eller vägar som klassificeras som <em>reboot</em>/<em>dangerous</em> uppskjuts."
|
||||
},
|
||||
{
|
||||
"stage": "3",
|
||||
"name": "Förbered uppskjutna ändringar",
|
||||
"reads": "rootfs/ (omstart + farliga vägar)",
|
||||
"action": "<code>_rs_prepare_pending_restore</code> förbereder riskfyllda sökvägar under <code>/var/lib/proxmenux/pending-restore/</code>, skriver <code>plan.env</code>, <code>apply-on-boot.list</code> och <code>rs-skip-paths.txt</code> och aktiverar <code>proxmenux-restore-onboot.service</code> för nästa start."
|
||||
},
|
||||
{
|
||||
"stage": "3b",
|
||||
"name": "Datapool import",
|
||||
"reads": "manifest.storage_inventory + mål ZFS tillstånd",
|
||||
"action": "<code>_rs_import_data_pools</code> försöker importera varje ZFS-pool utan rotfilsystem vars samtliga diskar finns på målet. Pooler med ett annat hostid provas igen med <code>zpool import -f</code>. Om någon disk saknas hoppas poolen över med en varning. Resultatet per pool loggas i <code>/var/log/proxmenux/restore-datapools-<timestamp>.log</code>."
|
||||
},
|
||||
{
|
||||
"stage": "4",
|
||||
"name": "Paketinstallation",
|
||||
"reads": "metadata/packages.manual.list",
|
||||
"action": "<code>_rs_run_complete_extras</code> kör kaskadsäkert filter och kallar <code>apt-get install -y</code> med den överlevande paketlistan. Fullständig utdata går till <code>/var/log/proxmenux/restore-apt-*.log</code>."
|
||||
},
|
||||
{
|
||||
"stage": "5",
|
||||
"name": "Efter uppstart",
|
||||
"reads": "rootfs (redan tillämpat) + components_status.json",
|
||||
"action": "Efter omstart, <code>apply_pending_restore.sh</code> spelar tillbaka de uppskjutna banorna och <code>apply_cluster_postboot.sh</code> kör <code>update-initramfs</code>, <code>update-grub</code> (eller <code>proxmox-boot-tool refresh</code>) och itererar över <code>components_status.json</code> skjuter varje komponent <code>--auto-reinstall</code> krok."
|
||||
}
|
||||
]
|
||||
},
|
||||
"whyItWorks": {
|
||||
"heading": "Varför säkerhetskopian delas i tre delar",
|
||||
"body": "Uppdelningen följer uppgifternas <strong>livscykel</strong>. Filsystemet överförs med <code>rsync</code>: snabbt, öppet och atomärt per fil. Konfigurationstillstånd som måste tolkas före ändringar lagras som <strong>strukturerad JSON</strong>, läsbar för sig, versionshanterbar med schema och maskinellt jämförbar med målets tillstånd. Programvara som ska installeras om beskrivs i en <strong>inventering</strong> med namn och versioner; målets pakethanterare och ProxMenux installationsprogram väljer rätt binärer. Varje del fyller sin egen uppgift. Tillsammans eftersträvar de en sammanhängande återställning med feltolerans: ett skadat manifest lämnar rootfs återställbart, ett saknat paket hindrar inte komponentinstallation och ett fel för en post stoppar inte nästa."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Säkerhetskopiering och återställning — Översikt | Fullständig säkerhetskopiering och återställning av värd för Proxmox VE",
|
||||
"description": "ProxMenux Backup & Restore fångar det fullständiga tillståndet för en Proxmox-värd – filsystem, strukturerat konfigurationsmanifest och installerade paket/komponenter – och återskapar det på samma eller en annan värd. Säkerhetskopieringen och återställningen är fristående: inga externa beroenden, och återställningar över kärnor stöds genom ett riktningsmedvetet filter för säker delmängd och kärnagnostisk hydrering.",
|
||||
"ogTitle": "ProxMenux Säkerhetskopiering och återställning — Översikt",
|
||||
"ogDescription": "Fullständig säkerhetskopiering och återställning av värd för Proxmox VE med strukturerat manifest, paketlista och ominstallerare av komponenter.",
|
||||
"twitterTitle": "ProxMenux Säkerhetskopiering och återställning | ProxMenux",
|
||||
"twitterDescription": "Fullständig säkerhetskopiering och återställning av värd för Proxmox VE med strukturerat manifest, paketlista och ominstallerare av komponenter."
|
||||
},
|
||||
"header": {
|
||||
"title": "Säkerhetskopiering och återställning",
|
||||
"description": "Säkerhetskopiering av hela värden och återställning för Proxmox VE. Fångar filsystem, konfiguration och installerade komponenter i ett enda arkiv och återskapar värden på samma eller en annan Proxmox-installation utan externa beroenden.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det är, i ett stycke",
|
||||
"body": "En ProxMenux-säkerhetskopia sparar hela tillståndet för en Proxmox-värd: <strong>filsystemet</strong>, med relevanta kataloger under <code>/etc</code>, <code>/root</code> och <code>/var/lib/pve-cluster</code> samt valfria egna sökvägar; <strong>ett strukturerat manifest</strong> i JSON med upptäckt maskinvara, kärnparametrar, nätverkskonfiguration, ZFS-status, användare och cron-poster; och <strong>en programinventering</strong> med paket som APT markerar som manuellt installerade samt komponenter som ProxMenux installerat, med exakta versioner. Alla tre mål som stöds – lokalt arkiv, Proxmox Backup Server (rekommenderas) och Borg – får samma fristående innehåll. Vart och ett kan användas för att återskapa målvärden utan att källvärden behöver vara nåbar under återställningen."
|
||||
},
|
||||
"video": {
|
||||
"heading": "Videogenomgång",
|
||||
"intro": "Föredrar du att titta på Backup & Restore i aktion innan du konfigurerar det? Den här genomgången täcker en fullständig demo av funktionen i ProxMenux.",
|
||||
"title": "ProxMenux – genomgång för säkerhetskopiering och återställning",
|
||||
"caption": "Extern video på YouTube. Spelas upp i integritetsförbättrat läge (inga cookies förrän du trycker på play)."
|
||||
},
|
||||
"whatItIsNot": {
|
||||
"heading": "Vad det inte är",
|
||||
"intro": "Det här avsnittet gäller säkerhetskopiering och återställning <strong>av värden</strong>: själva Proxmox-installationen, inte de program och gästsystem som körs på den.",
|
||||
"items": [
|
||||
"<strong>Det här är inget verktyg för säkerhetskopiering av VM:ar eller CT:er.</strong> Funktionen sparar varken gästernas diskar eller RAM-tillstånd; det sköts av <code>vzdump</code>. Gästernas <strong>konfigurationsfiler</strong> (<code>/etc/pve/nodes/<node>/qemu-server/*.conf</code> och <code>lxc/*.conf</code>) <strong>ingår däremot</strong>. Efter återställning visas inventeringen igen, och diskarna kan återställas eller anslutas från en befintlig PBS- eller lokal säkerhetskopia.",
|
||||
"<strong>Det här är ingen åtgärd för hela klustret.</strong> Varje nod säkerhetskopierar sig själv. Klustertillhörigheten sparas i <code>/etc/pve</code> så att en återställd nod kan anslutas igen, men återställning av hela klustret kräver samordning mellan noderna.",
|
||||
"<strong>Det här är ingen fullständig diskavbildning.</strong> Kärnans binärfiler, initramfs och startpartitionen ingår inte. Vid återställning använder ProxMenux målvärdens egna startfiler, som återskapas automatiskt av <code>update-initramfs</code> och starthanterarens verktyg, och installerar drivrutiner som passar målets körande kärna."
|
||||
]
|
||||
},
|
||||
"threePillars": {
|
||||
"heading": "De tre pelarna i en säkerhetskopia",
|
||||
"intro": "Ett ProxMenux arkiv är uppbyggt kring tre fristående nyttolaster. Återställningen använder alla tre tillsammans för att reproducera källvärden på ett mål som kanske inte ens har samma kärna installerad.",
|
||||
"diagramCaption": "Varje säkerhetskopia innehåller samma tre datablock oavsett destination. Återställningen använder alla tre: rootfs för att återställa filerna, manifestet för att upptäcka avvikelser och skillnader mellan kärnversioner samt programinventeringen för att installera om paket och komponenter för målets egen kärna.",
|
||||
"pillar1Label": "Filsystem",
|
||||
"pillar1Detail": "rootfs/\n(rsync av /etc,\n/etc/systemd/network,\n/root, samt en\nsqlite3-ögonblicksbild\nav /var/lib/pve-cluster,\n+ valfria sökvägar)",
|
||||
"pillar2Label": "Manifest",
|
||||
"pillar2Detail": "manifest.json\n(maskinvara, kärn-\nparametrar, nätverk,\nZFS, användare, cron,\nZFS-pooler, lagring)",
|
||||
"pillar3Label": "Applikationer",
|
||||
"pillar3Detail": "packages.manual.list\n+ components_status.json\n(manuella APT-paket + ProxMenux-\ninstallationsprogram med versioner)"
|
||||
},
|
||||
"restoreIsUniversal": {
|
||||
"heading": "Återställningen återger källvärden, inte arkivet",
|
||||
"body": "En återställning av en ProxMenux-säkerhetskopia packar inte bara upp filsystemet. Återställningen läser manifestet för att upptäcka avvikelser mellan källa och mål (maskinvaruskillnader, namnbyten på nätverkskort, kärnversion och ZFS-poolens identitet), återställer filsystemet och startar sedan rätt komponentinstallerare för varje tjänst som fanns på källan (NVIDIA-drivrutin, Coral TPU samt GPU-verktyg för AMD och Intel). Varje installerare körs för <strong>målets aktuella kärna</strong>, så den återställda värden är inte beroende av att källans kärna finns kvar. När målets kärna är nyare än säkerhetskopians sammanfogar en kärnoberoende <strong>hydrering</strong> användarens egna inställningar (IOMMU-token, VFIO-enhets-ID:n, särskilda anpassningar och GRUB-nycklar) med målets nya startkonfiguration utan att kopiera kärnbundna filer ordagrant."
|
||||
},
|
||||
"twoInterfaces": {
|
||||
"heading": "Två gränssnitt, en backend",
|
||||
"intro": "Varje steg i arbetsflödet för säkerhetskopiering och återställning är tillgängligt från två ingångspunkter. Båda anropar samma skalbibliotek, producerar identiska arkiv och läser samma jobbregister.",
|
||||
"cliLabel": "ProxMenux Scripts (TUI)",
|
||||
"cliDetail": "meny → Verktyg →\nVärdsäkerhetskopiering/återställning\n\nDialogbaserat flöde,\nSSH-vänlig, skriptbar\nför obevakad användning.",
|
||||
"webLabel": "ProxMenux Monitor (Webb UI)",
|
||||
"webDetail": "Backups-fliken i\nMonitors webbgränssnitt.\n\nÅterställning med ett klick,\nlöpande loggvisning, integrerat\nmed aviseringar och visning\nav skillnader vid återställning."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Vart ska man gå härifrån",
|
||||
"intro": "Varje underavsnitt nedan täcker en aspekt av arbetsflödet på djupet. Börja med <em>Hur det fungerar</em> om målet är att förstå vad arkivet innehåller och varför. Hoppa till <em>Destinationer</em> för att konfigurera målet för kopian. Läs <em>Återställning</em> och <em>Återställning mellan kärnversioner</em> för återställningssidan.",
|
||||
"items": [
|
||||
{
|
||||
"label": "Så fungerar det",
|
||||
"href": "/docs/backup-restore/how-it-works",
|
||||
"tail": "— de tre nyttolasterna (rootfs, manifest, applikationer) i detalj, med de samlare som producerar dem och formatet för varje fil."
|
||||
},
|
||||
{
|
||||
"label": "Destinationer",
|
||||
"href": "/docs/backup-restore/destinations",
|
||||
"tail": "— jämförelse av lokal, Proxmox Backup Server (rekommenderas) och Borg, och hur man konfigurerar var och en."
|
||||
},
|
||||
{
|
||||
"label": "Skapa säkerhetskopior",
|
||||
"href": "/docs/backup-restore/creating-backups",
|
||||
"tail": "— engångssäkerhetskopior, standardsökvägsprofilen, lägga till anpassade sökvägar, kryptering för PBS."
|
||||
},
|
||||
{
|
||||
"label": "Schemalagda jobb",
|
||||
"href": "/docs/backup-restore/scheduled-jobs",
|
||||
"tail": "— nya jobb kontra att koppla till ett befintligt PVE vzdump-jobb, schemaläggningsformat, jobbdetaljmodal."
|
||||
},
|
||||
{
|
||||
"label": "Återställning",
|
||||
"href": "/docs/backup-restore/restoring",
|
||||
"tail": "— de tre åtgärderna i ett arkiv (visa, ladda ner, återställ), Komplett vs. anpassad återställning, post-boot-dispatcher och varför de sista tio minuterna är viktiga."
|
||||
},
|
||||
{
|
||||
"label": "Återställning mellan kärnversioner",
|
||||
"href": "/docs/backup-restore/cross-kernel",
|
||||
"tail": " — beteende som tar hänsyn till riktningen på versionsbytet när målets kärna skiljer sig från säkerhetskopians, filtret för en säker delmängd och de fyra hydreringsfaserna."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Schemalagda jobb — timers, kopplingsläge, bevarande | ProxMenux",
|
||||
"description": "Schemalagda ProxMenux-jobb för säkerhetskopiering av värden. Två sätt att skapa jobb (egen systemd-timer eller koppling till ett befintligt PVE vzdump-jobb), bevaranderegler per jobb via proxmox-backup-client, Borg eller lokal rensning, filer under /var/lib/proxmenux/backup-jobs och körningsskriptet som skapar samma arkiv som det interaktiva flödet.",
|
||||
"ogTitle": "ProxMenux Backup - schemalagda jobb",
|
||||
"ogDescription": "Obevakade schemalagda värdsäkerhetskopior med kopplingsläge, bevaranderegler och samma tre destinationer som det interaktiva flödet.",
|
||||
"twitterTitle": "Planerade jobb | ProxMenux",
|
||||
"twitterDescription": "Obevakade schemalagda värdsäkerhetskopieringsjobb med kopplingsläge och bevaranderegler."
|
||||
},
|
||||
"header": {
|
||||
"title": "Planerade jobb",
|
||||
"description": "Obevakade jobb för säkerhetskopiering av värden. Två modeller: ett nytt oberoende jobb med eget schema eller ett jobb kopplat till ett befintligt PVE vzdump-jobb som ärver dess schema och bevaranderegler. Båda skapar samma arkiv som det interaktiva flödet.",
|
||||
"section": "Säkerhetskopiering och återställning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "De två modellerna för schemalagda jobb",
|
||||
"body": "Ett schemalagt jobb kan skapas efter en av två modeller:",
|
||||
"modelsList": [
|
||||
"<strong>Nytt oberoende jobb</strong> - ProxMenux definierar själva arbetsschemat med sin egen systemd timer, oberoende av någon annan uppgift på värden. Kompatibel med alla tre destinationer: Lokal, PBS och Borg.",
|
||||
"<strong>Koppla till ett befintligt PVE vzdump-jobb</strong> — jobbet har inget eget schema; det körs automatiskt när det överordnade vzdump-jobbet säkerhetskopierar värdens VM:ar och LXC:er. Det ärver schemat och bevarandereglerna. Stöder lokalt mål och PBS (Borg stöds inte eftersom PVE saknar en inbyggd schemaläggare för Borg)."
|
||||
]
|
||||
},
|
||||
"attachBadge": {
|
||||
"title": "Kopplingsläge — rekommenderas när ett PVE vzdump-jobb redan finns",
|
||||
"body": "Om ett PVE vzdump-jobb redan är konfigurerat för nodens VM:ar och LXC:er körs den kopplade värdsäkerhetskopieringen efter gästernas säkerhetskopiering, i <strong>samma säkerhetskopieringscykel</strong>. Vid återställning kommer gästkonfigurationerna från värdsäkerhetskopian (under <code>/etc/pve</code>) och gästdiskarna från cykelns vzdump-kopior. Detta underlättar samordnad återställning av hela noden men är ingen atomär ögonblicksbild: ändringar under cykeln kan ge skillnader mellan värdkonfiguration och gästernas disktillstånd."
|
||||
},
|
||||
"frequencyBadge": {
|
||||
"title": "Rekommenderad frekvens",
|
||||
"body": "Säkerhetskopiera värden ofta för att maximera kompatibiliteten med en framtida återställning. Ju närmare säkerhetskopian ligger värdens aktuella tillstånd, desto färre avvikelser i konfiguration, paket och komponenter måste återställningen hantera."
|
||||
},
|
||||
"modes": {
|
||||
"heading": "De två lägena",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "Nytt schemalagt jobb",
|
||||
"backends": "Lokalt, PBS, Borg",
|
||||
"schedule": "Egen <code>OnCalendar</code> uttryck (systemd kalendersyntax - t.ex. <code>daily</code>, <code>Mon..Fri 03:00</code>).",
|
||||
"retention": "Efterfrågas separat: <code>keep-last</code>, <code>keep-hourly</code>, <code>keep-daily</code>, <code>keep-weekly</code>, <code>keep-monthly</code>, <code>keep-yearly</code>. Tillämpad av körningsskriptet efter varje framgångsrik backup."
|
||||
},
|
||||
{
|
||||
"mode": "Bifoga till ett PVE vzdump jobb",
|
||||
"backends": "Lokal, PBS (Borg har ingen PVE-sida schemaläggning)",
|
||||
"schedule": "Ärvd från föräldern PVE jobb. Ingen systemd-timer installeras på ProxMenux-sidan.",
|
||||
"retention": "Ärvd från förälderns <code>prune-backups</code>-konfiguration (mappade en-till-en till körningsskriptets <code>KEEP_*</code>-variabler via <code>hb_pve_prune_to_keep_env</code>)."
|
||||
}
|
||||
]
|
||||
},
|
||||
"attachDetail": {
|
||||
"heading": "Så fungerar kopplingsläget",
|
||||
"intro": "PVE skriver <code>vzdump</code>-jobb till <code>/etc/pve/jobs.cfg</code>, med ett avsnitt per jobb som anger lagringen för VM- och LXC-kopiorna. Kopplingsläget kräver en backend som ProxMenux stöder (lokalt eller PBS). Värdsäkerhetskopieringen körs via job-end-hooken efter att gästernas säkerhetskopieringsjobb avslutats.",
|
||||
"steps": [
|
||||
{
|
||||
"step": "1",
|
||||
"detail": "Under jobbskapande listar ProxMenux kompatibla förälder PVE-uppgifter via <code>hb_pve_list_vzdump_jobs_for_backend</code>. Användaren väljer en."
|
||||
},
|
||||
{
|
||||
"step": "2",
|
||||
"detail": "Jobbets <code>.env</code> är skrivet med <code>PVE_PARENT_JOB</code>, <code>PVE_STORAGE</code> och de ärvda <code>KEEP_*</code> värdena; ingen systemd timer skapas."
|
||||
},
|
||||
{
|
||||
"step": "3",
|
||||
"detail": "<code>hb_install_vzdump_hook</code> registrerar en skripthook i <code>/etc/vzdump.conf</code>. I job-end-fasen för varje vzdump-jobb jämförs mottaget <code>$STOREID</code> med <code>PVE_STORAGE</code> för varje aktiverat kopplat jobb, och körningsskriptet startas för matchande jobb. Matchningen görs efter lagring, inte efter det valda överordnade jobbets ID."
|
||||
},
|
||||
{
|
||||
"step": "4",
|
||||
"detail": "Arkivet sparas i samma lagring som vzdump-kopiorna: <code>path/dump/</code> för lokalt mål eller PBS-arkivlagret som konfigurerats i PVE-lagringsposten."
|
||||
}
|
||||
],
|
||||
"outroBody": "Kopplingsläget har ingen egen timer. Om det valda överordnade PVE-jobbet inaktiveras eller tas bort stoppas dess utlösning, men ett annat vzdump-jobb med samma lagring kan fortfarande starta värdsäkerhetskopieringen. Inaktivera eller ta bort själva ProxMenux-jobbet för att förhindra det. Vid inaktivering ligger jobbposten kvar och kan senare aktiveras eller kopplas igen."
|
||||
},
|
||||
"storageLayout": {
|
||||
"heading": "Filer som utgör ett jobb",
|
||||
"intro": "Varje schemalagt jobb beskrivs fullständigt av tre eller fyra filer på disken. Att läsa dem ger hela konfigurationen av jobbet utan att förlita sig på gränssnittet.",
|
||||
"rows": [
|
||||
{
|
||||
"path": "/var/lib/proxmenux/backup-jobs/JOB_ID.env",
|
||||
"content": "Backend, backup-ID eller destination, schema (nyt läge) eller PVE-förälder (Attach-läge), aktiverad flagga, lagring <code>KEEP_*</code>-värden, referenspekare."
|
||||
},
|
||||
{
|
||||
"path": "/var/lib/proxmenux/backup-jobs/JOB_ID.paths",
|
||||
"content": "En absolut sökväg per rad — valet från profilen fastställs när jobbet skapas. Om filen redigeras används det nya valet nästa gång timern löser ut."
|
||||
},
|
||||
{
|
||||
"path": "/etc/systemd/system/proxmenux-backup-JOB_ID.timer + .service",
|
||||
"content": "Nytt läge bara. Tjänsten anropar <code>run_scheduled_backup.sh JOB_ID</code>. Timern schemalägger det med <code>Persistent=true</code> (missade körningar utförs vid nästa start) och en liten <code>RandomizedDelaySec=120</code> att sprida belastning när flera jobb delar samma OnCalendar uttryck."
|
||||
},
|
||||
{
|
||||
"path": "/etc/vzdump.conf script-hook",
|
||||
"content": "Fäst läge bara. Installerad en gång av <code>hb_install_vzdump_hook</code>; matchar varje bifogat jobb <code>PVE_STORAGE</code> mot <code>$STOREID</code> PVE passerar till krokskriptet."
|
||||
}
|
||||
]
|
||||
},
|
||||
"runner": {
|
||||
"heading": "Vad ett jobb gör när det startar",
|
||||
"intro": "Varje jobb – oavsett om det är nymodell eller bifogad – kör samma trestegssekvens:",
|
||||
"steps": [
|
||||
"<strong>Förbered säkerhetskopian.</strong> Läser jobbkonfigurationen (destination, profil, vägar) och monterar arkivträdet exakt på samma sätt som det interaktiva flödet gör. Resultatet är samma arkiv som en manuell säkerhetskopia med dessa inställningar skulle producera.",
|
||||
"<strong>Skriv till destinationen.</strong> Laddar eller skriver arkivet till den konfigurerade destinationen - en lokal <code>.tar.zst</code> fil, en PBS backup, eller ett Borg-arkiv - med exakt samma verktyg och referenser en manuell säkerhetskopia till samma destination skulle använda.",
|
||||
"<strong>Tillämpa bevaranderegler.</strong> Ta bort gamla säkerhetskopior från destinationen, hålla <code>keep-last</code> / <code>keep-daily</code> / <code>keep-weekly</code> räknas konfigurerade på jobbet. Pruning utförs av själva destinationen: PBS tillämpar sina egna bevaranderegler, Borg kör <code>borg prune</code>, och för Local ProxMenux raderar filerna som faller utanför <code>keep-last</code>-fönstret."
|
||||
]
|
||||
},
|
||||
"management": {
|
||||
"heading": "Hantera jobb",
|
||||
"intro": "Schemaläggarmenyn (Scripts TUI) och fliken Monitor Backups avslöjar samma åtgärder på något jobb.",
|
||||
"rows": [
|
||||
{
|
||||
"action": "Kör nu",
|
||||
"detail": "Anropar körningsskriptet omedelbart utan att vänta på timern eller vzdump-hooken. Användbart för att verifiera konfigurationen utan att vänta till nästa schemalagda körning."
|
||||
},
|
||||
{
|
||||
"action": "Aktivera / Inaktivera",
|
||||
"detail": "Nytt läge: <code>systemctl enable/disable --now</code> timern. Bifoga läge: vänder <code>ENABLED</code> flaggan i jobbenv - krokskriptet respekterar den vid nästa PVE-körning."
|
||||
},
|
||||
{
|
||||
"action": "Redigera",
|
||||
"detail": "Öppnar åter dialogerna för destination, schema, profil och bevarande och skriver om jobbfilerna. Jobb-ID:t behålls."
|
||||
},
|
||||
{
|
||||
"action": "Ta bort",
|
||||
"detail": "Tar bort jobbets env-fil, sökvägsfilen och systemd-timern med tjänsten (nytt läge) samt inaktiverar hookkopplingen (kopplingsläge). Arkiv som redan finns på destinationen påverkas inte."
|
||||
},
|
||||
{
|
||||
"action": "Visa logg",
|
||||
"detail": "Strömmar <code>/var/log/proxmenux/backup-jobs/JOB_ID-YYYYMMDD_HHMMSS.log</code> — en loggfil per körning. Körningsskriptet sänder också ut en kompakt statusrad till journald under tjänsten systemd."
|
||||
}
|
||||
]
|
||||
},
|
||||
"notifications": {
|
||||
"heading": "Aviseringar",
|
||||
"body": "Varje schemalagd körning utlöser samma <code>hb_notify_lifecycle</code> händelser som det interaktiva flödet (<code>start</code>, <code>complete</code>, <code>fail</code>). Om meddelandekanaler är konfigurerade i Monitor, obevakade jobb visar sina resultat på samma sätt manuella säkerhetskopior gör - en användare behöver inte kontrollera loggen för att veta om ett jobb lyckades."
|
||||
},
|
||||
"whereNext": {
|
||||
"heading": "Nästa steg",
|
||||
"items": [
|
||||
{
|
||||
"label": "Skapa backups",
|
||||
"href": "/docs/backup-restore/creating-backups",
|
||||
"tail": " - det interaktiva flödet som delar backend med schemaläggaren."
|
||||
},
|
||||
{
|
||||
"label": "Destinationer",
|
||||
"href": "/docs/backup-restore/destinations",
|
||||
"tail": " — per-backend konfiguration som används av både det interaktiva flödet och schemaläggaren."
|
||||
},
|
||||
{
|
||||
"label": "Återställande",
|
||||
"href": "/docs/backup-restore/restoring",
|
||||
"tail": " — flödet som använder de säkerhetskopior som jobben skapar."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Lägg till styrenhet eller NVMe i en VM | ProxMenux-dokumentation",
|
||||
"description": "PCI-passthrough av en lagringsstyrenhet (SATA/SAS-HBA) eller NVMe-enhet till en Proxmox-VM med ProxMenux. Hanterar aktivering av IOMMU, konfliktkontroll och tilldelning med qm set --hostpci.",
|
||||
"ogTitle": "Lägg till styrenhet eller NVMe i en VM | ProxMenux-dokumentation",
|
||||
"ogDescription": "Tilldela en hel SATA/SAS-HBA eller NVMe-enhet till en Proxmox-VM. ProxMenux hanterar IOMMU, konfliktkontroll och hostpci-tilldelningen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lägg till styrenhet eller NVMe i en VM",
|
||||
"description": "Tilldela en hel SATA/SAS-värdbussadapter (HBA) eller NVMe-enhet till en Proxmox-VM via PCI-passthrough. ProxMenux kontrollerar IOMMU och aktiverar det med ditt samtycke, listar lämpliga enheter, filtrerar bort konflikter och konfigurerar tilldelningen med qm set --hostpci.",
|
||||
"section": "Diskhanterare · VM"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör (och inte) gör",
|
||||
"body": "Detta är <strong>passthrough på enhetsnivå</strong>: PCIe-kortet lämnar värdkärnans kontroll och binds till <code>vfio-pci</code>. VM:n ser själva styrenheten i stället för enskilt vidarebefordrade diskar och laddar sin egen drivrutin för modellen. Alla anslutna diskar följer automatiskt med, med inbyggda SMART-data, fullständiga firmwarefunktioner och utan ett Proxmox-lager emellan."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Flödet har två faser med tydlig separation mellan \"samla information, kontrollera IOMMU och lista kandidater\" och \"faktiskt fästa PCI-enheten\". Fram till den slutliga bekräftelsen skrivs ingenting till VM-konfig."
|
||||
},
|
||||
"iommu": {
|
||||
"heading": "IOMMU-grupper – varför hela kortet lämnar samtidigt",
|
||||
"body": "Isoleringsgränsen för PCI-passthrough är <strong>IOMMU-gruppen</strong>, den minsta enhet som processorns IOMMU kan isolera. Enheter i samma grupp kan inte isoleras från varandra. Om en SATA-styrenhet delar grupp med en USB-styrenhet kan SATA-passthrough kräva att även USB frigörs från värden, eller hindra passthrough. Alla enheter i gruppen tilldelas inte automatiskt till VM:n.",
|
||||
"outro": "ProxMenux visar IOMMU-gruppen bredvid varje enhet och varnar dig när en grupp bär mer än bara den kontroller du vill ha. Du kan fortfarande fortsätta om de extra enheterna i gruppen är acceptabla (alla diskkontroller, till exempel), eller backa ut om de inte är det."
|
||||
},
|
||||
"prereqs": {
|
||||
"heading": "Förutsättningar",
|
||||
"items": [
|
||||
"<strong>Processor och moderkort stöder</strong> VT-d (Intel) eller AMD-Vi, och funktionen är aktiverad i firmware (BIOS/UEFI). ProxMenux kan aktivera kärnans inställning men inte ändra firmwareinställningen.",
|
||||
"Mål-VM:n är <strong>avstängd</strong> innan PCI-enheter ansluts.",
|
||||
"Controller/NVMe <strong> är inte den som innehar Proxmox root-filsystem</strong>. Skriptet döljer allt som används av värden.",
|
||||
"Gästoperativsystemet har drivrutiner för styrenhetens modell. Linux stöder praktiskt taget alla HBA:er direkt; Windows behöver tillverkarens drivrutin installerad <em>innan</em> du startar med styrenheten ansluten."
|
||||
],
|
||||
"warnTitle": "Live migration är inte möjligt",
|
||||
"warnBody": "En VM med PCI-passthrough är knuten till noden där kortet sitter fysiskt. Livemigrering mellan noder misslyckas. Planera säkerhetskopiering och replikering därefter."
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj mål-VM",
|
||||
"bodyRich": "ProxMenux läser <code>qm list</code> och visar alla VM:ar. Välj den som ska få styrenheten.",
|
||||
"img": "/disk/nvme-passthrough/vm-selection.png",
|
||||
"alt": "VM urvalsdialog",
|
||||
"caption": "VM urvalsdialog"
|
||||
},
|
||||
{
|
||||
"title": "IOMMU-kontroll",
|
||||
"bodyRich": "Om IOMMU inte är aktiverat i kärnans kommandorad erbjuder ProxMenux att aktivera det. Skriptet redigerar <code>/etc/kernel/cmdline</code> för systemd-boot eller <code>/etc/default/grub</code> för GRUB och lägger till rätt parameter för din processor:",
|
||||
"items": [
|
||||
"<code>intel_iommu=on</code> för Intel CPU.",
|
||||
"<code>amd_iommu=on</code> för AMD CPU."
|
||||
],
|
||||
"outro": "En omstart krävs efter ändringen. Skriptet erbjuder omstart nu eller senare; passthrough kan inte fortsätta förrän kärnans nya kommandorad är aktiv.",
|
||||
"img": "/disk/nvme-passthrough/iommu-warning.png",
|
||||
"alt": "Dialogrutan IOMMU krävs",
|
||||
"caption": "IOMMU krävs: erbjudande om aktivering och omstart"
|
||||
},
|
||||
{
|
||||
"title": "Enhetsuppräkning",
|
||||
"body": "ProxMenux listar varje lagringskontroll (SATA / SAS HBA) och varje NVMe-enhet på PCI-bussen. För varje enhet den visar:",
|
||||
"items": [
|
||||
"PCI-adress (<code>00:17.0</code>, <code>01:00.0</code>, ...).",
|
||||
"Leverantör / enhetsbeskrivning.",
|
||||
"IOMMU-grupp, med en ⚠-varning om gruppen delas med andra orelaterade enheter.",
|
||||
"Diskarna som är anslutna till styrenheten, så att du vet vilka som följer med till VM:n."
|
||||
],
|
||||
"img": "/disk/nvme-passthrough/device-list.png",
|
||||
"alt": "Lista över styrenheter och NVMe-enheter",
|
||||
"caption": "Lista över styrenheter och NVMe-enheter med information om IOMMU-grupper"
|
||||
},
|
||||
{
|
||||
"title": "Konfliktdetektering",
|
||||
"bodyRich": "Skriptet blockerar tydligt osäkra enheter: sådana som redan tilldelats en annan VM via <code>hostpci</code> i dess konfiguration, används av värden som styrenheten för rotdisken, eller ingår i en IOMMU-grupp vars övriga medlemmar inte kan identifieras säkert. Lämpliga enheter går att välja.",
|
||||
"img": "/disk/nvme-passthrough/conflict-warning.png",
|
||||
"alt": "Varning om upptäckt konflikt",
|
||||
"caption": "Konfliktdetektering - enhet blockerad med anledning"
|
||||
},
|
||||
{
|
||||
"title": "Anslut och slutför",
|
||||
"bodyRich": "För varje vald enhet kör ProxMenux <code>qm set <VMID> --hostpciN <pci-addr>,pcie=1</code> och väljer nästa lediga <code>hostpci</code>-plats. Om IOMMU aktiverades under sessionen påminns du om att starta om värden innan VM:n startas.",
|
||||
"img": "/disk/nvme-passthrough/assignment.png",
|
||||
"alt": "Tilldelningssammanfattning",
|
||||
"caption": "Tilldelningsöversikt: hostpciN-platser och anslutna PCI-adresser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarighet"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noGroupsTitle": "IOMMU aktiverade men inga grupper under /sys/kernel/iommu_groups/",
|
||||
"noGroupsBody": "En omstart krävs för att kärnans kommandorad ska börja gälla. Om grupperna fortfarande saknas efter omstart är VT-d/AMD-Vi troligen inaktiverat i firmware. Kontrollera BIOS/UEFI-inställningarna.",
|
||||
"busyTitle": "VM:n startar inte: \"hostpciN: device busy\"",
|
||||
"busyBody": "En annan process håller fortfarande PCI-enheten upptagen. Vanliga orsaker är en VM som kraschat utan att frigöra den eller att värdkärnan tog tillbaka den vid senaste starten. Kör <code>lspci -nnk -s <addr></code> för att se den bundna drivrutinen; den bör vara <code>vfio-pci</code>. En fullständig omstart av värden brukar lösa problemet.",
|
||||
"noDisksTitle": "Gästen ser styrenheten men inte diskarna",
|
||||
"noDisksBody": "Gästen saknar drivrutin för styrenhetens modell. Det är ovanligt i Linux men förekommer i Windows: installera tillverkarens drivrutin, exempelvis LSI/Broadcom för äldre SAS-HBA:er, när kortet inte är tilldelat och starta sedan om med kortet tilldelat.",
|
||||
"sharedTitle": "IOMMU-gruppen innehåller en orelaterad enhet",
|
||||
"sharedBody": "Alternativ: (a) flytta kortet till en annan PCIe slot för att ändra sin grupp, (b) aktivera <em>ACS override</em> i kärnan för att dela grupper (säkerhet avvägning - forskning innan applicering), eller (c) välja ett annat kort i en renare grupp."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-vm",
|
||||
"label": "Importera disk till VM",
|
||||
"tail": " — alternativ: anslut en fysisk disk via Proxmox utan fullständig PCIe-passthrough."
|
||||
},
|
||||
{
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"tail": " - samma IOMMU / VFIO-koncept som tillämpas på en GPU."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"label": "GPU Passthrough kommandon",
|
||||
"tail": " - IOMMU-verifieringskommandon gäller också för styrenhet / NVMe-genomgång."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Formatera eller radera en fysisk disk | ProxMenux-dokumentation",
|
||||
"description": "Radera och formatera fysiska diskar på Proxmox VE med ProxMenux. Fyra driftlägen, strikta filter som blockerar systemdiskar, monterade eller använda diskar och dubbel bekräftelse med inmatning av hela sökvägen.",
|
||||
"ogTitle": "Formatera eller radera en fysisk disk | ProxMenux-dokumentation",
|
||||
"ogDescription": "Radera eller formatera en fysisk disk på Proxmox. Säkerhetsfilter, fyra driftlägen och dubbel bekräftelse."
|
||||
},
|
||||
"header": {
|
||||
"title": "Formatera / radera fysisk disk",
|
||||
"description": "Radera eller formatera en fysisk disk på Proxmox-värden. ProxMenux visar bara helt lediga diskar som inte används av systemet, inte refereras av gäster och inte har några monteringar. Innan data förstörs krävs dubbel bekräftelse: ja/nej och inmatning av hela disksökvägen.",
|
||||
"section": "Diskhanterare · Verktyg"
|
||||
},
|
||||
"danger": {
|
||||
"title": "Destruktivt verktyg",
|
||||
"body": "Varje operation här skriver till disken. Det finns ingen undo. ProxMenux tillämpar strikta säkerhetsfilter och bekräftelser, men ansvaret för att välja rätt disk är din. Läs diskvägen högt två gånger innan du skriver den."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Flödet har två faser med tre säkerhetskontroller emellan. I fas 1 samlas diskval, driftläge och filsystemsuppgifter in. Ingenting skrivs förrän fas 2 klarar en sista förnyad kontroll direkt före körningen."
|
||||
},
|
||||
"visibility": {
|
||||
"heading": "Synlighetsregler",
|
||||
"intro": "Innan menyn ens visas filtrerar ProxMenux disklistan. Endast kandidater som är bevisligen säkra visas:",
|
||||
"items": [
|
||||
"<strong>Visas</strong>: diskar som <em>inte</em> används av värden (rotpool, swap, monteringar, aktiv ZFS/LVM/RAID) och <em>inte</em> refereras i någon VM/LXC-konfiguration, oavsett om gästen körs eller är stoppad.",
|
||||
"<strong>Döljs</strong>: värd- och systemdiskar.",
|
||||
"<strong>Döljs</strong>: diskar som refereras i en VM/LXC-konfiguration."
|
||||
],
|
||||
"safetyTitle": "Säkerhet vid bekräftelse och utförande",
|
||||
"safetyItems": [
|
||||
"Diskar med gamla eller aktiva metadata visar detaljerade varningar <em>innan</em> du bekräftar.",
|
||||
"Diskar som används av en <strong>körande</strong> VM <strong>blockeras helt</strong> vid bekräftelsen.",
|
||||
"Diskar med monterade partitioner <strong>blockeras helt</strong> vid körningen. En ny kontroll görs direkt innan något skrivs.",
|
||||
"Två bekräftelser krävs alltid: en <em>ja/nej</em>-dialog och exakt inmatning av hela disksökvägen."
|
||||
]
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Operationslägen",
|
||||
"intro": "Efter att ha valt en disk väljer du en av fyra lägen. De skiljer sig åt i vad de förstör och vad de lämnar efter sig:",
|
||||
"headerMode": "Läge",
|
||||
"headerPart": "Partitionstabell",
|
||||
"headerData": "Data",
|
||||
"headerUseCase": "Användningsfall",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "1. Radera allt",
|
||||
"part": "Förstörd",
|
||||
"data": "Signaturer raderade",
|
||||
"useCase": "Tar bort partitionstabellen och metadata för filsystem och RAID, nollställer de första och sista 16 MiB och kör TRIM på hela disken om enheten stöder discard. Övriga data skrivs inte över och kan fortfarande gå att återställa på en HDD; detta är ingen säker radering."
|
||||
},
|
||||
{
|
||||
"mode": "2. Ta bort FS-etiketter",
|
||||
"part": "Bevarad",
|
||||
"data": "Bevarad",
|
||||
"useCase": "Tar bort gamla ZFS/LVM/RAID-signaturer så att disken inte tas i bruk automatiskt. Användardata skrivs inte över i sin helhet, men borttagna signaturer kan göra dem oåtkomliga."
|
||||
},
|
||||
{
|
||||
"mode": "3. Nollställ alla data",
|
||||
"part": "Bevarad",
|
||||
"data": "Förstörda (överskrivna med nollor)",
|
||||
"useCase": "Skriv över befintliga partitioner med nollor och behåll partitionstabellen. Oallokerat utrymme och SSD-reservområden omfattas inte; detta garanterar inte fullständig datasanering av enheten."
|
||||
},
|
||||
{
|
||||
"mode": "4. Fullständigt format",
|
||||
"part": "Ny GPT",
|
||||
"data": "Förstörd",
|
||||
"useCase": "Redo att använda disk med en enda ny partition och ett nytt filsystem."
|
||||
}
|
||||
],
|
||||
"fullFormatOutro": "<strong>Fullständig formatering</strong> fortsätter med två ytterligare dialogrutor:",
|
||||
"fullFormatItems": [
|
||||
"<strong>Filsystem</strong>: <code>ext4</code>, <code>xfs</code>, <code>exfat</code> (portabelt) eller <code>btrfs</code>. Om verktyg som <code>mkfs.btrfs</code> saknas avbryts åtgärden med ett tydligt meddelande.",
|
||||
"<strong>Etikett</strong>: valfri filsystemetikett för identifiering."
|
||||
]
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj en ledig disk",
|
||||
"body": "ProxMenux listar de diskar som klarar filtren ovan. Diskar märkta med ⚠ har gamla metadata som visas i detalj så att du vet vad du är på väg att skriva över."
|
||||
},
|
||||
{
|
||||
"title": "Välj ett operationsläge",
|
||||
"bodyRich": "Välj <strong>Radera allt</strong>, <strong>Ta bort FS-etiketter</strong>, <strong>Nollställ alla data</strong> eller <strong>Fullständig formatering</strong> enligt tabellen ovan."
|
||||
},
|
||||
{
|
||||
"title": "(Endast fullständig formatering) Välj filsystem och etikett",
|
||||
"body": "ext4 / xfs / exfat / btrfs, plus en valfri etikett."
|
||||
},
|
||||
{
|
||||
"title": "Bekräfta två gånger",
|
||||
"bodyRich": "ProxMenux visar en sammanfattning av åtgärden. Bekräfta i ja/nej-dialogen och <strong>skriv hela disksökvägen</strong> exakt som den visas, exempelvis <code>/dev/sdc</code>. All annan inmatning avbryter."
|
||||
},
|
||||
{
|
||||
"title": "Re-validering och utförande",
|
||||
"body": "Direkt före skrivningen kontrollerar skriptet diskens tillstånd igen. Om en partition har monterats eller en VM startats under tiden avbryts körningen. Annars utförs den valda åtgärden och en sammanfattning visas efteråt."
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuella motsvarigheter",
|
||||
"body": "Om du föredrar att köra motsvarande kommandon för hand:"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"notListedTitle": "Disk som inte anges i menyn",
|
||||
"notListedBody": "Det filtrerades för säkerhet. Vanliga skäl: det är monterat (även på <code>/mnt/tmp</code>), det är en aktiv ZFS / LVM / RAID-medlem, det refereras av en VM eller LXC config, eller det är din Proxmox root disk. Kör <code>lsblk -f</code> och <code>cat /proc/mdstat</code> på värden för att förstå varför.",
|
||||
"busyTitle": "\"Disk may be busy\" / avmontering misslyckades",
|
||||
"busyBody": "Något håller fortfarande en öppen fil på en partition av den disken - oftast en container eller ett skal vars cwd är inuti en monteringspunkt. Identifiera det med <code>lsof | grep /dev/sdX</code> eller <code>fuser -vm /dev/sdX1</code>, stoppa det och sedan köra verktyget igen."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/smart-disk-test",
|
||||
"label": "SMART-status och disktest",
|
||||
"tail": " — Kontrollera en disk före / efter att ha torkat för att bekräfta att den är frisk."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-vm",
|
||||
"label": "Importera disk till VM",
|
||||
"tail": " — passera en nyformaterad disk till en VM."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"label": "Lägg till lokal disk som Proxmox lagring",
|
||||
"tail": " - registrera en torkad disk som en Proxmox lagringspool."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"tail": " — referens för lsblk, blkid och parted."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Importera diskbild till VM | ProxMenux Dokumentation",
|
||||
"description": "Importera en disk bildfil (.img / .qcow2 / .vmdk / .raw) till en befintlig Proxmox VM med ProxMenux. Per-image gränssnitt, SSD emulering och startbar flagga, med qm importdisk under huven.",
|
||||
"ogTitle": "Importera diskbild till VM | ProxMenux Dokumentation",
|
||||
"ogDescription": "Importera .img / .qcow2 / .vmdk / .raw-diskavbildningar till en befintlig VM med ProxMenux. Använder qm importdisk i bakgrunden."
|
||||
},
|
||||
"header": {
|
||||
"title": "Importera diskavbildning till virtuell dator",
|
||||
"description": "Importera en diskbildfil (.img, .qcow2, .vmdk eller .raw) till en befintlig Proxmox VM. ProxMenux samlar varje beslut up-front - mål VM, Proxmox lagring, källkatalog, gränssnitt, SSD emulering, startorder - och sedan kör qm importdisk för varje vald avbildning.",
|
||||
"section": "Diskhanterare · VM"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Till skillnad från <em>Importera disk till VM</em>, som ansluter en fysisk disk direkt, använder detta flöde en <strong>fil</strong> på värden: exporterad från en annan hypervisor, nedladdad som molnavbildning eller extraherad ur en säkerhetskopia. Den omvandlas till en Proxmox-VM-disk på vald lagring. Originalfilen bevaras; ProxMenux kopierar den utan att flytta den."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Flödet har två faser. Fas 1 samlar alla val via dialogrutor: VM, lagring, källkatalog, avbildningar och alternativ för varje avbildning. Fas 2 kör <code>qm importdisk</code> för varje vald avbildning. Innan fas 2 börjar kopieras ingenting och VM-konfigurationen ändras inte."
|
||||
},
|
||||
"prereqs": {
|
||||
"heading": "Förutsättningar",
|
||||
"items": [
|
||||
"Minst en VM är definierad på värden. Mål-VM:n bör vara <strong>avstängd</strong>.",
|
||||
"Minst en diskavbildningsfil i ett format som stöds finns i källkatalogen: <code>.img</code>, <code>.qcow2</code>, <code>.vmdk</code>, <code>.raw</code>.",
|
||||
"Tillräckligt med ledigt utrymme på målet Proxmox lagring för att hålla varje importerad disk.",
|
||||
"ProxMenux letar efter avbildningar i <code>/var/lib/vz/template/iso</code> som standard. Du kan peka det på någon annan katalog på värden när den frågar."
|
||||
]
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj mål-VM",
|
||||
"bodyRich": "ProxMenux läser <code>qm list</code> och visar alla VM:ar. Välj den som ska få de importerade diskarna."
|
||||
},
|
||||
{
|
||||
"title": "Välj Proxmox lagring",
|
||||
"bodyRich": "Listan innehåller varje lagring som har <code>images</code>-innehållstyp aktiverad. Om det bara finns en kandidat är det automatiskt valt och dialogen hoppas över."
|
||||
},
|
||||
{
|
||||
"title": "Välj källkatalogen",
|
||||
"bodyRich": "Välj standardkatalogen (<code>/var/lib/vz/template/iso</code>) eller skriv en anpassad väg - vanligtvis där du laddade ner / laddade upp avbildningen. Skriptet avvisar vägar som inte existerar."
|
||||
},
|
||||
{
|
||||
"title": "Välj en eller flera avbildningar",
|
||||
"bodyRich": "Katalogen skannas för <code>.img</code> / <code>.qcow2</code> / <code>.vmdk</code> / <code>.raw</code> filer. Du kan välja flera samtidigt; var och en kommer att gå igenom alternativen per avbildning i nästa steg."
|
||||
},
|
||||
{
|
||||
"title": "Alternativ per avbildning",
|
||||
"intro": "För varje vald avbildning frågar ProxMenux:",
|
||||
"items": [
|
||||
"<strong>Interface</strong> - <code>scsi</code> (standard), <code>virtio</code>, <code>sata</code> eller <code>ide</code>. Matchar hur gästen kommer att se skivan.",
|
||||
"<strong>SSD-emulering</strong>: erbjuds bara för andra gränssnitt än VirtIO. Lägger till <code>ssd=1</code> så att gästen känner igen en SSD. Stöd för discard/TRIM måste konfigureras separat.",
|
||||
"<strong>Startbar</strong>: om du väljer ja lägger ProxMenux disken först i VM:ns startordning."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Importera och anslut",
|
||||
"bodyRich": "ProxMenux kör <code>qm importdisk</code> för varje avbildning och konverterar formatet vid behov. Disken ansluts till nästa lediga plats (<code>scsiN</code>, <code>sataN</code>, …) med valda alternativ. Om någon disk markerats som startbar uppdateras startordningen. Förloppet visas i terminalen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarighet",
|
||||
"body": "Import av en enda avbildning motsvarar tre <code>qm</code>-kommandon:",
|
||||
"warnTitle": "Konvertering av avbildningsformat",
|
||||
"warnBody": "När mållagringen inte kan hålla källformatet inbyggt (till exempel kan LVM-lagring inte hålla <code>.qcow2</code>), konverterar <code>qm importdisk</code> avbildningen transparent. Detta kan ta flera minuter för multi-GB avbildningar; planera därefter och inte avbryta manuset."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noImagesTitle": "\"Inga kompatibla diskbilder hittades\"",
|
||||
"noImagesBody": "Skriptet hittade ingen <code>.img</code>, <code>.qcow2</code>, <code>.vmdk</code> eller <code>.raw</code>-fil. Kontrollera filändelsens stora och små bokstäver, att filen ligger direkt i vald katalog (underkataloger genomsöks inte) och att root får läsa den.",
|
||||
"slowTitle": "Importen är långsam",
|
||||
"slowBody": "Konverteringar mellan VMDK, QCOW2 och raw kan begränsas av CPU och in-/utmatning. Hastigheten beror på läsning från källan, skrivning till målet och eventuell dekomprimering. Välj helst raw- eller qcow2-källor när det går.",
|
||||
"uefiTitle": "Den importerade disken startar i UEFI-skalet",
|
||||
"uefiBody": "Avbildningen skapades för äldre BIOS-läge (SeaBIOS) men VM:n använder OVMF, eller tvärtom. Ändra VM:ns BIOS i Proxmox så att det matchar avbildningen, eller bygg om avbildningen i rätt läge före importen."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-vm",
|
||||
"label": "Importera disk till VM",
|
||||
"tail": " — samma flöde för fysiska diskar (passthrough)."
|
||||
},
|
||||
{
|
||||
"href": "/docs/utils/import-vm",
|
||||
"label": "Importera VM från OVA / OVF",
|
||||
"tail": " — När du har ett komplett VM-paket, inte bara en skivbild."
|
||||
},
|
||||
{
|
||||
"href": "/docs/utils/UUp-Dump-ISO-Creator",
|
||||
"label": "UUP Dump ISO-skapare",
|
||||
"tail": " — generera en Windows ISO om du behöver en för en ny installation."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"tail": " — referens för qm importdisk och qemu-img convert."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Importera disk till LXC | ProxMenux Dokumentation",
|
||||
"description": "Bifoga en fysisk disk till en befintlig LXC-behållare på Proxmox VE med ProxMenux. Hantera filsystemdetektering / formatering, monteringspunkt, oprivilegierade → privilegierad omvandling och ihållande enhetsvägar.",
|
||||
"ogTitle": "Importera disk till LXC | ProxMenux Dokumentation",
|
||||
"ogDescription": "Bifoga en fysisk disk till en befintlig LXC-behållare. Hantera filsystem, monteringspunkt och oprivilegierad → privilegierad omvandling."
|
||||
},
|
||||
"header": {
|
||||
"title": "Importera disk till LXC",
|
||||
"description": "Anslut en fysisk disk till en befintlig LXC-container på Proxmox-värden. ProxMenux hittar lediga diskar, erbjuder formatering med ett filsystem som stöds och ansluter partitionen till en monteringspunkt i containern via beständiga enhetssökvägar.",
|
||||
"section": "Diskhanterare · LXC"
|
||||
},
|
||||
"intro": {
|
||||
"title": "VM passthrough vs LXC genomgång",
|
||||
"body": "Den här LXC-passthroughen ger <strong>ingen rå blockenhet</strong>. Containern får en <em>monteringspunkt</em>, alltså en katalog på den partition du väljer på värden. Till skillnad från en VM använder gästen värdens kärna, så filsystemet (ext4/xfs/btrfs) läses och hanteras av Proxmox-värden och görs sedan tillgängligt i containern."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Flödet har två faser med tydlig åtskillnad mellan \"samla information och beslut\" och \"faktiskt ändra containerkonfig\". Fram till den slutliga bekräftelsen monteras ingenting i CT.",
|
||||
"summary": "ProxMenux filtrerar bort rotdisken, monterade diskar och diskar som refereras i VM/LXC-konfigurationer. Aktiva ZFS/LVM/RAID-medlemmar döljs; gamla signaturer märks med ⚠ så att de kan raderas före formatering."
|
||||
},
|
||||
"prereqs": {
|
||||
"heading": "Förutsättningar",
|
||||
"items": [
|
||||
"Minst en LXC-container definierad på värden.",
|
||||
"Containern är <strong>privilegierad</strong>, eller så accepterar du skriptets erbjudande att konvertera den.",
|
||||
"Minst en fysisk disk som inte används av värden eller någon annan gäst."
|
||||
],
|
||||
"warnTitle": "Privilegierad container krävs",
|
||||
"warnBody": "Det här skriptet kräver en <strong>privilegierad</strong> container för direkt diskanslutning. Om det hittar <code>unprivileged: 1</code> erbjuds ändring av <code>/etc/pve/lxc/<CTID>.conf</code> på plats. Det ändrar säkerhetsmodellen men mappar inte om befintliga filägare. Säkerhetskopiera containern och kontrollera ägarskapet innan du accepterar, eller återskapa den som privilegierad."
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj målcontainer",
|
||||
"img": "/disk/select-container.png",
|
||||
"caption": "Meny för containerval",
|
||||
"bodyRich": "ProxMenux listar varje LXC-container på värden (<code>pct list</code>). Välj den som får disken. Om containern är oprivilegierad erbjuds du att konvertera den nu."
|
||||
},
|
||||
{
|
||||
"title": "Välj den fysiska disken",
|
||||
"img": "/disk/disk-selection-ct.png",
|
||||
"caption": "Lediga diskar på värden, med ⚠ för gamla metadata",
|
||||
"bodyRich": "Bara säkra kandidater visas. Till skillnad från VM-flödet ansluter skriptet <strong>en disk per körning</strong>. Kör det igen för varje ytterligare disk."
|
||||
},
|
||||
{
|
||||
"title": "Formatera eller återanvänd",
|
||||
"intro": "Skriptet inspekterar disken:",
|
||||
"items": [
|
||||
"Om disken redan har ett filsystem som stöds (ext4/xfs/btrfs) kan det återanvändas som det är; befintliga filer bevaras.",
|
||||
"Om disken saknar ett filsystem som stöds erbjuds formatering. Välj ext4/xfs/btrfs."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Välj monteringspunkten",
|
||||
"bodyRich": "Ange sökvägen där containern ska se disken, exempelvis <code>/mnt/data</code> eller <code>/mnt/disk_passthrough</code>. Det är sökvägen <em>inne i</em> containern; värden ser redan partitionen under <code>/dev/disk/by-id/…</code>."
|
||||
},
|
||||
{
|
||||
"title": "Anslut och verifiera",
|
||||
"img": "/disk/assignment-ct.png",
|
||||
"caption": "Tilldelning till CT",
|
||||
"bodyRich": "ProxMenux lägger till en ny <code>mpN:</code>-post i containerkonfigurationen, hoppar över upptagna index och läser konfigurationen igen för att bekräfta. Om containern körs tillämpas monteringen direkt; annars vid nästa start.",
|
||||
"extraImg": "/disk/result-point.png",
|
||||
"extraAlt": "Monteringspunkten skapades",
|
||||
"extraCaption": "Monteringspunkt skapad och verifierad"
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarighet",
|
||||
"body": "Skriptet använder <code>pct set</code>. Ett direkt anrop för en enda disk ser ut så här:"
|
||||
},
|
||||
"important": {
|
||||
"heading": "Viktiga överväganden",
|
||||
"items": [
|
||||
"<strong>En disk per körning</strong>. Kör skriptet igen för varje ytterligare disk.",
|
||||
"Anslut <strong>inte</strong> samma partition till flera containrar som kan montera den samtidigt; samtidiga skrivningar skadar filsystemet.",
|
||||
"<strong>Gamla metadata</strong> (RAID/ZFS/LVM-signaturer) måste rensas manuellt innan skriptet tillåter formatering, annars vägrar <code>mkfs</code> att skriva över. Använd <wipeLink>Formatera eller radera fysisk disk</wipeLink>."
|
||||
]
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"unprivTitle": "\"Kan inte fortsätta med en oprivilegierad container\"",
|
||||
"unprivBody": "Du avböjde konverteringen, så skriptet avslutades utan att ändra något. Kör det igen och godkänn för att fortsätta: skriptet stoppar containern, säkerhetskopierar konfigurationen till <code>/etc/pve/lxc/<CTID>.conf.bak</code> och ersätter <code>unprivileged: 1</code> med <code>unprivileged: 0</code>. Den ändringen omvandlar inte i sig UID/GID-ägarskapet för befintliga filer, så säkerhetskopiera containern och rätta ägarskapet först, eller återställ eller återskapa containern som privilegierad.",
|
||||
"permsTitle": "Behörigheter inne i containern är fel",
|
||||
"permsBody": "Befintliga filägare behålls när en partition monteras i en privilegierad container; ett nyformaterat filsystem ägs ofta av <code>root:root</code>. Om tjänsten körs som en annan användare, exempelvis <code>www-data</code> för Nextcloud, kontrollera UID/GID och justera berörda filer med <code>chown</code>/<code>chmod</code>. Ändringarna påverkar även den underliggande disken."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-vm",
|
||||
"label": "Importera disk till VM",
|
||||
"tail": " - motsvarande flöde för VM."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "LXC-monteringspunkter (värd ↔ CT)",
|
||||
"tail": " - dela värdkataloger med en CT istället för att fästa en hel disk."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/vm-ct-commands",
|
||||
"label": "Kommandon för VM- och CT-hantering",
|
||||
"tail": " — pct config / push / pull referens."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Importera disk till VM | ProxMenux Dokumentation",
|
||||
"description": "Bifoga en fysisk disk till en befintlig Proxmox VM med ProxMenux. Säker diskdetektering (exkluderar system, monterad, in-use, ZFS / RAID / LVM), ihållande /dev/disk/by-id vägar och SATA / SCSI / VirtIO / IDE gränssnitt.",
|
||||
"ogTitle": "Importera disk till VM | ProxMenux Dokumentation",
|
||||
"ogDescription": "Bifoga en fysisk disk till en befintlig Proxmox VM. Använder ihållande /dev/disk/by-id vägar och stöder SATA / SCSI / VirtIO / IDE."
|
||||
},
|
||||
"header": {
|
||||
"title": "Importera disk till VM",
|
||||
"description": "Anslut en fysisk disk på Proxmox-värden till en befintlig virtuell maskin. ProxMenux hittar lediga diskar, låter dig välja mål-VM och busstyp (SATA/SCSI/VirtIO/IDE) och använder beständiga /dev/disk/by-id-sökvägar. Tilldelningen består då efter omstarter och ändrad enhetsordning.",
|
||||
"section": "Diskhanterare · VM"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "En fysisk disk ansluts som underlag för ett virtuellt diskgränssnitt. Gästen får inte automatiskt inbyggda SMART-data eller den fysiska styrenhetens funktioner; använd PCI-passthrough av styrenheten om dessa behövs. Disken ansluts via sin sökväg <code>/dev/disk/by-id/…</code> när en sådan finns, så ändrad enhetsordning vid start bryter inte tilldelningen; annars används <code>/dev/sdX</code>."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Flödet har två faser med tydlig åtskillnad mellan \"samla information och beslut\" och \"faktiskt fästa diskar till VM\". Fram till den slutliga bekräftelsen är VM-konfig orörd.",
|
||||
"summary": "ProxMenux filtrerar bort osäkra kandidater: rotdisken, diskar monterade på värden, aktiva ZFS/LVM/RAID-medlemmar och diskar som refereras i VM/LXC-konfigurationer. Diskar med <em>gamla</em>, oanvända ZFS/RAID/LVM-signaturer märks med ⚠ men blockeras inte."
|
||||
},
|
||||
"prereqs": {
|
||||
"heading": "Förutsättningar",
|
||||
"items": [
|
||||
"Minst en VM definierad på värden (skriptet skickar direkt till <code>qm list</code>).",
|
||||
"<strong>Mål-VM:n är avstängd</strong>. Om den körs avbryts skriptet med ett meddelande; tillägg av diskar under drift ingår inte i det här flödet.",
|
||||
"Minst en fysisk disk på värden som inte används av värden eller någon annan gäst."
|
||||
]
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj mål-VM",
|
||||
"bodyRich": "ProxMenux listar alla VM:ar på värden via <code>qm list</code>. Välj den som ska få disken. Om den körs avbryts skriptet och ber dig stänga av den först."
|
||||
},
|
||||
{
|
||||
"title": "Välj fysiska diskar att ansluta",
|
||||
"img": "/disk/disk-selection.png",
|
||||
"caption": "Lediga diskar på värden, med ⚠ för gamla metadata",
|
||||
"body": "Skriptet granskar värdens diskar och visar bara sådana som kan anslutas utan konflikt. Du kan välja flera samtidigt. Diskar med gamla ZFS/LVM/RAID-signaturer visas fortfarande med ⚠ för att ange att signaturerna behöver raderas innan gästen formaterar dem."
|
||||
},
|
||||
{
|
||||
"title": "Välj bussgränssnittet",
|
||||
"img": "/disk/disk-assigment.png",
|
||||
"caption": "Val av bussgränssnitt",
|
||||
"intro": "Välj hur gästen ska se skivan:",
|
||||
"items": [
|
||||
"<strong>SCSI</strong> moderna standard för Linux och Windows med VirtIOSCSI-drivrutiner installerade.",
|
||||
"<strong>SATA</strong> bred kompatibilitet, fungerar ur lådan på praktiskt taget alla gäster.",
|
||||
"<strong>VirtIO</strong>: effektiv paravirtualiserad blockenhet; kräver drivrutiner i gästen.",
|
||||
"<strong>IDE</strong>: för äldre gäster som saknar ovanstående drivrutiner."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Anslut och verifiera",
|
||||
"bodyRich": "ProxMenux fäster varje vald disk med sin bästa <code>/dev/disk/by-id/</code>-väg, hoppar över slotindex som redan används i VM-konfig (<code>scsi0</code>, <code>sata0</code>, ...) och läser om konfigen för att bekräfta uppdraget. En sammanfattning trycks i slutet."
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarighet",
|
||||
"body": "Manuset är en wrapper runt <code>qm set</code>. Det exakta kommandot för en enda disk ser ut så här:",
|
||||
"migrationTitle": "Live migration är inte möjligt",
|
||||
"migrationBody": "En VM med en direktansluten fysisk disk är <strong>knuten till värden som tillhandahåller disken</strong>. En annan nod saknar normalt både samma <code>/dev/disk/by-id/…</code>-sökväg och diskdata. Säkerhetskopiera och överför data separat, eller använd hanterade virtuella diskar på delad lagring eller med replikering som stöds. Utgå inte från att Proxmox lagringsreplikering omfattar enheten.",
|
||||
"shareTitle": "Dela inte en fysisk disk mellan VM",
|
||||
"shareBody": "Att fästa samma fysiska disk till två VM samtidigt kommer att korrumpera data på nästa skriv. ProxMenux upptäcker denna situation och blockerar den, men om du kringgår manuset (direkt <code>qm set</code>), se till att endast en gäst någonsin monterar disken."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noDisksTitle": "Inga diskar tillgängliga för denna VM",
|
||||
"noDisksIntro": "Manuset hittade skivor, men varje kandidat filtrerades ut. Vanliga skäl:",
|
||||
"noDisksItems": [
|
||||
"Varje återstående disk refereras redan i målet VM-konfig.",
|
||||
"Varje återstående disk monteras på värden eller är en del av en aktiv ZFS / LVM / RAID.",
|
||||
"Värden har bara rotskivan installerad."
|
||||
],
|
||||
"noDisksOutro": "Kör <code>lsblk -f</code> på värden för att granska tillståndet för varje disk.",
|
||||
"noVisibleTitle": "VM ser inte disken efter start",
|
||||
"noVisibleBody": "Med <strong>SCSI</strong> eller <strong>VirtIO</strong> behöver gästen rätt drivrutin. Linux har den i kärnan; i Windows installerar du den från VirtIO-ISO:n (se <winLink>Skapa VM: Windows</winLink>). Att byta till SATA på VM:ns maskinvaruflik är ett snabbt test av diskens tilldelning."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-image-vm",
|
||||
"label": "Importera diskavbildning till virtuell dator",
|
||||
"tail": " — samma flöde för diskavbildningsfiler (qcow2 / vmdk / raw / img)."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager/import-disk-lxc",
|
||||
"label": "Importera disk till LXC",
|
||||
"tail": " - motsvarande flöde för LXC containrar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager/add-controller-nvme-vm",
|
||||
"label": "Lägg till styrenhet eller NVMe i en VM",
|
||||
"tail": " — när du behöver fullständig PCIe/NVMe-passthrough i stället för diskanslutning."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"tail": " — referens för qm importdisk och relaterade skalkommandon."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox diskhanterare: VM/LXC, SMART-test och radering | ProxMenux",
|
||||
"description": "Hantera fysiska diskar på en Proxmox VE-värd med ProxMenux: anslut diskar till VM eller LXC (qm set scsi/sata/virtio, pct mp), importera img/qcow2/vmdk/raw-avbildningar, tilldela hela HBA:er eller NVMe-styrenheter, radera med säkerhetskontroller och kör SMART-självtester.",
|
||||
"ogTitle": "Proxmox diskhanterare: VM/LXC, SMART-test och radering",
|
||||
"ogDescription": "Anslut diskar till VM/LXC, importera avbildningar, använd PCI-passthrough för styrenheter, radera med säkerhetskontroller och kör SMART-test på Proxmox VE.",
|
||||
"twitterTitle": "Proxmox diskhanterare | ProxMenux",
|
||||
"twitterDescription": "Anslut diskar till VM/LXC, importera avbildningar, PCI-passthrough, radering med säkerhetskontroller och SMART-test."
|
||||
},
|
||||
"header": {
|
||||
"title": "Diskhanteraren",
|
||||
"description": "Menyn Diskhanterare samlar ProxMenux-verktyg för värdens fysiska diskar: anslutning till VM och LXC, import av diskavbildningar, passthrough av en hel styrenhet eller NVMe-enhet, radering med säkerhetskontroller och SMART-test.",
|
||||
"section": "Diskhanteraren"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna meny är för",
|
||||
"body": "Verktygen arbetar med <strong>fysiska diskar som värden ser och avbildningsfiler lagrade på den</strong>. Menyn har tre grupper: <strong>VM</strong> (anslut diskar eller importera avbildningar), <strong>LXC</strong> (anslut diskar till containrar) och <strong>Verktyg</strong> (formatering och SMART-status). Anslutning och radering döljer eller blockerar systemdiskar och använda diskar; SMART-kontroller kan granska dem utan att radera dem."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna menyn",
|
||||
"body": "Från ProxMenux huvudmenyn väljer du <strong>Disk Manager</strong>. Du kommer att se detta:",
|
||||
"imageAlt": "Disk Manager-menyn med VM, LXC och Utilities block"
|
||||
},
|
||||
"groups": {
|
||||
"heading": "Tre verktygsgrupper",
|
||||
"intro": "Disk Manager-menyn är organiserad i tre grupper - <strong>VM</strong>, <strong>LXC</strong> och <strong>Utilities</strong>. Klicka på ett kort för att hoppa direkt till verktygen i den gruppen.",
|
||||
"vmTitle": "VM",
|
||||
"vmBody": "Verktyg för befintliga virtuella maskiner. VM:n måste vara avstängd; ProxMenux kontrollerar detta innan konfigurationen ändras.",
|
||||
"vmItems": [
|
||||
"Importera disk till VM",
|
||||
"Importera diskavbildning till virtuell dator",
|
||||
"Lägg till styrenhet eller NVMe i en VM"
|
||||
],
|
||||
"lxcTitle": "LXC",
|
||||
"lxcBody": "Verktyg för befintliga LXC-containrar. Skriptet kräver en privilegierad container och erbjuder att ändra flaggan vid behov. Läs först informationen om konvertering och filägarskap på verktygets sida.",
|
||||
"lxcItems": [
|
||||
"Importera disk till LXC"
|
||||
],
|
||||
"utilitiesTitle": "Verktyg",
|
||||
"utilitiesBody": "Värdsida verktyg som fungerar på diskarna själva, oberoende av någon VM eller container.",
|
||||
"utilitiesItems": [
|
||||
"Formatera / radera fysisk disk",
|
||||
"SMART-status och disktest"
|
||||
]
|
||||
},
|
||||
"vm": {
|
||||
"heading": "VM",
|
||||
"intro": "Verktyg för befintliga virtuella maskiner. VM:n måste vara avstängd; ProxMenux kontrollerar detta innan konfigurationen ändras.",
|
||||
"options": [
|
||||
{
|
||||
"icon": "HardDrive",
|
||||
"href": "/docs/disk-manager/import-disk-vm",
|
||||
"title": "Importera disk till VM",
|
||||
"description": "Bifoga en otilldelad fysisk disk till en befintlig VM. Stöder SATA / SCSI / VirtIO / IDE, använder ihållande /dev/disk/by-id vägar."
|
||||
},
|
||||
{
|
||||
"icon": "FileDown",
|
||||
"href": "/docs/disk-manager/import-disk-image-vm",
|
||||
"title": "Importera diskavbildning till virtuell dator",
|
||||
"description": "Importera diskavbildningar (.img / .qcow2 / .vmdk / .raw) till en befintlig VM. Två faser med qm importdisk i bakgrunden."
|
||||
},
|
||||
{
|
||||
"icon": "Cpu",
|
||||
"href": "/docs/disk-manager/add-controller-nvme-vm",
|
||||
"title": "Lägg till styrenhet eller NVMe i en VM",
|
||||
"description": "PCI-passthrough av en hel SATA/SAS-HBA eller NVMe-enhet till en VM. Hanterar aktivering av IOMMU och konfliktkontroll."
|
||||
}
|
||||
]
|
||||
},
|
||||
"lxc": {
|
||||
"heading": "LXC",
|
||||
"intro": "Verktyg för befintliga LXC-containrar. Skriptet kräver en privilegierad container och erbjuder att ändra flaggan vid behov. Läs först informationen om konvertering och filägarskap på verktygets sida.",
|
||||
"options": [
|
||||
{
|
||||
"icon": "Boxes",
|
||||
"href": "/docs/disk-manager/import-disk-lxc",
|
||||
"title": "Importera disk till LXC",
|
||||
"description": "Bifoga en otilldelad fysisk disk till en befintlig LXC-behållare som fästpunkt. Hantera filsystemdetektering / format och privilegierad omvandling."
|
||||
}
|
||||
]
|
||||
},
|
||||
"utilities": {
|
||||
"heading": "Verktyg",
|
||||
"intro": "Värdsida verktyg som fungerar på diskarna själva, oberoende av någon VM eller container.",
|
||||
"options": [
|
||||
{
|
||||
"icon": "Eraser",
|
||||
"href": "/docs/disk-manager/format-disk",
|
||||
"title": "Formatera eller radera fysisk disk (med säkerhetskontroller)",
|
||||
"description": "Radera diskar med strikta säkerhetskontroller: bara helt lediga diskar visas och dubbel bekräftelse krävs alltid."
|
||||
},
|
||||
{
|
||||
"icon": "Activity",
|
||||
"href": "/docs/disk-manager/smart-disk-test",
|
||||
"title": "SMART-status och disktest",
|
||||
"description": "Kör SMART hälsokontroller och kort / långa självtester på SATA, SAS och NVMe-enheter. Exporterar JSON för monitorn."
|
||||
}
|
||||
]
|
||||
},
|
||||
"safety": {
|
||||
"title": "Säkerhetsregler för diskanslutning och radering",
|
||||
"intro": "Anslutning och radering filtrerar bort enheter som kan skada värden:",
|
||||
"items": [
|
||||
"<strong>Systemdisken</strong>, rotpoolen, swap och aktiva ZFS/LVM/RAID-medlemmar döljs alltid.",
|
||||
"Diskar som är <strong>monterade</strong> någonstans på värden döljs eller blockeras vid körningen.",
|
||||
"Diskar som <strong>refereras av en körande VM eller LXC</strong> kan inte tilldelas om eller raderas.",
|
||||
"Åtgärder som ändrar värdens tillstånd, exempelvis aktivering av IOMMU eller radering, kräver uttrycklig bekräftelse."
|
||||
]
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share",
|
||||
"label": "Lagrings- och delningshanterare",
|
||||
"tail": " - registrera lagring i Proxmox själv (NFS / Samba / iSCSI / lokal) och dela mappar mellan värd och CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"tail": " - blockenheter, LVM, pvesm, SMART referens."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/zfs-commands",
|
||||
"label": "Kommandon för ZFS-hantering",
|
||||
"tail": " — för ZFS pooler och datamängder."
|
||||
},
|
||||
{
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"tail": " - samma IOMMU / VFIO-koncept som tillämpas på GPU."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "SMART-status och disktest | ProxMenux-dokumentation",
|
||||
"description": "Kör SMART hälsokontroller och disktester på Proxmox VE med ProxMenux. Stöder SATA / SAS (smartmontools) och NVMe (nvme-cli). Korta och långa självtester, JSON export för ProxMenux Monitor integration.",
|
||||
"ogTitle": "SMART-status och disktest | ProxMenux-dokumentation",
|
||||
"ogDescription": "SMART hälsokontroller och självtest för SATA / SAS och NVMe-enheter på Proxmox. JSON export för Monitor."
|
||||
},
|
||||
"header": {
|
||||
"title": "SMART-status och disktest",
|
||||
"description": "Läs SMART-data och starta självtester på värdens fysiska diskar. ProxMenux installerar smartmontools för SATA/SAS och nvme-cli för NVMe, startar testet i diskens firmware (långa tester fortsätter när terminalen stängs) och exporterar JSON-resultat för ProxMenux Monitor.",
|
||||
"section": "Diskhanterare · Verktyg"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta är för",
|
||||
"body": "SMART (Self-Monitoring, Analysis and Reporting Technology) låter disken rapportera sitt tillstånd och köra självtester. Verktyget visar data utan att du behöver minnas rätt <code>smartctl</code>- eller <code>nvme</code>-anrop och sparar utdata som JSON så att Monitor kan visa trender över tid."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Alla åtgärder är icke-destruktiva: SMART läser firmware-räknare och självtester körs inne i disken. Ingen fasindelning behövs. Flödet är: beroendekontroll → diskval → åtgärdsval → anrop av smartctl eller nvme-cli beroende på disktyp → visad utdata och JSON-export för Monitor."
|
||||
},
|
||||
"deps": {
|
||||
"heading": "Beroenden",
|
||||
"body": "Verktyget installerar automatiskt vad det behöver på första körningen. SATA / SAS-enheter är beroende av <code>smartmontools</code>; NVMe-enheter är beroende av <code>nvme-cli</code>. Båda:"
|
||||
},
|
||||
"actions": {
|
||||
"heading": "Tillgängliga åtgärder",
|
||||
"headerAction": "Handling",
|
||||
"headerWhat": "Vad som läses eller körs",
|
||||
"headerDur": "Varaktighet",
|
||||
"rows": [
|
||||
{
|
||||
"action": "Snabb hälsostatus",
|
||||
"whatRich": "Totalt PASSED/FAILED + nyckelattribut.<br /><code>smartctl -H</code> + <code>-A</code> (SATA/SAS) eller <code>nvme smart-log</code> (NVMe).",
|
||||
"dur": "Omedelbart"
|
||||
},
|
||||
{
|
||||
"action": "Fullständig rapport",
|
||||
"whatRich": "Komplett SMART data, rullbar. <code>smartctl -x</code> för SATA/SAS eller <code>nvme smart-log</code> + <code>id-ctrl</code> för NVMe.",
|
||||
"dur": "Omedelbart"
|
||||
},
|
||||
{
|
||||
"action": "Kort test",
|
||||
"what": "Grundläggande kontroll av lagringsytan och elektroniken i diskens firmware.",
|
||||
"dur": "~2 minuter"
|
||||
},
|
||||
{
|
||||
"action": "Långt test",
|
||||
"what": "Full skanning av hela ytan. Körs på hårdvaran - kvarstår även om du stänger terminalen.",
|
||||
"dur": "Timmar (diskstorlek beroende)"
|
||||
},
|
||||
{
|
||||
"action": "Kontrollera testförlopp",
|
||||
"what": "Status för det aktiva eller senaste självtestet.",
|
||||
"dur": "Omedelbart"
|
||||
}
|
||||
],
|
||||
"tipTitle": "Långa tester fortsätter när terminalen stängs",
|
||||
"tipBody": "Ett långt test körs <em>inne i disken</em> och kräver inte att ProxMenux-processen fortsätter. Du kan stänga terminalen och återkomma till <strong>Kontrollera testförlopp</strong>. Omstart av värden, återställning av styrenheten eller strömavbrott kan avbryta testet och resultatinsamlingen; utgå inte från att de återupptas automatiskt."
|
||||
},
|
||||
"json": {
|
||||
"heading": "JSON export för Monitor",
|
||||
"intro": "Status-, korttest- och förloppsåtgärder skriver en tidsstämplad JSON-fil till <code>/usr/local/share/proxmenux/smart/<disk>/</code>; långa testers resultat samlas i bakgrunden. Den fullständiga rapporten visas bara. Strukturen är:",
|
||||
"outro": "ProxMenux Monitor plockar upp dessa för att göra hälsotrender per disk; gamla filer roteras automatiskt när lagringsgränsen nås."
|
||||
},
|
||||
"steps": {
|
||||
"heading": "Steg-för-steg",
|
||||
"stepLabel": "Steg",
|
||||
"list": [
|
||||
{
|
||||
"title": "Välj en disk",
|
||||
"body": "ProxMenux listar varje fysisk disk på värden med sin modell och storlek. Till skillnad från Format-verktyget filtreras inte den här listan av säkerhet - läs SMART är en icke-destruktiv operation.",
|
||||
"img": "/disk/smart/disk-selection.png",
|
||||
"alt": "SMART diskval meny",
|
||||
"caption": "SMART diskval meny"
|
||||
},
|
||||
{
|
||||
"title": "Välj en åtgärd",
|
||||
"body": "Välj snabb status, fullständig rapport, kort test, långt test eller kontroll av testförlopp. Menyn hålls öppen efter varje åtgärd så att du kan göra flera förfrågningar mot samma disk.",
|
||||
"img": "/disk/smart/action-menu.png",
|
||||
"alt": "SMART åtgärdsmenyn",
|
||||
"caption": "SMART åtgärdsmenyn (5 åtgärder + avbryta)"
|
||||
},
|
||||
{
|
||||
"title": "(Endast långt test) Bekräfta bakgrundskörning",
|
||||
"body": "ProxMenux informerar om att testet fortsätter när terminalen stängs och visar var JSON-resultatet sparas. Bekräfta för att starta testet.",
|
||||
"img": "/disk/smart/long-test-warning.png",
|
||||
"alt": "Lång testbekräftelsedialog",
|
||||
"caption": "Lång testbekräftelse - körs i bakgrunden, vilket sparas till JSON"
|
||||
},
|
||||
{
|
||||
"title": "Granska resultat",
|
||||
"bodyRich": "Status, tester och förlopp visas i terminalen; <strong>Fullständig rapport</strong> öppnas i en rullbar dialog. JSON exporteras för åtgärderna ovan, inte för Fullständig rapport. För långa tester återkommer du till <strong>Kontrollera testförlopp</strong> på samma disk.",
|
||||
"img": "/disk/smart/quick-status.png",
|
||||
"alt": "Utdata från snabb statuskontroll",
|
||||
"caption": "Snabb hälsostatusutgång (SATA - smartctl -H + -A)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuella motsvarigheter",
|
||||
"nvmeWarnTitle": "NVMe-självtester beror på diskens firmware",
|
||||
"nvmeWarnBody": "Inte varje NVMe-enhet stöder det korta / långa självtestkommandot. Om en enhet vägrar testet är SMART-loggen och ID-kontrolldata (<code>nvme smart-log</code> + <code>id-ctrl</code>) fortfarande den mest tillförlitliga hälsosignalen."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noSmartTitle": "\"Kan inte läsa SMART data från /dev/sdX\"",
|
||||
"noSmartBody": "Disken sitter troligen bakom en RAID/SAS-styrenhet som inte vidarebefordrar SMART. För megaraid-kort kan du prova <code>smartctl -d megaraid,N /dev/sdX</code>. För HBA:er i IT-läge fungerar det direkta anropet.",
|
||||
"longTitle": "Långt test slutför aldrig",
|
||||
"longBody": "Testet körs i diskens firmware och hög I/O-belastning kan fördröja det. Prova en lugn period, exempelvis över natten. För SATA visar <code>smartctl -c</code> återstående procent, för SAS <code>smartctl -l selftest</code>; självtestloggen visar slutstatus och eventuella felaktiga LBA:er. Läsfel behöver undersökas; långsamt förlopp bevisar inte i sig en dålig sektor."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/format-disk",
|
||||
"label": "Formatera / radera fysisk disk",
|
||||
"tail": " — Återanvänd en disk efter att ha bekräftat att den är frisk."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Kommandon för lagring och diskar → SMART-status",
|
||||
"tail": " — referens för smartctl/nvme med kommandon att kopiera."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/zfs-commands",
|
||||
"label": "Kommandon för ZFS-hantering",
|
||||
"tail": " — zpool scrub verifierar ZFS-datas kontrollsummor och kompletterar hårdvarans SMART-test."
|
||||
},
|
||||
{
|
||||
"href": "/docs/monitor/dashboard/storage",
|
||||
"label": "ProxMenux Monitor - Lagringsflik",
|
||||
"tail": " — detaljerad diskvy som använder exporterad JSON: fullständig SMART-tabell, historik och PDF-rapport."
|
||||
},
|
||||
{
|
||||
"href": "/docs/monitor/dashboard/hardware",
|
||||
"label": "ProxMenux Monitor — maskinvarufliken",
|
||||
"tail": " - Lagring Sammanfattning med modell, kapacitet och förhandlad länkhastighet (nuvarande vs maximum på NVMe)."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Disk Manager översikt",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Externa kodarkiv | ProxMenux-dokumentation",
|
||||
"description": "ProxMenux integrerar utvalda externa skriptarkiv, till exempel community-scripts och ZimaOS, som alternativ i vissa menyer. Varje skript har tydlig källangivelse. Rapportera buggar till den ursprungliga underhållaren.",
|
||||
"ogTitle": "Externa kodarkiv | ProxMenux-dokumentation",
|
||||
"ogDescription": "Externa skriptarkiv som är integrerade som alternativ i ProxMenux menyer."
|
||||
},
|
||||
"header": {
|
||||
"title": "Externa kodarkiv",
|
||||
"description": "ProxMenux integrerar utvalda externa skriptarkiv som alternativ i vissa menyer. Skripten kommer från betrodda tredjepartskällor och deras ursprung visas tydligt i menyn.",
|
||||
"section": "Externa kodarkiv"
|
||||
},
|
||||
"practice": {
|
||||
"title": "Vad detta innebär i praktiken",
|
||||
"body": "När ett menyalternativ använder ett externt skript i stället för ProxMenux egen kod visar menyn dess ursprung och vilket kodarkiv som läses in. ProxMenux startar skripten utan att ändra dem. Problem med skriptens funktion hör till underhållaren av deras ursprungliga kodarkiv."
|
||||
},
|
||||
"integrated": {
|
||||
"heading": "För närvarande integrerade",
|
||||
"usedInLabel": "Används i:",
|
||||
"items": [
|
||||
{
|
||||
"name": "community-scripts / ProxmoxVE",
|
||||
"url": "https://community-scripts.github.io/ProxmoxVE/",
|
||||
"description": "Andlig efterföljare till ttecks hjälpskript. Stor katalog med skript som i en körning installerar LXC:er (Home Assistant, Plex, Frigate…), VM:ar, tillägg och PVE-anpassningar.",
|
||||
"usedIn": "Start av Helper Scripts och Nätverk (korrigering av nätverksavlastning för Intel e1000e)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"attribution": {
|
||||
"heading": "Källangivelser och erkännande",
|
||||
"items": [
|
||||
"De ursprungliga upphovspersonerna anges alltid i menyn och på dokumentationssidan för skriptets integration.",
|
||||
"En länk till källarkivet visas både före körningen och på motsvarande dokumentationssida.",
|
||||
"Stöd utvecklarna av dessa externa projekt med en ⭐, sponsring eller välskrivna buggrapporter."
|
||||
]
|
||||
},
|
||||
"report": {
|
||||
"title": "Var kan man rapportera problem med externa skript",
|
||||
"body": "Om ett externt skript inte fungerar som förväntat, <strong>rapportera det direkt i dess kodarkiv</strong>, inte till ProxMenux. ProxMenux laddar ned och kör skriptet utan att ändra koden. Den ursprungliga underhållaren kan bedöma och åtgärda problemet. ProxMenux ärenden gäller problem med startfunktionen eller skriptets integration."
|
||||
},
|
||||
"suggest": {
|
||||
"heading": "Förslag till nya externa repositorier",
|
||||
"intro": "Har du hittat ett skript eller kodarkiv som skulle passa i en ProxMenux-meny? Föreslå det via:",
|
||||
"discussionTitle": "💬 Starta en diskussion",
|
||||
"discussionBody": "Passar bäst för idéer: få synpunkter från gemenskapen innan idén blir en funktionsförfrågan.",
|
||||
"issueTitle": "🐛 Skapa ett ärende",
|
||||
"issueBody": "För specifika funktionsförfrågningar med tydlig avgränsning."
|
||||
},
|
||||
"candidate": {
|
||||
"title": "Vad gör en bra integrationskandidat",
|
||||
"items": [
|
||||
"Öppen källkod med en aktiv underhållare.",
|
||||
"Idempotent: säkert att köra flera gånger.",
|
||||
"Ändrar inte Proxmox centrala konfiguration utan att meddela det.",
|
||||
"Löser ett problem som ProxMenux ännu inte hanterar, så att funktioner inte dubbleras."
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,677 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Ordlista | ProxMenux-dokumentation",
|
||||
"description": "Definitioner av termer som används i ProxMenux-dokumentationen om Proxmox, lagring, nätverk och virtualisering.",
|
||||
"ogTitle": "Ordlista | ProxMenux-dokumentation",
|
||||
"ogDescription": "Snabb referens för de tekniska termer som används i ProxMenux-dokumentationen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Ordlista",
|
||||
"description": "Korta definitioner av termer som används i ProxMenux och för att beskriva hur Proxmox fungerar.",
|
||||
"section": "Ordlista"
|
||||
},
|
||||
"callout": {
|
||||
"title": "Hur man använder denna sida",
|
||||
"bodyRich": "Varje post har en kategori och en kort definition. Länkarna <em>Se även</em> öppnar relevant dokumentation. Använd A–Z-navigeringen för att gå direkt till en bokstav."
|
||||
},
|
||||
"jumpHeading": "Gå till bokstav",
|
||||
"seeAlsoLabel": "Se även:",
|
||||
"aliasesLabel": "också:",
|
||||
"missingCallout": {
|
||||
"title": "Saknar en term?",
|
||||
"leadRich": "Om en term saknas öppnar du en issue eller PR på <ext>GitHub</ext>. Ordlistan finns i <code>web/messages/en/docs/glossary.json</code> med motsvarande kataloger för varje språk."
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
"term": "ACS",
|
||||
"aliases": [
|
||||
"Access Control Services",
|
||||
"Åsidosättning av ACS"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "PCIe-funktioner för åtkomstkontroll som hjälper till att isolera enheternas trafik. IOMMU-grupper beror på hårdvara och topologi. Kernelpatchen <em>ACS override</em> kan dela grupperna som Linux rapporterar, men tillför ingen hårdvaruisolering; tilldelning till separata VM innebär en säkerhetsrisk.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lägg till Controller eller NVMe till VM",
|
||||
"href": "/docs/disk-manager/add-controller-nvme-vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "ARC",
|
||||
"aliases": [
|
||||
"Adaptive Replacement Cache"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "ZFS läscache i värdens RAM för nyligen och ofta använda datablock. Standardgränsen beror på Proxmox-versionen och installationsinställningarna. ProxMenux erbjuder en gränsinställning i efterinstallationen.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Efterinstallation: lagring",
|
||||
"href": "/docs/post-install/storage"
|
||||
},
|
||||
{
|
||||
"label": "ZFS kommandon",
|
||||
"href": "/docs/help-info/zfs-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Bind-montering",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Linux-funktion som gör en del av filsystemet tillgänglig på ytterligare en sökväg. ProxMenux använder bind-monteringar för att dela värdkataloger med LXC-containrar via <code>pct set -mpN</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "LXC-monteringspunkter",
|
||||
"href": "/docs/storage-share/lxc-mount-points"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Nätverksbond",
|
||||
"aliases": [
|
||||
"Aggregering av nätverksgränssnitt",
|
||||
"Länkaggregering"
|
||||
],
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "Samlar flera fysiska nätverksgränssnitt i ett logiskt för redundans (active-backup), högre sammanlagd kapacitet (LACP / 802.3ad) eller båda. Konfigureras i <code>/etc/network/interfaces</code>."
|
||||
},
|
||||
{
|
||||
"term": "Bro",
|
||||
"aliases": [
|
||||
"vmbrX",
|
||||
"vmbr0",
|
||||
"Linux-brygga"
|
||||
],
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "Virtuell lager 2-switch på värden. <code>vmbr0</code> ansluter vanligen gäster till det fysiska nätverket. Fler bryggor (<code>vmbr1</code>, <code>vmbr2</code>...) kan separera gästnät beroende på fysiska anslutningar och konfiguration.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Bridge analys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Ceph",
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Distribuerad lagring integrerad med Proxmox för hyperkonvergerade kluster. OSD:er (Object Storage Daemons) ligger till grund för objekt-, block- och fillagring. Kraven på Ceph-version beror på Proxmox-versionen och uppgraderingsvägen; se motsvarande uppgraderingsguide.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Uppgradera PVE 8 till PVE 9",
|
||||
"href": "/docs/utils/upgrade-pve8-pve9"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "CT",
|
||||
"aliases": [
|
||||
"Container",
|
||||
"LXC-container"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Proxmox förkortning för en LXC-container. Dess numeriska CTID motsvarar <code>/etc/pve/lxc/<CTID>.conf</code>. Se även <strong>LXC</strong>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Hantera virtuella maskiner och containrar",
|
||||
"href": "/docs/help-info/vm-ct-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "deb822",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Modernt format för APT-paketkällor: <code>.sources</code>-filer med strukturerade block och fälten Types, URIs, Suites, Components och Signed-By. Ersätter det enradiga <code>.list</code>-formatet; standard från PVE 9 / Debian Trixie.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Uppgradera PVE 8 till PVE 9",
|
||||
"href": "/docs/utils/upgrade-pve8-pve9"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "dGPU",
|
||||
"aliases": [
|
||||
"Dedikerad GPU"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Separat grafikkort, vanligen anslutet via PCIe, till skillnad från en <strong>iGPU</strong>. Det kan tilldelas en VM med VFIO eller användas av flera LXC-containrar via enhetsnoder och värdens drivrutin, om hårdvara och program stöder det.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Koppla GPU till VM (genomkoppling)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Dialog",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Verktyg baserat på ncurses för menyer, inmatningsfrågor och förloppsindikatorer i terminalen. ProxMenux menyer använder dialog."
|
||||
},
|
||||
{
|
||||
"term": "DKMS",
|
||||
"aliases": [
|
||||
"Dynamisk Kernel Modulstöd"
|
||||
],
|
||||
"category": "Linux",
|
||||
"definitionRich": "Ramverk som bygger om registrerade externa kärnmoduler, som NVIDIA eller ZFS, när kärnan ändras. Det kräver kompatibel modulkällkod och matchande kärnheaders.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Installera Coral TPU (Host)",
|
||||
"href": "/docs/hardware/install-coral-tpu-host"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Fail2Ban",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Tjänst som söker efter upprepade autentiseringsfel i loggar och blockerar berörda IP-adresser i brandväggen. ProxMenux har förkonfigurerade jails för SSH, Proxmox-gränssnittet och Monitor.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Fail2Ban",
|
||||
"href": "/docs/security/fail2ban"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Fastfetch",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Verktyg som visar systeminformation med ASCII-grafik vid inloggning i skalet. Ersätter <code>neofetch</code> och kan aktiveras i ProxMenux efterinstallation.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Efter installationen: valfria åtgärder",
|
||||
"href": "/docs/post-install/optional"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "GRUB",
|
||||
"aliases": [
|
||||
"GRand Unified Bootloader"
|
||||
],
|
||||
"category": "Linux",
|
||||
"definitionRich": "Starthanterare för Linux-installationer som använder GRUB. Konfiguration finns i <code>/etc/default/grub</code> och <code>/boot/grub/</code>; tillämpa ändringar med <code>update-grub</code>. Proxmox kan även använda systemd-boot: kontrollera aktiv starthanterare innan du ändrar kärnparametrar.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "GPU Passthrough kommandon",
|
||||
"href": "/docs/help-info/gpu-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "iGPU",
|
||||
"aliases": [
|
||||
"Integrerad GPU"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Grafikprocessor integrerad i CPU-kapseln, som Intel UHD / Iris eller Radeon i Ryzen-APU:er. Delas ofta mellan flera LXC-containrar via <code>/dev/dri</code> i stället för att tilldelas en enda VM.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lägg till GPU till LXC",
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "ifupdown / ifupdown2",
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "Debians klassiska nätverkskonfiguration via <code>/etc/network/interfaces</code>. Proxmox använder normalt den omskrivna versionen <code>ifupdown2</code>, som kan läsa om konfigurationen under drift med <code>ifreload -a</code>."
|
||||
},
|
||||
{
|
||||
"term": "initramfs",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Inledande RAM-filsystem som kärnan använder innan det riktiga rotfilsystemet monteras. Innehåller drivrutiner som behövs tidigt. Byggs om med <code>update-initramfs -u -k all</code> efter ändringar av VFIO, IOMMU eller lagringsdrivrutiner."
|
||||
},
|
||||
{
|
||||
"term": "IOMMU",
|
||||
"aliases": [
|
||||
"Minneshanteringsenhet för in- och utmatning",
|
||||
"VT-d",
|
||||
"AMD-Vi"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Hårdvarufunktion (Intel VT-d / AMD-Vi) som behövs för PCIe-genomkoppling till VM. Aktivera den i firmware och kontrollera stödet i kärnan. Beroende på plattform och kärnans standardvärden kan <code>intel_iommu=on</code> eller <code>amd_iommu=on</code> behövas.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Post-Install: Virtualisering",
|
||||
"href": "/docs/post-install/virtualization"
|
||||
},
|
||||
{
|
||||
"label": "Koppla GPU till VM (genomkoppling)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "IOMMU-grupp",
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Grupp av enheter som utgör den minsta IOMMU-isoleringsgränsen. Enheter inom gruppen är inte nödvändigtvis isolerade från varandra; kontrollera alla före VFIO-tilldelning. Lista med <code>find /sys/kernel/iommu_groups/ -type l | sort -V</code>."
|
||||
},
|
||||
{
|
||||
"term": "iSCSI",
|
||||
"aliases": [
|
||||
"Internet SCSI"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Protokoll för blocklagring över IP: en fjärrdisk visas som en lokal SCSI-enhet. Läggs till i Proxmox med <code>pvesm add iscsi</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lägg till iSCSI-mål som Proxmox-lagring",
|
||||
"href": "/docs/storage-share/host-iscsi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "KVM",
|
||||
"aliases": [
|
||||
"Kernelbaserad virtuell maskin"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Linux-kärnmodul som gör värden till en hypervisor. Tillsammans med <strong>QEMU</strong> för enhetsemulering utgör den grunden för Proxmox virtuella maskiner."
|
||||
},
|
||||
{
|
||||
"term": "LVM",
|
||||
"aliases": [
|
||||
"Logical Volume Manager"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Linux volymhantering som samlar fysisk lagring i volymgrupper (VG) med logiska volymer (LV). LVM-baserade Proxmox-installationer använder ofta LVM-thin för gästdiskar; andra lagringslösningar finns. Verktyg: <code>pvs</code>, <code>vgs</code> och <code>lvs</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"href": "/docs/help-info/storage-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "LXC",
|
||||
"aliases": [
|
||||
"Linux Containers"
|
||||
],
|
||||
"category": "Linux",
|
||||
"definitionRich": "Virtualisering på operativsystemnivå där isolerade användarmiljöer delar värdens kärna. Har vanligen lägre overhead än VM, men en annan isoleringsgräns. Proxmox hanterar LXC-containrar med <code>pct</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Hantera virtuella maskiner och containrar",
|
||||
"href": "/docs/help-info/vm-ct-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Lynis",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Säkerhetsgranskare med öppen källkod från CISOfy. Analyserar värden och ger ett härdningsvärde samt konkreta förbättringsförslag. ProxMenux installerar versionen från projektets GitHub-förråd i stället för det äldre Debian-paketet.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lynis",
|
||||
"href": "/docs/security/lynis"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "MAC-adress",
|
||||
"aliases": [
|
||||
"Hårdvaruadress"
|
||||
],
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "Vanligen en 48-bitars identifierare för ett Ethernet-gränssnitt, tilldelad av hårdvara eller programvara. ProxMenux <em>Beständiga nätverksnamn</em> kopplar MAC-adresser till fasta namn (<code>eno1</code>, <code>enp3s0</code>) som består efter ändrad PCI-uppräkning.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Persistenta gränssnitt namn",
|
||||
"href": "/docs/network/persistent-names"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "MOTD",
|
||||
"aliases": [
|
||||
"Dagens budskap"
|
||||
],
|
||||
"category": "Linux",
|
||||
"definitionRich": "Text som visas efter SSH-inloggning, lagrad i <code>/etc/motd</code>. ProxMenux kan lägga till en banner efter installationen; avinstallationen återställer föregående fil om en säkerhetskopia finns."
|
||||
},
|
||||
{
|
||||
"term": "NFS",
|
||||
"aliases": [
|
||||
"Nätverksfilsystem"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Protokoll för fildelning i nätverk med ursprung i Unix. Läggs till som Proxmox-lagring med <code>pvesm add nfs</code>; ProxMenux har även guider för NFS-klienter och -servrar i LXC.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lagrings- och delningshanterare",
|
||||
"href": "/docs/storage-share"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "nftables / iptables",
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "Brandväggsverktyg för Linux. <code>nftables</code> är det moderna ramverket; <code>iptables</code> kan använda äldre eller nft-kompatibla bakändar. Klassiska <code>pve-firewall</code> använder iptables, medan alternativet proxmox-firewall använder nftables.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Nätverkskommandon",
|
||||
"href": "/docs/help-info/network-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "nouveau",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Öppen NVIDIA-grafikdrivrutin som ingår i Linux-kärnan. Vid installation av den proprietära drivrutinen måste nouveau hindras från att binda samma GPU, vanligen genom blockering av modulen och ombyggnad av initramfs.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "NVIDIA installationsguide",
|
||||
"href": "/guides/nvidia"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "No-subscription-paketförråd",
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Proxmox paketförråd utan enterprise-prenumeration. Paketen valideras mindre omfattande än i enterprise-förrådet, som Proxmox rekommenderar för produktion. ProxMenux erbjuder konfiguration av paketförråd i efterinstallationen.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Post-Install: Grundläggande inställningar",
|
||||
"href": "/docs/post-install/basic-settings"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "OVA / OVF",
|
||||
"aliases": [
|
||||
"Open Virtualization Format"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "DMTF-format för att paketera flyttbara VM. <strong>OVA</strong> samlar filerna i ett TAR-arkiv; <strong>OVF</strong> beskriver VM i XML med tillhörande diskfiler, ofta VMDK. Importstödet beror på målhypervisorn och konfigurationen.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Exportera VM till OVA / OVF",
|
||||
"href": "/docs/utils/export-vm"
|
||||
},
|
||||
{
|
||||
"label": "Importera VM från OVA / OVF",
|
||||
"href": "/docs/utils/import-vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "OVMF",
|
||||
"aliases": [
|
||||
"UEFI-programvara",
|
||||
"Open Virtual Machine Firmware"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "UEFI-firmware för VM, valt med <code>qm set <vmid> -bios ovmf</code>. Används för UEFI-gäster, inklusive Windows 11 och Secure Boot-konfigurationer. <code>efidisk0</code> lagrar beständiga EFI-variabler; många andra gäster kan fortfarande använda äldre BIOS.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Koppla GPU till VM (genomkoppling)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "PBS",
|
||||
"aliases": [
|
||||
"Proxmox Backup Server"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Separat säkerhetskopieringsprodukt från Proxmox med inkrementella överföringar, deduplicering och valfri klientkryptering för VM och CT. Kan användas som vzdump-mål; en separat backupserver är att föredra framför kopior på den skyddade värden."
|
||||
},
|
||||
{
|
||||
"term": "pct",
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Kommandoradsverktyg för LXC-containrar i Proxmox: <code>pct list / start / stop / shutdown / config / enter / exec / push / pull / destroy</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Hantera virtuella maskiner och containrar",
|
||||
"href": "/docs/help-info/vm-ct-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "pmxcfs",
|
||||
"aliases": [
|
||||
"Proxmox Cluster Filesystem"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "FUSE-baserat virtuellt filsystem monterat på <code>/etc/pve/</code>. Replikerar konfigurationsändringar mellan klusternoder: ändringar under <code>/etc/pve/</code> sprids automatiskt."
|
||||
},
|
||||
{
|
||||
"term": "pveam",
|
||||
"aliases": [
|
||||
"Hanterare för virtuella apparater i Proxmox VE"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Verktyg för den lokala katalogen med CT-mallar. <code>pveam update</code> uppdaterar indexet; <code>pveam available</code> listar mallar och <code>pveam download <storage> <template></code> hämtar en mall."
|
||||
},
|
||||
{
|
||||
"term": "pveproxy",
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "HTTPS-tjänst för Proxmox webbgränssnitt och webbterminal på port 8006. Startas om vid större uppgraderingar; därför tillåter ProxMenux inte uppgraderingen PVE 8 → 9 från webbterminalen."
|
||||
},
|
||||
{
|
||||
"term": "pvesm",
|
||||
"aliases": [
|
||||
"Proxmox lagringshanterare"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "CLI verktyg för hantering av Proxmox lagring. <code>pvesm status</code> visar alla konfigurerade lagringar; <code>pvesm add <type></code> registrerar nya (NFS, Samba, iSCSI, dir, ZFS, LVM, ...).",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"href": "/docs/help-info/storage-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Privilegerad container",
|
||||
"category": "Linux",
|
||||
"definitionRich": "LXC-container vars root <em>mappas till värdens UID 0</em>, medan namnrymder och andra begränsningar fortfarande gäller. Mindre isolerad än en oprivilegierad container. GPU, USB och Samba kräver inte alltid detta läge; behörigheter och UID-mappning spelar roll."
|
||||
},
|
||||
{
|
||||
"term": "ProxMenux Monitor",
|
||||
"category": "ProxMenux",
|
||||
"definitionRich": "Valfri webbpanel för ProxMenux. Visar värdstatistik i realtid (CPU, RAM, diskar och nätverk), VM- och LXC-översikt samt inloggning med 2FA på TCP-port <code>8008</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "ProxMenux Monitor",
|
||||
"href": "/docs/settings/proxmenux-monitor"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "qcow2",
|
||||
"aliases": [
|
||||
"QEMU Copy-On-Write v2"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Format för VM-diskavbilder som ofta används på kataloglagring. Stöder tilldelning vid behov, ögonblicksbilder och copy-on-write. Konvertera med <code>qemu-img convert -O qcow2 ...</code>."
|
||||
},
|
||||
{
|
||||
"term": "qm",
|
||||
"aliases": [
|
||||
"QEMU-hanterare"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Verktyg för att hantera VM i Proxmox: <code>qm list / start / stop / shutdown / config / set / destroy / importdisk / migrate</code>. Motsvarar <code>pct</code> för containrar.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Hantera virtuella maskiner och containrar",
|
||||
"href": "/docs/help-info/vm-ct-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Q35",
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "QEMU-maskintyp som emulerar Intel Q35 med PCIe-stöd. Rekommenderas framför i440FX för PCIe-genomkoppling och moderna gästsystem. Ställs in med <code>qm set <vmid> -machine q35</code>."
|
||||
},
|
||||
{
|
||||
"term": "QEMU",
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Maskinemulator och virtualiserare med öppen källkod. Proxmox kombinerar den med KVM för att köra VM med prestanda nära den fysiska maskinens."
|
||||
},
|
||||
{
|
||||
"term": "rclone",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Kommandoradsverktyg med stöd för många molnlagringstjänster, bland annat Google Drive, Dropbox, OneDrive, Mega och S3. Molnbackupguiden använder det för att montera fjärrlagring som en katalog för vzdump-arkiv.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Säkerhetskopiera till personlig molnlagring",
|
||||
"href": "/guides/backup_cloud"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Samba / SMB / CIFS",
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Microsofts protokollfamilj för fildelning. <strong>SMB</strong> är protokollet, <strong>Samba</strong> den öppna Linux-implementationen och <strong>CIFS</strong> en äldre SMB-dialekt. Läggs till i Proxmox med <code>pvesm add cifs</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Lagrings- och delningshanterare",
|
||||
"href": "/docs/storage-share"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "SeaBIOS",
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Öppen implementation av äldre BIOS som används av QEMU. Standardfirmware för nya VM om du inte väljer OVMF. Passar äldre system och Linux-installationer utan UEFI-krav."
|
||||
},
|
||||
{
|
||||
"term": "smartctl / SMART",
|
||||
"aliases": [
|
||||
"Self-Monitoring, Analysis and Reporting Technology"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Inbyggd diskdiagnostik för hälsostatus, felräknare och självtestresultat. Verktyget är <code>smartctl</code> från <code>smartmontools</code>; <code>nvme-cli</code> lägger till NVMe-specifika kommandon.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "SMART-status och disktest",
|
||||
"href": "/docs/disk-manager/smart-disk-test"
|
||||
},
|
||||
{
|
||||
"label": "Lagringskommandon → SMART sektion",
|
||||
"href": "/docs/help-info/storage-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "systemd / systemctl / journalctl",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Init-system i Debian / Proxmox. <code>systemctl</code> hanterar tjänster: start, stopp, aktivering och status. <code>journalctl</code> läser binärloggen som skrivs av <code>systemd-journald</code>."
|
||||
},
|
||||
{
|
||||
"term": "sysctl",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Verktyg för att läsa och ändra kärnparametrar. Beständiga inställningar placeras vanligen i <code>/etc/sysctl.d/*.conf</code>; stödet för <code>/etc/sysctl.conf</code> beror på laddningstjänsten. ProxMenux erbjuder en sysctl-profil i efterinstallationen.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Post-Install: Nätverk",
|
||||
"href": "/docs/post-install/network"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "trixie",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Kodnamn för Debian 13, OS-basen för Proxmox VE 9. Föregångare: <em>bookworm</em> (Debian 12 / PVE 8).",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Uppgradera PVE 8 till PVE 9",
|
||||
"href": "/docs/utils/upgrade-pve8-pve9"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "udev",
|
||||
"category": "Linux",
|
||||
"definitionRich": "Linux enhetshanterare. Reagerar på hårdvaruhändelser och skapar eller tar bort poster under <code>/dev</code>. Regler i <code>/etc/udev/rules.d/</code> kan binda gränssnittsnamn till MAC-adresser, skapa NVIDIA-enhetsnoder när drivrutinen laddas och annat."
|
||||
},
|
||||
{
|
||||
"term": "UID / GID idmap",
|
||||
"aliases": [
|
||||
"UID skift"
|
||||
],
|
||||
"category": "Linux",
|
||||
"definitionRich": "Med standardmappningen i <strong>oprivilegierade</strong> LXC förskjuts UID och GID på värden med <code>+100000</code>: UID 0 motsvarar 100000 och 1000 motsvarar 101000. Anpassade mappningar kan skilja sig; filägarskap i bind-monteringar måste stämma med mappningen.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "LXC-monteringspunkter",
|
||||
"href": "/docs/storage-share/lxc-mount-points"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "Oprivilegierad container",
|
||||
"category": "Linux",
|
||||
"definitionRich": "LXC-container vars root mappas till ett oprivilegierat UID på värden, normalt 100000. Det minskar värdprivilegierna medan kärnan delas. Hårdvaruåtkomst kan konfigureras med lämpliga behörigheter och mappningar; privilegierat läge krävs inte alltid."
|
||||
},
|
||||
{
|
||||
"term": "VFIO",
|
||||
"aliases": [
|
||||
"Virtuell funktion I/O"
|
||||
],
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Linux-kärnramverk för säkra enhetsdrivrutiner i användarutrymme, använt för direkt PCIe-tilldelning till VM. Använder <code>vfio</code>, <code>vfio_iommu_type1</code> och <code>vfio_pci</code> med konfiguration i <code>/etc/modprobe.d/vfio.conf</code>.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Post-Install: Virtualisering",
|
||||
"href": "/docs/post-install/virtualization"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "VirtIO",
|
||||
"category": "Virtualisering",
|
||||
"definitionRich": "Familj av paravirtualiserade drivrutiner för nätverk, lagring, dynamisk minneshantering och GPU. Undviker overhead från emulerad äldre hårdvara som e1000 eller IDE. Gästen behöver motsvarande drivrutiner: inbyggda i Linux och tillgängliga som separat ISO för Windows."
|
||||
},
|
||||
{
|
||||
"term": "VLAN",
|
||||
"aliases": [
|
||||
"Virtuellt LAN"
|
||||
],
|
||||
"category": "Nätverk",
|
||||
"definitionRich": "802.1Q-taggar som delar ett fysiskt nätverk i flera logiska nät. Konfigureras per brygga eller nätverksgränssnitt i <code>/etc/network/interfaces</code>."
|
||||
},
|
||||
{
|
||||
"term": "VM",
|
||||
"aliases": [
|
||||
"Virtuell maskin"
|
||||
],
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Virtuell maskin som Proxmox hanterar med QEMU/KVM och som kör en egen gästkärna. Dess numeriska VMID motsvarar <code>/etc/pve/qemu-server/<VMID>.conf</code>. Har vanligen högre overhead än LXC, med isolering genom en separat kärna.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Hantera virtuella maskiner och containrar",
|
||||
"href": "/docs/help-info/vm-ct-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "vzdump",
|
||||
"category": "Proxmox",
|
||||
"definitionRich": "Proxmox säkerhetskopieringsverktyg för VM och CT. Filarkiv är <strong>inte inkrementella</strong>; PBS-mål stöder inkrementella överföringar. Jobb konfigurerar läge (snapshot / suspend / stop), komprimering (som zstd, gzip eller lzo), bevarande och aviseringar.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Kommandon för säkerhetskopiering och återställning",
|
||||
"href": "/docs/help-info/backup-commands"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"term": "ZFS",
|
||||
"aliases": [
|
||||
"Zettabyte File System"
|
||||
],
|
||||
"category": "Lagring",
|
||||
"definitionRich": "Filsystem och volymhanterare med ögonblicksbilder, send/receive-replikering, kontrollsummor och komprimering. Kan reparera skadade data om en giltig redundant kopia finns. Läscachen <strong>ARC</strong> använder RAM och kan begränsas.",
|
||||
"seeAlso": [
|
||||
{
|
||||
"label": "Kommandon för ZFS-hantering",
|
||||
"href": "/docs/help-info/zfs-commands"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-kommandon för säkerhetskopiering — vzdump, qmrestore, pct restore | ProxMenux",
|
||||
"description": "Referens för säkerhetskopiering och återställning i Proxmox VE: vzdump för VM:ar och LXC-containrar, qmrestore för VM:ar, pct restore för containrar, schemalagda säkerhetskopior i /etc/pve/jobs.cfg, hookskript och sökvägar som ska undantas.",
|
||||
"ogTitle": "Proxmox-kommandon för säkerhetskopiering — vzdump, qmrestore, pct restore",
|
||||
"ogDescription": "Referens för vzdump, qmrestore och pct restore vid säkerhetskopiering och återställning av Proxmox-VM:ar och LXC-containrar.",
|
||||
"twitterTitle": "Proxmox-kommandon för säkerhetskopiering | ProxMenux",
|
||||
"twitterDescription": "Kommandona vzdump, qmrestore och pct restore för säkerhetskopiering och återställning av Proxmox-VM:ar och containrar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Säkerhetskopiering och återställning",
|
||||
"description": "Kommenterad referens för vzdump, qmrestore och pct restore i Proxmox arbetsflöden för säkerhetskopiering. Omfattar schemaläggning, avancerade alternativ som hookskript, undantagna sökvägar och I/O-prioritet samt hantering av säkerhetskopieringsfiler.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Tre backup lägen",
|
||||
"body": "För VM:ar är <strong>snapshot</strong> en livesäkerhetskopiering som inte kräver snapshots i lagringen. <strong>suspend</strong> pausar VM:n före säkerhetskopieringen utan att nödvändigtvis förbättra konsistensen. <strong>stop</strong> stänger först av VM:n; om den kördes kan den återupptas när säkerhetskopieringen har startat. LXC skiljer sig: snapshot kräver lagring med snapshot-stöd, suspend använder två rsync-pass och stop håller containern avstängd under hela säkerhetskopieringen."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "VM-säkerhetskopiering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "vzdump <vmid>",
|
||||
"description": "Skapa en säkerhetskopia av en specifik VM/CT"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --storage <storage>",
|
||||
"description": "Backup VM till specifik lagring"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --mode snapshot",
|
||||
"description": "Skapa snapshot backup (för VM)"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --mode suspend",
|
||||
"description": "Pausa VM:n före livesäkerhetskopieringen, äldre suspend-läge"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --mode stop",
|
||||
"description": "Stäng av VM:n innan säkerhetskopieringen startar"
|
||||
},
|
||||
{
|
||||
"command": "vzdump --all",
|
||||
"description": "Säkerhetskopiera alla VM och containrar"
|
||||
},
|
||||
{
|
||||
"command": "vzdump --all --exclude <vmid1>,<vmid2>",
|
||||
"description": "Säkerhetskopiera alla utom specificerade VM"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Alternativ för säkerhetskopiering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "vzdump <vmid> --compress zstd",
|
||||
"description": "Använd zstd komprimering för backup"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --compress gzip --pigz <threads>",
|
||||
"description": "Använd pigz med flera trådar"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --storage <storage> --notes-template <text>",
|
||||
"description": "Lägg till anteckningar till backup"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --mailto <email>",
|
||||
"description": "Skicka meddelande e-post"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --prune-backups keep-last=<n>",
|
||||
"description": "Håll bara n backups per VM"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --stdexcludes 0",
|
||||
"description": "Undvik inte tillfälliga filer"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --quiet 1",
|
||||
"description": "Undertryck utdatameddelanden"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Återställ säkerhetskopior",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qmrestore <backup-file> <vmid>",
|
||||
"description": "Återställ VM från backup"
|
||||
},
|
||||
{
|
||||
"command": "qmrestore <backup-file> <vmid> --storage <storage>",
|
||||
"description": "Återställ till specifik lagring"
|
||||
},
|
||||
{
|
||||
"command": "qmrestore <backup-file> <vmid> --unique",
|
||||
"description": "Återställ VM:n med nya slumpmässiga MAC-adresser"
|
||||
},
|
||||
{
|
||||
"command": "pct restore <vmid> <backup-file>",
|
||||
"description": "Återställ container från backup"
|
||||
},
|
||||
{
|
||||
"command": "pct restore <vmid> <backup-file> --storage <storage>",
|
||||
"description": "Återställ container till specifik lagring"
|
||||
},
|
||||
{
|
||||
"command": "pct restore <vmid> <backup-file> --rootfs <storage>:<size-GiB>",
|
||||
"description": "Återställ med en rotdisk på vald lagring och med vald storlek"
|
||||
},
|
||||
{
|
||||
"command": "pct restore <vmid> <backup-file> --unprivileged 1",
|
||||
"description": "Återställ som oprivilegierad CT"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Hantering av säkerhetskopior",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ls -la /var/lib/vz/dump/",
|
||||
"description": "Lista säkerhetskopior på standardplats"
|
||||
},
|
||||
{
|
||||
"command": "find /var/lib/vz/dump/ -name \"*.vma*\"",
|
||||
"description": "Hitta VM säkerhetskopior"
|
||||
},
|
||||
{
|
||||
"command": "find /var/lib/vz/dump/ -name \"*.tar*\"",
|
||||
"description": "Hitta container backups"
|
||||
},
|
||||
{
|
||||
"command": "pvesm list <storage> --content backup",
|
||||
"description": "Lista säkerhetskopior i specifik lagring"
|
||||
},
|
||||
{
|
||||
"command": "rm /var/lib/vz/dump/<backup-file>",
|
||||
"description": "Ta bort en backup-fil"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/vzdump.conf",
|
||||
"description": "Visa backup konfiguration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Schemalagda Backups",
|
||||
"commands": [
|
||||
{
|
||||
"command": "cat /etc/pve/jobs.cfg",
|
||||
"description": "Visa backup schema"
|
||||
},
|
||||
{
|
||||
"command": "nano /etc/vzdump.conf",
|
||||
"description": "Redigera säkerhetskopieringskonfigurationen"
|
||||
},
|
||||
{
|
||||
"command": "systemctl list-timers",
|
||||
"description": "Lista systemd-timers"
|
||||
},
|
||||
{
|
||||
"command": "systemctl status cron",
|
||||
"description": "Kontrollera cron service status"
|
||||
},
|
||||
{
|
||||
"command": "pvenode task list --typefilter vzdump",
|
||||
"description": "Lista slutförda säkerhetskopieringsuppgifter"
|
||||
},
|
||||
{
|
||||
"command": "pvenode task log <upid>",
|
||||
"description": "Visa loggen för en säkerhetskopieringsuppgift via dess UPID"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Avancerade åtgärder",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qmrestore <backup> <vmid> --force",
|
||||
"description": "Force-återställning, överskrivning av befintlig VM"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --dumpdir <directory>",
|
||||
"description": "Ange anpassad backup katalog"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --script <script>",
|
||||
"description": "Kör hook script under backup"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --exclude-path <path>",
|
||||
"description": "Undanta angivna sökvägar från säkerhetskopieringen"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --ionice <priority>",
|
||||
"description": "Ställ in I/O prioritet för backup process"
|
||||
},
|
||||
{
|
||||
"command": "vzdump <vmid> --lockwait <minutes>",
|
||||
"description": "Vänta på lås"
|
||||
},
|
||||
{
|
||||
"command": "qm importdisk <vmid> <disk-image> <storage>",
|
||||
"description": "Importera en diskavbildsfil (till exempel raw, qcow2 eller vmdk) som en oanvänd disk, inte ett vzdump-säkerhetskopiearkiv"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"testRestores": {
|
||||
"title": "Testa återställningarna",
|
||||
"bodyRich": "Återställ regelbundet en säkerhetskopia till ett ledigt test-VMID med <code>qmrestore --unique</code>, starta VM:n på ett isolerat testnät och kontrollera innehållet. unique skapar nya MAC-adresser men ändrar inte statiska IP-adresser eller programinställningar. Testa containeråterställning på samma sätt med <code>pct restore</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/help-info/vm-ct-commands",
|
||||
"label": "Hantering av VM:ar och CT:er",
|
||||
"tail": " — qm och pct livscykel kommandon."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Lagring och diskar",
|
||||
"tail": " — pvesm lagringshantering."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-kommandon för GPU-passthrough — lspci, VFIO, IOMMU, qm set hostpci | ProxMenux",
|
||||
"description": "Referens för GPU-passthrough på Proxmox VE: identifiering med lspci, VFIO-moduler, IOMMU-grupper (intel_iommu / amd_iommu), GRUB- och initramfs-uppdateringar, qm set hostpci0 och inställningar för NVIDIA / AMD / Intel.",
|
||||
"ogTitle": "Proxmox-kommandon för GPU-passthrough — lspci, VFIO, IOMMU, qm set hostpci",
|
||||
"ogDescription": "Referens för inspektering och konfigurering av GPU passthrough på Proxmox VE - PCI-enheter, VFIO-moduler, IOMMU-grupper, kärnstartsparam, qm set hostpci.",
|
||||
"twitterTitle": "Proxmox-kommandon för GPU-passthrough | ProxMenux",
|
||||
"twitterDescription": "Kontrollera PCI-enheter, konfigurera VFIO och IOMMU och tilldela GPU:er till VM:ar på Proxmox VE."
|
||||
},
|
||||
"header": {
|
||||
"title": "GPU-genomföring",
|
||||
"description": "Referens för kontroll och konfigurering av GPU-/TPU-passthrough på Proxmox: enhetsidentifiering (lspci), VFIO-moduler, IOMMU-kontroll, initramfs-/GRUB-uppdateringar och inställningar per VM (qm set hostpci, machine q35, bios ovmf).",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "IOMMU måste aktiveras i BIOS / UEFI",
|
||||
"body": "Aktivera först IOMMU i firmware: leta efter <em>VT-d</em>, <em>AMD-Vi</em> eller <em>IOMMU</em> i BIOS/UEFI. I Linux är det aktiverat som standard på AMD och på Intel med Proxmox-kärnor från 6.8. Äldre Intel-kärnor kan behöva <code>intel_iommu=on</code>. Det valfria <code>iommu=pt</code> styr IOMMU:s passthrough-läge och är inget skäl att generellt stänga av värdens framebuffer."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Enhetsidentifiering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "lspci -nn | grep -i nvidia",
|
||||
"description": "Lista NVIDIA PCI-enheter"
|
||||
},
|
||||
{
|
||||
"command": "lspci -nn | grep -i vga",
|
||||
"description": "Lista alla VGA kompatibla enheter"
|
||||
},
|
||||
{
|
||||
"command": "lspci -nn | grep -i amd",
|
||||
"description": "Lista AMD PCI-enheter"
|
||||
},
|
||||
{
|
||||
"command": "lspci -nnk | grep -A3 VGA",
|
||||
"description": "Lista VGA-enheter med kärndrivrutiner"
|
||||
},
|
||||
{
|
||||
"command": "lspci -v -s <PCI_ID>",
|
||||
"description": "Visa detaljerad information för specifik PCI-enhet"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "VFIO-konfiguration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "dmesg | grep -i vfio",
|
||||
"description": "Kontrollera VFIO-modulmeddelanden"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/modprobe.d/vfio.conf",
|
||||
"description": "Granska konfigurationen för VFIO-passthrough"
|
||||
},
|
||||
{
|
||||
"command": "ls -la /etc/modprobe.d/",
|
||||
"description": "Lista alla modprobe konfigurationsfiler"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/modules",
|
||||
"description": "Visa moduler laddade vid starttid"
|
||||
},
|
||||
{
|
||||
"command": "lsmod | grep vfio",
|
||||
"description": "Kontrollera om VFIO-moduler laddas"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "IOMMU Konfiguration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "cat /etc/default/grub",
|
||||
"description": "Granska GRUB alternativ för IOMMU"
|
||||
},
|
||||
{
|
||||
"command": "update-grub",
|
||||
"description": "Applicera GRUB ändringar"
|
||||
},
|
||||
{
|
||||
"command": "dmesg | grep -i iommu",
|
||||
"description": "Kontrollera IOMMU-meddelanden i kärnlogg"
|
||||
},
|
||||
{
|
||||
"command": "dmesg | grep -e DMAR -e IOMMU",
|
||||
"description": "Kontrollera DMAR och IOMMU-meddelanden"
|
||||
},
|
||||
{
|
||||
"command": "find /sys/kernel/iommu_groups/ -type l | sort -V",
|
||||
"description": "Lista IOMMU-grupper"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Systemuppdateringar",
|
||||
"commands": [
|
||||
{
|
||||
"command": "update-initramfs -u",
|
||||
"description": "Applicera initramfs förändringar (VFIO)"
|
||||
},
|
||||
{
|
||||
"command": "update-initramfs -u -k all",
|
||||
"description": "Uppdatera initramfs för alla kärnor"
|
||||
},
|
||||
{
|
||||
"command": "cat /proc/cmdline",
|
||||
"description": "Visa nuvarande kärnstartsparametrar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "VM Konfiguration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qm config <vmid> | grep hostpci",
|
||||
"description": "Visa PCI-passthrough-inställningar för en VM"
|
||||
},
|
||||
{
|
||||
"command": "qm set <vmid> -hostpci0 <PCI_ID>,pcie=1,x-vga=1",
|
||||
"description": "Lägg till GPU-passthrough till en VM"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/pve/qemu-server/<vmid>.conf",
|
||||
"description": "Visa VM konfigurationsfil"
|
||||
},
|
||||
{
|
||||
"command": "qm set <vmid> -machine q35",
|
||||
"description": "Ställ in VM för att använda Q35-chipset (rekommenderas för genomgång)"
|
||||
},
|
||||
{
|
||||
"command": "qm set <vmid> -bios ovmf",
|
||||
"description": "Ställ in VM:n på UEFI/OVMF, rekommenderat om GPU:ns ROM stöder UEFI"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"afterChangesTip": {
|
||||
"title": "Efter att ha ändrat GRUB eller modprobe configs",
|
||||
"bodyRich": "På värdar med GRUB tillämpar du startparametrar med <code>update-grub</code>. Uppdatera moduländringar med <code>update-initramfs -u -k all</code> och starta sedan om. Andra starthanterare har egna rutiner. Kontrollera med <code>cat /proc/cmdline</code> (kärnparametrar), <code>dmesg | grep -i iommu</code> (IOMMU aktiverad) och <code>find /sys/kernel/iommu_groups/ -type l | sort -V</code> (grupper finns)."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"tail": " — interaktivt ProxMenux-flöde."
|
||||
},
|
||||
{
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc",
|
||||
"label": "Lägg till GPU till LXC",
|
||||
"tail": " — dela åtkomst till värdens GPU-enheter med en LXC-container."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Referens för Proxmox-kommandon — qm, pct, vzdump, zpool, pveversion | ProxMenux",
|
||||
"description": "Utvalda viktiga kommandon för Proxmox VE och Linux efter ämne: systemkontroll, hantering av VM:ar och LXC:er (qm / pct), lagring och diskar, nätverk, uppdateringar, GPU-passthrough, ZFS, säkerhetskopiering och återställning samt vardagens terminalverktyg.",
|
||||
"ogTitle": "Referens för Proxmox-kommandon — qm, pct, vzdump, zpool",
|
||||
"ogDescription": "Utvalda användbara Proxmox VE- och Linux-kommandon efter ämne: system, VM/CT, lagring, nätverk, uppdateringar, GPU-passthrough, ZFS, säkerhetskopiering och CLI-verktyg.",
|
||||
"twitterTitle": "Referens för Proxmox-kommandon | ProxMenux",
|
||||
"twitterDescription": "Utvalda användbara Proxmox VE- och Linux-kommandon, grupperade efter ämne."
|
||||
},
|
||||
"header": {
|
||||
"title": "Hjälp och info",
|
||||
"description": "Utvalda användbara Linux- och Proxmox VE-kommandon efter ämne. De nio kategorierna omfattar allt från en snabb kontroll med pveversion till flera rader med zfs send/receive. Samlingen är en gemensam referens tillsammans med ProxMenux avsnitt om GPU, diskar och delningar.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta är",
|
||||
"body": "En referenskatalog över kommandon du använder på en Proxmox-värd, grupperade efter ämne. I ProxMenux kan du välja ett nummer för att köra ett kommando direkt eller klistra in ett eget vid prompten. På webbplatsen visas varje kategori som en tabell att kopiera från."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna menyn",
|
||||
"body": "Tryck på <kbd>h</kbd> i ProxMenux huvudmeny. Då visas detta:",
|
||||
"imageAlt": "Menyn Hjälp och info med nio kommandokategorier"
|
||||
},
|
||||
"categories": {
|
||||
"heading": "De nio kategorierna",
|
||||
"options": [
|
||||
{
|
||||
"icon": "Terminal",
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"title": "Användbara systemkommandon",
|
||||
"description": "pveversion, uptime, free, journalctl, hostnamectl, information om aktuell användare, granskning med lynis och fastfetch."
|
||||
},
|
||||
{
|
||||
"icon": "Cpu",
|
||||
"href": "/docs/help-info/vm-ct-commands",
|
||||
"title": "Hantering av VM:ar och CT:er",
|
||||
"description": "qm list / config / start / stop / migrate, pct list / config / enter, snapshots och kloning."
|
||||
},
|
||||
{
|
||||
"icon": "HardDrive",
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"title": "Lagring och diskar",
|
||||
"description": "lsblk, blkid, smartctl, monteringsinformation, pvesm status och LVM-kommandon."
|
||||
},
|
||||
{
|
||||
"icon": "Network",
|
||||
"href": "/docs/help-info/network-commands",
|
||||
"title": "Nätverkskommandon",
|
||||
"description": "ip / ss / nmcli, kontroll av nätverksbryggor, ping / traceroute, DNS-uppslagningar och fail2ban-client."
|
||||
},
|
||||
{
|
||||
"icon": "Package",
|
||||
"href": "/docs/help-info/update-commands",
|
||||
"title": "Uppdateringar och paket",
|
||||
"description": "apt update / dist-upgrade, apt-cache policy, dpkg-frågor och kontroll av arkivfiler."
|
||||
},
|
||||
{
|
||||
"icon": "Cpu",
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"title": "GPU-genomföring",
|
||||
"description": "Kontroller med lspci / dmesg, verifiering av aktiverad IOMMU, bindning till vfio-pci och GPU-användning på värden."
|
||||
},
|
||||
{
|
||||
"icon": "Database",
|
||||
"href": "/docs/help-info/zfs-commands",
|
||||
"title": "ZFS-hantering",
|
||||
"description": "zpool / zfs för status, dataset, snapshots, send/receive, ARC-justering och TRIM."
|
||||
},
|
||||
{
|
||||
"icon": "Archive",
|
||||
"href": "/docs/help-info/backup-commands",
|
||||
"title": "Säkerhetskopiering och återställning",
|
||||
"description": "vzdump, qmrestore / pct restore, verktyg för Proxmox Backup Server och snapshot-åtgärder."
|
||||
},
|
||||
{
|
||||
"icon": "Wrench",
|
||||
"href": "/docs/help-info/tools-commands",
|
||||
"title": "System CLI-verktyg",
|
||||
"description": "tmux, screen, htop / btop, ncdu, jq, dig, lsof, watch — verktyg för daglig administration."
|
||||
}
|
||||
]
|
||||
},
|
||||
"tip": {
|
||||
"title": "Sökbar från den globala sökningen",
|
||||
"body": "Varje kommando på dessa sidor indexeras av dokumentationssökningen. Om du kommer ihåg en flagga eller fragment men inte vilken sida den är på, slå sökfältet på toppen - du landar direkt på rätt post."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-nätverkskommandon — ip, ping, ss, pve-firewall, iptables | ProxMenux",
|
||||
"description": "Referens för nätverkskommandon på Proxmox VE-värdar: ip / ip link / ip addr, ping, traceroute, mtr, ss, ethtool, dig och nslookup samt pve-firewall, iptables och nftables för filtrering. Kontroll av bryggor, länkaggregeringar och VLAN.",
|
||||
"ogTitle": "Proxmox-nätverkskommandon — ip, ping, ss, pve-firewall, iptables",
|
||||
"ogDescription": "Referens av nätverkskommandon för Proxmox VE - gränssnittskontroll, anslutningstest, övervakning, brandvägg (pve-firewall, iptables, nftables) och DNS-uppslag.",
|
||||
"twitterTitle": "Proxmox nätverkskommandon | ProxMenux",
|
||||
"twitterDescription": "Nätverksinspektion, testning, konfiguration och brandväggskommandon för Proxmox VE."
|
||||
},
|
||||
"header": {
|
||||
"title": "Nätverkskommandon",
|
||||
"description": "Utvalda kommandon för Proxmox-värdens nätverk: gränssnittsinformation, anslutningstester, konfiguration, trafikövervakning och brandväggshantering. Omfattar ip / ss / nmcli / ethtool / tcpdump / pve-firewall.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Snabb översikt över gränssnitten",
|
||||
"body": "<code>ip a</code> visar varje gränssnitt med dess IP- och MAC-adresser. <code>ip r</code> visar routningstabellen. Tillsammans besvarar de på några sekunder de flesta frågor om huruvida ett gränssnitt är rätt konfigurerat."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Nätverksinformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ip a",
|
||||
"description": "Visa nätverksgränssnitt och IP-adresser"
|
||||
},
|
||||
{
|
||||
"command": "ip r",
|
||||
"description": "Visa rutttabell"
|
||||
},
|
||||
{
|
||||
"command": "ip -s link",
|
||||
"description": "Visa trafikstatistik per gränssnitt"
|
||||
},
|
||||
{
|
||||
"command": "brctl show",
|
||||
"description": "Visa konfigurerade nätverksbryggor"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/network/interfaces",
|
||||
"description": "Visa rå nätverkskonfiguration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Nätverkstestning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ping <host>",
|
||||
"description": "Kontrollera anslutningen med en annan värd"
|
||||
},
|
||||
{
|
||||
"command": "traceroute <host>",
|
||||
"description": "Spåra vägen till en värd"
|
||||
},
|
||||
{
|
||||
"command": "mtr <host>",
|
||||
"description": "Kombinera ping och traceroute i realtid"
|
||||
},
|
||||
{
|
||||
"command": "dig <domain>",
|
||||
"description": "DNS-sökning för en domän"
|
||||
},
|
||||
{
|
||||
"command": "nslookup <domain>",
|
||||
"description": "Alternativ DNS-uppslagning"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Nätverkskonfiguration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ifreload -a",
|
||||
"description": "Ladda om nätverkskonfigurationen (ifupdown2)"
|
||||
},
|
||||
{
|
||||
"command": "ethtool <iface>",
|
||||
"description": "Visa Ethernet-enhetsinformation"
|
||||
},
|
||||
{
|
||||
"command": "resolvectl status",
|
||||
"description": "Visa DNS-upplösningsstatus"
|
||||
},
|
||||
{
|
||||
"command": "nmcli device show",
|
||||
"description": "Visa nätverksenhetsdetaljer (om NetworkManager används)"
|
||||
},
|
||||
{
|
||||
"command": "ip link set <iface> up",
|
||||
"description": "Aktivera ett nätverksgränssnitt"
|
||||
},
|
||||
{
|
||||
"command": "ip link set <iface> down",
|
||||
"description": "Inaktivera ett nätverksgränssnitt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Nätverksövervakning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ss -tuln",
|
||||
"description": "Visa lyssningsportar (TCP/UDP)"
|
||||
},
|
||||
{
|
||||
"command": "netstat -tuln",
|
||||
"description": "Alternativ för att visa lyssnande portar"
|
||||
},
|
||||
{
|
||||
"command": "lsof -i",
|
||||
"description": "Lista öppna nätverksfiler och anslutningar"
|
||||
},
|
||||
{
|
||||
"command": "tcpdump -i <iface>",
|
||||
"description": "Fånga paket på gränssnitt"
|
||||
},
|
||||
{
|
||||
"command": "iftop -i <iface>",
|
||||
"description": "Övervaka bandbreddsanvändningen på ett gränssnitt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Brandväggshantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "iptables -L -n -v",
|
||||
"description": "Visa aktiva brandväggsregler (iptables)"
|
||||
},
|
||||
{
|
||||
"command": "nft list ruleset",
|
||||
"description": "Visa nftables regler"
|
||||
},
|
||||
{
|
||||
"command": "pve-firewall status",
|
||||
"description": "Kontrollera status för Proxmox brandvägg"
|
||||
},
|
||||
{
|
||||
"command": "pve-firewall compile",
|
||||
"description": "Kompilera brandväggsregler för alla noder"
|
||||
},
|
||||
{
|
||||
"command": "pve-firewall reload",
|
||||
"description": "Ladda om Proxmox brandväggsregler"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"iptablesTip": {
|
||||
"title": "iptables vs nftables",
|
||||
"bodyRich": "Den klassiska tjänsten <code>pve-firewall</code> skapar iptables-regler. Den alternativa tjänsten proxmox-firewall använder <strong>nftables</strong>. Kontrollera iptables-backenden med <code>iptables -L -n -v</code> och nftables-backenden med <code>nft list ruleset</code>. Använd verktygen för den aktiva backenden; listorna är inte utbytbara."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/network",
|
||||
"label": "Nätverkshantering",
|
||||
"tail": " — ProxMenux interaktiva nätverksverktyg för brygganalys, beständiga namn och övervakning."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/tools-commands",
|
||||
"label": "System CLI-verktyg",
|
||||
"tail": " - fler nätverksövervakningsverktyg."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-kommandon för lagring och diskar — lsblk, LVM, pvesm, qm importdisk | ProxMenux",
|
||||
"description": "Lagrings- och diskkommandon på Proxmox VE: lsblk, blkid, parted, lvdisplay, vgdisplay, pvs, mount, df, du, ncdu, pvesm status samt qm importdisk och qemu-img convert för VM-diskar.",
|
||||
"ogTitle": "Proxmox-kommandon för lagring och diskar — lsblk, LVM, pvesm, qm importdisk",
|
||||
"ogDescription": "Lagrings- och diskkommandon på Proxmox VE: diskkontroll, LVM, monteringar, Proxmox-lagring, import av VM-diskar och konvertering av diskavbilder.",
|
||||
"twitterTitle": "Proxmox lagringskommandon | ProxMenux",
|
||||
"twitterDescription": "Diskkontroll, monteringsinformation, LVM-hantering, Proxmox-lagring samt import och konvertering av VM-diskar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lagring och diskar",
|
||||
"description": "Utvalda kommandon för att kontrollera lagring på Proxmox-värdar: blockenheter, partitioner, monteringar, LVM-volymer, lagringskonfiguration och VM-diskåtgärder (importdisk, qemu-img convert).",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Snabb översikt över diskarna",
|
||||
"body": "<code>lsblk</code> visar blockenheter och partitioner som ett träd. Kontrollera beständiga identifierare med <code>ls -lh /dev/disk/by-id/</code>: för samma disk är de normalt stabila över omstarter och ändrad enhetsordning. Ett diskbyte eller en ändring av hur styrenheten visar diskens identitet kan ändra dess by-id-sökväg."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Diskinformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "lsblk",
|
||||
"description": "Lista blockenheter och partitioner"
|
||||
},
|
||||
{
|
||||
"command": "fdisk -l",
|
||||
"description": "Lista diskar med detaljerad information"
|
||||
},
|
||||
{
|
||||
"command": "blkid",
|
||||
"description": "Visa UUID och filsystemtyp av blockenheter"
|
||||
},
|
||||
{
|
||||
"command": "ls -lh /dev/disk/by-id/",
|
||||
"description": "Lista diskbeständiga identifierare"
|
||||
},
|
||||
{
|
||||
"command": "parted -l",
|
||||
"description": "Detaljerad partitionslayout med GPT-information"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Lagringsanvändning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "df -h",
|
||||
"description": "Visa diskanvändning efter monteringspunkt"
|
||||
},
|
||||
{
|
||||
"command": "du -sh /path",
|
||||
"description": "Visa storleken på en katalog"
|
||||
},
|
||||
{
|
||||
"command": "mount | grep ^/dev",
|
||||
"description": "Visa monterade lagringsenheter"
|
||||
},
|
||||
{
|
||||
"command": "cat /proc/mounts",
|
||||
"description": "Visa alla aktiva monteringar från kärnan"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "LVM-hantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "pvdisplay",
|
||||
"description": "Visa fysiska volymer (LVM)"
|
||||
},
|
||||
{
|
||||
"command": "vgdisplay",
|
||||
"description": "Visa volymgrupper (LVM)"
|
||||
},
|
||||
{
|
||||
"command": "lvdisplay",
|
||||
"description": "Visa logiska volymer (LVM)"
|
||||
},
|
||||
{
|
||||
"command": "pvs",
|
||||
"description": "Kortfattad utdata av fysiska volymer"
|
||||
},
|
||||
{
|
||||
"command": "vgs",
|
||||
"description": "Kortfattad utdata av volymgrupper"
|
||||
},
|
||||
{
|
||||
"command": "lvs",
|
||||
"description": "Kortfattad utdata av logiska volymer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Proxmox lagring",
|
||||
"commands": [
|
||||
{
|
||||
"command": "cat /etc/pve/storage.cfg",
|
||||
"description": "Visa Proxmox-lagringskonfiguration"
|
||||
},
|
||||
{
|
||||
"command": "pvesm status",
|
||||
"description": "Visa status för alla lagringspooler"
|
||||
},
|
||||
{
|
||||
"command": "pvesm status --enabled 1",
|
||||
"description": "Lista konfigurerad och aktiverad lagring"
|
||||
},
|
||||
{
|
||||
"command": "pvesm list <storage>",
|
||||
"description": "Lista innehållet i specifik lagring"
|
||||
},
|
||||
{
|
||||
"command": "pvesm scan nfs <server>",
|
||||
"description": "Hitta NFS-exporter på en server"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Diskåtgärder",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qm importdisk <vmid> <image_path> <storage>",
|
||||
"description": "Importera diskavbilden som oanvänd VM-disk och anslut den sedan separat"
|
||||
},
|
||||
{
|
||||
"command": "qm set <vmid> -<bus><index> <disk_path>",
|
||||
"description": "Tilldela fysisk disk till VM (genomfångsläge)"
|
||||
},
|
||||
{
|
||||
"command": "qemu-img convert -O <format> <input> <output>",
|
||||
"description": "Konvertera formatet för en diskavbild som inte används aktivt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Diskhälsa med SMART",
|
||||
"commands": [
|
||||
{
|
||||
"command": "smartctl --scan",
|
||||
"description": "Lista SMART-kompatibla enheter på värden"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -i /dev/<disk>",
|
||||
"description": "Grundläggande enhetsinformation: modell, firmware och serienummer"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -H /dev/<disk>",
|
||||
"description": "Snabb hälsokontroll - övergripande PASSED / FAILED"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -A /dev/<disk>",
|
||||
"description": "SMART attribut endast (råvärden, trösklar)"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -a /dev/<disk>",
|
||||
"description": "Fullständig SMART-information: enhet, attribut och självtestlogg"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -t short /dev/<disk>",
|
||||
"description": "Starta kort självtest (~2 minuter, körs i bakgrunden)"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -t long /dev/<disk>",
|
||||
"description": "Starta ett långt självtest som kan ta timmar i bakgrunden"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -l selftest /dev/<disk>",
|
||||
"description": "Visa självtest log (resultat från tidigare tester)"
|
||||
},
|
||||
{
|
||||
"command": "smartctl -X /dev/<disk>",
|
||||
"description": "Avbryt det pågående självtestet"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "NVMe-diskhälsa",
|
||||
"commands": [
|
||||
{
|
||||
"command": "nvme list",
|
||||
"description": "Lista NVMe-enheter synliga för kärnan"
|
||||
},
|
||||
{
|
||||
"command": "nvme smart-log /dev/<nvme>",
|
||||
"description": "NVMe-specifik SMART-logg (temperatur, slitage, fel)"
|
||||
},
|
||||
{
|
||||
"command": "nvme id-ctrl /dev/<nvme>",
|
||||
"description": "Styrenhetsinformation: modell, firmware och funktioner"
|
||||
},
|
||||
{
|
||||
"command": "nvme error-log /dev/<nvme>",
|
||||
"description": "Nyligen NVMe felloggposter"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lvmTip": {
|
||||
"title": "LVM kort vs långa kommandon",
|
||||
"bodyRich": "Båda formerna finns. <code>pvs</code> / <code>vgs</code> / <code>lvs</code> ger kompakta tabeller med en rad per fysisk volym, volymgrupp respektive logisk volym. <code>pvdisplay</code> / <code>vgdisplay</code> / <code>lvdisplay</code> visar mer detaljer på flera rader. De korta formerna passar bra för dagliga kontroller."
|
||||
},
|
||||
"smartInfo": {
|
||||
"title": "SMART för SATA/SAS jämfört med NVMe",
|
||||
"bodyRich": "<strong>SATA-/SAS-diskar, även SSD:er,</strong> kan granskas med <code>smartctl</code> från <code>smartmontools</code>, som ingår i Proxmox. Ange enheten, till exempel <code>/dev/sda</code> eller <code>/dev/sdb</code>. <strong>NVMe-diskar</strong> använder ett annat inbyggt protokoll. Även <code>smartctl</code> stöder dem, medan <code>nvme</code> från <code>nvme-cli</code> ger NVMe-specifika frågor om styrenheter, namnrymder och hälsa. Installera med <code>apt install nvme-cli</code> om det saknas."
|
||||
},
|
||||
"selfTestWarn": {
|
||||
"title": "Självtester körs i bakgrunden",
|
||||
"bodyRich": "På enheter som stöds startar <code>smartctl -t short /dev/<disk></code> och <code>smartctl -t long /dev/<disk></code> bakgrundstester och återvänder direkt. Kontrollera förloppet med <code>smartctl -a /dev/<disk></code>, leta efter \"Self-test routine in progress\", eller vänta och läs <code>smartctl -l selftest /dev/<disk></code>. Korta tester tar ofta cirka två minuter; långa kan ta timmar. Disken kan fortfarande användas, men I/O-prestandan kan minska."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/help-info/zfs-commands",
|
||||
"label": "ZFS-hantering",
|
||||
"tail": " — zpool / zfs kommandon för ZFS-stödd lagring."
|
||||
},
|
||||
{
|
||||
"href": "/docs/disk-manager",
|
||||
"label": "Diskhanteraren",
|
||||
"tail": " — interaktiva ProxMenux-flöden för diskåtkomst, import, formatering och SMART."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox VE Systemkommandon - pveversion, uptime, journalctl, systemctl | ProxMenux",
|
||||
"description": "Systemkommandon för Proxmox VE och Linux för versioner, drifttid, minne, tjänster, loggar och användare samt gransknings- och sammanfattningsverktyg. En tjänsteomstart ingår; alla exempel är inte skrivskyddade.",
|
||||
"ogTitle": "Proxmox VE Systemkommandon - pveversion, uptime, journalctl, systemctl",
|
||||
"ogDescription": "Systemkommandon för Proxmox VE och Linux för version, drifttid, tjänster, loggar och användarinformation, inklusive tjänstehantering och granskning.",
|
||||
"twitterTitle": "Proxmox VE Systemkommandon | ProxMenux",
|
||||
"twitterDescription": "Viktiga systeminspektionskommandon för Proxmox VE - version, status, tjänster, loggar, användarinformation."
|
||||
},
|
||||
"header": {
|
||||
"title": "Användbara systemkommandon",
|
||||
"description": "Kommandon för att kontrollera Proxmox-värden: version, kärna, drifttid, minne, webbgränssnittets status, aktuella loggar och inloggade användare samt gransknings- och sammanfattningsverktyg. De flesta läser status, men systemctl restart pveproxy startar om webbproxyn och granskningsverktyg kan skriva rapporter och loggar.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta är",
|
||||
"body": "Samma numrerade lista som ProxMenux visar under <em>Användbara systemkommandon</em>. Kopiera ett kommando med knappen Kopiera eller slå upp den exakta flaggan."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Systeminformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "pveversion",
|
||||
"description": "Visa Proxmox-version"
|
||||
},
|
||||
{
|
||||
"command": "pveversion -v",
|
||||
"description": "Detaljerad Proxmox-versionsinformation"
|
||||
},
|
||||
{
|
||||
"command": "hostnamectl",
|
||||
"description": "Systemvärdnamn och kärninformation"
|
||||
},
|
||||
{
|
||||
"command": "uname -a",
|
||||
"description": "Information om operativsystemets kärna och arkitektur"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/os-release",
|
||||
"description": "Detaljer om operativsystemets utgåva"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Systemstatus",
|
||||
"commands": [
|
||||
{
|
||||
"command": "uptime",
|
||||
"description": "Systemuppetid"
|
||||
},
|
||||
{
|
||||
"command": "uptime -p",
|
||||
"description": "Drifttid i lättläst format"
|
||||
},
|
||||
{
|
||||
"command": "free -h",
|
||||
"description": "Användning av RAM och swap"
|
||||
},
|
||||
{
|
||||
"command": "who -b",
|
||||
"description": "Sista systemstarttid"
|
||||
},
|
||||
{
|
||||
"command": "last -x | grep shutdown",
|
||||
"description": "Tidigare avstängningar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Tjänstehantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "systemctl status pveproxy",
|
||||
"description": "Kontrollera status för Proxmox Web UI"
|
||||
},
|
||||
{
|
||||
"command": "systemctl restart pveproxy",
|
||||
"description": "Starta om proxy för webbgränssnittet"
|
||||
},
|
||||
{
|
||||
"command": "journalctl -xe",
|
||||
"description": "Systemfel och loggar"
|
||||
},
|
||||
{
|
||||
"command": "dmesg -T | tail -n 50",
|
||||
"description": "Senaste 50 kärnloggraderna"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Användarinformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "whoami",
|
||||
"description": "Nuvarande användare"
|
||||
},
|
||||
{
|
||||
"command": "id",
|
||||
"description": "Aktuell användar-UID, GID och grupper"
|
||||
},
|
||||
{
|
||||
"command": "who",
|
||||
"description": "Inloggade användare"
|
||||
},
|
||||
{
|
||||
"command": "w",
|
||||
"description": "Användaraktivitet och drifttid"
|
||||
},
|
||||
{
|
||||
"command": "uptime && w",
|
||||
"description": "Upptid och vem som är inloggad"
|
||||
},
|
||||
{
|
||||
"command": "cut -d: -f1,3,4 /etc/passwd",
|
||||
"description": "Alla användare med UID och GID"
|
||||
},
|
||||
{
|
||||
"command": "getent passwd | column -t -s :",
|
||||
"description": "Läsbar användartabell (UID, skal, etc.)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Verktyg för granskning och sammanfattning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "lynis audit system",
|
||||
"description": "Kör en fullständig systemsäkerhetsrevision"
|
||||
},
|
||||
{
|
||||
"command": "fastfetch",
|
||||
"description": "Visa systemsammanfattning i ASCII-format"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/help-info/update-commands",
|
||||
"label": "Uppdateringar och paket",
|
||||
"tail": " — kommandon för apt och PVE-uppgradering."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/tools-commands",
|
||||
"label": "System CLI-verktyg",
|
||||
"tail": " — htop, btop, ncdu och liknande verktyg."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Linux-terminalverktyg för Proxmox — htop, iftop, journalctl, rsync, tmux | ProxMenux",
|
||||
"description": "Linux-terminalverktyg för daglig Proxmox VE-administration: övervakning (htop, atop, glances, iotop), nätverk (iftop, nmap, mtr, ss), filer och text (find, grep, journalctl), prestanda (iostat, perf, strace), säkerhet (fail2ban, lynis, lsof) och fjärradministration (ssh, rsync, tmux).",
|
||||
"ogTitle": "Linux-terminalverktyg för Proxmox — htop, iftop, journalctl, rsync, tmux",
|
||||
"ogDescription": "Dagliga CLI-verktyg för Proxmox VE-administration som grupperas efter ändamål: övervakning, nätverk, fil / text, prestanda, säkerhet och fjärradministration.",
|
||||
"twitterTitle": "Linux-terminalverktyg för Proxmox | ProxMenux",
|
||||
"twitterDescription": "CLI-verktyg för Proxmox VE-administration grupperad efter ändamål."
|
||||
},
|
||||
"header": {
|
||||
"title": "System CLI-verktyg",
|
||||
"description": "Terminalverktyg för daglig administration av Proxmox-värden, grupperade efter syfte: övervakning, nätverk, filer och text, prestandaanalys, säkerhet, fjärradministration och systemkonfiguration.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "De flesta installeras av efterinstallationsskriptet",
|
||||
"body": "Om du körde ProxMenux efterinstallationsskript med standardvalen är de flesta verktygen redan installerade. För det som saknas erbjuder <utilsLink>installationsprogrammet för systemverktyg</utilsLink> fördefinierade grupper, till exempel grundverktyg, utveckling, nätverk och analys."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Systemövervakning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "htop",
|
||||
"description": "Interaktiv processtittare med CPU/minnesanvändning"
|
||||
},
|
||||
{
|
||||
"command": "top",
|
||||
"description": "Visa Linux-processer i realtid"
|
||||
},
|
||||
{
|
||||
"command": "atop",
|
||||
"description": "Avancerad system- och processövervakning"
|
||||
},
|
||||
{
|
||||
"command": "glances",
|
||||
"description": "Systemövervakningsverktyg med webbgränssnitt"
|
||||
},
|
||||
{
|
||||
"command": "nmon",
|
||||
"description": "Verktyg för prestandaövervakning"
|
||||
},
|
||||
{
|
||||
"command": "iotop",
|
||||
"description": "Övervaka disk I/O-användning genom processer"
|
||||
},
|
||||
{
|
||||
"command": "vmstat 1",
|
||||
"description": "Rapportera virtuell minnesstatistik varje sekund"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Nätverksverktyg",
|
||||
"commands": [
|
||||
{
|
||||
"command": "iftop",
|
||||
"description": "Visa bandbreddsanvändningen på ett gränssnitt"
|
||||
},
|
||||
{
|
||||
"command": "nmap <host>",
|
||||
"description": "Nätverksutforskning och säkerhetsskanning"
|
||||
},
|
||||
{
|
||||
"command": "tcpdump -i <interface>",
|
||||
"description": "Fånga nätverkstrafik"
|
||||
},
|
||||
{
|
||||
"command": "netstat -tuln",
|
||||
"description": "Visa nätverksanslutningar"
|
||||
},
|
||||
{
|
||||
"command": "ss -tuln",
|
||||
"description": "Ett annat verktyg för att undersöka nätverkssocklar"
|
||||
},
|
||||
{
|
||||
"command": "mtr <host>",
|
||||
"description": "Nätverk diagnostiskt verktyg som kombinerar ping och traceroute"
|
||||
},
|
||||
{
|
||||
"command": "iperf3 -s",
|
||||
"description": "Kör iperf server för bandbreddstestning"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Fil och textverktyg",
|
||||
"commands": [
|
||||
{
|
||||
"command": "find / -name <filename>",
|
||||
"description": "Hitta filer efter namn"
|
||||
},
|
||||
{
|
||||
"command": "grep -r 'pattern' /path",
|
||||
"description": "Sök efter mönster i filer"
|
||||
},
|
||||
{
|
||||
"command": "sed -i 's/old/new/g' file",
|
||||
"description": "Ersätt text i filer"
|
||||
},
|
||||
{
|
||||
"command": "awk '{print $1}' file",
|
||||
"description": "Verktyg för textbearbetning"
|
||||
},
|
||||
{
|
||||
"command": "tail -f /var/log/syslog",
|
||||
"description": "Följ en loggfil i realtid"
|
||||
},
|
||||
{
|
||||
"command": "less /var/log/messages",
|
||||
"description": "Visa fil med pagination"
|
||||
},
|
||||
{
|
||||
"command": "journalctl -f",
|
||||
"description": "Följ systemd-journalens loggar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Prestandaanalys",
|
||||
"commands": [
|
||||
{
|
||||
"command": "iostat -x 1",
|
||||
"description": "Rapportera CPU och I/O statistik"
|
||||
},
|
||||
{
|
||||
"command": "mpstat -P ALL 1",
|
||||
"description": "Visa CPU-användningen"
|
||||
},
|
||||
{
|
||||
"command": "perf top",
|
||||
"description": "Systemprofileringsverktyg"
|
||||
},
|
||||
{
|
||||
"command": "strace <command>",
|
||||
"description": "Spåra systemanrop och signaler"
|
||||
},
|
||||
{
|
||||
"command": "lsof",
|
||||
"description": "Lista öppna filer"
|
||||
},
|
||||
{
|
||||
"command": "pstree",
|
||||
"description": "Visa processträdet"
|
||||
},
|
||||
{
|
||||
"command": "slabtop",
|
||||
"description": "Visa information om kärnans slab-cache"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Säkerhetsverktyg",
|
||||
"commands": [
|
||||
{
|
||||
"command": "fail2ban-client status",
|
||||
"description": "Visa fail2ban status"
|
||||
},
|
||||
{
|
||||
"command": "chage -l <username>",
|
||||
"description": "Visa lösenord utgångsinformation"
|
||||
},
|
||||
{
|
||||
"command": "lastlog",
|
||||
"description": "Visa sista inloggningen av alla användare"
|
||||
},
|
||||
{
|
||||
"command": "last",
|
||||
"description": "Visa en lista över de senast inloggade användarna"
|
||||
},
|
||||
{
|
||||
"command": "w",
|
||||
"description": "Visa vem som är inloggad och vad de gör"
|
||||
},
|
||||
{
|
||||
"command": "lynis audit system",
|
||||
"description": "Säkerhetsrevisionsverktyg"
|
||||
},
|
||||
{
|
||||
"command": "openssl s_client -connect host:port",
|
||||
"description": "Test SSL/TLS-anslutningar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Fjärradministration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "ssh <user>@<host>",
|
||||
"description": "Säker skalanslutning"
|
||||
},
|
||||
{
|
||||
"command": "scp <file> <user>@<host>:<path>",
|
||||
"description": "Kopiera filer säkert"
|
||||
},
|
||||
{
|
||||
"command": "rsync -avz <src> <dest>",
|
||||
"description": "Synkronisera filer / mappar"
|
||||
},
|
||||
{
|
||||
"command": "screen",
|
||||
"description": "Terminalmultiplexer"
|
||||
},
|
||||
{
|
||||
"command": "tmux",
|
||||
"description": "Alternativ terminalmultiplexer"
|
||||
},
|
||||
{
|
||||
"command": "ssh-keygen -t rsa -b 4096",
|
||||
"description": "Generera SSH nyckelpar"
|
||||
},
|
||||
{
|
||||
"command": "ssh-copy-id <user>@<host>",
|
||||
"description": "Kopiera SSH-nyckeln till servern"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Systemkonfiguration",
|
||||
"commands": [
|
||||
{
|
||||
"command": "systemctl status <service>",
|
||||
"description": "Kontrollera servicestatus"
|
||||
},
|
||||
{
|
||||
"command": "journalctl -u <service>",
|
||||
"description": "Visa serviceloggar"
|
||||
},
|
||||
{
|
||||
"command": "timedatectl",
|
||||
"description": "Hantera systemets tid och datum"
|
||||
},
|
||||
{
|
||||
"command": "hostnamectl",
|
||||
"description": "Hantera systemets värdnamn"
|
||||
},
|
||||
{
|
||||
"command": "localectl",
|
||||
"description": "Hantera systemets språk- och tangentbordsinställningar"
|
||||
},
|
||||
{
|
||||
"command": "update-alternatives --config <name>",
|
||||
"description": "Konfigurera systemalternativ"
|
||||
},
|
||||
{
|
||||
"command": "dpkg-reconfigure <package>",
|
||||
"description": "Konfigurera om ett installerat paket"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tmuxTip": {
|
||||
"title": "Använd tmux / screen för långvariga kommandon",
|
||||
"bodyRich": "Kör långvariga arbeten, som säkerhetskopiering, uppgradering eller en stor rsync-överföring, i <code>tmux</code> eller <code>screen</code> så att en SSH-frånkoppling inte avslutar terminalsessionen. För en tmux-session ansluter du till samma värd med samma användare och kör <code>tmux attach</code>. Screen-sessioner har ett eget kommando för återanslutning."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/utils/system-utils",
|
||||
"label": "Installationsprogram för systemverktyg",
|
||||
"tail": " - installera något av dessa verktyg som saknas."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"label": "Användbara systemkommandon",
|
||||
"tail": " — Proxmox-specifika inspektionskommandon."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-kommandon för uppdateringar och paket — apt, pveupgrade, dpkg | ProxMenux",
|
||||
"description": "Uppdaterings- och paketkommandon för Proxmox VE: apt update, apt upgrade, apt dist-upgrade, pveupgrade, dpkg -l, paketinformationsfrågor och arkivkonfiguration i /etc/apt/sources.list.d/.",
|
||||
"ogTitle": "Proxmox-kommandon för uppdateringar och paket — apt, pveupgrade, dpkg",
|
||||
"ogDescription": "apt, pveupgrade och dpkg kommandon för att hålla Proxmox VE uppdaterad - systemuppgraderingar, pakethantering, förvarskonfiguration.",
|
||||
"twitterTitle": "Proxmox uppdateringskommandon | ProxMenux",
|
||||
"twitterDescription": "Kommandon med apt och pveupgrade för att hantera uppdateringar och paket på Proxmox VE-värdar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Uppdateringar och paket",
|
||||
"description": "Utvalda kommandon med apt och för Proxmox-uppgraderingar: systemuppdatering, installation, borttagning och rensning av paket, paketfrågor med apt-cache policy och dpkg -l samt kontroll av arkivkonfiguration.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Alltid uppdatera indexet först",
|
||||
"body": "<code>apt update</code> uppdaterar det lokala paketindexet från konfigurerade arkiv. Utan detta kan <code>apt install</code> använda gamla versioner eller misslyckas med \"Unable to locate package\"."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Systemuppdateringar",
|
||||
"commands": [
|
||||
{
|
||||
"command": "apt update && apt upgrade -y",
|
||||
"description": "Uppdatera paketlistor och installerade paket (apt upgrade)"
|
||||
},
|
||||
{
|
||||
"command": "apt dist-upgrade -y",
|
||||
"description": "Fullständig systemuppgradering, inklusive beroenden"
|
||||
},
|
||||
{
|
||||
"command": "apt update",
|
||||
"description": "Uppdatera paketlistor endast"
|
||||
},
|
||||
{
|
||||
"command": "apt upgrade",
|
||||
"description": "Uppgradera endast paket (interaktivt)"
|
||||
},
|
||||
{
|
||||
"command": "apt full-upgrade",
|
||||
"description": "Uppgradera paket med beroendehantering (interaktiv)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Proxmox Uppdateringar",
|
||||
"commands": [
|
||||
{
|
||||
"command": "pveupdate",
|
||||
"description": "Uppdatera Proxmox-paketlistor"
|
||||
},
|
||||
{
|
||||
"command": "pveupgrade",
|
||||
"description": "Starta den interaktiva paketuppgraderingen för Proxmox"
|
||||
},
|
||||
{
|
||||
"command": "pve8to9 --full",
|
||||
"description": "Kontrollera beredskapen för PVE 8 till 9 utan att uppgradera"
|
||||
},
|
||||
{
|
||||
"command": "ceph versions",
|
||||
"description": "Visa versioner av Ceph-demoner innan en uppgradering planeras"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Pakethantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "apt autoremove --purge",
|
||||
"description": "Ta bort oanvända paket och deras konfiguration"
|
||||
},
|
||||
{
|
||||
"command": "apt clean",
|
||||
"description": "Rensa ut det lokala förvaret av hämtade paketfiler"
|
||||
},
|
||||
{
|
||||
"command": "apt autoclean",
|
||||
"description": "Rensa ut endast föråldrade paketfiler"
|
||||
},
|
||||
{
|
||||
"command": "apt install <package>",
|
||||
"description": "Installera ett specifikt paket"
|
||||
},
|
||||
{
|
||||
"command": "apt remove <package>",
|
||||
"description": "Ta bort ett paket"
|
||||
},
|
||||
{
|
||||
"command": "apt purge <package>",
|
||||
"description": "Ta bort ett paket och dess konfigurationsfiler"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Paketinformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "apt list --installed",
|
||||
"description": "Lista alla installerade paket"
|
||||
},
|
||||
{
|
||||
"command": "apt search <keyword>",
|
||||
"description": "Sök efter paket med sökord"
|
||||
},
|
||||
{
|
||||
"command": "apt show <package>",
|
||||
"description": "Visa detaljerad information om ett paket"
|
||||
},
|
||||
{
|
||||
"command": "dpkg -l",
|
||||
"description": "Lista alla installerade paket (alternativ)"
|
||||
},
|
||||
{
|
||||
"command": "dpkg -l | grep <keyword>",
|
||||
"description": "Sök installerade paket med sökord"
|
||||
},
|
||||
{
|
||||
"command": "apt-cache policy <package>",
|
||||
"description": "Visa paketversioner och prioriteringar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Hantering av paketförråd",
|
||||
"commands": [
|
||||
{
|
||||
"command": "cat /etc/apt/sources.list",
|
||||
"description": "Visa huvudsakliga APT repository källor"
|
||||
},
|
||||
{
|
||||
"command": "ls -la /etc/apt/sources.list.d/",
|
||||
"description": "Lista ytterligare arkiv källfiler"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/apt/sources.list.d/pve-enterprise.list",
|
||||
"description": "Visa Proxmox Enterprise-arkivets konfiguration i .list-filen för PVE 8"
|
||||
},
|
||||
{
|
||||
"command": "apt-key list",
|
||||
"description": "Lista äldre signeringsnycklar för arkiv där apt-key finns"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"backupWarn": {
|
||||
"title": "Ta en backup innan stora uppgraderingar",
|
||||
"bodyRich": "För vanliga uppdateringar rekommenderar Proxmox <code>apt update && apt full-upgrade</code>. Granska paketändringarna innan du bekräftar. För <strong>uppgraderingar till en ny huvudversion</strong> (PVE 8 → 9) använder du ProxMenux-flödet <upgradeLink>Uppgradera PVE 8 till PVE 9</upgradeLink>. Det lägger till förkontroller, arkivmigrering och efterkontroll. Säkerhetskopiera först."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/utils/system-update",
|
||||
"label": "Proxmox-systemuppdatering (interaktiv)",
|
||||
"tail": " — verktyget utför detta med en bekräftelsedialog, bygger automatiskt om ProxMenux-hanterade drivrutiner med DKMS när en ny kärna installeras och erbjuder omstart. Kan även startas från Uppdatera nu i ProxMenux Monitors panel."
|
||||
},
|
||||
{
|
||||
"href": "/docs/utils/upgrade-pve8-pve9",
|
||||
"label": "Uppgradera PVE 8 till PVE 9",
|
||||
"tail": " — för uppgraderingar till en ny huvudversion."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-kommandona qm och pct — hantering av VM:ar och LXC-containrar | ProxMenux",
|
||||
"description": "Hänvisning till Proxmox VE qm och pct kommandon för VMs och LXC containers: list, config, start, stop, shutdown, reboot, destroy, clone, migrate, snapshot, resize, plus pct exec / enter / push / pull för containrar.",
|
||||
"ogTitle": "Proxmox-kommandona qm och pct — hantering av VM:ar och LXC-containrar",
|
||||
"ogDescription": "Referens av Proxmox VE qm och pct kommandon - hantera virtuella maskiner och LXC containrar från CLI: start, stopp, konfigurera, ögonblicksbild, migrera, klon, förstöra.",
|
||||
"twitterTitle": "Proxmox-kommandon med qm / pct | ProxMenux",
|
||||
"twitterDescription": "Utvalda qm / pct-kommandon för hantering av virtuella maskiner och LXC-containrar i Proxmox VE."
|
||||
},
|
||||
"header": {
|
||||
"title": "Hantering av VM:ar och CT:er",
|
||||
"description": "Utvalda kommandon med qm för VM:ar och pct för LXC-containrar: listning, livscykel (start / stop / shutdown / destroy), konfigurationskontroll och containeråtgärder som exec, enter, push och pull.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Hitta ett VMID eller CTID först",
|
||||
"body": "Nästan varje kommando behöver ett numeriskt ID. Använd <code>qm list</code> för VM:ar och <code>pct list</code> för containrar. Ersätt <code><vmid></code> / <code><ctid></code> i exemplen med rätt ID innan du kör dem."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Lista och information",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qm list",
|
||||
"description": "Lista alla virtuella maskiner"
|
||||
},
|
||||
{
|
||||
"command": "pct list",
|
||||
"description": "Lista alla LXC-containrar"
|
||||
},
|
||||
{
|
||||
"command": "qm config <vmid>",
|
||||
"description": "Visa VM-konfigurationen tolkad av qm"
|
||||
},
|
||||
{
|
||||
"command": "pct config <ctid>",
|
||||
"description": "Visa containerkonfigurationen tolkad av pct"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Konfigurationsfiler (rå)",
|
||||
"commands": [
|
||||
{
|
||||
"command": "cat /etc/pve/qemu-server/<vmid>.conf",
|
||||
"description": "Visa rå VM-konfigurationsfil"
|
||||
},
|
||||
{
|
||||
"command": "cat /etc/pve/lxc/<ctid>.conf",
|
||||
"description": "Visa rå CT-konfigurationsfil"
|
||||
},
|
||||
{
|
||||
"command": "nano /etc/pve/qemu-server/<vmid>.conf",
|
||||
"description": "Redigera rå VM konfigurationsfil (nano)"
|
||||
},
|
||||
{
|
||||
"command": "nano /etc/pve/lxc/<ctid>.conf",
|
||||
"description": "Redigera rå CT konfigurationsfil (nano)"
|
||||
},
|
||||
{
|
||||
"command": "vi /etc/pve/qemu-server/<vmid>.conf",
|
||||
"description": "Redigera rå VM konfigurationsfil (vi)"
|
||||
},
|
||||
{
|
||||
"command": "vi /etc/pve/lxc/<ctid>.conf",
|
||||
"description": "Redigera rå CT konfigurationsfil (vi)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "VM-hantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "qm start <vmid>",
|
||||
"description": "Starta en virtuell maskin. Använd rätt <vmid>"
|
||||
},
|
||||
{
|
||||
"command": "qm stop <vmid>",
|
||||
"description": "Tvinga stopp av en virtuell maskin. Använd rätt <vmid>"
|
||||
},
|
||||
{
|
||||
"command": "qm shutdown <vmid>",
|
||||
"description": "Stäng av en virtuell maskin ordnat"
|
||||
},
|
||||
{
|
||||
"command": "qm reset <vmid>",
|
||||
"description": "Återställ en virtuell maskin med en hård omstart"
|
||||
},
|
||||
{
|
||||
"command": "qm suspend <vmid>",
|
||||
"description": "Pausa en virtuell maskin"
|
||||
},
|
||||
{
|
||||
"command": "qm resume <vmid>",
|
||||
"description": "Återuppta en pausad virtuell maskin"
|
||||
},
|
||||
{
|
||||
"command": "qm destroy <vmid>",
|
||||
"description": "Ta bort en virtuell dator (oåterkallelig). Använd rätt <vmid>"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Containerhantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "pct start <ctid>",
|
||||
"description": "Starta en container. Använd rätt <ctid>"
|
||||
},
|
||||
{
|
||||
"command": "pct stop <ctid>",
|
||||
"description": "Tvinga stopp av en container. Använd rätt <ctid>"
|
||||
},
|
||||
{
|
||||
"command": "pct shutdown <ctid>",
|
||||
"description": "Stäng av en container ordnat"
|
||||
},
|
||||
{
|
||||
"command": "pct reboot <ctid>",
|
||||
"description": "Starta om en container"
|
||||
},
|
||||
{
|
||||
"command": "pct destroy <ctid>",
|
||||
"description": "Ta bort en CT (irreversibel). Använd rätt <ctid>"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Containeråtgärder",
|
||||
"commands": [
|
||||
{
|
||||
"command": "pct exec <ctid> -- getent passwd | column -t -s :",
|
||||
"description": "Visa CT-användare i tabellformat"
|
||||
},
|
||||
{
|
||||
"command": "pct exec <ctid> -- ps aux --sort=-%mem | head",
|
||||
"description": "Processer med högst minnesanvändning i CT:n"
|
||||
},
|
||||
{
|
||||
"command": "pct enter <ctid>",
|
||||
"description": "Öppna containerns skal"
|
||||
},
|
||||
{
|
||||
"command": "pct push <ctid> <source> <dest>",
|
||||
"description": "Kopiera fil från värd till container"
|
||||
},
|
||||
{
|
||||
"command": "pct pull <ctid> <source> <dest>",
|
||||
"description": "Kopiera fil från container till värd"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"destroyWarn": {
|
||||
"title": "Förstörelse är irreversibel",
|
||||
"bodyRich": "<code>qm destroy</code> och <code>pct destroy</code> tar bort gästkonfigurationen och dess hanterade diskvolymer. Räkna inte med att externa data eller bindmonterade data tas bort. Kommandoraden ber inte om bekräftelse som standard. Säkerhetskopiera nödvändiga data först; se <backupLink>Säkerhetskopiering och återställning</backupLink>."
|
||||
},
|
||||
"qmConfigTip": {
|
||||
"title": "qm config jämfört med direkt redigering av .conf-filen",
|
||||
"bodyRich": "<code>qm config <vmid></code> och <code>pct config <ctid></code> visar konfigurationen via Proxmox tolkar. För vanliga ändringar använder du helst <code>qm set</code> eller motsvarande pct-kommando. Direkt redigering av <code>/etc/pve/qemu-server/<vmid>.conf</code> eller <code>/etc/pve/lxc/<ctid>.conf</code> kringgår hanteringskommandonas validering och låsning; filen måste fortfarande gå att tolka. Stoppa gästen och behåll en kopia före manuell reparation. <code>pmxcfs</code> synkroniserar konfiguration mellan klusternoder, inte gästernas diskinnehåll."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/help-info/backup-commands",
|
||||
"label": "Säkerhetskopiering och återställning",
|
||||
"tail": " — vzdump och qmrestore / pct restore."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Lagring och diskar",
|
||||
"tail": " — qm importdisk och diskhantering."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,227 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ZFS-kommandon på Proxmox — zpool, zfs snapshot, send/receive, scrub | ProxMenux",
|
||||
"description": "ZFS-hanteringskommandon på Proxmox VE: zpool create / status / history, zfs list / get / set, snapshots, clone, zfs send och receive, scrub, clear, replace, zpool iostat och ARC-sammanfattning.",
|
||||
"ogTitle": "ZFS-kommandon på Proxmox — zpool, zfs snapshot, send/receive, scrub",
|
||||
"ogDescription": "Referens av zpool och zfs kommandon på Proxmox VE - pooler, datamängder, ögonblicksbilder, replikering, underhåll.",
|
||||
"twitterTitle": "ZFS-kommandon på Proxmox | ProxMenux",
|
||||
"twitterDescription": "zpool och zfs kommandon för Proxmox VE: pooler, datamängder, ögonblicksbilder, replikering, underhåll."
|
||||
},
|
||||
"header": {
|
||||
"title": "ZFS-hantering",
|
||||
"description": "Utvalda zpool- och zfs-kommandon: poolkontroll, skapa, läsa, ändra och ta bort dataset, snapshots, clone och inkrementell eller rekursiv send/receive, underhåll med scrub / clear / replace, I/O-statistik och ARC-sammanfattning.",
|
||||
"section": "Hjälp och info"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Två kommandofamiljer",
|
||||
"body": "<code>zpool *</code> hanterar lagringspoolerna (fysiskt lager - skivor, vdevs, redundans). <code>zfs *</code> hanterar datamängder och ögonblicksbilder som bor i dessa pooler (logiskt lager - filsystem, volymer, ögonblicksbilder, egenskaper)."
|
||||
},
|
||||
"commandGroups": [
|
||||
{
|
||||
"title": "Poolinformation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zpool list",
|
||||
"description": "Lista alla ZFS-pooler"
|
||||
},
|
||||
{
|
||||
"command": "zpool status",
|
||||
"description": "Visa detaljerad poolstatus och hälsa"
|
||||
},
|
||||
{
|
||||
"command": "zpool status -v",
|
||||
"description": "Visa utförlig poolstatus med fel"
|
||||
},
|
||||
{
|
||||
"command": "zpool history",
|
||||
"description": "Visa kommandohistoria för alla pooler"
|
||||
},
|
||||
{
|
||||
"command": "zpool history <pool>",
|
||||
"description": "Visa kommandohistoria för specifik pool"
|
||||
},
|
||||
{
|
||||
"command": "zpool get all <pool>",
|
||||
"description": "Visa alla egenskaper hos en pool"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Datasethantering",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zfs list",
|
||||
"description": "Lista alla ZFS dataset"
|
||||
},
|
||||
{
|
||||
"command": "zfs list -r <pool>",
|
||||
"description": "Lista alla dataset i en pool rekursivt"
|
||||
},
|
||||
{
|
||||
"command": "zfs create <pool>/<dataset>",
|
||||
"description": "Skapa en ny dataset"
|
||||
},
|
||||
{
|
||||
"command": "zfs destroy <pool>/<dataset>",
|
||||
"description": "Förstör en dataset"
|
||||
},
|
||||
{
|
||||
"command": "zfs rename <pool>/<dataset> <pool>/<new-name>",
|
||||
"description": "byta namn på en dataset"
|
||||
},
|
||||
{
|
||||
"command": "zfs get all <pool>/<dataset>",
|
||||
"description": "Visa alla egenskaper hos en dataset"
|
||||
},
|
||||
{
|
||||
"command": "zfs set compression=on <pool>/<dataset>",
|
||||
"description": "Aktivera komprimering på en dataset"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Hantering av ögonblicksbilder",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zfs list -t snapshot",
|
||||
"description": "Lista alla snapshots"
|
||||
},
|
||||
{
|
||||
"command": "zfs list -t snapshot -r <pool>",
|
||||
"description": "Lista alla ögonblicksbilder i en pool"
|
||||
},
|
||||
{
|
||||
"command": "zfs snapshot <pool>/<dataset>@<snapshot-name>",
|
||||
"description": "Skapa en snapshot"
|
||||
},
|
||||
{
|
||||
"command": "zfs destroy <pool>/<dataset>@<snapshot-name>",
|
||||
"description": "Ta bort en ögonblicksbild"
|
||||
},
|
||||
{
|
||||
"command": "zfs rollback <pool>/<dataset>@<snapshot-name>",
|
||||
"description": "Rollback till en snapshot"
|
||||
},
|
||||
{
|
||||
"command": "zfs hold <tag> <pool>/<dataset>@<snapshot-name>",
|
||||
"description": "Skydda en snapshot mot borttagning med hold"
|
||||
},
|
||||
{
|
||||
"command": "zfs release <tag> <pool>/<dataset>@<snapshot-name>",
|
||||
"description": "Ta bort hold-skyddet för en snapshot"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Klon och skicka / ta emot",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zfs clone <pool>/<dataset>@<snapshot> <pool>/<clone-name>",
|
||||
"description": "Skapa en klon från en ögonblicksbild"
|
||||
},
|
||||
{
|
||||
"command": "zfs send <pool>/<dataset>@<snapshot> > backup.zfs",
|
||||
"description": "Skicka en ögonblicksbild till en fil"
|
||||
},
|
||||
{
|
||||
"command": "zfs receive <pool>/<dataset> < backup.zfs",
|
||||
"description": "Få en ögonblicksbild från en fil"
|
||||
},
|
||||
{
|
||||
"command": "zfs send -i <pool>/<dataset>@<snap1> <pool>/<dataset>@<snap2> > incr.zfs",
|
||||
"description": "Skicka inkrementell snapshot"
|
||||
},
|
||||
{
|
||||
"command": "zfs send -R <pool>/<dataset>@<snapshot> > full-recursive.zfs",
|
||||
"description": "Skicka en snapshot rekursivt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Underhåll och reparation",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zpool scrub <pool>",
|
||||
"description": "Starta en scrub-kontroll av en pool"
|
||||
},
|
||||
{
|
||||
"command": "zpool scrub -s <pool>",
|
||||
"description": "Stoppa pågående scrub"
|
||||
},
|
||||
{
|
||||
"command": "zpool clear <pool>",
|
||||
"description": "Nollställ felräknarna i en pool"
|
||||
},
|
||||
{
|
||||
"command": "zpool clear <pool> <device>",
|
||||
"description": "Nollställ fel för en angiven enhet"
|
||||
},
|
||||
{
|
||||
"command": "zpool replace <pool> <old-device> <new-device>",
|
||||
"description": "Ersätt en misslyckad enhet"
|
||||
},
|
||||
{
|
||||
"command": "zpool offline <pool> <device>",
|
||||
"description": "Ta en enhet offline"
|
||||
},
|
||||
{
|
||||
"command": "zpool online <pool> <device>",
|
||||
"description": "Aktivera en enhet online i poolen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Prestanda och övervakning",
|
||||
"commands": [
|
||||
{
|
||||
"command": "zpool iostat",
|
||||
"description": "Visa I/O statistik för pooler"
|
||||
},
|
||||
{
|
||||
"command": "zpool iostat -v",
|
||||
"description": "Visa detaljerad I/O statistik"
|
||||
},
|
||||
{
|
||||
"command": "zpool iostat 5",
|
||||
"description": "Visa I/O statistik varje 5 sekunder"
|
||||
},
|
||||
{
|
||||
"command": "arc_summary",
|
||||
"description": "Visa ARC-statistik (om den är installerad)"
|
||||
},
|
||||
{
|
||||
"command": "zfs get compressratio <pool>/<dataset>",
|
||||
"description": "Visa kompressionsförhållande"
|
||||
},
|
||||
{
|
||||
"command": "zfs get used,available,referenced <pool>/<dataset>",
|
||||
"description": "Visa utrymmesanvändning"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bestPractices": {
|
||||
"title": "Operativa bästa praxis",
|
||||
"bodyRich": "Schemalägg <code>zpool scrub</code> regelbundet för att verifiera kontrollsummor och granska resultatet. Behåll ledig kapacitet: effekten av en nästan full pool beror på arbetslast och layout. Använd <code>zpool replace</code> för en trasig enhet och följ rutinen för dess vdev-typ. Detach + add är inte en likvärdig ersättning och kan ändra topologin eller ta bort redundans."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"label": "Lagring och diskar",
|
||||
"tail": " — generiska block-enhet och LVM kommandon."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info/backup-commands",
|
||||
"label": "Säkerhetskopiering och återställning",
|
||||
"tail": " — vzdump, qmrestore."
|
||||
},
|
||||
{
|
||||
"href": "/docs/help-info",
|
||||
"label": "Översikt över Hjälp och info",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Installera ProxMenux | ProxMenux-dokumentation",
|
||||
"description": "Installera ProxMenux med ett kommando på Proxmox VE 8 eller senare. Färdiga JSON-kataloger ingår för åtta språk: engelska, spanska, franska, tyska, italienska, portugisiska, slovakiska och svenska. Välj språk vid installationen eller ändra det senare i inställningarna. Betakanalen ger tidig tillgång till nya funktioner.",
|
||||
"ogTitle": "Installera ProxMenux | ProxMenux-dokumentation",
|
||||
"ogDescription": "Installera ProxMenux på Proxmox VE 8+ i ett kommando. Stabila och betakanaler tillgängliga."
|
||||
},
|
||||
"header": {
|
||||
"title": "Installera ProxMenux",
|
||||
"description": "Installationsprogrammet startas med en rad på en Proxmox VE-värd med version 8 eller senare. Det installerar beroenden, laddar ned skripten, skapar menyns startkommando och frågar efter språk vid första körningen. Två kanaler finns: stabil (standard) och beta.",
|
||||
"section": "Installation"
|
||||
},
|
||||
"stable": {
|
||||
"heading": "Installera",
|
||||
"intro": "Kör detta i terminalen på din Proxmox-värd:",
|
||||
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\""
|
||||
},
|
||||
"during": {
|
||||
"heading": "Under installationen",
|
||||
"intro": "ProxMenux installerar automatiskt och konfigurerar de beroenden det behöver:",
|
||||
"tablePackage": "Paket",
|
||||
"tablePurpose": "Syfte",
|
||||
"rows": [
|
||||
{
|
||||
"package": "dialog",
|
||||
"purpose": "Interaktiva terminalmenyer"
|
||||
},
|
||||
{
|
||||
"package": "curl",
|
||||
"purpose": "Nedladdningar och anslutningskontroller"
|
||||
},
|
||||
{
|
||||
"package": "jq",
|
||||
"purpose": "JSON-bearbetning"
|
||||
},
|
||||
{
|
||||
"package": "git",
|
||||
"purpose": "Kloning och uppdatering av kodarkiv"
|
||||
}
|
||||
],
|
||||
"outro": "Installationsprogrammet laddar också ned skriptträdet till <code>/usr/local/share/proxmenux/</code> och skapar startkommandot <code>/usr/local/bin/menu</code>. Webbpanelen <strong>ProxMenux Monitor</strong> registreras som tjänsten <code>proxmenux-monitor.service</code>.",
|
||||
"imageAlt": "ProxMenux installation pågår"
|
||||
},
|
||||
"first": {
|
||||
"heading": "Första starten",
|
||||
"intro": "Kör följande efter installationen:",
|
||||
"code": "menu",
|
||||
"outro": "ProxMenux öppnas i huvudmenyn. Därifrån kan du starta alla arbetsflöden som beskrivs på webbplatsen. På en nyinstallerad Proxmox-värd är <postlink>Efterinstallation</postlink> en bra början."
|
||||
},
|
||||
"beta": {
|
||||
"heading": "Betakanal",
|
||||
"calloutTitle": "Vad är Beta-programmet?",
|
||||
"calloutBody": "Vill du testa nyheterna före den officiella utgåvan och påverka slutversionen? ProxMenux betaprogram ger tidig tillgång till nya funktioner, inklusive de senaste versionerna av Monitor, direkt från grenen <code>develop</code>. Betaversioner kan innehålla buggar och ofullständiga funktioner. Dina synpunkter hjälper till att rätta dem före den stabila utgåvan.",
|
||||
"intro": "Installera betaversionen istället för den stabila med:",
|
||||
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/develop/install_proxmenux_beta.sh)\"",
|
||||
"outro": "Betaprogrammet är frivilligt: du måste uttryckligen köra beta-installationsprogrammet. När en stabil version släpps meddelar ProxMenux det vid nästa start av <code>menu</code> och erbjuder automatiskt byte. Om du vill lämna betan tidigare väljer du <betalink>Inaktivera betaprogrammet</betalink> i inställningarna."
|
||||
},
|
||||
"updating": {
|
||||
"heading": "Uppdatering",
|
||||
"body": "ProxMenux hanterar sina egna uppdateringar. När en ny version finns erbjuder nästa start av <code>menu</code> att installera den. Om du accepterar ersätts verktygets filer och konfiguration i den befintliga installationen, utan manuell nedladdning. Den stabila kanalen får stabila utgåvor och betakanalen betautgåvor, med erbjudandet om byte som beskrivs ovan. Dialogen beror på var du kör <code>menu</code>: via SSH eller i Proxmox-konsolen visas en ja/nej-dialog, och uppdateringen tillämpas direkt om du accepterar. I WebSocket-terminalen i ProxMenux Monitor visas i stället information, eftersom den terminalen skulle avbrytas under uppdateringen. Meddelandet visar installationskommandot på en rad (<code>bash -c \"$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)\"</code> för stabil eller motsvarande adress till <code>install_proxmenux_beta.sh</code> för beta), som du kör via SSH eller konsolen."
|
||||
},
|
||||
"uninstall": {
|
||||
"heading": "Avinstallera",
|
||||
"body": "I ProxMenux: <strong>Inställningar → Avinstallera ProxMenux</strong>. Avinstallationen tar bort skriptträdet, startkommandot och Monitor-tjänsten samt, om du väljer det, utvalda beroenden. Den återställer <code>/root/.bashrc</code> och <code>/etc/motd</code> från säkerhetskopiorna som Post-Install skapade, om de finns (annars tas ProxMenux-raden bort ur MOTD). Fullständiga instruktioner: <uninstalllink>Avinstallera ProxMenux</uninstalllink>."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"virustotalTitle": "VirusTotal flaggar installationsadressen",
|
||||
"virustotalBody": "Resultatet 1/95 från <em>Chong Lua Dao</em>, som rapporterades i ärende #162, bedömdes av projektansvarig som ett falsklarm. Installationsprogrammet startas med ett kommando som laddar ned och kör skriptet (<code>bash -c \"$(wget -qLO - …)\"</code>) och kan ladda ned <code>jq</code> från dess officiella GitHub-utgåva. Detta <em>beteende</em> kan utlösa heuristiska skannrar. Den historiska rapporten säger inget avgörande om alla framtida nedladdningar. Installationsprogrammet har öppen källkod och kan granskas. Mer bakgrund finns i <issuelink>ärende #162</issuelink>.",
|
||||
"aptTitle": "Installationen misslyckas med apt-fel",
|
||||
"aptBody": "Vanligtvis saknas ett Proxmox-kodarkiv eller så är det felkonfigurerat. Installationsprogrammet hämtar beroenden via apt, som misslyckas om arkivkonfigurationen är fel. Det förekommer bland annat på minimala Proxmox 8-installationer som ännu inte har uppdaterats. Kör först <code>apt-get update</code> manuellt, rätta alla fel och kör sedan installationsprogrammet igen.",
|
||||
"menuTitle": "`menu: command not found` efter installation",
|
||||
"menuBody": "Startkommandot finns i <code>/usr/local/bin/menu</code>. Kontrollera med <code>ls -lh /usr/local/bin/menu</code>. Om filen saknas avbröts installationen för tidigt; kör den igen. Om filen finns men kommandot inte hittas saknar PATH <code>/usr/local/bin</code>. Rätta PATH eller kör direkt <code>/usr/local/bin/menu</code>.",
|
||||
"stuckTitle": "Installationen fastnar eller kommer inte vidare",
|
||||
"stuckBody": "Om en installation, ominstallation eller uppdatering fastnar på grund av ett anslutningsproblem, annullera med <strong>Ctrl + C</strong> och kör om installationsprogrammet manuellt.",
|
||||
"otherTitle": "Andra problem",
|
||||
"otherBody": "Sök efter kända problem i <issueslink>GitHub Issues</issueslink> eller skapa ett nytt ärende med relevanta loggar. Om du använder betan och problemet gäller Monitor, inkludera utdata från <code>journalctl -u proxmenux-monitor -n 50</code>."
|
||||
},
|
||||
"next": {
|
||||
"heading": "Nästa steg",
|
||||
"postInstall": "<postlink>Efterinstallationsskript</postlink> — anpassningar och härdning av en nyinstallerad Proxmox-värd.",
|
||||
"introduction": "<introlink>Introduktion</introlink> — fullständig genomgång av funktionerna.",
|
||||
"monitor": "<monitorlink>ProxMenux Monitor</monitorlink> — webbpanel för värden som installeras automatiskt tillsammans med menyn."
|
||||
},
|
||||
"requirements": {
|
||||
"heading": "Krav och god praxis",
|
||||
"reqTitle": "Krav",
|
||||
"reqBody": "Proxmox VE <strong>8.x eller senare</strong>. PVE 7 och tidigare stöds inte. Värden behöver internetåtkomst för att hämta skript, beroenden och ProxMenux Monitors AppImage. Kör installationsprogrammet som <strong>root</strong> på Proxmox-värden.",
|
||||
"inspectTitle": "Inspektera alltid skript du kör från internet",
|
||||
"inspectReview": "<sourcelink>Granska installationsprogrammets källkod</sourcelink> innan du kör det.",
|
||||
"inspectCoc": "Alla körbara länkar följer <coclink>ProxMenux uppförandekod</coclink>."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux — Hantera Proxmox VE via menyer | Öppen källkod",
|
||||
"description": "Ett verktyg med öppen källkod för att hantera Proxmox VE via menyer. ProxMenux består av två delar: ett CLI/TUI för anpassningar efter installation, virtuella maskiner och LXC-containrar, GPU- och Coral TPU-genomkoppling, diskar, lagring och nätverk samt en webbpanel på den egna servern med proaktiv övervakning, aviseringar via Telegram, Discord eller e-post, AI-omformulering och ett REST-API.",
|
||||
"ogTitle": "ProxMenux — Hantera Proxmox VE via menyer",
|
||||
"ogDescription": "CLI/TUI med öppen källkod och webbpanel för Proxmox VE: anpassningar efter installation, virtuella maskiner, GPU:er, diskar, nätverk, lagring och säkerhet. En separat Monitor ger tillståndskontroller, aviseringar, AI-omformulering och REST-API.",
|
||||
"twitterTitle": "ProxMenux — Hantera Proxmox VE via menyer",
|
||||
"twitterDescription": "CLI/TUI med öppen källkod och webbpanel för Proxmox VE. Tillståndsövervakning, aviseringar, AI-omformulering och REST-API."
|
||||
},
|
||||
"header": {
|
||||
"title": "Introduktion",
|
||||
"description": "ProxMenux är ett menybaserat verktyg med öppen källkod för Proxmox VE. Projektet består av ett CLI/TUI för vanliga uppgifter kring värdsystem, virtuella maskiner, containrar, lagring, nätverk och säkerhet samt en webbpanel på den egna servern med proaktiv övervakning, aviseringar, valfri AI-omformulering och REST-API.",
|
||||
"section": "Introduktion"
|
||||
},
|
||||
"hero": {
|
||||
"tagline": "<strong>En meny för alla arbetsflöden.</strong> Det som annars kräver en öppen wikiflik, två forumtrådar och en inklistrad kommandoföljd finns som ett numrerat menyval som du kan starta på några sekunder.",
|
||||
"audience": "För både <em>nya</em> Proxmox-användare, med genomtänkta och säkra standardinställningar, och <em>erfarna</em> administratörer som vill slippa upprepad kommandoskrivning. Kostnadsfritt och med öppen källkod samt en aktiv gemenskap på <github>GitHub</github>."
|
||||
},
|
||||
"twoProducts": {
|
||||
"heading": "Två produkter, ett projekt",
|
||||
"intro": "ProxMenux har två delar i samma källkodsträd. Installationsprogrammet installerar båda på värdsystemet: Scripts ger terminalgränssnittet och Monitor webbpanelen:",
|
||||
"scripts": {
|
||||
"title": "ProxMenux Scripts",
|
||||
"body": "Det ursprungliga CLI/TUI som du startar med <code>menu</code>. Nio områden täcker optimeringar efter installation, virtuella maskiner och LXC-containrar, GPU- och Coral TPU-genomkoppling, diskar, lagring, nätverk, säkerhet och verktyg samt en utvald kommandoreferens. Fungerar i lokala terminaler, via SSH och i webbterminaler."
|
||||
},
|
||||
"monitor": {
|
||||
"title": "ProxMenux Monitor",
|
||||
"body": "Webbpanel på den egna servern, distribuerad som AppImage. Värdsystemets mätvärden i realtid, proaktiv övervakning, aviseringar, valfri AI-omformulering med sex leverantörer, inbyggd webbterminal och REST-API. Aktiveras i Scripts-menyn under Inställningar → ProxMenux Monitor."
|
||||
},
|
||||
"calloutTitle": "Vad ProxMenux hanterar",
|
||||
"calloutIntro": "Tre lager, alla tillgängliga från samma projekt:",
|
||||
"layers": [
|
||||
"<strong>Proxmox-värdsystemet</strong> — paketförråd, paket, nätverk, ZFS, Ceph, kärna och övervakning.",
|
||||
"<strong>Virtuella maskiner (VM)</strong> — skapande, GPU-genomkoppling, import och export av OVA/OVF samt direktåtkomst till diskar.",
|
||||
"<strong>LXC-containrar</strong> — skapande, monteringspunkter, GPU-/TPU-genomkoppling samt NFS-/Samba-klienter och -servrar."
|
||||
]
|
||||
},
|
||||
"scriptsSection": {
|
||||
"heading": "ProxMenux Scripts - vad du får",
|
||||
"intro": "Nio funktionella områden, var och en med sin egen meny i <code>menu</code> och en detaljsida i dokumentationen. Klicka på vilket kort som helst för att hoppa direkt till det avsnittets översikt.",
|
||||
"items": [
|
||||
{
|
||||
"title": "Efter installationen",
|
||||
"description": "Optimeringar för en ny Proxmox-installation: paketförråd, kärna, tidssynkronisering, grundläggande säkerhet och prestanda, med alternativ som kan återställas.",
|
||||
"icon": "Server",
|
||||
"href": "/docs/post-install"
|
||||
},
|
||||
{
|
||||
"title": "GPU & Coral TPU",
|
||||
"description": "Genomkoppling av NVIDIA, Intel iGPU, AMD och Coral TPU till virtuella maskiner och LXC-containrar, med växling mellan VM- och LXC-läge.",
|
||||
"icon": "Cpu",
|
||||
"href": "/docs/hardware/nvidia-host"
|
||||
},
|
||||
{
|
||||
"title": "Skapa VM",
|
||||
"description": "Guider för NAS-system, Windows och Linux med lämpliga standardinställningar för maskinvara, lagring och nätverk.",
|
||||
"icon": "Server",
|
||||
"href": "/docs/create-vm"
|
||||
},
|
||||
{
|
||||
"title": "Diskhanteraren",
|
||||
"description": "Ge virtuella maskiner och LXC tillgång till fysiska diskar, formatera och radera, kör SMART-tester och importera qcow2-, vmdk- och vdi-avbilder — allt via en meny.",
|
||||
"icon": "HardDrive",
|
||||
"href": "/docs/disk-manager"
|
||||
},
|
||||
{
|
||||
"title": "Lagring och delning",
|
||||
"description": "Registrera NFS-, Samba-/CIFS-, iSCSI- och lokal lagring i Proxmox och dela mappar mellan värdsystemet och LXC-containrar via bind-monteringar eller nätverksprotokoll.",
|
||||
"icon": "Boxes",
|
||||
"href": "/docs/storage-share"
|
||||
},
|
||||
{
|
||||
"title": "Nätverk",
|
||||
"description": "Diagnostik utan ändringar, analys följd av förslag och guidade reparationer av /etc/network/interfaces. Säkerhetskopior skapas före ändringar.",
|
||||
"icon": "Network",
|
||||
"href": "/docs/network"
|
||||
},
|
||||
{
|
||||
"title": "Säkerhet",
|
||||
"description": "Fail2Ban för att skydda SSH och webbgränssnitt mot intrångsförsök samt Lynis för säkerhetsgranskning — installation och hantering med lämpliga standardinställningar.",
|
||||
"icon": "Shield",
|
||||
"href": "/docs/security"
|
||||
},
|
||||
{
|
||||
"title": "Verktyg",
|
||||
"description": "Skapa Windows-ISO:er med UUP Dump, installera CLI-verktyg, kör guidade systemuppdateringar eller uppgradera PVE 8 till 9 samt exportera och importera virtuella maskiner i OVA-/OVF-format.",
|
||||
"icon": "Wrench",
|
||||
"href": "/docs/utils"
|
||||
},
|
||||
{
|
||||
"title": "Kommandoreferens",
|
||||
"description": "En utvald samling Linux- och Proxmox-kommandon efter ämne: system, VM/CT med qm och pct, lagring, nätverk, ZFS, GPU-genomkoppling, säkerhetskopiering och CLI-verktyg för vardagen.",
|
||||
"icon": "BookOpen",
|
||||
"href": "/docs/help-info"
|
||||
}
|
||||
]
|
||||
},
|
||||
"monitorSection": {
|
||||
"heading": "ProxMenux Monitor - vad du får",
|
||||
"intro": "Webbpanelen körs på Proxmox-värdsystemet via TCP-port 8008. Klicka på ett kort för att öppna motsvarande sida eller läs först <link>översikten över Monitor</link>.",
|
||||
"items": [
|
||||
{
|
||||
"title": "Tillståndsövervakning",
|
||||
"description": "Tio kategorier kontrolleras var femte minut: CPU, minne, lagring, diskar/SMART, nätverk, virtuella maskiner, tjänster, loggar, uppdateringar och säkerhet. Med allvarlighetsgrader och möjlighet att undertrycka aviseringar per kategori.",
|
||||
"icon": "Activity",
|
||||
"href": "/docs/monitor/health-monitor"
|
||||
},
|
||||
{
|
||||
"title": "Aviseringar",
|
||||
"description": "Telegram, Discord, e-post, Gotify, Pushover och Apprise för flera kanaler — med borttagning av dubbletter, minsta intervall mellan utskick, gruppering av täta aviseringar, tysta tider och fullständig historik.",
|
||||
"icon": "Bell",
|
||||
"href": "/docs/monitor/notifications"
|
||||
},
|
||||
{
|
||||
"title": "AI assistent",
|
||||
"description": "Valfri omformulering av aviseringar till lättbegripligt språk. Sex leverantörer: OpenAI, Anthropic Claude, Google Gemini, Groq, OpenRouter och lokalt körd Ollama. Tretton språk i AI-språkvalet.",
|
||||
"icon": "Sparkles",
|
||||
"href": "/docs/monitor/ai-assistant"
|
||||
},
|
||||
{
|
||||
"title": "Webbterminal",
|
||||
"description": "Ett interaktivt skal på Proxmox-värdsystemet i webbläsaren samt en separat ProxMenux Scripts-terminal som kör menyn i webbgränssnittet.",
|
||||
"icon": "Terminal",
|
||||
"href": "/docs/monitor/dashboard/terminal"
|
||||
},
|
||||
{
|
||||
"title": "REST API",
|
||||
"description": "HTTP-slutpunkter för system, tillstånd, lagring/SMART, nätverk, virtuella maskiner, aviseringar och säkerhet — för Homepage, Home Assistant, Prometheus eller egna skript.",
|
||||
"icon": "Code2",
|
||||
"href": "/docs/monitor/api"
|
||||
},
|
||||
{
|
||||
"title": "Integrationer",
|
||||
"description": "Inbyggd Proxmox VE-webhook, mätvärdesinsamling med Prometheus, kontroller med Uptime Kuma, widgetar för Homepage, Home Assistant och Glance, n8n-/Zapier-flöden samt Tailscale Secure Gateway.",
|
||||
"icon": "Plug",
|
||||
"href": "/docs/monitor/integrations"
|
||||
}
|
||||
]
|
||||
},
|
||||
"installPaths": {
|
||||
"heading": "Installationsalternativ",
|
||||
"intro": "Båda installationsprogrammen installerar Scripts och Monitor. Scripts använder färdiga JSON-kataloger på åtta språk utan onlineöversättning. Välj stabil- eller betakanalen; Monitor distribueras som AppImage och körs från sin uppackade körmiljö:",
|
||||
"headerPath": "Install path",
|
||||
"headerBundles": "Vad som ingår",
|
||||
"headerWhen": "När det passar",
|
||||
"rows": [
|
||||
{
|
||||
"pathRich": "<strong>Scripts: stabil</strong>",
|
||||
"bundles": "CLI/TUI med färdiga JSON-översättningar på åtta språk, utan virtuell miljö eller onlinetjänst för översättning.",
|
||||
"when": "Vanlig användning med den stabila versionskanalen."
|
||||
},
|
||||
{
|
||||
"pathRich": "<strong>Scripts: beta</strong>",
|
||||
"bundles": "Samma flerspråkiga gränssnitt, installerat från develop-grenen för att testa kommande ändringar.",
|
||||
"when": "Tidig testning av nya funktioner, med större risk för fel."
|
||||
},
|
||||
{
|
||||
"pathRich": "<strong>Monitor</strong>",
|
||||
"bundles": "Fristående AppImage med webbpanel på TCP-port 8008. Installationsprogrammet packar upp körmiljön och hanterar tjänsten; Monitor kan styras från inställningarna.",
|
||||
"when": "När du vill följa värdsystemet i en webbpanel på mobil, surfplatta eller i webbläsaren."
|
||||
}
|
||||
],
|
||||
"outro": "Detaljerade kommandon och förutsättningar finns på <link>installationssidan</link>."
|
||||
},
|
||||
"warnSource": {
|
||||
"title": "Granska alltid skript från internet innan du kör dem",
|
||||
"body": "ProxMenux har öppen källkod och du kan granska varje skript på GitHub. Läs källkoden innan du kör installationskommandot. Gör samma sak med andra automationsverktyg.",
|
||||
"sourceLabel": "Visa ProxMenux-källa",
|
||||
"cocLabel": "Uppförandekod"
|
||||
},
|
||||
"next": {
|
||||
"heading": "Nästa steg",
|
||||
"items": [
|
||||
{
|
||||
"lead": "<strong>Ny med ProxMenux?</strong> ",
|
||||
"linkHref": "/docs/installation",
|
||||
"linkLabel": "Installera med ett enda kommando",
|
||||
"tailRich": " och kör <code>menu</code>."
|
||||
},
|
||||
{
|
||||
"lead": "<strong>Har du just installerat Proxmox?</strong> Börja med ",
|
||||
"linkHref": "/docs/post-install",
|
||||
"linkLabel": "skriptet för efterinstallation",
|
||||
"tail": "."
|
||||
},
|
||||
{
|
||||
"lead": "<strong>Vill du ha en webbpanel?</strong> ",
|
||||
"linkHref": "/docs/monitor",
|
||||
"linkLabel": "ProxMenux Monitor",
|
||||
"tail": " har dokumentation som förklarar vad panelen visar, hur den är byggd och hur du skyddar den."
|
||||
},
|
||||
{
|
||||
"lead": "<strong>Letar du efter ett visst kommando?</strong> ",
|
||||
"linkHref": "/docs/help-info",
|
||||
"linkLabel": "Kommandoreferensen",
|
||||
"tail": " innehåller ett urval ordnat efter ämne, med kopieringsknappar."
|
||||
},
|
||||
{
|
||||
"lead": "<strong>Vill du ha mer utförliga guider?</strong> ",
|
||||
"linkHref": "/guides",
|
||||
"linkLabel": "Guideavsnittet",
|
||||
"tail": " tar upp Coral TPU, NVIDIA-genomkoppling, Kodi i LXC och annat."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Säkerhetskopiering och omstart av gränssnitt | ProxMenux-dokumentation",
|
||||
"description": "Ta manuella ögonblicksbilder, bläddra bland och återställ säkerhetskopior av /etc/network/interfaces som lagras i /var/backups/proxmenux/. Inkluderar omstart av nätverkstjänsten med bekräftelse och en snabbvy av den aktuella konfigurationen.",
|
||||
"ogTitle": "Säkerhetskopiering och omstart av gränssnitt | ProxMenux-dokumentation",
|
||||
"ogDescription": "Ta en ögonblicksbild och återställ Proxmox nätverkskonfiguration; starta om nätverkstjänsten med bekräftelse."
|
||||
},
|
||||
"header": {
|
||||
"title": "Säkerhetskopiering och omstart av gränssnitt",
|
||||
"description": "Fyra verktyg för /etc/network/interfaces: ta en manuell ögonblicksbild, visa aktuell konfiguration, återställa en tidigare säkerhetskopia med valfri förhandsvisning och starta om nätverkstjänsten med uttryckligt samtycke. Samma katalog för säkerhetskopior används av de guidade reparationerna.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Hanterar samma katalog för säkerhetskopior som de guidade reparationerna (<code>/var/backups/proxmenux/</code>). Du kan ta en extra ögonblicksbild före manuella ändringar, bläddra bland alla befintliga säkerhetskopior och återställa vilken som helst — alltid med en ny automatisk säkerhetskopia före återställningen som ett andra skydd."
|
||||
},
|
||||
"shared": {
|
||||
"heading": "Den gemensamma katalogen för säkerhetskopior",
|
||||
"intro": "Varje säkerhetskopia som tas någonstans i nätverksmenyn landar på samma ställe:",
|
||||
"outro": "Filnamnen är tidsstämplade och sorterade efter datum, och filerna skrivs aldrig över. Katalogen skapas vid första användningen."
|
||||
},
|
||||
"show": {
|
||||
"heading": "Visa nätverkskonfigurationsfil",
|
||||
"body": "Skriver ut <code>/etc/network/interfaces</code> oförändrad i terminalen. Skrivskyddat. Användbart som kontroll före säkerhetskopiering eller efter återställning. Det finns inget separat verktyg för att jämföra med föregående säkerhetskopia, så att granska den aktuella filen är det enklaste sättet att kontrollera innehållet."
|
||||
},
|
||||
"create": {
|
||||
"heading": "Skapa nätverksbackup",
|
||||
"body": "Kopierar den nuvarande <code>/etc/network/interfaces</code> i backupkatalogen med en ny tidsstämpel. Det är det - ingen analys, inga prompts, bara en ögonblicksbild.",
|
||||
"whenTitle": "När man tar en manuell backup",
|
||||
"whenBody": "Innan du redigerar <code>/etc/network/interfaces</code> för hand, installerar ett paket som kan ändra nätverksstacken (till exempel NetworkManager eller Open vSwitch) eller gör en maskinvaruändring. De guidade reparationerna tar redan ögonblicksbilder automatiskt — det här alternativet är för <em>manuella</em> ingrepp."
|
||||
},
|
||||
"restore": {
|
||||
"heading": "Återställ nätverkssäkerhetskopia",
|
||||
"intro": "Listar alla säkerhetskopior i <code>/var/backups/proxmenux/</code> från nyast till äldst och vägleder genom en återställning med skyddsåtgärder:",
|
||||
"steps": [
|
||||
{
|
||||
"title": "1. Välj en backup",
|
||||
"body": "En meny listar varje säkerhetskopia med dess tidsstämpel. Om det inte finns några säkerhetskopior avslutas flödet med ett tydligt meddelande.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "2. Valfri förhandsvisning",
|
||||
"body": "Erbjuder att öppna den valda säkerhetskopian i en rullningsbar vy innan återställningen bekräftas. Ja är standardvalet — hoppa inte över detta på en fjärransluten värd.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "3. Säkerhetskopiering före återställning",
|
||||
"body": "Tar <strong>ytterligare en</strong> säkerhetskopia av det aktuella tillståndet innan <code>/etc/network/interfaces</code> skrivs över. Återställning är i sig en destruktiv åtgärd, så den nya ögonblicksbilden före återställningen gör att du kan gå tillbaka om du valde fel säkerhetskopia.",
|
||||
"tone": "amber"
|
||||
},
|
||||
{
|
||||
"title": "4. Applicera återställningen",
|
||||
"body": "Skriver den valda säkerhetskopian över <code>/etc/network/interfaces</code>. Filen har ändrats på disk, men kärnans aktuella tillstånd speglar fortfarande den tidigare konfigurationen.",
|
||||
"tone": "amber"
|
||||
},
|
||||
{
|
||||
"title": "5. Valfri omstart",
|
||||
"body": "Frågar om <code>systemctl restart networking</code> ska köras nu. Avböj för att skjuta upp ändringen till nästa omstart.",
|
||||
"tone": "emerald"
|
||||
}
|
||||
],
|
||||
"autoBackupTitle": "En återställning tar sin egen backup automatiskt",
|
||||
"autoBackupBody": "När du väljer <em>Återställ nätverkssäkerhetskopia</em> tas alltid en ny ögonblicksbild av den <em>aktuella</em> konfigurationen innan den skrivs över. Om du återställer fel säkerhetskopia innehåller den senaste filen i <code>/var/backups/proxmenux/</code> tillståndet du hade före återställningen."
|
||||
},
|
||||
"restart": {
|
||||
"heading": "Starta om nätverkstjänsten",
|
||||
"body": "Kör <code>systemctl restart networking</code> efter en ja/nej-bekräftelse. Rapporterar resultatet med <code>msg_ok</code> / <code>msg_error</code>. De flesta flöden i menyn erbjuder redan en omstart i slutet. Detta alternativ används efter en manuell ändring eller om du tidigare avböjt den erbjudna omstarten.",
|
||||
"warnTitle": "Kort frånkoppling garanteras; permanent frånkoppling är möjlig",
|
||||
"warnBody": "Omstart av <code>networking</code> tar ned och konfigurerar om alla gränssnitt som deklareras i <code>/etc/network/interfaces</code>. SSH-sessioner via dessa gränssnitt bryts. Om den nya konfigurationen är ogiltig kommer nätverket inte tillbaka. Kör endast detta när:",
|
||||
"warnItems": [
|
||||
"Du har konsolåtkomst / IPMI / iKVM redo, <em>eller</em>",
|
||||
"Du befinner dig fysiskt bredvid maskinen, <em>eller</em>",
|
||||
"Du har precis återställt en konfiguration som du vet fungerar och vill tillämpa den."
|
||||
]
|
||||
},
|
||||
"manualRollback": {
|
||||
"heading": "Manuell återgång från en konsol",
|
||||
"intro": "Om du inte kan nå menyn (ingen SSH, dialog kraschar, ...) men kan nå en konsol, är återgång två kommandon:",
|
||||
"outro": "Det är <em>samma</em> åtgärd som menyn utför, bara inmatad för hand. Om <code>networking</code> fortfarande inte startar, kontrollera <code>journalctl -u networking -b</code> för att hitta det bakomliggande syntax- eller drivrutinsfelet."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noneTitle": "”Inga säkerhetskopior hittades” vid återställning",
|
||||
"noneBody": "Katalogen <code>/var/backups/proxmenux/</code> finns inte eller innehåller inga <code>interfaces_backup_*</code>-filer. Kör <em>Skapa nätverksbackup</em> minst en gång eller en guidad reparation som tar en säkerhetskopia automatiskt. Bekräfta med <code>ls /var/backups/proxmenux/</code>.",
|
||||
"unreachTitle": "Omstart av nätverket lyckas men värden är fortfarande onåbar",
|
||||
"unreachBody": "Den nya konfigurationen är fel eller tilldelar inte din IP-adress för administration. Återställ från konsolen (se ovan). Använd sedan <bridgeLink>brygganalys</bridgeLink> och <configLink>konfigurationsanalys</configLink> för att förstå felet innan du tillämpar den igen.",
|
||||
"emptyTitle": "Förhandsvisningen för återställning visar en tom fil",
|
||||
"emptyBody": "Säkerhetskopian är tom (0 byte). Det händer om en kopiering misslyckats utan felmeddelande under en tidigare körning. Välj en äldre säkerhetskopia eller kör <em>Skapa nätverksbackup</em> igen nu om den aktuella konfigurationen fungerar."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Brygganalys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis",
|
||||
"tail": " — Den vanligaste orsaken till att en säkerhetskopia hamnar här."
|
||||
},
|
||||
{
|
||||
"label": "Konfigurationsanalys och guidad rensning",
|
||||
"href": "/docs/network/config-analysis",
|
||||
"tailRich": " - skriver också till <code>/var/backups/proxmenux/</code> automatiskt."
|
||||
},
|
||||
{
|
||||
"label": "Diagnostik",
|
||||
"href": "/docs/network/diagnostics",
|
||||
"tail": " — för att verifiera det aktuella tillståndet efter en återställning."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Brygganalys och guidad reparation | ProxMenux-dokumentation",
|
||||
"description": "Upptäcker vmbrX-bryggor med saknade eller ogiltiga fysiska portar, vanligen efter omnumrering av PCI-enheter. Rapporterar dem med föreslagna skalkommandon och erbjuder guidad reparation i 5 steg med obligatorisk säkerhetskopia.",
|
||||
"ogTitle": "Brygganalys och guidad reparation | ProxMenux-dokumentation",
|
||||
"ogDescription": "Granska och reparera Proxmox bryggportar efter maskinvaruändringar med ett guidat flöde som ger säker återställning."
|
||||
},
|
||||
"header": {
|
||||
"title": "Brygganalys och guidad reparation",
|
||||
"description": "Granskar varje vmbrX-brygga i /etc/network/interfaces, kontrollerar att dess fysiska portar finns och erbjuder stegvis reparation om de saknas. Analysen är skrivskyddad; reparationen kräver godkännande, visar en förhandsvisning och tar en säkerhetskopia.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Läser varje brygga i <code>/etc/network/interfaces</code>, granskar dess <code>bridge-ports</code>-rad och kontrollerar att varje deklarerad port, till exempel <code>enp3s0</code>, finns på värden. Om en port saknas föreslås en ersättning och ändringen tillämpas med uttryckligt samtycke i flödet <strong>säkerhetskopiera, förhandsvisa, tillämpa, verifiera</strong>."
|
||||
},
|
||||
"when": {
|
||||
"heading": "När du behöver detta",
|
||||
"intro": "Linux tilldelar förutsägbara gränssnittsnamn från PCI topologi och slot order. Flera händelser blandar dem och lämnar <code>/etc/network/interfaces</code> med hänvisning till namn som inte längre finns:",
|
||||
"items": [
|
||||
"Lägga till eller ta bort ett PCIe-kort (en NIC, en GPU, en HBA, en NVMe-bärare).",
|
||||
"Flytta ett befintligt kort till en annan PCIe slot.",
|
||||
"BIOS-/UEFI-uppdateringar som numrerar om PCI-enheter.",
|
||||
"Flytta startdisken till annan maskinvara."
|
||||
],
|
||||
"outro": "Efter nästa start försöker bryggan ansluta till en port som inte längre finns. Den kan inte aktiveras och värden förlorar nätverksanslutningen. <link>Beständiga gränssnittsnamn</link> förhindrar att detta händer igen. Om du redan är utelåst visar den här sidan hur du återställer åtkomsten."
|
||||
},
|
||||
"bigPicture": {
|
||||
"heading": "Överblick",
|
||||
"diagram1": {
|
||||
"arrowLabel": "Steg 1",
|
||||
"nodes": {
|
||||
"sourceLabel": "/etc/network/interfaces",
|
||||
"sourceDetail": "auto vmbr0\niface vmbr0 inet static\n bridge-ports enp3s0",
|
||||
"bridgeLabel": "Analysera (skrivskyddat)",
|
||||
"bridgeDetail": "ip link show enp3s0\n→ finns inte",
|
||||
"targetLabel": "Rapport + förslag",
|
||||
"targetDetail": "❌ enp3s0: HITTADES INTE\nErsätt med: eno1\n(inga ändringar ännu)"
|
||||
}
|
||||
},
|
||||
"diagram2": {
|
||||
"arrowLabel": "tillämpa med säkerhetskopia",
|
||||
"nodes": {
|
||||
"sourceLabel": "Guidad reparation",
|
||||
"sourceDetail": "1. Säkerhetskopiera\n2. Visa aktuell konfiguration\n3. Förhandsvisa ändringar\n4. Tillämpa\n5. Verifiera",
|
||||
"targetLabel": "/etc/network/interfaces (ny)",
|
||||
"targetDetail": "auto vmbr0\niface vmbr0 inet static\n bridge-ports eno1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"step1": {
|
||||
"heading": "Steg 1: analys (skrivskyddad)",
|
||||
"intro": "När du väljer <strong>Analysera bryggkonfiguration</strong> avbryts verktyget direkt om värden inte använder den klassiska Debian/Proxmox-stacken. Annars granskas varje brygga och följande rapporteras:",
|
||||
"items": [
|
||||
"Bryggnamn, aktuell status (UP / DOWN), tilldelad IP.",
|
||||
"Varje deklarerad port och om den för närvarande finns (<code>ip link show <port></code>).",
|
||||
"För varje ogiltig port: en föreslagen ersättning (det första tillgängliga fysiska gränssnittet) och det exakta <code>sed</code>-kommandot för att tillämpa ändringen manuellt.",
|
||||
"Broar utan <code>bridge-ports</code> alls och föräldralösa <code>auto</code>-poster (ingen matchande <code>iface</code>-block)."
|
||||
],
|
||||
"readonlyTitle": "Garanti för skrivskyddad analys",
|
||||
"readonlyBody": "Fram till denna punkt har skriptet inte kört ett enda kommando som ändrar systemet. Du kan lämna analysen öppen, kopiera de föreslagna <code>sed</code>-kommandona och tillämpa dem manuellt om du vill, eller godkänna nästa fråga för att gå vidare till den guidade reparationen."
|
||||
},
|
||||
"step2": {
|
||||
"heading": "Steg 2: guidad reparation (5 steg)",
|
||||
"intro": "Startas bara om du godkänner frågan i slutet av analysen. Varje steg visar vad som kommer att ske och ber om bekräftelse innan flödet fortsätter.",
|
||||
"steps": [
|
||||
{
|
||||
"title": "1. Säkerhetskopia",
|
||||
"body": "Kopierar <code>/etc/network/interfaces</code> till <code>/var/backups/proxmenux/interfaces_backup_<TIMESTAMP></code>. Den exakta sökvägen visas före och efter kopieringen, tillsammans med återställningskommandot.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "2. Granska nuvarande konfiguration",
|
||||
"body": "Öppnar live <code>/etc/network/interfaces</code> i en rullningsbar dialog så att du kan se exakt vad som ska ändras.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "3. Förhandsgranska föreslagna ändringar",
|
||||
"body": "Listar exakt vilka bryggor som berörs och vilka portbyten som planeras. Om ingen reparation längre behövs eftersom porten har dykt upp igen mellan kontrollerna avslutas flödet med <em>”Inga ändringar behövs.”</em>",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "4. Tillämpa ändringarna",
|
||||
"body": "För varje drabbad bro kör <code>sed -i \"/iface $bridge/,/bridge-ports/ s/bridge-ports.*/bridge-ports $new_ports/\"</code> mot <code>/etc/network/interfaces</code>. Om en bro inte hade någon giltig ersättning tillgänglig, är ersättningen hoppad och rapporterad i steg 5.",
|
||||
"tone": "amber"
|
||||
},
|
||||
{
|
||||
"title": "5. Verifiering",
|
||||
"body": "Läser filen igen och bekräftar att varje bryggas nya port finns. Skriver ut återställningskommandot (<code>cp <backup> /etc/network/interfaces</code>). Erbjuder slutligen <strong>Starta om nätverket</strong> — godkänn bara om du har konsolåtkomst som reserv.",
|
||||
"tone": "emerald"
|
||||
}
|
||||
],
|
||||
"restartTitle": "Omstart av nätverket ≠ riskfri återställning",
|
||||
"restartBody": "Reparationen skrivs till disk oavsett om du startar om tjänsten. <code>systemctl restart networking</code> tillämpar ändringen <em>nu</em>, vilket kan bryta SSH-sessionen om den nya porten är fel. Om du avböjer börjar ändringen ändå gälla vid nästa omstart — kontrollera först den nya konfigurationen eller återställ med det utskrivna kommandot."
|
||||
},
|
||||
"edits": {
|
||||
"heading": "Vad blir redigerat (exakt)",
|
||||
"body": "Endast <code>bridge-ports</code>-raden för varje berörd brygga. Andra direktiv (<code>address</code>, <code>netmask</code>, <code>gateway</code>, <code>bridge-stp</code>, …) lämnas orörda. Skriptet skapar eller tar aldrig bort <code>iface</code>-block i detta flöde — det sköts av <link>konfigurationsanalys & rensning</link>."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"unsupportedTitle": "Analysen avbryts med ”Nätverksstacken stöds inte”",
|
||||
"unsupportedBody": "Värden kör netplan, systemd-networkd eller NetworkManager. Verktyget stöder endast <code>/etc/network/interfaces</code>. Byt först till den klassiska stacken eller redigera konfigurationen med nätverkshanterarens egna verktyg, till exempel <code>netplan apply</code>.",
|
||||
"noSuggestTitle": "Inget förslag trycks för en ogiltig port",
|
||||
"noSuggestBody": "Värden har noll fria fysiska gränssnitt (allt är antingen redan i en annan bro eller inte existerar). Analysen faller tillbaka för att föreslå <code>bridge-ports none</code> så att bron åtminstone kan komma upp utan en port. Lägg till en NIC eller migrera portar mellan broar manuellt innan du kör.",
|
||||
"stillDownTitle": "Reparationen slutförs men bron är fortfarande DOWN",
|
||||
"stillDownBody": "<code>sed</code> uppdaterade filen men <code>systemctl restart networking</code> avböjdes. Kör kommandot manuellt när den nya konfigurationen har kontrollerats eller starta om. Om omstarten godkändes och bryggan fortfarande är DOWN, kör <code>ip link show</code> för att kontrollera att den nya porten finns och granska sedan <code>journalctl -u networking</code> för det verkliga felet: urkopplad kabel, länk som inte förhandlats fram eller port som redan tillhör en annan brygga.",
|
||||
"lostSshTitle": "Jag förlorade SSH-åtkomst direkt efter att ha startat om nätverk",
|
||||
"lostSshIntro": "Använd konsol / IPMI / iKVM för att nå värden. Återställ backup:",
|
||||
"lostSshOutro": "Kör sedan analysen igen från konsolen för att ta reda på varför förslaget inte fungerade, oftast för att ersättningsporten inte är ansluten."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Beständiga gränssnittsnamn",
|
||||
"href": "/docs/network/persistent-names",
|
||||
"tail": " — binder namn till MAC-adresser så att problemet inte återkommer."
|
||||
},
|
||||
{
|
||||
"label": "Konfigurationsanalys och guidad rensning",
|
||||
"href": "/docs/network/config-analysis",
|
||||
"tailRich": " — för föräldralösa <code>iface</code> block (den andra hälften av samma problem)."
|
||||
},
|
||||
{
|
||||
"label": "Säkerhetskopiering och omstart av gränssnitt",
|
||||
"href": "/docs/network/backup-restore",
|
||||
"tail": " — manuella ögonblicksbilder och bläddring bland säkerhetskopior för återställning."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Konfigurationsanalys och guidad rensning | ProxMenux-dokumentation",
|
||||
"description": "Upptäcker iface-block i /etc/network/interfaces som refererar till fysiska nätverkskort som inte längre finns på värden. Rapporterar dem och erbjuder guidad borttagning i 5 steg med obligatorisk säkerhetskopiering och förhandsvisning av varje block.",
|
||||
"ogTitle": "Konfigurationsanalys och guidad rensning | ProxMenux-dokumentation",
|
||||
"ogDescription": "Hitta och ta bort föräldralösa gränssnittsblock kvar av hårdvaruförändringar, med full förhandsgranskning och återgång."
|
||||
},
|
||||
"header": {
|
||||
"title": "Konfigurationsanalys och guidad rensning",
|
||||
"description": "Går igenom varje iface-block i /etc/network/interfaces och kontrollerar att det underliggande fysiska nätverkskortet finns kvar. Rapporterar överblivna block efter maskinvaruändringar och erbjuder guidad borttagning med säkerhetskopia, förhandsvisning och bekräftelse för varje block.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Identifierar <code>iface</code>-deklarationer vars stödjande NIC inte längre finns på värden (vanligtvis efter att ett nätverkskort har bytts ut eller tagits bort). Erbjuder sedan en guidad rensning som <em>endast</em> tar bort de föräldralösa blocken, med en säkerhetskopia, en förhandsgranskning per sektion och en explicit slutlig bekräftelse."
|
||||
},
|
||||
"differs": {
|
||||
"heading": "Hur det skiljer sig från brygganalys",
|
||||
"headerAspect": "Aspekt",
|
||||
"headerBridge": "Brygganalys",
|
||||
"headerConfig": "Konfigurationsanalys",
|
||||
"rows": [
|
||||
{
|
||||
"aspect": "Granskar",
|
||||
"bridge": "Bryggor (<code>vmbrX</code>) och deras <code>bridge-ports</code> linje",
|
||||
"config": "Varje <code>iface</code>-block utom loopback, bryggor och bondgränssnitt"
|
||||
},
|
||||
{
|
||||
"aspect": "Detekterar",
|
||||
"bridge": "Bryggor som refererar till en port som inte finns",
|
||||
"config": "Fristående gränssnittsblock för nätverkskort som inte finns"
|
||||
},
|
||||
{
|
||||
"aspect": "Reparationsåtgärder",
|
||||
"bridge": "Ersätter portnamnet i <code>bridge-ports</code>",
|
||||
"config": "Ta bort hela <code>iface</code>-blocket"
|
||||
},
|
||||
{
|
||||
"aspect": "Exkluderar",
|
||||
"bridge": "Ingenting – varje bro analyseras",
|
||||
"config": "Bryggor (<code>vmbrX</code>) och bondgränssnitt (<code>bondX</code>) behålls alltid eftersom de är virtuella och det kan vara normalt att de saknas under start"
|
||||
}
|
||||
],
|
||||
"outro": "I praktiken kör du ofta båda i denna ordning: först <strong>konfigurationsanalys</strong> för att ta bort överblivna block, sedan <link>brygganalys</link> för att ändra portkopplingen för bryggor som använde det borttagna gränssnittet."
|
||||
},
|
||||
"step1": {
|
||||
"heading": "Steg 1: analys (skrivskyddad)",
|
||||
"intro": "Avbryter omedelbart om värden inte använder den klassiska stacken. Annars listas alla konfigurerade gränssnitt utom loopback med sina tillstånd:",
|
||||
"virtTitle": "Virtuella gränssnitt skyddas",
|
||||
"virtBody": "Bryggor (<code>vmbrX</code>) och bondgränssnitt (<code>bondX</code>) är virtuella konstruktioner. De kan av giltiga skäl saknas vid inspektionen, till exempel en brygga som ännu saknar portar. Analysen föreslår därför aldrig att de tas bort, bara fysiska nätverkskort."
|
||||
},
|
||||
"step2": {
|
||||
"heading": "Steg 2: guidad rensning (5 steg)",
|
||||
"intro": "Startas bara om du godkänner frågan i slutet av analysen. Varje steg kräver bekräftelse; om du avbryter avslutas flödet utan att skriva.",
|
||||
"steps": [
|
||||
{
|
||||
"title": "1. Säkerhetskopia",
|
||||
"body": "Kopierar <code>/etc/network/interfaces</code> till <code>/var/backups/proxmenux/interfaces_backup_<TIMESTAMP></code>. Sökvägen visas före och efter.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "2. Bekräfta borttagningslistan",
|
||||
"body": "Listar exakt vilka fysiska gränssnittsblock som ska tas bort. Om nätverkskorten har dykt upp igen mellan analys och rensning, till exempel efter att ett kort satts i igen, avslutas flödet med <em>”Ingen rensning behövs.”</em>",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "3. Förhandsvisa de exakta blocken",
|
||||
"body": "Öppnar en rullningsbar vy av varje <code>iface</code>-block som skulle raderas, exakt som det står i filen. Här kan du till exempel upptäcka en viktig <code>up</code>-hook som du vill behålla.",
|
||||
"tone": "blue"
|
||||
},
|
||||
{
|
||||
"title": "4. Tillämpa borttagningen",
|
||||
"body": "För varje föräldralös gränssnitt, kör <code>sed -i \"/^iface $iface/,/^$/d\" /etc/network/interfaces</code>. Det tar bort från matchande <code>iface</code> linje upp till nästa tomma rad.",
|
||||
"tone": "amber"
|
||||
},
|
||||
{
|
||||
"title": "5. Verifiering",
|
||||
"body": "Läser filen igen, listar det som togs bort och kontrollerar återstående gränssnitt. Skriver ut återställningskommandot. Startar <strong>inte</strong> om nätverket automatiskt — borttagning av ett oanvänt block kan säkert tillämpas vid nästa omstart utan att ändra det aktuella tillståndet.",
|
||||
"tone": "emerald"
|
||||
}
|
||||
],
|
||||
"noRestartTitle": "Startar inte om nätverket automatiskt",
|
||||
"noRestartBody": "Till skillnad från bryggreparation erbjuder rensningen ingen omstart av tjänsten. Att ta bort ett oanvänt gränssnittsblock påverkar inte den aktiva konfigurationen direkt, så en omstart är onödig och skulle innebära en onödig risk för anslutningen. Ändringen börjar gälla vid nästa manuella <code>systemctl restart networking</code> eller vid nästa systemomstart."
|
||||
},
|
||||
"caveats": {
|
||||
"heading": "Viktiga förbehåll",
|
||||
"boundaryTitle": "Blockgränsen är den första tomma linjen",
|
||||
"boundaryBody": "<code>sed</code>-mönstret raderar från <code>iface <name></code> till nästa tomma rad. Om <code>/etc/network/interfaces</code> saknar tomma rader mellan block, vilket är ovanligt men möjligt efter manuell redigering, kan även nästa block tas bort. Därför är <strong>steg 3 obligatoriskt</strong>: granska förhandsvisningen innan du bekräftar.",
|
||||
"tandemTitle": "Ett överblivet iface-block som används av en brygga upptäcks här, inte i brygganalysen",
|
||||
"tandemBody": "Om <code>vmbr0</code> deklarerar <code>bridge-ports enp3s0</code> och <code>enp3s0</code> också har ett eget block <code>iface enp3s0 inet manual</code> lämnar borttagning av <code>enp3s0</code> en ogiltig referens i <code>vmbr0</code>. Kör <link>brygganalys</link> efter rensningen för att ändra eller ta bort bryggporten. De två flödena är avsedda att användas tillsammans."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"notFoundTitle": "Analysen visar mitt nya nätverkskort som ”HITTADES INTE”",
|
||||
"notFoundBody": "Kärnan ser enheten under ett annat namn än det som står i filen. Kör <code>ip link show</code> för att se det verkliga namnet. Det här är precis ett sådant fall där <link>beständiga gränssnittsnamn</link> skulle förhindra problemet framöver.",
|
||||
"tooMuchTitle": "Städningen tog bort för mycket (ett block jag ville behålla)",
|
||||
"tooMuchBody": "Återställ från backupen tryckt i steg 5:",
|
||||
"tooMuchOutro": "Redigera filen för hand för att lägga till en tydlig tom linje mellan block innan du kör rengöring, eller ta bort problematiskt block manuellt.",
|
||||
"bridgeBreakTitle": "En bro slutar fungera efter rengöring",
|
||||
"bridgeBreakBody": "Bryggan använde en port vars <code>iface</code>-block just togs bort. Kör <link>brygganalys</link> så föreslås ett befintligt fysiskt gränssnitt för bryggan."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Brygganalys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis",
|
||||
"tail": " — Den naturliga uppföljningen efter en rengöring."
|
||||
},
|
||||
{
|
||||
"label": "Beständiga gränssnittsnamn",
|
||||
"href": "/docs/network/persistent-names",
|
||||
"tail": " — stoppar föräldralösa block från att ackumulera efter varje hårdvaruförändring."
|
||||
},
|
||||
{
|
||||
"label": "Säkerhetskopiering och omstart av gränssnitt",
|
||||
"href": "/docs/network/backup-restore",
|
||||
"tail": " — manuella ögonblicksbilder och bläddring bland säkerhetskopior för återställning."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Diagnostik | ProxMenux Dokumentation",
|
||||
"description": "Tre enstaka skrivskyddade diagnostikkontroller: Visa routningstabell, Testa anslutning och Avancerad diagnostik. Ren inspektion — skriver aldrig till /etc/network/interfaces och kör aldrig kommandon som ändrar systemet, med ett uttryckligt undantag: fullständig borttagning av NetworkManager, om det upptäcks, kräver ditt samtycke.",
|
||||
"ogTitle": "Diagnostik | ProxMenux Dokumentation",
|
||||
"ogDescription": "Skrivskyddad nätverksdiagnostik för Proxmox-värden: routning, nåbarhet och avancerad statistik."
|
||||
},
|
||||
"header": {
|
||||
"title": "Diagnostik",
|
||||
"description": "Tre enstaka skrivskyddade kontroller av nätverkets aktuella tillstånd: routningstabell, anslutningstest och avancerad statistik. Ingen skriver till /etc/network/interfaces — säkra att använda när som helst, även via SSH. För interaktiv övervakning i realtid, se Övervakningsverktyg i realtid.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Visar information om routning, nåbarhet och samlad statistik <strong>utan att ändra något</strong>. Använd verktyget för att kontrollera att nätverket fungerar eller identifiera dubbla IP-adresser. För kontinuerlig trafikövervakning, se <monitoringLink>Övervakningsverktyg i realtid</monitoringLink>; för att visa den obearbetade konfigurationsfilen, se <backupLink>Säkerhetskopiering och omstart av gränssnitt</backupLink>."
|
||||
},
|
||||
"routing": {
|
||||
"heading": "Visa routningstabell",
|
||||
"body": "Listar alla rutter som kärnan använder för tillfället (<code>ip route show</code>) och markerar standardgatewayen. Användbart för att kontrollera att internettrafiken går genom rätt gränssnitt och att inga kvarvarande gamla rutter har företräde."
|
||||
},
|
||||
"connectivity": {
|
||||
"heading": "Testa anslutning",
|
||||
"intro": "Skickar två ICMP-sonder till vart och ett av tre mål i tur och ordning och rapporterar resultatet för varje mål. Kör sedan <code>nslookup google.com</code> för att verifiera DNS-uppslagning oberoende av ICMP.",
|
||||
"headerTest": "Test",
|
||||
"headerTarget": "Mål",
|
||||
"headerConfirms": "Vad den bekräftar",
|
||||
"rows": [
|
||||
{
|
||||
"test": "Google DNS",
|
||||
"target": "8.8.8.8",
|
||||
"confirms": "Extern nåbarhet via en välkänd anycast-IP-adress"
|
||||
},
|
||||
{
|
||||
"test": "Cloudflare DNS",
|
||||
"target": "1.1.1.1",
|
||||
"confirms": "Oberoende andra åsikt om Google blockerar ICMP"
|
||||
},
|
||||
{
|
||||
"test": "Gateway",
|
||||
"target": "(standardrutt)",
|
||||
"confirms": "L2 / L3-anslutning till den lokala routern"
|
||||
},
|
||||
{
|
||||
"test": "DNS-upplösning",
|
||||
"target": "google.com",
|
||||
"confirms": "DNS server är tillgänglig och svarar"
|
||||
}
|
||||
],
|
||||
"readingTitle": "Läsa resultatet",
|
||||
"readingBody": "Om gatewaytestet lyckas men de offentliga DNS-målen inte svarar har du lokal anslutning men inget internet — kontrollera gatewayens anslutning uppströms. Om DNS-uppslagning misslyckas men ping till <code>8.8.8.8</code> fungerar ligger problemet i DNS-resolvern, inte i nätverket: kontrollera <code>/etc/resolv.conf</code>."
|
||||
},
|
||||
"advanced": {
|
||||
"heading": "Avancerad diagnostik",
|
||||
"intro": "Sammanställer statistik för hela nätverket och utför en serie kontroller av vanliga problem. Rapporterar antalet aktiva anslutningar, lyssnande portar och totalt antal gränssnitt samt pekar uttryckligen ut två problematiska konfigurationer:",
|
||||
"items": [
|
||||
"<strong>NetworkManager körs på en Proxmox-värd.</strong> NetworkManager och Proxmox <code>ifupdown</code> står i konflikt: båda försöker hantera gränssnitten, vilket gör att bryggor växlar mellan aktivt och inaktivt tillstånd eller inte kan aktiveras. Om NetworkManager upptäcks erbjuder verktyget en interaktiv bekräftelse för att stoppa, inaktivera och ta bort det helt (detta är den <em>enda</em> diagnostik som kan ändra systemet, och bara efter uttryckligt samtycke).",
|
||||
"<strong>Dubbla IP-adresser på olika gränssnitt.</strong> Två gränssnitt med samma IPv4-adress orsakar intermittenta anslutningsproblem som är mycket svåra att felsöka inifrån en VM. Upptäcks via <code>ip -4 addr show | sort | uniq -d</code>."
|
||||
],
|
||||
"nmTitle": "NetworkManager-prompten är den enda modifierande åtgärden här",
|
||||
"nmBody": "Alla andra kontroller i Avancerad diagnostik är skrivskyddade. Borttagning av NetworkManager kräver en ja/nej-bekräftelse och kör <code>systemctl stop / disable</code> + <code>apt-get purge -y network-manager</code>. Om du avböjer ändras ingenting."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"gwTitle": "Testa anslutning rapporterar ett gatewayfel men värden har internetåtkomst",
|
||||
"gwBody": "Vissa routrar svarar inte på ICMP via sitt interna gränssnitt även om de vidarebefordrar trafiken korrekt. Testa med <code>traceroute 8.8.8.8</code> från en konsol: om det andra hoppet är din internetleverantör och det offentliga DNS-testet lyckades fungerar gatewayen trots att ping misslyckades.",
|
||||
"dupTitle": "Avancerad diagnostik fortsätter att rapportera dubbla IP-adresser efter att jag tagit bort en",
|
||||
"dupBody": "Kontrollen granskar kärnans aktuella tillstånd, inte konfigurationsfilen. Kör <code>ip -4 addr show</code> för att kontrollera. Om dubbletten finns kvar har ett gränssnitt fortfarande adressen. Använd <code>ip addr del <IP>/<mask> dev <iface></code> för att ta bort den från det aktuella tillståndet och redigera sedan <code>/etc/network/interfaces</code> om den också är beständigt konfigurerad."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Övervakningsverktyg i realtid",
|
||||
"href": "/docs/network/monitoring",
|
||||
"tail": " — interaktiva iftop / iptraf-ng / iperf3-startare."
|
||||
},
|
||||
{
|
||||
"label": "Brygganalys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis",
|
||||
"tail": " — när en vmbrX saknar sin fysiska port."
|
||||
},
|
||||
{
|
||||
"label": "Konfigurationsanalys och guidad rensning",
|
||||
"href": "/docs/network/config-analysis",
|
||||
"tail": " — när ett gammalt nätverkskort fortfarande deklareras men inte längre finns."
|
||||
},
|
||||
{
|
||||
"label": "Säkerhetskopiering och omstart av gränssnitt",
|
||||
"href": "/docs/network/backup-restore",
|
||||
"tail": " — för att ta en ögonblicksbild av konfigurationen före varje ändring."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Nätverkshantering i Proxmox — Bryggor, bondning, diagnostik, reparation | ProxMenux",
|
||||
"description": "Skrivskyddad diagnostik, analyser med efterföljande förslag och guidade reparationer för nätverksstacken i Debian / Proxmox (/etc/network/interfaces). Inspektera bryggor och bondgränssnitt, starta övervakningsverktyg i realtid, ge gränssnitt beständiga namn, säkerhetskopiera och starta om nätverket säkert — med obligatoriska säkerhetskopior och förhandsvisning steg för steg.",
|
||||
"ogTitle": "Nätverkshantering i Proxmox — Bryggor, bondning, diagnostik, reparation",
|
||||
"ogDescription": "Diagnostik, analys och guidade reparationer för Proxmox nätverksstack med obligatoriska säkerhetskopior och förhandsvisning steg för steg.",
|
||||
"twitterTitle": "Nätverkshantering i Proxmox | ProxMenux",
|
||||
"twitterDescription": "Bryggor, bondning, diagnostik och guidade reparationer för Proxmox nätverksstack med obligatoriska säkerhetskopior."
|
||||
},
|
||||
"header": {
|
||||
"title": "Nätverkshantering",
|
||||
"description": "Skrivskyddad diagnostik, analysrapporter med efterföljande förslag och guidade reparationer för den klassiska nätverksstacken i Debian/Proxmox. Varje destruktiv åtgärd tar först en säkerhetskopia och visar de exakta ändringarna innan de tillämpas.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad menyn används till",
|
||||
"body": "Inspektera, diagnostisera och vid behov reparera Proxmox-värdens nätverkskonfiguration utan att förlora fjärråtkomsten. Verktygen följer en princip: <strong>läs först, föreslå sedan och tillämpa endast med uttryckligt samtycke och en säkerhetskopia</strong>. Det finns ingen knapp som automatiskt åtgärdar allt."
|
||||
},
|
||||
"openingMenu": {
|
||||
"heading": "Öppna menyn",
|
||||
"intro": "Välj <strong>Nätverk</strong> i ProxMenux huvudmeny. Då visas följande:",
|
||||
"imageAlt": "Nätverkshanteringsmenyn med alternativ för diagnostik, övervakning, analys, reparation, beständiga namn och säkerhetskopiering"
|
||||
},
|
||||
"safety": {
|
||||
"heading": "Säkerhetsmodellen",
|
||||
"body": "Att redigera nätverkskonfigurationen på en fjärransluten Proxmox-värd är ett av de enklaste sätten att låsa sig ute. ProxMenux tar hänsyn till det vid varje åtgärd. Verktygen delas in i tre nivåer efter hur de fungerar — välj det kort som motsvarar ditt mål:"
|
||||
},
|
||||
"tiers": {
|
||||
"readOnly": {
|
||||
"title": "Skrivskyddad",
|
||||
"body": "Ren inspektion. Kan inte ändra systemet under några omständigheter.",
|
||||
"items": [
|
||||
"Routningstabell, anslutningstester, avancerad statistik",
|
||||
"Trafikövervakning i realtid (iftop, iptraf-ng)",
|
||||
"Bandbreddstest (iperf3)"
|
||||
]
|
||||
},
|
||||
"analyze": {
|
||||
"title": "Analysera, sedan föreslå",
|
||||
"body": "Upptäcker problem, skriver ut en rapport med föreslagna skalkommandon och stannar sedan. Du avgör om du vill gå vidare till den guidade reparationen.",
|
||||
"items": [
|
||||
"Analys av bryggkonfiguration",
|
||||
"Nätverkskonfigurationsanalys"
|
||||
]
|
||||
},
|
||||
"apply": {
|
||||
"title": "Tillämpa med säkerhetskopia",
|
||||
"body": "Ändrar systemet. Tar alltid först en tidsstämplad säkerhetskopia av den berörda filen och visar en förhandsvisning innan den skriver.",
|
||||
"items": [
|
||||
"Beständiga gränssnittsnamn (.link-filer)",
|
||||
"Manuell säkerhetskopiering, återställning och omstart av tjänsten"
|
||||
]
|
||||
}
|
||||
},
|
||||
"classicTitle": "Endast den klassiska stacken",
|
||||
"classicBody": "Varje analys- och reparationsfunktion kontrollerar den aktiva nätverkshanteraren innan något ändras. Om värden kör <strong>netplan</strong>, <strong>systemd-networkd</strong> eller <strong>NetworkManager</strong> avbryts verktyget omedelbart med ett tydligt meddelande — menyn stöder endast den klassiska Debian/Proxmox-stacken i <code>/etc/network/interfaces</code>. Det är avsiktligt: att redigera en netplan-fil enligt regler för <code>ifupdown</code> skulle skada konfigurationen utan att det märks.",
|
||||
"backups": {
|
||||
"heading": "Var säkerhetskopiorna sparas",
|
||||
"intro": "Varje guidad reparation, återställning eller manuell säkerhetskopia skriver en tidsstämplad kopia av <code>/etc/network/interfaces</code> till <code>/var/backups/proxmenux/</code>:",
|
||||
"rollbackIntro": "Så återställer du manuellt från en konsol:"
|
||||
},
|
||||
"readOnlySection": {
|
||||
"heading": "Skrivskyddad inspektion",
|
||||
"body": "Börja här när något verkar fel. Ren inspektion — skriver aldrig till <code>/etc/network/interfaces</code> och kör aldrig kommandon som ändrar systemet, med ett uttryckligt undantag: fullständig borttagning av NetworkManager, om det upptäcks, kräver ditt samtycke. Kan användas säkert via SSH när som helst.",
|
||||
"options": [
|
||||
{
|
||||
"title": "Diagnostik",
|
||||
"description": "Tre enstaka skrivskyddade kontroller: Visa routningstabell, Testa anslutning och Avancerad diagnostik. Ren inspektion — skriver aldrig till systemet."
|
||||
},
|
||||
{
|
||||
"title": "Övervakningsverktyg i realtid",
|
||||
"description": "Tre interaktiva verktygsstartare: iftop (bandbredd i realtid per värdpar), iptraf-ng (trafikövervakning med flera lägen) och iperf3 (bandbreddstest i server- eller klientläge)."
|
||||
}
|
||||
]
|
||||
},
|
||||
"analyzeSection": {
|
||||
"heading": "Analysera, sedan föreslå",
|
||||
"body": "Används när en inspektion eller ett verkligt avbrott pekar på ett konfigurationsproblem. Varje verktyg granskar den relevanta delen av <code>/etc/network/interfaces</code>, skriver ut en detaljerad rapport med det exakta skalkommando som skulle åtgärda varje problem och <strong>stannar</strong>. Om du därefter godkänner den valfria guidade reparationen säkerhetskopieras och förhandsvisas varje ändring innan den skrivs.",
|
||||
"options": [
|
||||
{
|
||||
"title": "Brygganalys och guidad reparation",
|
||||
"description": "Upptäcker vmbrX-bryggor med saknade eller ogiltiga portar, vilket är vanligt efter omnumrering av PCI-enheter. Visar först en rapport och reparerar endast om du godkänner det guidade flödet med 5 steg."
|
||||
},
|
||||
{
|
||||
"title": "Konfigurationsanalys och guidad rensning",
|
||||
"description": "Hittar fysiska gränssnitt som deklareras i /etc/network/interfaces men inte längre finns, alltså överblivna konfigurationer efter maskinvaruändringar. Rapporterar dem och erbjuder guidad borttagning."
|
||||
}
|
||||
]
|
||||
},
|
||||
"applySection": {
|
||||
"heading": "Tillämpa med säkerhetskopia",
|
||||
"body": "Dessa verktyg är avsedda att skriva till disk. Varje verktyg tar först en tidsstämplad säkerhetskopia av den berörda filen, och destruktiva alternativ som återställning och omstart kräver ett uttryckligt ja/nej-svar. <em>Beständiga gränssnittsnamn</em> börjar gälla vid nästa omstart, inte omedelbart, så inställningen kan planeras säkert även på en fjärransluten värd.",
|
||||
"options": [
|
||||
{
|
||||
"title": "Beständiga gränssnittsnamn",
|
||||
"description": "Binder gränssnittsnamn (eno1, enp3s0, …) till MAC-adresser via systemds .link-filer. Namnen består när PCI-kort byter plats, kärnan uppgraderas och andra nätverkskort läggs till eller tas bort."
|
||||
},
|
||||
{
|
||||
"title": "Säkerhetskopiering och omstart av gränssnitt",
|
||||
"description": "Ta en manuell ögonblicksbild av /etc/network/interfaces, bläddra bland och återställ tidigare säkerhetskopior, visa den aktuella konfigurationen och starta om nätverkstjänsten vid behov."
|
||||
}
|
||||
]
|
||||
},
|
||||
"consoleTitle": "Ha konsolåtkomst redo",
|
||||
"consoleSubTitle": "Före varje reparation på en fjärransluten värd",
|
||||
"consoleBody": "Om du är ansluten via SSH och bara har en åtkomstväg till värden bör du ha en reservväg redo innan du ändrar nätverket: fysisk konsol / IPMI / iKVM eller en annan dator i samma LAN. De guidade reparationerna är säkra och erbjuder alltid ett kommando för att återställa ändringarna, men en felkonfigurerad brygga eller en bruten länk kan ändå låsa dig ute tills du kommer åt konsolen."
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Övervakningsverktyg i realtid | ProxMenux-dokumentation",
|
||||
"description": "Tre interaktiva startare för nätverksverktyg: iftop (bandbredd i realtid per värdpar), iptraf-ng (trafikövervakning med flera lägen) och iperf3 (bandbreddstest i server- eller klientläge). Varje verktyg installeras vid första användningen.",
|
||||
"ogTitle": "Övervakningsverktyg i realtid | ProxMenux-dokumentation",
|
||||
"ogDescription": "Interaktiv nätverksövervakning och bandbreddstestning för Proxmox värd: iftop, iptraf-ng, iperf3."
|
||||
},
|
||||
"header": {
|
||||
"title": "Övervakningsverktyg i realtid",
|
||||
"description": "Tre interaktiva verktygsstartare för nätverksövervakning i realtid och bandbreddsmätning: iftop, iptraf-ng och iperf3. Varje verktyg installeras automatiskt via apt vid första användningen, körs i förgrunden och avslutas med den angivna tangenten. De ändrar inte värdens nätverkskonfiguration; iperf3 genererar testtrafik.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Tre interaktiva övervakningsverktyg, var och en bakom sin egen meny. Första gången du startar ett installeras paketet tyst via <code>apt-get</code>. Efterföljande lanseringar börjar omedelbart. Inget av dessa verktyg ändrar värdnätverkskonfigurationen."
|
||||
},
|
||||
"when": {
|
||||
"heading": "När du ska använda vilken",
|
||||
"headerQuestion": "Fråga",
|
||||
"headerUse": "Använd",
|
||||
"rows": [
|
||||
{
|
||||
"question": "Vem mättar länken <em>just nu</em>?",
|
||||
"use": "iftop"
|
||||
},
|
||||
{
|
||||
"question": "Hur ser fördelningen per protokoll, paketstorlekarna och TCP-flödena ut?",
|
||||
"use": "iptraf-ng"
|
||||
},
|
||||
{
|
||||
"question": "Hur mycket bandbredd är faktiskt tillgänglig mellan två värdar?",
|
||||
"use": "iperf3"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iftop": {
|
||||
"heading": "Nätverksanvändning i realtid (iftop)",
|
||||
"body": "Bandbredd i realtid per värdpar (källa ↔ destination) — som <code>top</code> för trafik. Visar de största flödena överst med glidande medelvärden över 2/10/40 sekunder. Bästa verktyget för frågan <em>”Varför är min upplänk mättad?”</em>.",
|
||||
"exit": "<strong>Avsluta:</strong> tryck på <kbd>q</kbd>. ProxMenux visar en påminnelse före start.",
|
||||
"keysTitle": "Användbara tangenter i iftop",
|
||||
"keysBody": "<kbd>n</kbd> växlar DNS-uppslagning, <kbd>p</kbd> visar portnummer, <kbd>P</kbd> pausar visningen, <kbd>t</kbd> växlar radens riktning (skickat / mottaget / båda), <kbd>1</kbd>/<kbd>2</kbd>/<kbd>3</kbd> sorterar efter medelvärdet över 2 s / 10 s / 40 s. Se <code>man iftop</code> för hela listan."
|
||||
},
|
||||
"iptraf": {
|
||||
"heading": "Nätverksövervakningsverktyg (iptraf-ng)",
|
||||
"intro": "En menystyrd trafikövervakare med flera lägen. iftop svarar på <em>”vem”</em>, medan iptraf-ng svarar på <em>”vad”</em>: antal byte och paket per protokoll, spårning av TCP-anslutningars tillstånd, histogram över paketstorlekar och LAN-aktivitet per station.",
|
||||
"menuIntro": "Vid start visas en meny med fem alternativ:",
|
||||
"headerMode": "Läge",
|
||||
"headerUseFor": "Använd den för",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "IP traffic monitor",
|
||||
"useFor": "Lista i realtid över TCP-/UDP-/ICMP-/övriga IP-flöden med byteräknare och anslutningstillstånd"
|
||||
},
|
||||
{
|
||||
"mode": "General interface stats",
|
||||
"useFor": "Samlat antal IPv4-/IPv6-/TCP-/UDP-/ICMP-/icke-IP-paket per nätverkskort"
|
||||
},
|
||||
{
|
||||
"mode": "Detailed interface stats",
|
||||
"useFor": "Samma som ovan men för ett gränssnitt, med paketstorlek och hastighetsdetalj"
|
||||
},
|
||||
{
|
||||
"mode": "Statistical breakdowns",
|
||||
"useFor": "Histogram över paketstorleksfördelningen per TCP-/UDP-port"
|
||||
},
|
||||
{
|
||||
"mode": "LAN station monitor",
|
||||
"useFor": "Per-MAC trafikstatistik för den lokala sändningsdomänen"
|
||||
}
|
||||
],
|
||||
"exit": "<strong>Avsluta:</strong> tryck på <kbd>x</kbd> i valfri vy eller <kbd>Q</kbd> i huvudmenyn. ProxMenux visar en påminnelse före start.",
|
||||
"logTitle": "Logga insamlade data till fil",
|
||||
"logBody": "Varje läge erbjuder loggning av insamlad statistik till <code>/var/log/iptraf-ng/</code>. Om du behöver dokumentera en trafikspik kan du låta verktyget köra, logga till fil och granska filen efteråt i stället för att försöka läsa skärmen i realtid."
|
||||
},
|
||||
"iperf3": {
|
||||
"heading": "Bandbreddstest (iperf3)",
|
||||
"intro1": "Mäter den faktiska TCP-genomströmningen mellan två värdar. Till skillnad från iftop / iptraf-ng, som observerar befintlig trafik, genererar iperf3 syntetisk trafik för att belastningstesta länken. Oumbärligt för frågor som <em>”Når min 10 GbE-länk verkligen 10 GbE?”</em> eller <em>”Är nätverkskortet, switchen eller lagringen flaskhalsen?”</em>.",
|
||||
"intro2": "iperf3 är ett <strong>verktyg för två värdar</strong>: den ena kör som server och lyssnar på TCP-port 5201, den andra som klient som ansluter, skickar data och skriver ut hastigheten. ProxMenux-startaren frågar vilket läge du vill använda:",
|
||||
"headerMode": "Läge",
|
||||
"headerBehaviour": "Beteende",
|
||||
"headerCli": "Motsvarande CLI-kommando",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "Server",
|
||||
"behaviour": "Lyssnar på TCP 5201 och skriver ut resultat för varje inkommande test. Slutar på Ctrl+C.",
|
||||
"cli": "iperf3 -s"
|
||||
},
|
||||
{
|
||||
"mode": "Klient",
|
||||
"behaviour": "Frågar efter serverns IP-adress eller värdnamn, ansluter, kör standardtestet på 10 sekunder och skriver ut rapporten.",
|
||||
"cli": "iperf3 -c <target>"
|
||||
}
|
||||
],
|
||||
"workflowIntro": "Typiskt arbetsflöde för att testa en 10 GbE länk mellan två Proxmox värdar:",
|
||||
"workflow": [
|
||||
"Öppna nätverksmenyn på värd A → <em>Bandbreddstest (iperf3)</em> → välj <strong>Server</strong>.",
|
||||
"Öppna samma menyalternativ på värd B → välj <strong>Klient</strong> → ange IP-adressen för värd A.",
|
||||
"Vänta 10 sekunder. Jämför den rapporterade hastigheten med länkens teoretiska maximum."
|
||||
],
|
||||
"sample": "Exempel på klientutdata:",
|
||||
"flagsTitle": "Användbara manuella flaggor (kör från ett skal)",
|
||||
"flagsBody": "<code>-t 60</code> längre test (60 s i stället för 10 s), <code>-P 4</code> 4 parallella strömmar (mättar länken snabbare), <code>-R</code> omvänd riktning (server → klient), <code>-u -b 100M</code> UDP-test med 100 Mbit/s (mätning av jitter och paketförlust), <code>-p 5202</code> annan port (flera tester parallellt). Se <code>man iperf3</code> för hela listan.",
|
||||
"firewallTitle": "Öppna brandväggsporten på servern",
|
||||
"firewallBody": "Servern lyssnar på TCP <strong>5201</strong> som standard. Om du kör servern i en Proxmox-värd med en strikt brandvägg (datacenter eller värdnivå), låt inkommande TCP 5201 från klientens IP för testets varaktighet, stäng sedan den igen. Samma gäller för <code>nftables</code> / <code>iptables</code> på bara värdar."
|
||||
},
|
||||
"install": {
|
||||
"heading": "Första lanseringen installerar paketet",
|
||||
"body": "Alla tre startare kontrollerar om programmet finns och kör annars <code>apt-get update -qq && apt-get install -y <pkg></code>. Installationen sker utan utdata: menyn kan verka frusen i 10–30 sekunder första gången. Senare starter sker omedelbart."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"hangTitle": "Installationen fastnar vid första start",
|
||||
"hangBody": "Värden har inget internet eller apt repos är oåtkomliga. Avbryt med <kbd>Ctrl</kbd>+<kbd>C</kbd>, kör <code>apt-get update</code> manuellt för att se det faktiska felet (DNS, repo signatur, proxy ...), sedan komma tillbaka till menyn.",
|
||||
"refusedTitle": "iperf3-klient: ”unable to connect to server: Connection refused”",
|
||||
"refusedBody": "Antingen körs inte servern eller så blockerar dess brandvägg TCP 5201. Kontrollera på servern med <code>ss -tlnp | grep 5201</code> — det ska visa att iperf3 lyssnar. Om den lyssnar men klienten fortfarande misslyckas, kontrollera brandväggarna på vägen mellan de två värdarna.",
|
||||
"slowTitle": "iperf3 rapporterar mycket lägre hastighet än förväntat för länken",
|
||||
"slowBody": "Vanliga orsaker i sannolikhetsordning: (1) en av värdarnas CPU begränsar hastigheten — prova <code>iperf3 -c <target> -P 4</code> för att använda flera kärnor; (2) trafiken passerar en långsammare länk, till exempel en gigabitswitch mellan två 10 GbE-kort; (3) olika MTU — kontrollera <code>ip link show</code> i båda ändarna; (4) avstängd NIC offloading — se communityskriptet <em>Disable NIC Offloading</em> om du har ett Intel e1000e-kort.",
|
||||
"noTrafficTitle": "iftop / iptraf-ng visar ingen trafik för en upptagen värd",
|
||||
"noTrafficBody": "Standardfångst är på det första upptäckta gränssnittet. Ange rätt från skalet: <code>iftop -i vmbr0</code> eller <code>iptraf-ng -i vmbr0</code>. Menyn launcher använder standarden; för icke-standardgränssnitt, kör från en konsol."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Diagnostik",
|
||||
"href": "/docs/network/diagnostics",
|
||||
"tail": " — de enstaka skrivskyddade kontrollerna (routning, anslutning och avancerad statistik)."
|
||||
},
|
||||
{
|
||||
"label": "Brygganalys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis",
|
||||
"tail": " — när övervakningen visar att ett gränssnitt eller en brygga inte fungerar som det ska."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Beständiga gränssnittsnamn | ProxMenux-dokumentation",
|
||||
"description": "Bind Proxmox-gränssnittsnamn (eno1, enp3s0, …) till MAC-adresser via systemds .link-filer så att namnen består vid omnumrering av PCI-enheter, kärnuppgraderingar och när andra nätverkskort läggs till eller tas bort.",
|
||||
"ogTitle": "Beständiga gränssnittsnamn | ProxMenux-dokumentation",
|
||||
"ogDescription": "Förhindra att Proxmox gränssnittsnamn ändras när du ändrar maskinvaran. Använder systemds .link-filer med matchning på MAC-adress."
|
||||
},
|
||||
"header": {
|
||||
"title": "Beständiga gränssnittsnamn",
|
||||
"description": "Skapar en .link-fil för systemd per fysiskt nätverkskort som binder det kärntilldelade namnet till kortets MAC-adress. När detta tillämpats efter nästa omstart förblir gränssnittsnamnen stabila när du lägger till, tar bort eller flyttar PCIe-kort.",
|
||||
"section": "Nätverk"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "För varje fysisk NIC på värden, skriver en liten fil under <code>/etc/systemd/network/10-<iface>.link</code> som säger: <em> \"enheten med denna MAC måste alltid kallas detta namn\" </em>. systemd-udevd tillämpar regeln vid varje start, innan <code>ifupdown</code> läser <code>/etc/network/interfaces</code>."
|
||||
},
|
||||
"problem": {
|
||||
"heading": "Problemet detta löser",
|
||||
"intro": "Linux härleder standardnamn för gränssnitt från PCI-topologin — <code>eno1</code> = inbyggt nätverkskort, <code>enp3s0</code> = kortet på PCI-buss 3, plats 0 osv. Namnschemat är deterministiskt <em>vid samma maskinvaruplacering</em>. Ändras placeringen kan namnen ändras:",
|
||||
"items": [
|
||||
"Lägg till en GPU före ett befintligt nätverkskort → nätverkskortets bussnummer kan ändras → namnet ändras.",
|
||||
"Flytta ett kort till en annan PCIe slot → namnändringar.",
|
||||
"BIOS-/UEFI-uppdatering som numrerar om enheter → namnen kan ändras.",
|
||||
"Ersätt ett felaktigt kort med samma modell i en annan slot → namnändringar."
|
||||
],
|
||||
"outro": "Efter en sådan ändring refererar <code>/etc/network/interfaces</code> fortfarande till det <em>gamla</em> namnet. Bryggan kan inte aktiveras och värden förlorar nätverksanslutningen. Beständiga namn förhindrar att detta händer igen."
|
||||
},
|
||||
"howWorks": {
|
||||
"heading": "Hur det fungerar",
|
||||
"arrowLabel": "per nätverkskort",
|
||||
"nodes": {
|
||||
"detectLabel": "Identifiera fysiska nätverkskort",
|
||||
"detectDetail": "ls /sys/class/net/\nuteslut vmbr / bond /\ndocker / veth / wireguard …",
|
||||
"readLabel": "Läs varje MAC",
|
||||
"readDetail": "cat /sys/class/net/\n '<'iface'>'/address",
|
||||
"writeLabel": "Skriv .link-fil",
|
||||
"writeDetail": "/etc/systemd/network/\n 10-'<'iface'>'.link"
|
||||
},
|
||||
"minimalIntro": "Varje genererad fil är avsiktligt minimal:",
|
||||
"minimalOutro": "Vid start matchar systemd-udevd enheten på MAC-adress och tilldelar det begärda namnet <em>innan</em> andra komponenter (ifupdown, kärnans standardnamngivning) kommer åt den. Filprefixet <code>10-</code> ser till att reglerna läses in tidigt, före standardfilen <code>99-default.link</code>."
|
||||
},
|
||||
"scope": {
|
||||
"heading": "Vad som skrivs och vad som hoppas över",
|
||||
"headerType": "Typ",
|
||||
"headerBehaviour": "Beteende",
|
||||
"headerWhy": "Varför",
|
||||
"rows": [
|
||||
{
|
||||
"type": "Inbyggt nätverkskort / PCIe-nätverkskort",
|
||||
"behaviour": "<code>.link</code>-fil skrivs",
|
||||
"why": "Motsvarar en verklig PCI-enhet — det fall verktyget är avsett för"
|
||||
},
|
||||
{
|
||||
"type": "Wi-Fi (phy80211)",
|
||||
"behaviour": "<code>.link</code>-fil skrivs",
|
||||
"why": "Har en verklig MAC-adress och gynnas av ett stabilt namn"
|
||||
},
|
||||
{
|
||||
"type": "Bryggor (vmbrX)",
|
||||
"behaviour": "Överhoppad",
|
||||
"why": "Virtuell; namn kommer från <code>/etc/network/interfaces</code>"
|
||||
},
|
||||
{
|
||||
"type": "Bondgränssnitt (bondX)",
|
||||
"behaviour": "Överhoppad",
|
||||
"why": "Virtuellt; bondgränssnittets namn anges av ifupdown"
|
||||
},
|
||||
{
|
||||
"type": "veth / docker0 / br-XXXX",
|
||||
"behaviour": "Överhoppad",
|
||||
"why": "Skapas vid behov av Docker / LXC — ingen beständig maskinvara"
|
||||
},
|
||||
{
|
||||
"type": "tap / fwpr / fwln",
|
||||
"behaviour": "Överhoppad",
|
||||
"why": "Skapas vid behov av Proxmox för varje VM/CT"
|
||||
},
|
||||
{
|
||||
"type": "WireGuard / Cilium / Tailscale",
|
||||
"behaviour": "Överhoppad",
|
||||
"why": "Programvarugränssnitt som hanteras av sina egna daemoner"
|
||||
}
|
||||
]
|
||||
},
|
||||
"safety": {
|
||||
"heading": "Säkerhetsnät: tidigare .link-filer backas upp",
|
||||
"intro": "Om <code>/etc/systemd/network/</code> redan innehåller <code>.link</code>-filer från en tidigare körning eller andra verktyg kopieras de till en tidsstämplad säkerhetskopieringskatalog innan de nya skapas:",
|
||||
"outro": "För att rulla tillbaka: kopiera filerna tillbaka från backupkatalogen och starta om.",
|
||||
"rebootTitle": "Börjar gälla vid nästa omstart, inte omedelbart",
|
||||
"rebootBody": "Ändringar i <code>.link</code>-filer tillämpas endast vid start, när udev räknar upp enheterna på nytt. Därför rapporterar verktyget <em>”Ändringarna tillämpas efter omstart”</em>. Namnbyte på ett aktivt gränssnitt är riskabelt och försöks inte: en aktiv <code>vmbr0</code> med medlemsgränssnitt skulle behöva konfigureras om atomärt. Åtgärden skjuts därför upp till nästa rena start."
|
||||
},
|
||||
"afterReboot": {
|
||||
"heading": "Efter omstarten",
|
||||
"intro": "När namnen är beständigt bundna är arbetsflödet för framtida maskinvaruändringar enkelt:",
|
||||
"items": [
|
||||
"Stäng av, ändra maskinvaran (lägg till kort, byt plats, …) och starta.",
|
||||
"Varje NIC håller sitt tidigare namn eftersom dess MAC matchar en <code>.link</code>-fil.",
|
||||
"Om ett nätverkskort ersätts med ett som har en annan MAC-adress får det ett standardnamn från kärnan (<code>enp<bus>s<slot></code>). Kör menyn igen för att lägga till en <code>.link</code>-post för det nya kortets MAC-adress."
|
||||
]
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"emptyTitle": "\"Inga fysiska gränssnitt hittades\" efter att ha kört verktyget",
|
||||
"emptyBody": "Kärnan ser inga gränssnitt som bygger på PCI / phy80211 på värden. Kontrollera med <code>ls -l /sys/class/net/</code> — varje post ska ha antingen en symbolisk länk <code>device</code> (PCI) eller en post <code>phy80211</code> (Wi-Fi). Om båda saknas för ett verkligt nätverkskort är drivrutinen inte inläst.",
|
||||
"noChangeTitle": "Efter omstarten ändrades inte namnen som förväntat.",
|
||||
"noChangeBody": "Kontrollera att filen finns och är korrekt formaterad: <code>cat /etc/systemd/network/10-<iface>.link</code>. Kontrollera sedan udev-loggarna: <code>journalctl -u systemd-udevd -b | grep -i link</code>. En vanlig orsak är en kvarvarande kärnparameter <code>net.ifnames=0</code> som helt inaktiverar förutsägbara namn — ta bort den från <code>/etc/default/grub</code>, kör <code>update-grub</code> och starta om.",
|
||||
"undoTitle": "Jag vill ångra beständig namngivning",
|
||||
"undoBody": "Radera antingen <code>.link</code>-filerna (<code>rm /etc/systemd/network/10-*.link</code>) eller återställ dem från säkerhetskopieringskatalogen som skapades vid föregående körning. Starta om för att tillämpa ändringen."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Brygganalys och guidad reparation",
|
||||
"href": "/docs/network/bridge-analysis",
|
||||
"tailRich": " — återställningsvägen när namnen <em>redan</em> har ändrats."
|
||||
},
|
||||
{
|
||||
"label": "Konfigurationsanalys och guidad rensning",
|
||||
"href": "/docs/network/config-analysis",
|
||||
"tail": " — för att ta bort föräldralösa block kvar efter namnskiften."
|
||||
},
|
||||
{
|
||||
"label": "Diagnostik",
|
||||
"href": "/docs/network/diagnostics",
|
||||
"tailRich": " — bekräfta de nya namnen med <em>Visa routningstabell</em> efter omstart."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Så anpassas en OCI-avbildning | ProxMenux",
|
||||
"description": "Från avbildningens arkiv och Compose-fil till en granskningsbar mall, en distributionsplan och en LXC direkt i Proxmox VE, utan Docker i containern."
|
||||
},
|
||||
"header": {
|
||||
"title": "Så anpassas en OCI-avbildning",
|
||||
"description": "Från avbildningens arkiv och Compose-fil till en granskningsbar mall, en distributionsplan och en LXC direkt i Proxmox VE, utan att installera Docker i containern.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "pipeline",
|
||||
"title": "Anpassningsflödet",
|
||||
"blocks": [
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart LR\n A[\"{{repo}}\"] --> B[\"Compose + README\"]\n B --> C[\"{{converter}}\"]\n C --> D[\"{{template}}\"]\n D --> E{\"{{blockers}}\"}\n E -- \"{{no}}\" --> F[\"{{review}}\"]\n F --> D\n E -- \"{{yes}}\" --> G[\"{{plan}}\"]\n G --> H[\"pct create\"]\n H --> I[\"{{lxc}}\"]",
|
||||
"labels": {
|
||||
"repo": "Avbildningens arkiv",
|
||||
"converter": "Konverterare",
|
||||
"template": "JSON-mall",
|
||||
"blockers": "Inga hinder?",
|
||||
"no": "Nej",
|
||||
"yes": "Ja",
|
||||
"review": "Granskning / overlay",
|
||||
"plan": "Distributionsplan",
|
||||
"lxc": "LXC direkt i Proxmox VE"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Konverteraren läser avbildningen och Compose-filen som projektet publicerar och skapar en JSON-mall. Om krav ännu inte har kunnat anpassas och hindrar installationen granskas mallen innan den publiceras i katalogen. En fil med granskade anpassningar, en så kallad overlay, löser dessa hinder. Bara mallar utan kvarstående hinder erbjuds för installation."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "template",
|
||||
"title": "Vad mallen bevarar",
|
||||
"blocks": [
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "archive",
|
||||
"title": "Avbildningens identitet",
|
||||
"body": "Arkiv, löpande uppdaterad tagg, arkitektur, fastställd digest och källrevision."
|
||||
},
|
||||
{
|
||||
"icon": "braces",
|
||||
"title": "Containerkontrakt",
|
||||
"body": "Entrypoint, Cmd, miljö, användare, arbetskatalog, stoppsignal, portar och volymer."
|
||||
},
|
||||
{
|
||||
"icon": "layers",
|
||||
"title": "Anpassning till Proxmox VE",
|
||||
"body": "Resurser, säkerhet, monteringspunkter, enheter, sysctls, hälsokontroller och de anpassningar som behövs för var och en, med motivering."
|
||||
},
|
||||
{
|
||||
"icon": "shield",
|
||||
"title": "Kompatibilitet",
|
||||
"body": "Nycklar som stöds, krav som ännu inte anpassats och hindrar installationen samt status för varje validering."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sources",
|
||||
"title": "OCI anger processen, Compose anger miljön",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Källa",
|
||||
"Exempel",
|
||||
"Resultat i Proxmox VE"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"OCI-metadata",
|
||||
"<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>",
|
||||
"Proxmox VE importerar dem när CT:n skapas"
|
||||
],
|
||||
[
|
||||
"Docker Compose",
|
||||
"<code>environment</code>, <code>volumes</code>, <code>devices</code>",
|
||||
"Miljöposter för LXC, <code>mpN</code> och <code>devN</code>"
|
||||
],
|
||||
[
|
||||
"ProxMenux-profil",
|
||||
"GPU, hälsokontroll, inloggningsuppgifter",
|
||||
"Frågor och granskade anpassningar"
|
||||
],
|
||||
[
|
||||
"Användare",
|
||||
"VMID, lagring, nätverk",
|
||||
"Instanskontraktet"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "install",
|
||||
"title": "Vad som händer under installationen",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Fastställ avbildningen",
|
||||
"body": "Registret frågas, värdens arkitektur väljs och den exakta digest som den löpande uppdaterade taggen pekar på fastställs."
|
||||
},
|
||||
{
|
||||
"title": "Hämta och verifiera",
|
||||
"body": "Skopeo hämtar avbildningen som ett OCI-arkiv. Innan något skapas kontrolleras varje lager mot sin digest och packas upp. Om hämtningen är skadad görs ett nytt försök innan installationen avbryts."
|
||||
},
|
||||
{
|
||||
"title": "Skapa filsystemet",
|
||||
"body": "<code>pct create</code> skapar rootfs från arkivet och bevarar avbildningens officiella processmetadata."
|
||||
},
|
||||
{
|
||||
"title": "Anslut resurserna",
|
||||
"body": "Deklarerade volymer, nätverk, miljö, enheter och säkerhetsprofiler kopplas in."
|
||||
},
|
||||
{
|
||||
"title": "Konsol",
|
||||
"body": "Containerns konsolutdata sparas på värden. Konsolen i Proxmox VE öppnar ett skal om avbildningen innehåller ett."
|
||||
},
|
||||
{
|
||||
"title": "Kontrollera",
|
||||
"body": "Vid första starten väntar installationen på en adress och på att tjänsten ska svara. Ett misslyckande rapporteras inte som en lyckad installation."
|
||||
},
|
||||
{
|
||||
"title": "Registrera konfigurationen",
|
||||
"body": "Den faktiska konfigurationen sparas i instanskontraktet som används vid uppdateringar och återskapande."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example",
|
||||
"title": "Exempel: en avbildning med /config och /downloads",
|
||||
"intro": "En vanlig Compose-definition och den Proxmox VE-konfiguration som den omvandlas till. Sökvägarna som programmet förväntar sig ändras inte.",
|
||||
"blocks": [
|
||||
{
|
||||
"codeGrid": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Docker Compose",
|
||||
"code": "image: lscr.io/linuxserver/example:latest\nenvironment:\n - PUID=1000\n - PGID=1000\nvolumes:\n - config:/config\n - /srv/downloads:/downloads\nports:\n - 8080:8080"
|
||||
},
|
||||
{
|
||||
"title": "/etc/pve/lxc/VMID.conf (utdrag)",
|
||||
"code": "entrypoint: /init\nmp0: local-lvm:vm-VMID-disk-1,mp=/config,backup=1,size=8G\nmp1: /srv/downloads,mp=/downloads\nnet0: name=eth0,bridge=vmbr0,ip=dhcp,type=veth\nlxc.environment.runtime: PUID=1000\nlxc.environment.runtime: PGID=1000"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "<code>mp0</code> är en andra disk som tillhör containern och heter <code>vm-VMID-disk-N</code> på den valda lagringen. Den monteras på <code>/config</code> och ingår i containerns säkerhetskopia med <code>backup=1</code>. <code>mp1</code> skapar ingen disk: värdens katalog <code>/srv/downloads</code> monteras på <code>/downloads</code> i LXC-containern. Port 8080 mappas inte: LXC-containern har en egen adress där tjänsten svarar."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,278 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Installera en avbildning utanför katalogen | ProxMenux",
|
||||
"description": "Anpassa en OCI-avbildning från en Compose-fil, en URL, ett docker run-kommando eller en avbildningsreferens och granska vad ProxMenux kan återskapa före installationen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Installera en avbildning utanför katalogen",
|
||||
"description": "Din avbildning anpassas från sin Compose-fil, ett docker run-kommando eller enbart referensen. Resultatet visas för granskning innan någon LXC-container skapas.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "intro",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Samma konverterare och installationsflöde",
|
||||
"body": "Alternativet <strong>Installera en avbildning utanför katalogen</strong> använder samma konverterare och installationsflöde som katalogmallarna. Skillnaden är att kontraktet skapas vid det tillfället från den angivna definitionen och valideras innan någon LXC-container skapas."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sources",
|
||||
"title": "Så beskrivs avbildningen",
|
||||
"intro": "Första vyn frågar hur avbildningen beskrivs. Fyra alternativ läser en definition som anpassas, ett femte använder bara avbildningens namn och tre andra läser en färdig oci-compose-fil.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Alternativ",
|
||||
"Vad som läses"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Klistra in Compose-filen i terminalen",
|
||||
"Klistra in YAML-innehållet i terminalen och avsluta med Ctrl+D."
|
||||
],
|
||||
[
|
||||
"Läs Compose-filen från värden",
|
||||
"En sökväg på noden, som standard <code>/root/docker-compose.yml</code>. Filen måste finnas och får vara högst 256 KiB."
|
||||
],
|
||||
[
|
||||
"Hämta Compose-filen från en adress",
|
||||
"En <code>http://</code>- eller <code>https://</code>-adress som tillhandahåller rå YAML. Högst 256 KiB hämtas."
|
||||
],
|
||||
[
|
||||
"Klistra in docker run-kommandot i terminalen",
|
||||
"Kommandot som projektet publicerar. Portar, miljö, volymer, enheter, capabilities, användare, delat minne och andra alternativ som stöds anpassas."
|
||||
],
|
||||
[
|
||||
"Bara avbildningsreferensen, utan Compose-fil",
|
||||
"En referens som <code>ghcr.io/user/application:latest</code>. Registret frågas och avbildningens OCI-metadata bevaras."
|
||||
],
|
||||
[
|
||||
"Klistra in en oci-compose i terminalen",
|
||||
"Klistra in JSON-innehållet i terminalen och avsluta med Ctrl+D. Det konverteras inte utan kontrolleras och installeras som det är skrivet."
|
||||
],
|
||||
[
|
||||
"Läs en oci-compose-fil från värden",
|
||||
"En JSON-fil på noden, som standard <code>/root/oci-compose.json</code>, på högst 2 MiB."
|
||||
],
|
||||
[
|
||||
"Hämta en oci-compose från en adress",
|
||||
"En <code>http://</code>- eller <code>https://</code>-adress som tillhandahåller JSON-filen. Högst 2 MiB hämtas."
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/custom-source-menu.png",
|
||||
"alt": "Meny för att välja hur en avbildning utanför katalogen ska beskrivas",
|
||||
"caption": "Olika sätt att beskriva en avbildning utanför katalogen."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "reference-only",
|
||||
"title": "Vad enbart avbildningsreferensen ger",
|
||||
"intro": "Avbildningen innehåller processens metadata, men inte allt som en Compose-fil brukar lägga till runt den.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Läses från avbildningen",
|
||||
"Finns inte i avbildningen",
|
||||
"Konsekvens"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>, <code>WorkingDir</code> och den inbyggda miljön",
|
||||
"Variabler som bara finns i dokumentationen",
|
||||
"Läggs till under installationen eller via Ändra"
|
||||
],
|
||||
[
|
||||
"Volymer som avbildningen deklarerar",
|
||||
"Kataloger på värden som bara anges i Compose-filen",
|
||||
"Ytterligare sökvägar läggs till före installationen"
|
||||
],
|
||||
[
|
||||
"<code>EXPOSE</code>-portar",
|
||||
"URL, protokoll eller funktionell hälsokontroll",
|
||||
"Porten och sättet att kontrollera tjänsten bekräftas"
|
||||
],
|
||||
[
|
||||
"Arkitekturer och digest i registret",
|
||||
"Enheter, privilegier eller externa beroenden",
|
||||
"Aktiveras inte utan en definition som begär dem"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "review",
|
||||
"title": "Granska före installationen",
|
||||
"intro": "Efter att definitionen anpassats visar ProxMenux hur den har tolkats, innan VMID, resurser eller lagring efterfrågas.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Analysera",
|
||||
"body": "Tjänster, avbildning, portar, sökvägar, miljö, enheter, säkerhet och hälsokontroll läses in."
|
||||
},
|
||||
{
|
||||
"title": "Fråga registret",
|
||||
"body": "Avbildningen måste finnas i registret och de publicerade arkitekturerna listas. Ett privat register läses med kontot som sparats för det."
|
||||
},
|
||||
{
|
||||
"title": "Lista det som inte tillämpas",
|
||||
"body": "Etiketter, Docker-nätverk, Swarm-inställningar och andra nycklar som inte påverkar en LXC-container listas."
|
||||
},
|
||||
{
|
||||
"title": "Blockera alternativ utan säker motsvarighet",
|
||||
"body": "Nycklar utan säker motsvarighet visas under <strong>Alternativ utan motsvarighet</strong> och installationen fortsätter inte. Inget ignoreras utan besked."
|
||||
},
|
||||
{
|
||||
"title": "Fråga efter hemliga uppgifter",
|
||||
"body": "Variabler vars namn tyder på lösenord, token eller nyckel efterfrågas som känsliga uppgifter under installationen."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/custom-review.png",
|
||||
"alt": "Sammanfattning av hur ProxMenux har tolkat Compose-filen",
|
||||
"caption": "Sammanfattningen som visas innan installationen frågar efter VMID och resurser."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Efter att sammanfattningen godkänts följer samma flöde som i katalogen: namn, standardläge eller avancerat läge, VMID, CPU, minne, nätverk, start med noden, beständiga och extra sökvägar, kompatibla enheter och en slutlig sammanfattning."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "examples",
|
||||
"title": "Exempel på indata",
|
||||
"blocks": [
|
||||
{
|
||||
"codeGrid": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Compose",
|
||||
"code": "services:\n app:\n image: ghcr.io/example/app:latest\n ports:\n - \"8080:8080\"\n volumes:\n - ./config:/config\n - /srv/media:/media\n environment:\n TZ: Europe/Madrid"
|
||||
},
|
||||
{
|
||||
"title": "docker run",
|
||||
"code": "docker run -d \\\n --name app \\\n -p 8080:8080 \\\n -e TZ=Europe/Madrid \\\n -v app-config:/config \\\n -v /srv/media:/media \\\n ghcr.io/example/app:latest"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "oci-compose",
|
||||
"title": "En oci-compose skriven för hand",
|
||||
"intro": "En oci-compose är JSON-filen som ett program installeras från. Katalogen innehåller en sådan fil per program. Samma format kan skrivas för hand och installeras med det här alternativet.",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "I en handskriven fil bestämmer författaren avbildning, portar, variabler, volymer och installationsfrågor. ProxMenux kompletterar resten när filen läses. Formatet kan ange sådant som Compose inte kan: frågetexter, ett lösenord som skapas under installationen, en GPU-profil, ägaren till varje volym, kontrollen vid första starten eller inloggningsuppgifterna som visas till sist."
|
||||
},
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Kontrollera",
|
||||
"body": "En fil med fel installeras inte. Varje fel anger vilket fält det gäller; vid ogiltig JSON visas rad och kolumn."
|
||||
},
|
||||
{
|
||||
"title": "Granska",
|
||||
"body": "En giltig fil visar vad den installerar: avbildning, webbadress, portar, beständiga sökvägar, variabler som efterfrågas och filer som skrivs."
|
||||
},
|
||||
{
|
||||
"title": "Installera",
|
||||
"body": "Installationen är densamma som för katalogens program, med standardinställningar eller avancerade inställningar."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "En fil som bestämmer privilegierna",
|
||||
"body": "En oci-compose bestämmer vad som monteras i containern och med vilka privilegier. Granskningen visar detta före installationen: installera bara filer från betrodda källor."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Formatet beskrivs block för block med två fullständiga exempel i <readmeLink>OCI-motorns README</readmeLink>. Även en installationspost kan läsas på samma sätt: bara den ursprungliga mallen används, inga av svaren från den installationen."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "private-registries",
|
||||
"title": "Avbildningar i privata register",
|
||||
"intro": "En avbildning i ett privat register, till exempel ett privat GitHub-paket eller ett privat Docker Hub-arkiv, läses med ett konto som sparats i ProxMenux.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Registret nekar åtkomst till avbildningen",
|
||||
"body": "Om registret svarar att avbildningen kräver ett konto erbjuder granskningen inloggning och läser sedan avbildningen igen."
|
||||
},
|
||||
{
|
||||
"title": "Logga in",
|
||||
"body": "Ett användarnamn och ett lösenord eller en token som får hämta avbildningen. Registret kontrollerar uppgifterna och de sparas bara om de godkänns."
|
||||
},
|
||||
{
|
||||
"title": "Installera och håll uppdaterat",
|
||||
"body": "Kontot används för att hämta avbildningen under installationen och även vid uppdatering, Ändra, Återskapa, watchdog och Monitors uppdateringskontroll, på alla noder i klustret."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "<strong>Registerkonton</strong> i huvudmenyn för OCI manager Apps visar sparade konton per register och användare, aldrig deras hemliga uppgifter. Från varje konto kan du kontrollera, hämta eller installera en avbildning samt uppdatera eller ta bort inloggningsuppgifterna."
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"GitHub (<code>ghcr.io</code>): användaren är GitHub-kontot och lösenordet en personlig åtkomsttoken med behörigheten <code>read:packages</code>.",
|
||||
"Docker Hub (<code>docker.io</code>): användaren är Docker Hub-kontot och lösenordet en åtkomsttoken med läsbehörighet.",
|
||||
"Andra register, även med egen port som <code>registry.example.com:5000</code>: användarnamn och lösenord eller token som registret tillhandahåller."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Var kontona sparas",
|
||||
"body": "I <code>/etc/pve/priv/proxmenux/registry-auth.json</code>, läsbar bara av root, i samma mapp där Proxmox sparar lagringslösenord. <code>/etc/pve</code> delas mellan alla noder i klustret, så ett konto som läggs till på en nod används på alla. Värdens säkerhetskopia innehåller filen och avinstallation av ProxMenux tar bort den från alla noder."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "limits",
|
||||
"title": "Definitioner som inte installeras",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"En Dockerfile utan publicerad avbildning: avbildningen måste först byggas och publiceras i ett OCI-register.",
|
||||
"En Compose-fil med flera tjänster blockeras eftersom det här alternativet installerar en tjänst i en container, även om flera tjänster använder samma avbildning.",
|
||||
"<code>configs</code>, externa hemligheter eller enhetsformat som inte kan anpassas entydigt.",
|
||||
"Skalsubstitutioner som <code>$(command)</code>: ange det resulterande värdet direkt i stället.",
|
||||
"Okända <code>docker run</code>-alternativ och <code>--env-file</code>: använd en Compose-fil med uttryckliga värden i stället."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,392 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Enheter och acceleration | ProxMenux",
|
||||
"description": "Hur OCI manager Apps ger en OCI-container tillgång till GPU, NVIDIA, Coral, USB, FUSE och andra enheter som validerade inbyggda Proxmox VE-resurser."
|
||||
},
|
||||
"header": {
|
||||
"title": "Enheter och acceleration",
|
||||
"description": "GPU, NVIDIA, Coral, USB, FUSE och blockenheter blir validerade inbyggda Proxmox VE-resurser för containern.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "principle",
|
||||
"title": "Enheten som programmet behöver, inte hela värden",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "En enhet som begärs av Compose-filen eller av applikationsprofilen blir en konkret <code>devN</code>-post eller LXC-montering. Be om en GPU, en USB-enhet eller en Coral gör inte containern privilegierad."
|
||||
},
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{
|
||||
"label": "Värdinventering",
|
||||
"detail": "/dev/dri/renderD128\nGID 993 · Intel"
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux",
|
||||
"detail": "tillverkare och\nbehörigheter kontrollerade"
|
||||
},
|
||||
{
|
||||
"label": "LXC",
|
||||
"detail": "samma enhet\neffektiv GID"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "origin",
|
||||
"title": "Varifrån enhetsbegäran kommer",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Källa",
|
||||
"Vad läses",
|
||||
"Vad installationsprogrammet gör"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Docker Compose",
|
||||
"<code>devices</code>, <code>group_add</code>, <code>deploy.resources</code> och NVIDIA förfrågningar",
|
||||
"Varje krav blir en begäran om enhet som visas för granskning"
|
||||
],
|
||||
[
|
||||
"Katalogprofil",
|
||||
"Programmets faktiska stöd för GPU, Coral, OpenCL, USB eller FUSE",
|
||||
"Endast de alternativ som valideras för den avbildningen erbjuds"
|
||||
],
|
||||
[
|
||||
"Avbildningens metadata och dokumentation",
|
||||
"VA-API, Selkies, LinuxServer mods eller NVIDIA runtime",
|
||||
"Dokumenterade variabler och förberedelser läggs till"
|
||||
],
|
||||
[
|
||||
"Användarval",
|
||||
"CPU endast, Intel/AMD, OpenCL, NVIDIA eller en valfri enhet",
|
||||
"Urvalet lagras i instansavtalet"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "Upptäckta enheter ansluts inte automatiskt",
|
||||
"body": "Värden är inventerad, men endast enheter som deklareras av Compose-filen eller av en kompatibel profil erbjuds och bifogas. En GPU, USB-dongel eller Coral närvarande på värden är inte utsatt för varje LXC."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "identify",
|
||||
"title": "Hur värdenheten identifieras",
|
||||
"intro": "Innan LXC modifieras läses enheten på värden och matchas mot den valda profilen.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Typ",
|
||||
"Identitet",
|
||||
"Validering"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Intel/AMD DRM",
|
||||
"<code>/dev/dri/renderD*</code> och <code>/sys/class/drm/NODE/device/vendor</code>",
|
||||
"En teckenenhet med leverantör <code>0x8086</code> (Intel) eller <code>0x1002</code> (AMD)"
|
||||
],
|
||||
[
|
||||
"AMD OpenCL",
|
||||
"Rendernoden plus <code>/dev/kfd</code> när profilen behöver den",
|
||||
"Existens, typ, leverantör, behörigheter och förklarad kompatibilitet"
|
||||
],
|
||||
[
|
||||
"AMD ROCm",
|
||||
"Rendernoden, <code>/dev/kfd</code> och generationen som beräkningsdrivrutinen rapporterar i <code>/sys/class/kfd/kfd/topology/nodes/*/properties</code>",
|
||||
"En generation som programmets ROCm-avbildning innehåller beräkningskärnor för — de namngivna RDNA2-GPU:erna och nyare — erbjuds utan anpassning. Andra GPU:er i dessa familjer, till exempel Radeon 680M och 780M, erbjuds som experimentella och väljs aldrig som föreslaget alternativ: ROCm stöder dem inte officiellt, programmet presenterar dem som familjens generation (<code>HSA_OVERRIDE_GFX_VERSION</code>) och installeraren begär bekräftelse innan den större avbildningen hämtas. Äldre GPU:er, till exempel den integrerade grafiken i Ryzen 5000U, erbjuds inte och Immich fortsätter köra igenkänningen på CPU:n."
|
||||
],
|
||||
[
|
||||
"NVIDIA",
|
||||
"<code>nvidia-smi</code> och <code>nvidia-container-cli</code>",
|
||||
"GPU, UUID, PCI buss, drivrutinsversion, Toolkit, <code>/dev/nvidia*</code> noder, binärer och bibliotek"
|
||||
],
|
||||
[
|
||||
"Coral PCIe/M.2",
|
||||
"<code>/dev/apex_N</code> och dess länk i <code>/sys/dev/char/MAJOR:MINOR</code>",
|
||||
"Teckenenhetsnod, major/minor-nummer, ägare, GID och behörigheter"
|
||||
],
|
||||
[
|
||||
"USB och seriell",
|
||||
"<code>/dev/ttyUSB*</code>, <code>/dev/ttyACM*</code> eller <code>/dev/bus/usb/BBB/DDD</code>",
|
||||
"Teckenenhetsnod; för USB även tillverkare, produkt och serienummer när sysfs publicerar dem"
|
||||
],
|
||||
[
|
||||
"KVM, TUN, FUSE, video och generisk SCSI",
|
||||
"<code>/dev/kvm</code>, <code>/dev/net/tun</code>, <code>/dev/fuse</code>, <code>/dev/videoN</code> eller <code>/dev/sgN</code>",
|
||||
"Sökväg som stöds, nodtyp och effektiva behörigheter"
|
||||
],
|
||||
[
|
||||
"Optisk enhet",
|
||||
"<code>/dev/srN</code>",
|
||||
"En blockenhet"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "install",
|
||||
"title": "Vad händer under installationen",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Mallen erbjuder sina profiler",
|
||||
"body": "Till exempel CPU endast, Intel/AMD VA-API, AMD OpenCL, Intel OpenCL eller NVIDIA. Alternativen hör till avbildningen, inte till en vanlig meny."
|
||||
},
|
||||
{
|
||||
"title": "En profil väljs",
|
||||
"body": "Den anger enhetsnoder, miljö, moddar eller den körmiljö som programmet behöver."
|
||||
},
|
||||
{
|
||||
"title": "En väg föreslås",
|
||||
"body": "För DRM, <code>/dev/dri/renderD128</code>, som kan ändras på en värd med flera rendernoder. För USB eller seriell, är den specifika noden vald."
|
||||
},
|
||||
{
|
||||
"title": "Validering",
|
||||
"body": "Existens, typ, tillåten leverantör, behörigheter och GID kontrolleras. En missmatchning stoppar operationen."
|
||||
},
|
||||
{
|
||||
"title": "Kontraktet är skrivet",
|
||||
"body": "Sökväg, läge, GID, skrivåtkomst och profil sparas för uppdateringar och när containern skapas om."
|
||||
},
|
||||
{
|
||||
"title": "Anslut och testa",
|
||||
"body": "<code>pct set</code> lägger till <code>devN</code> inträde och åtkomst kontrolleras sedan inuti LXC. LinuxServer avbildningar kontrolleras också som användare <code>abc</code>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "config",
|
||||
"title": "Hur det visas i LXC-konfigurationen",
|
||||
"intro": "Exempelvärden: <code>dev0</code> och <code>dev1</code> är lediga platser som Proxmox VE tilldelar, och <code>renderD128</code>, <code>apex_0</code> samt GID beror på nodens maskinvara.",
|
||||
"blocks": [
|
||||
{
|
||||
"codeGrid": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Intel/AMD VA-API",
|
||||
"code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=993,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "Coral PCIe/M.2",
|
||||
"code": "dev0: path=/dev/apex_0,mode=0660,gid=GID,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "En specifik USB-enhet",
|
||||
"code": "dev0: path=/dev/bus/usb/003/004,mode=0660,gid=GID,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "AMD OpenCL",
|
||||
"code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=GID,deny-write=0\ndev1: path=/dev/kfd,mode=0660,gid=GID,deny-write=0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "GID läses med <code>stat</code> på värden och skrivs till <code>devN</code>-posten; <code>render</code> och <code>video</code>-grupper antas inte ha ett fast nummer. Enheten håller samma <code>/dev</code>-väg inuti LXC, där programmets egna mekanismer letar efter det."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "profiles",
|
||||
"title": "Profiler en avbildning kan erbjuda",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Profil",
|
||||
"Resulterande konfiguration",
|
||||
"Erbjuds när"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Intel/AMD VA-API",
|
||||
"Rendernod i <code>/dev/dri</code>",
|
||||
"Applikationen stöder videoacceleration"
|
||||
],
|
||||
[
|
||||
"OpenCL",
|
||||
"Rendernod, <code>/dev/kfd</code> vid behov och den officiella modden",
|
||||
"Avbildningen eller profilen dokumenterar den"
|
||||
],
|
||||
[
|
||||
"NVIDIA",
|
||||
"Värdens drivrutinsenheter och bibliotek",
|
||||
"Värden har en fungerande drivrutin och NVIDIA Container Toolkit"
|
||||
],
|
||||
[
|
||||
"Coral",
|
||||
"<code>/dev/apex_0</code> eller USB buss",
|
||||
"Profilen förklarar Coral Support (Frigate)"
|
||||
],
|
||||
[
|
||||
"USB, seriell, FUSE",
|
||||
"En enhet, ett validerat träd eller en LXC-funktion",
|
||||
"Kontraktet begär det"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nvidia",
|
||||
"title": "NVIDIA",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "Nodkrav: NVIDIA Container Toolkit",
|
||||
"body": "En fungerande drivrutin på Proxmox VE är inte tillräckligt för att ge en NVIDIA GPU till en OCI-avbildning. OCI Manager Apps använder <code>nvidia-container-cli</code>, från NVIDIA Container Toolkit, för att identifiera enheterna och för att få binärer och bibliotek som matchar den laddade drivrutinen."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "<nvidiaLink>ProxMenux NVIDIA-installerare</nvidiaLink> installerar NVIDIA Container Toolkit från NVIDIAs officiella arkiv tillsammans med drivrutinen. Den kontrollerar dess fyra paket, validerar <code>nvidia-container-cli</code> och registrerar resultatet i ändringsloggen för <auditLink>Audit & Report</auditLink>."
|
||||
},
|
||||
{
|
||||
"p": "Dessa två kommandon på värden visar om drivrutinen och Toolkit är tillgängliga:"
|
||||
},
|
||||
{
|
||||
"shell": {
|
||||
"code": "nvidia-smi -L\nnvidia-container-cli --version"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "På en värd där drivrutinen installerades på annat sätt installeras Toolkit från det officiella stabila förvaret:"
|
||||
},
|
||||
{
|
||||
"shell": {
|
||||
"code": "apt-get update\napt-get install -y --no-install-recommends ca-certificates curl gnupg2\n\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \\\n | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\n\ncurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \\\n | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \\\n > /etc/apt/sources.list.d/nvidia-container-toolkit.list\n\napt-get update\napt-get install -y nvidia-container-toolkit libnvidia-container-tools"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Inventeringen OCI Manager Apps använder är utdata av:"
|
||||
},
|
||||
{
|
||||
"shell": {
|
||||
"code": "nvidia-container-cli list --device all --libraries --binaries --firmwares --ipcs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Docker runtime konfiguration är inte involverad",
|
||||
"body": "Containrarna är inbyggda LXC:er utan Docker-demon, så <code>nvidia-ctk runtime configure --runtime=docker</code> ingår inte: ProxMenux frågar <code>nvidia-container-cli</code> direkt och skriver LXC-enheter och monteringar. Kommandon och plattformar som stöds underhålls i <toolkitLink>installationsguiden för NVIDIA Container Toolkit</toolkitLink>."
|
||||
}
|
||||
},
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "cpu",
|
||||
"title": "Inventering från drivrutinen",
|
||||
"body": "<code>nvidia-container-cli</code> listar enhetsnoder, binärer, firmware och bibliotek av den installerade drivrutinen."
|
||||
},
|
||||
{
|
||||
"icon": "refresh",
|
||||
"title": "Ingen fast version",
|
||||
"body": "Mallen anger inga biblioteksfilnamn. Profilen genereras från den aktuella värden."
|
||||
},
|
||||
{
|
||||
"icon": "shield",
|
||||
"title": "Skrivskyddade monteringar",
|
||||
"body": "Värdens bibliotek monteras skrivskyddat i stället för att kopieras till containern."
|
||||
},
|
||||
{
|
||||
"icon": "hardDrive",
|
||||
"title": "Ändringar av drivrutin",
|
||||
"body": "Efter en drivrutinsändring genereras inventeringen på nytt innan berörda LXC:er startar."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"code": {
|
||||
"title": "NVIDIA resultat (förenklad)",
|
||||
"code": "devN: path=/dev/nvidia0,...\ndevN: path=/dev/nvidiactl,...\ndevN: path=/dev/nvidia-uvm,...\nlxc.mount.entry: HOST_LIBRARY CONTAINER_LIBRARY none ro,bind,create=file 0 0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Att bara ge tillgång till <code>/dev/nvidia0</code> räcker inte. Den laddade drivrutinens användarkomponenter monteras skrivskyddat, och <code>nvidia-smi</code> körs sedan i LXC:n för att jämföra GPU, UUID, PCI-buss och version med värdens inventering."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "usb",
|
||||
"title": "USB, seriell och USB Coral",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "USB-nummer kan ändra",
|
||||
"body": "En väg som <code>/dev/bus/usb/003/004</code> kan ändras när enheten är återansluten eller värden startar om. Profilen registrerar tillverkaren, produkten och serienumret när de är tillgängliga, men en ny bussadress mappas om inte automatiskt."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "En kringutrustning anges med sin specifika nod: <code>/dev/ttyUSB0</code>, <code>/dev/ttyACM0</code>, <code>/dev/apex_0</code> eller <code>/dev/bus/usb/BBB/DDD</code>. Att passera hela <code>/dev</code> accepteras inte. Coral erbjuds endast program vars profil anger det."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "trees",
|
||||
"title": "Enhetsträd och LXC-funktioner",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Begäran",
|
||||
"Resulterande konfiguration",
|
||||
"Omfattning"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"<code>/dev/dvb</code>, <code>/dev/snd</code> eller <code>/dev/bus/usb</code>",
|
||||
"Varje teckenenhetsnod i trädet får en egen <code>devN</code>-post med värdens läge och GID",
|
||||
"Endast det begärda trädet, inte resten av <code>/dev</code>"
|
||||
],
|
||||
[
|
||||
"<code>/dev/fuse</code>",
|
||||
"Noden och när profilen behöver den, funktionen <code>fuse=1</code>",
|
||||
"FUSE offentliggör inte fästen till andra LXCs"
|
||||
],
|
||||
[
|
||||
"<code>/dev/net/tun</code>",
|
||||
"En <code>devN</code>-post med samma sökväg inuti LXC:n",
|
||||
"VPN- eller nätverkskonfigurationen stannar i programmet"
|
||||
],
|
||||
[
|
||||
"<code>/dev/kvm</code>",
|
||||
"En validerad <code>devN</code>-post",
|
||||
"Erbjuds endast när kontraktet begär det"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "security",
|
||||
"title": "Bekräftelser av risknivå",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Konkreta enheter, valfri privilegiering, krävs privilegier, AppArmor eller seccomp avslappning och tillgång till värd PID-namnrymden behandlas som separata fall, inte under en generisk privilegierad etikett. Varje alternativ med en risk förklaras och bekräftas under installationen."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "OCI manager Apps | ProxMenux",
|
||||
"description": "Kör officiella OCI-avbildningar som LXC-containrar direkt i Proxmox VE, med beständiga data, enhetsåtkomst, program med flera containrar och transaktionsbaserade uppdateringar."
|
||||
},
|
||||
"header": {
|
||||
"title": "OCI manager Apps",
|
||||
"description": "Officiella OCI-avbildningar körs som inbyggda LXC-containrar i Proxmox VE. Avbildningen är fortfarande den som underhållaren publicerar; ProxMenux återskapar miljön som Docker Compose annars skulle ha skapat runt den.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "model",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "En OCI-avbildning, en LXC direkt i Proxmox VE",
|
||||
"body": "Ingen Docker Engine körs i containrarna. Proxmox VE importerar avbildningens filsystem och OCI-metadata. Programmet blir huvudprocessen i en inbyggd LXC-container som hanteras med samma verktyg som övriga containrar på noden."
|
||||
}
|
||||
},
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{
|
||||
"label": "Källa",
|
||||
"detail": "OCI-avbildning\nCompose och dokumentation"
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux",
|
||||
"detail": "JSON-kontrakt\nvalidering och planering"
|
||||
},
|
||||
{
|
||||
"label": "Proxmox VE",
|
||||
"detail": "LXC direkt i Proxmox VE\nvolymer och enheter"
|
||||
}
|
||||
],
|
||||
"caption": "Programmet byggs inte om. Dess miljö beskrivs deklarativt och återskapas."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "where",
|
||||
"title": "Var du hittar det",
|
||||
"intro": "Öppna <strong>OCI manager Apps (Technology Preview)</strong> i ProxMenux huvudmeny på Proxmox-noden som root. Den första vyn erbjuder:",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"<strong>Sök program</strong> – sök efter namn i hela katalogen.",
|
||||
"<strong>Alla program</strong> – visa hela katalogen och antalet program.",
|
||||
"<strong>Hantera installerade OCI-program</strong> – uppdatera, ändra, ta bort eller återställ befintliga installationer.",
|
||||
"<strong>Registerkonton</strong> – hantera konton för att installera och uppdatera avbildningar från privata register.",
|
||||
"<strong>Installera en avbildning utanför katalogen</strong> – anpassa en Compose-fil, ett <code>docker run</code>-kommando eller en avbildningsreferens.",
|
||||
"Katalogens kategorier, var och en med sitt antal program."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/main-menu.png",
|
||||
"alt": "Huvudvyn i OCI manager Apps med sökning, hela katalogen, programhantering, avbildningar utanför katalogen och kategorier.",
|
||||
"caption": "Huvudvyn i OCI manager Apps."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "När du väljer ett program visas dess beskrivning, avbildningen som används och två installationslägen. <strong>Installera med standardinställningar</strong> frågar bara efter grundvalen: lagring, dataplacering, adress och start. <strong>Installera med avancerade inställningar</strong> går igenom alla val i ordning: VMID och resurser, lagring för varje sökväg, nätverksbrygga och enheter."
|
||||
},
|
||||
{
|
||||
"p": "Program som faktiskt har testats visas som <strong>Verifierad</strong> i den här vyn och markeras med ✓ i listorna, oavsett om testet gjordes i ProxMenux labb eller av användargemenskapen."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "beta",
|
||||
"title": "Varför beteckningen Technology Preview används",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "OCI manager Apps behåller beteckningen <strong>Technology Preview</strong> som Proxmox VE använder för programcontainrar skapade från OCI-avbildningar. Stödet infördes i Proxmox VE 9.1. Beteckningen gäller tekniken som OCI manager Apps bygger på, inte ProxMenux-motorn: containrarnas beteende kan fortfarande ändras mellan Proxmox VE-versioner. Beteckningen behålls tills Proxmox VE bedömer att stödet är stabilt."
|
||||
},
|
||||
{
|
||||
"p": "Funktionerna i OCI manager Apps testas i ProxMenux labb: installation, uppdatering, ändringar, återskapande, säkerhetskopiering, återställning, migrering och watchdog. Varje program testas separat. De som faktiskt har testats visas som <strong>Verifierad</strong> och markeras med ✓ i listorna."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "translation",
|
||||
"title": "Så beskriver Docker kraven och så omsätter OCI manager Apps dem",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Krav",
|
||||
"Så uttrycks det i Docker",
|
||||
"Så omsätts det i OCI manager Apps"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Kör programmet",
|
||||
"<code>image</code>, <code>entrypoint</code>, <code>command</code>",
|
||||
"OCI-avbildningens rootfs och LXC-containerns huvudprocess"
|
||||
],
|
||||
[
|
||||
"Bevara konfigurationen",
|
||||
"<code>volumes: /config</code>",
|
||||
"En beständig <code>mpN</code>-volym som tas med i säkerhetskopian, eller en katalog på värden."
|
||||
],
|
||||
[
|
||||
"Gör tjänsten tillgänglig",
|
||||
"<code>ports</code>",
|
||||
"En egen adress för LXC-containern och tjänstens åtkomst-URL."
|
||||
],
|
||||
[
|
||||
"Använd maskinvara",
|
||||
"<code>devices</code>, <code>group_add</code>",
|
||||
"<code>devN</code>-poster med värdens effektiva grupp-ID (GID) och en validerad profil."
|
||||
],
|
||||
[
|
||||
"Koppla ihop beroenden",
|
||||
"<code>networks</code>, <code>depends_on</code>",
|
||||
"En privat nätverksbrygga, fasta adresser, startordning och hälsokontroller."
|
||||
],
|
||||
[
|
||||
"Uppdatera",
|
||||
"Hämta med <code>pull</code> och återskapa",
|
||||
"Ett nytt rootfs med samma kontrakt för beständiga data."
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "kept",
|
||||
"title": "Vad som bevaras och vad som ändras",
|
||||
"blocks": [
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "archive",
|
||||
"title": "Bevaras",
|
||||
"body": "Den officiella avbildningen, dess interna sökvägar, miljö, startprocess och användardokumentation."
|
||||
},
|
||||
{
|
||||
"icon": "boxes",
|
||||
"title": "Anpassas",
|
||||
"body": "Körmiljön: nätverk, beständiga data, enheter, behörigheter och beroenden använder de inbyggda LXC-funktionerna i Proxmox VE."
|
||||
},
|
||||
{
|
||||
"icon": "shield",
|
||||
"title": "Utan motsvarighet",
|
||||
"body": "Ett Compose-alternativ utan en säker motsvarighet markeras som ett hinder för installationen. Mallar med sådana hinder erbjuds inte för installation, och känsliga alternativ måste bekräftas i installationsguiden."
|
||||
},
|
||||
{
|
||||
"icon": "refresh",
|
||||
"title": "Sparas",
|
||||
"body": "Avbildningens digest, resurser, sökvägar, nätverk, enheter och tillhörighet till en stack sparas i instanskontraktet. Uppdateringar och återskapande följer samma kontrakt."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pages",
|
||||
"title": "Sidor i det här avsnittet",
|
||||
"blocks": [
|
||||
{
|
||||
"next": {
|
||||
"items": [
|
||||
{
|
||||
"label": "Så anpassas en OCI-avbildning",
|
||||
"href": "/docs/oci-manager/architecture",
|
||||
"tail": "Från avbildningen och dess Compose-fil till en LXC direkt i Proxmox VE."
|
||||
},
|
||||
{
|
||||
"label": "Installera en avbildning utanför katalogen",
|
||||
"href": "/docs/oci-manager/custom-image",
|
||||
"tail": "En Compose-fil, ett docker run-kommando eller en avbildningsreferens."
|
||||
},
|
||||
{
|
||||
"label": "Data, sökvägar och nätverk",
|
||||
"href": "/docs/oci-manager/storage-network",
|
||||
"tail": "Containervolymer, kataloger på värden, rclone-monteringar och adresser."
|
||||
},
|
||||
{
|
||||
"label": "Enheter och acceleration",
|
||||
"href": "/docs/oci-manager/hardware",
|
||||
"tail": "GPU, NVIDIA, Coral, USB och andra enheter."
|
||||
},
|
||||
{
|
||||
"label": "Program med flera containrar",
|
||||
"href": "/docs/oci-manager/stacks",
|
||||
"tail": "Program, databas och cache i samordnade LXC-containrar."
|
||||
},
|
||||
{
|
||||
"label": "Installera, uppdatera och ändra",
|
||||
"href": "/docs/oci-manager/lifecycle",
|
||||
"tail": "Instanskontraktet och dess åtgärder."
|
||||
},
|
||||
{
|
||||
"label": "I ProxMenux Monitor",
|
||||
"href": "/docs/oci-manager/monitor",
|
||||
"tail": "Versioner, uppdateringar, konsolutdata och terminal."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,499 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Installera, uppdatera och ändra | ProxMenux",
|
||||
"description": "Instanskontraktet för en OCI-container och de åtgärder som använder det: uppdatering, ändring, borttagning, återupptagning av en avbruten åtgärd och återställning av driften efter en återläsning på denna eller en annan värd."
|
||||
},
|
||||
"header": {
|
||||
"title": "Installera, uppdatera och modifiera",
|
||||
"description": "Varje instans behåller ett reproducerbart kontrakt, så att dess rootfs kan ersättas utan att konfiguration eller beständiga data går förlorade.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "contract",
|
||||
"title": "Instanskontraktet",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Efter installationen sparas den faktiska konfigurationen i <code>/usr/local/share/proxmenux/oci/instances/VMID/oci-compose.json</code>. Det är inte en kopia av den ursprungliga Compose-filen, utan ett reproducerbart kontrakt för den LXC som finns på värden."
|
||||
},
|
||||
{
|
||||
"code": {
|
||||
"code": "instances/\n└── 105/\n └── oci-compose.json\n ├── image and resolved digest\n ├── resources and network\n ├── environment (secrets protected)\n ├── container disks and host directories\n ├── hardware profile and devices\n ├── console log and terminal mode\n └── stack membership and lifecycle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "En kopia av kontraktet finns i containern under <code>/.proxmenux/oci-record.json</code> och kan bara läsas av containerns root-användare. En säkerhetskopia av containern innehåller därför alltid det kontrakt som gällde då. En andra kopia sparas i <code>/etc/pve/priv/proxmenux/oci</code>, som delas av alla noder i klustret och bara kan läsas av värdens root-användare. Båda kopiorna skrivs efter varje installation, uppdatering och ändring."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "manage",
|
||||
"title": "Hantera installerade OCI-program",
|
||||
"intro": "Det här alternativet på huvudskärmen listar registrerade instanser med tillhörande program och avbildning. Varje instans kontrolleras mot sitt kontrakt före varje åtgärd. En CT som inte längre stämmer med sin post varken ändras eller tas bort. Samma uppdatering och editor finns på fliken Uppdateringar i <monitorLink>ProxMenux Monitor</monitorLink>.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Alternativ",
|
||||
"Vad ändras",
|
||||
"Vad bevaras"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Uppdatera avbildningen med sparad konfiguration",
|
||||
"Rootfs ersätts med den avbildning som den sparade kanalen publicerar för närvarande",
|
||||
"Kontrakt, containerdiskar, värdkataloger, nätverk och enheter"
|
||||
],
|
||||
[
|
||||
"Ändra: redigera resurser, nätverk, sökvägar och GPU",
|
||||
"Editorn öppnas med det aktuella kontraktet; CT:n byggs om med ändringarna",
|
||||
"Data på containerdiskar och i värdkataloger"
|
||||
],
|
||||
[
|
||||
"Watchdog: starta om programmet när det kraschar",
|
||||
"Om programmet ska startas igen när det stannar av sig självt. Ingenting byggs om",
|
||||
"Hela installationen; endast valet sparas i kontraktet"
|
||||
],
|
||||
[
|
||||
"Ta bort: ta bort programmet och dess containrar",
|
||||
"LXC, eller varje medlem i en stack, och deras kontrakt raderas",
|
||||
"Värdkataloger, med deras innehåll"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "För ett program med flera containrar erbjuder menyn <strong>Uppdatera alla programmets containrar</strong>, <strong>Ändra extra sökvägar och enheter</strong>, <strong>Återskapa alla containrar med sparad konfiguration</strong>, watchdog och borttagning. Ändra lägger till eller tar bort extra sökvägar och enheter i programcontainern utan att bygga om något och ändrar i Immich vad som kör igenkänningen. Återskapa bygger om varje container från den avbildning som användes vid installationen utan att söka efter en nyare."
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/manage-menu.png",
|
||||
"alt": "Lista över installerade OCI-program med alternativ för att uppdatera, ändra och ta bort",
|
||||
"caption": "Hantera installerade OCI-program."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "update",
|
||||
"title": "En transaktionell uppdatering",
|
||||
"blocks": [
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "sequenceDiagram\n participant U as {{user}}\n participant P as ProxMenux\n participant R as {{registry}}\n participant X as Proxmox VE\n U->>P: {{update}}\n P->>R: {{resolve}}\n R-->>P: digest\n P->>P: {{verify}}\n P->>X: {{backup}}\n P->>X: {{import}}\n P->>X: {{reapply}}\n X-->>P: healthcheck\n alt {{healthy}}\n P-->>U: {{commit}}\n else {{failure}}\n P->>X: Rollback\n P-->>U: {{restored}}\n end",
|
||||
"labels": {
|
||||
"user": "Användare",
|
||||
"registry": "OCI-registret",
|
||||
"update": "Uppdatera instans",
|
||||
"resolve": "Slå upp taggen",
|
||||
"verify": "Verifiera arkivet och kör förkontroller",
|
||||
"backup": "Stoppa och säkerhetskopiera CT:n",
|
||||
"import": "Importera det nya rootfs",
|
||||
"reapply": "Applicera kontraktet igen",
|
||||
"healthy": "frisk",
|
||||
"failure": "misslyckande",
|
||||
"commit": "Kontraktet publiceras med den nya digesten",
|
||||
"restored": "Tidigare instans återställd"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"Om registret fortfarande tillhandahåller den installerade digesten laddas ingenting ned och instansen lämnas orörd.",
|
||||
"Den nya avbildningen verifieras lager för lager innan CT:n stoppas. En skadad nedladdning hämtas en andra gång; en redan cachad avbildning som inte klarar kontrollen laddas ned igen.",
|
||||
"Inställningar som ändrats i Proxmox VE efter installationen (minne, swap, kärnor, CPU-gräns, CPU-prioritet och start med noden) bevaras och förs över till det nya kontraktet.",
|
||||
"LAN-gränssnittet som Arr-sviten och multi-container-applikationerna lägger till (<code>net1</code>) och startordern (<code>startup</code>) ges tillbaka till den nya containern som de är.",
|
||||
"Alla andra skillnader mellan CT och dess kontrakt stoppar uppdateringen innan CT stoppas."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{
|
||||
"label": "Före",
|
||||
"detail": "rootfs A\n/config mp0\n/media värdkatalog"
|
||||
},
|
||||
{
|
||||
"label": "Uppdatering",
|
||||
"detail": "ersätter endast\nrootfs"
|
||||
},
|
||||
{
|
||||
"label": "Efter",
|
||||
"detail": "rootfs B\n/config mp0\n/media värdkatalog"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Innan något stoppas kontrolleras att det finns plats för säkerhetskopian: använda data på de volymer som ingår, plus en marginal. Den skrivs intill programmets post på värdens systemdisk. Om utrymmet inte räcker ber menyn om en annan lagring på värden som stöder säkerhetskopior. Kopian skapas där och tas bort när åtgärden är klar. Valet sparas för programmet, även för schemalagda uppdateringar. Om ingen lagring har tillräckligt med plats avvisas åtgärden och programmet förblir oförändrat. Utrymmet för den nya avbildningen kontrolleras på samma sätt före nedladdningen."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "recovery",
|
||||
"title": "Återställa en avbruten operation",
|
||||
"intro": "En uppdatering och en förändring använder en ihållande transaktion. Om processen, terminalen eller noden avbryts efter CT-stoppen, är operationen inte färdig.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Markör för väntande åtgärd",
|
||||
"body": "När Hantera installerade OCI-program öppnas visar det sparade tillståndet att ersättningen aldrig publicerades."
|
||||
},
|
||||
{
|
||||
"title": "Visa status",
|
||||
"body": "Visar den fas som uppnåddes utan att ändra containrar eller data."
|
||||
},
|
||||
{
|
||||
"title": "Återställ den tidigare installationen",
|
||||
"body": "Återläser den verifierade säkerhetskopia i plattformens eget format som togs före ersättningen samt det tidigare kontraktet."
|
||||
},
|
||||
{
|
||||
"title": "Stackar som en enhet",
|
||||
"body": "För en multicontainer-applikation återhämtas varje medlem från samma transaktionspunkt, inte bara den valda."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "Värdkataloger ingår inte i återställningen",
|
||||
"body": "Säkerhetskopian omfattar rootfs och de containerdiskar som ingår i den. En värdkatalog återställs inte till sitt tidigare tillstånd, eftersom andra LXC-containrar kan använda dess data."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "watchdog",
|
||||
"title": "Watchdog: starta om ett program som stannar",
|
||||
"intro": "Proxmox har ingen omstartspolicy: när processen i en programcontainer avslutas förblir containern stoppad. Med watchdog aktiverad startas ett program som stannar av sig självt igen. För ett OCI-program gör den vad <code>restart: unless-stopped</code> gör i en Compose-fil.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Vad händer",
|
||||
"Med Watchdog på"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Programmet kraschar eller dess process avslutas",
|
||||
"Containern startas igen inom några sekunder"
|
||||
],
|
||||
[
|
||||
"Det stoppas eller stängs av från Proxmox, från Monitor eller med <code>pct</code>",
|
||||
"Den förblir stoppad tills någon startar den"
|
||||
],
|
||||
[
|
||||
"En backup, en migration eller en ProxMenux-operation arbetar med den",
|
||||
"Ingenting görs förrän det slutar"
|
||||
],
|
||||
[
|
||||
"Den var redan stoppad när värden startade",
|
||||
"Den förblir stoppad; detta styrs av <strong>Starta med Proxmox</strong>"
|
||||
],
|
||||
[
|
||||
"Den stannar upprepade gånger direkt efter start",
|
||||
"För ett program som stannar inom några sekunder efter start, eller inte startar alls, görs fem startförsök med 30 sekunders, 1, 2 och 5 minuters väntan mellan försöken. Därefter lämnas det stoppat och en avisering skickas"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Installationsprogrammet frågar om detta i båda installationslägena och föreslår värdet från programmets recept. Inställningen kan senare ändras under <strong>Hantera installerade OCI-program</strong> eller med containerns <strong>Watchdog</strong>-reglage i <monitorLink>ProxMenux Monitor</monitorLink> och gäller alla containrar i ett program med flera containrar. En enda tjänst på värden, <code>proxmenux-oci-watchdog.service</code>, övervakar alla program som begärt det. Installationen visas på fliken Ändringar i Audit & Report."
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Vad värden inte kan avgöra",
|
||||
"body": "Programmets slutkod når inte värden, så ett normalt avslut och en krasch ser likadana ut och leder båda till omstart, som <code>always</code> och <code>unless-stopped</code> i Docker. Ett stopp som begärs utanför Proxmox med <code>lxc-stop</code> eller <code>systemctl</code> lämnar ingen stoppuppgift och tolkas som att programmet stannade av sig självt."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "restore",
|
||||
"title": "Backup, restaurering och en annan värd",
|
||||
"intro": "En säkerhetskopia som görs med vzdump eller Proxmox Backup Server innehåller containern, de containerdiskar som valts för säkerhetskopiering och kopian av dess kontrakt. Det som installationen sparar på värden ingår inte. <strong>Hantera installerade OCI-program</strong> upptäcker containrar som återlästs på en värd utan deras kontrakt, efter en ny Proxmox-installation eller på en annan värd, och erbjuder att registrera dem igen.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Återställ containrarna i Proxmox",
|
||||
"body": "Från säkerhetskopieringslagringen, med det ursprungliga ID:t eller ett annat ledigt ID. Ett program med flera containrar behöver samtliga sina containrar."
|
||||
},
|
||||
{
|
||||
"title": "Öppna Hantera installerade OCI-program",
|
||||
"body": "De återlästa containrarna listas och återställning erbjuds. Knappen <strong>Återställ</strong> på fliken Uppdateringar i <monitorLink>ProxMenux Monitor</monitorLink> öppnar samma återställning."
|
||||
},
|
||||
{
|
||||
"title": "Kontrollera innan du ändrar",
|
||||
"body": "Återställningen kontrollerar att värden har allt som varje program behöver. Ett program som inte kan återställas i sin helhet lämnas oförändrat och orsaken anges."
|
||||
},
|
||||
{
|
||||
"title": "Registrera och starta",
|
||||
"body": "Kontraktet registreras på den här värden och det som installationen sparade där skrivs på nytt. Om programmen ska startas är en separat fråga. Svara Nej om de ursprungliga containrarna fortfarande körs på en annan värd."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-offer.png",
|
||||
"alt": "Dialog som listar de restaurerade containrarna och erbjuder att återställa dem",
|
||||
"caption": "Återställningen som erbjuds när Hantera installerade OCI-program öppnas."
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Vad värden sparade",
|
||||
"Efter återhämtningen"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Instanskontrakt",
|
||||
"Registreras från kopian i containern, som kontrolleras mot den konfiguration som Proxmox återläste"
|
||||
],
|
||||
[
|
||||
"Privat nätverk av en multi-container-applikation",
|
||||
"Skapad igen med samma bro och undernät; de fasta adresserna i containrarna ändras inte"
|
||||
],
|
||||
[
|
||||
"Startorder för en multicontainer-applikation",
|
||||
"Beroende hookscript och dess kontrakt installeras igen; snippets är aktiverade på <code>local</code> lagring när ingen lagring accepterar dem"
|
||||
],
|
||||
[
|
||||
"Nätverks-sysctl och fil för värdövervakning",
|
||||
"Skriven igen i <code>/etc/pve/proxmenux</code>"
|
||||
],
|
||||
[
|
||||
"NVIDIA-körmiljö",
|
||||
"Hooken för en oprivilegierad container installeras på nytt. En privilegierad container får den här värdens drivrutinsfiler i stället för filerna från ursprungsvärden"
|
||||
],
|
||||
[
|
||||
"Rclone montering",
|
||||
"Hookscriptet och de program som gör monteringen tillgänglig skrivs på nytt, med samma vyer på värden"
|
||||
],
|
||||
[
|
||||
"Brandväggsregel på värden för en värdmonitor",
|
||||
"Efterfrågas igen för dess webbport och bryggans undernät på den här värden"
|
||||
],
|
||||
[
|
||||
"<code>lost+found</code> av varje återställd disk",
|
||||
"Tas bort om den är tom; en återläsning skapar den och vissa program kan inte starta om den finns bland deras data"
|
||||
],
|
||||
[
|
||||
"Diskar som återlästs till annan lagring",
|
||||
"Kontraktet uppdateras till lagringen de är på nu"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "En container som återlästs med ett annat ID behåller sitt program. Kontraktet, konsolloggen, nätverksparametrarna för sysctl, hookscriptet för en Rclone-montering och startordningen för ett program med flera containrar registreras med de ID:n som containrarna har på den här värden."
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Vad hindrar en återställning",
|
||||
"Vad du gör"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"En container av en multicontainer-applikation saknas",
|
||||
"Återläs den också; programmet återställs i sin helhet"
|
||||
],
|
||||
[
|
||||
"Det privata undernätet används redan på den här värden",
|
||||
"Återhämtningen avbryts och ingenting ändras: adresserna till containrarna är fasta och flyttas inte till ett annat undernät."
|
||||
],
|
||||
[
|
||||
"En värdkatalog finns inte",
|
||||
"Montera eller skapa den med dess data; en säkerhetskopia av containern inkluderar inte värdkataloger"
|
||||
],
|
||||
[
|
||||
"En enhet finns inte på denna värd",
|
||||
"Anslut den eller ta bort den från containern i Proxmox"
|
||||
],
|
||||
[
|
||||
"Ett program med NVIDIA på en värd utan drivrutinen",
|
||||
"Installera NVIDIA-drivrutinen och Container Toolkit"
|
||||
],
|
||||
[
|
||||
"Backupen gjordes innan kopian av kontraktet fanns",
|
||||
"Containern stannar som en vanlig LXC och erbjuds inte igen"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "En container som kommer tillbaka",
|
||||
"body": "En container som återlästs över sig själv från en äldre säkerhetskopia, återställts till en ögonblicksbild eller återvänt från en annan nod bär kontraktet för sitt nuvarande tillstånd. Om den väljs för en åtgärd och dess kontrakt skiljer sig från värdens startar åtgärden inte, och containern erbjuds för återställning."
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/restore-result.png",
|
||||
"alt": "Resultatet av återhämtningen med det privata nätverket, startordern och de registrerade containrarna",
|
||||
"caption": "Resultatet av en återhämtning steg för steg."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "remove",
|
||||
"title": "Ta bort en OCI-applikation",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Före bekräftelsen skapas en sammanfattning utifrån den faktiska konfigurationen: containrarna som tas bort, data som raderas med dem, det privata nätverket som frigörs och värdkatalogerna som bevaras. Bekräftelsen är förvald till <strong>Nej</strong>, eftersom data på raderade diskar inte kan återställas efteråt."
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Resurs",
|
||||
"Vid borttagning",
|
||||
"Orsak"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"rootfs och containerdiskar",
|
||||
"Raderas",
|
||||
"De tillhör endast containern"
|
||||
],
|
||||
[
|
||||
"Värdkatalog",
|
||||
"Bevaras med sitt innehåll",
|
||||
"Andra applikationer kan använda den"
|
||||
],
|
||||
[
|
||||
"Containerns filer på värden",
|
||||
"Raderas",
|
||||
"Dess konsollogg, nätverkssysctls, Rclone montering hookscript och dess registrering i App-fliken ProxMenux Monitor tjänar ingen annan container"
|
||||
],
|
||||
[
|
||||
"Filer som delas av flera installationer",
|
||||
"Tas bort när den sista installationen som använder dem tas bort",
|
||||
"Värdmonitorfilen och hookscriptet för beroenden i program med flera containrar"
|
||||
],
|
||||
[
|
||||
"Instanskontrakt",
|
||||
"Tas bort efter en framgångsrik borttagning",
|
||||
"Ingen CT är associerad med den mer"
|
||||
],
|
||||
[
|
||||
"Privat brygga för en stack",
|
||||
"Frigörs med stacken",
|
||||
"Det har inga medlemmar kvar att ansluta"
|
||||
],
|
||||
[
|
||||
"Nätverk som delas av Arr-paketet",
|
||||
"Frigörs när det sista programmet i sviten tas bort",
|
||||
"Varje program i sviten är oberoende och tas bort separat"
|
||||
],
|
||||
[
|
||||
"En enda medlem av en stack",
|
||||
"Tas inte bort separat",
|
||||
"Hela applikationen tas bort, så ingen stack lämnas ofullständig"
|
||||
],
|
||||
[
|
||||
"En container på en annan nod av klustret",
|
||||
"Inte borttagen",
|
||||
"Dess rekord och värdfiler är på noden där den installerades: den tas bort där, efter att ha migrerat den tillbaka."
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/remove-summary.png",
|
||||
"alt": "Sammanfattning av borttagningen med berörda containrar, data och värdkataloger",
|
||||
"caption": "Sammanfattningen av borttagningen, skapad utifrån den faktiska konfigurationen."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "archives",
|
||||
"title": "Nedladdade avbildningar och utrymme på värden",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "OCI-arkivet används för att bygga rootfs; den körande CT:n läser det inte. Efter en installation eller uppdatering listas de arkiv som laddades ned under åtgärden med sina storlekar, och borttagning erbjuds. Att ta bort dem frigör utrymme utan att påverka containern eller dess data."
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Uppdateringar behöver inte arkivet",
|
||||
"body": "Utan arkivet slår en uppdatering upp den sparade kanalen och laddar ned den nya digesten. Om arkivet finns återanvänds det bara när dess referens och integritet motsvarar det som begärs."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "registry",
|
||||
"title": "Register och rensning",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "När <strong>Hantera installerade OCI-program</strong> öppnas tas först rester bort efter containrar som inte längre finns på någon nod i klustret: posten som sparats som historik efter borttagning via Proxmox-gränssnittet och värdfiler som lämnats kvar efter en borttagning. En post med en halvfärdig åtgärd behålls eftersom säkerhetskopian fortfarande kan behövas. Volymer och värdkataloger raderas aldrig utifrån antaganden."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cluster",
|
||||
"title": "I ett kluster: migration och hög tillgänglighet",
|
||||
"intro": "En OCI-container är en vanlig Proxmox-LXC: den kan migreras eller hanteras av HA som andra containrar, med samma begränsningar. Det som behövs för att starta den sparas där alla noder i klustret kan hitta det.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Delar",
|
||||
"På en annan nod av klustret"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Konsollogg",
|
||||
"Containern skapar <code>/var/log/proxmenux/oci</code> före start på den nod som kör den. Varje nod sparar loggen för de starter som utförts där."
|
||||
],
|
||||
[
|
||||
"Nätverks-sysctl och värdmonitor",
|
||||
"Sparas i <code>/etc/pve/proxmenux</code>, som delas av alla noder i klustret, så att en migrerad container hittar dem."
|
||||
],
|
||||
[
|
||||
"Containerdiskar",
|
||||
"Proxmox flyttar dem med containern. HA behöver ha deras data tillgängliga på målnoden via delad lagring eller en replikering som stöds."
|
||||
],
|
||||
[
|
||||
"Värdkataloger och enheter",
|
||||
"Samma regler som alla LXC: en värdkatalog måste finnas på målnoden och markeras som delad, och en GPU, Coral eller NPU måste finnas där."
|
||||
],
|
||||
[
|
||||
"ProxMenux-post",
|
||||
"Kontraktet stannar på noden där programmet installerades, och varje nod läser kopian i <code>/etc/pve/priv/proxmenux/oci</code>. Ett program med en enda container som migreras registreras på målnoden när <strong>Hantera installerade OCI-program</strong> öppnas eller en åtgärd startas för programmet. Ett program med flera containrar erbjuds för återställning där eftersom dess privata nätverk måste skapas på den noden."
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "Inte för hög tillgänglighet",
|
||||
"body": "En multi-container-applikation når sina medlemmar genom en privat bro av noden som den installerades på, så dess medlemmar stannar på den noden. En värdmonitor, såsom Glances i värdläge eller Netdata, övervakar den nod som den körs på; flytta den skulle övervaka en annan nod."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "När programmet återställs får en säkerhetskopia som återlästs utanför klustret de filer från <code>/etc/pve/proxmenux</code> som containern använder."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "channel",
|
||||
"title": "En rullande tag är inte en obevakad uppdatering",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Katalogen installerar den rullande tagg som underhållaren publicerar, men den faktiska digesten slås upp och sparas och ändras bara genom en uttrycklig uppdatering med förkontroller och återställning. <monitorLink>ProxMenux Monitor</monitorLink> jämför den installerade digesten med den som registret publicerar och visar och aviserar när en ny avbildning är tillgänglig."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "OCI-behållare i ProxMenux Monitor | ProxMenux",
|
||||
"description": "Vad ProxMenux Monitor visar för en container installerad av OCI Manager Apps: applikations- och avbildningsversioner, nya avbildningar, konsolutdata och Proxmox VE-terminalen."
|
||||
},
|
||||
"header": {
|
||||
"title": "I ProxMenux Monitor",
|
||||
"description": "En container installerad av OCI Manager Apps visas i VMs & LXCs som alla andra LXC. Dess modal läser installationsposten: applikations- och avbildningsversioner, nya avbildningar, konsolutdata och terminal.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "intro",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Posten är källan",
|
||||
"body": "OCI Manager Apps vet vad den installerade och var den kom ifrån. Monitorn läser det installationsrekordet istället för att prova containern, så data är detsamma om containern körs eller stoppas."
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Flik",
|
||||
"Vilka förändringar för en OCI container"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Status",
|
||||
"En <strong>Watchdog</strong>-brytare under Start vid start: programmet startas igen när det stannar på egen hand."
|
||||
],
|
||||
[
|
||||
"App",
|
||||
"Programmet identifieras från posten och uppdateringar spåras av avbildning"
|
||||
],
|
||||
[
|
||||
"Uppdateringar",
|
||||
"Avbildningen uppdateras eller programmet ändras, med samma flöde som OCI-menyn"
|
||||
],
|
||||
[
|
||||
"Monteringar",
|
||||
"Container diskar och värd kataloger, med deras användning"
|
||||
],
|
||||
[
|
||||
"Loggar",
|
||||
"Endast för OCI-containrar: programmets konsolutdata"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "app",
|
||||
"title": "App",
|
||||
"intro": "<appLink>App</appLink>-fliken erbjuder den installerade applikationen som en detektering, med namnet, logotypen, porten och schemat för posten. När den registreras öppnas redigeraren med metoden <strong>OCI-avbildning (installerad av ProxMenux) </strong>, som inte behöver någon konfiguration.",
|
||||
"blocks": [
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "boxes",
|
||||
"title": "Program",
|
||||
"body": "Versionen av applikationen i avbildningen, läs från själva avbildningen: dess miljö eller <code>org.opencontainers.image.version</code>-etiketten. Det är informativt."
|
||||
},
|
||||
{
|
||||
"icon": "archive",
|
||||
"title": "Avbildning",
|
||||
"body": "Byggdatum och digest för den installerade avbildningen. Uppdateringen avgörs här: installerad digest jämförs med den som registret publicerar för samma tagg i dag."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"När registret publicerar en ny digest visar kortet <strong>Ny avbildning</strong> med datum och digest, även om programversionen inuti inte ändrats: en ombyggnad på en uppdaterad bas är en uppdatering.",
|
||||
"När digestvärdena matchar visar kortet <strong>Version</strong>.",
|
||||
"Kortet länkar till bildförvaret: dess GitHub-projekt, eller dess Docker Hub-sida för en officiell avbildning.",
|
||||
"Tillgångslänken använder containerns LAN-adress, även för huvudmedlemmen i en multi-container-applikation, som har en andra adress på sitt privata nätverk.",
|
||||
"Knappen <strong>Uppdatera data</strong> läser installationsposten och avbildningsregistret igen. Alternativen för att söka efter eller registrera andra program visas inte: containern innehåller exakt det program som anges i posten."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/monitor-app-tab.png",
|
||||
"alt": "App-fliken för en OCI-behållare med applikationsversionen, avbildningen och förvaringslänken",
|
||||
"caption": "App-fliken för en container installerad av OCI Manager Apps."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Kontrollen körs en gång om dagen med uppdateringskontrollerna av Monitor, och <strong>Uppdatera data</strong> kör den omedelbart. En ny avbildning skickas som ett meddelande via de kanaler som konfigureras i <notificationsLink>Aviseringar</notificationsLink>. Uppdateringen tillämpas från fliken Uppdateringar."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "updates",
|
||||
"title": "Uppdateringar",
|
||||
"intro": "För en container installerad av OCI Manager Apps visar fliken Uppdateringar programmet med sin installerade avbildning och när registret publicerar en, den nya avbildningen, i samma format som alla andra program. Paket- och programuppdaterarna för en vanlig LXC visas inte.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Knapp",
|
||||
"Vad det öppnar"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Uppdatering",
|
||||
"Uppdateringen från <lifecycleLink>Hantera installerade OCI-program</lifecycleLink> för denna container i Monitors terminal. Den kan köras med eller utan ny avbildning; utan en ny avbildning ändras ingenting. I ett program med flera containrar uppdateras alla medlemmar."
|
||||
],
|
||||
[
|
||||
"Ändra",
|
||||
"Redigeraren för programmet (resurser, nätverk, vägar och GPU). I en multi-container-applikation lägger den till eller tar bort de extra vägarna och enheterna i applikationsbehållaren och i Immich ändrar det som kör igenkänning."
|
||||
],
|
||||
[
|
||||
"Återställ",
|
||||
"Ersätter uppdatering när en operation på containern avbröts och öppnar sin återhämtning."
|
||||
],
|
||||
[
|
||||
"Återställ (återställd container)",
|
||||
"Visas för en container återställd från säkerhetskopia som saknar kontrakt på denna värd, under <strong>Återställt OCI-program</strong>. Öppnar <lifecycleLink>återställningen</lifecycleLink> i Monitors terminal; Uppdatera och Ändra visas när den har registrerats."
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Externa förändringar, värdkataloger och multi-container-applikationer hanteras som i OCI-menyn. I en multi-container-applikation visas knapparna och alternativen endast på huvudbehållaren; de andra medlemmarna visar sin avbildning, en anteckning om att de uppdateras från huvudbehållaren och en knapp som öppnar den. När terminalen stängs läses avbildningen, posten och monteringarna igen."
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Alternativ",
|
||||
"Beteende"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Behåll säkerhetskopian som tas före uppdateringen",
|
||||
"Varje uppdatering backar upp containern för att återställa den om uppdateringen misslyckas. Med det här alternativet hålls samma säkerhetskopiering i den valda lagringen och visas bland säkerhetskopiorna i CT; på Proxmox Backup Server skrivs en säkerhetskopia före uppdateringen."
|
||||
],
|
||||
[
|
||||
"Schemalagda uppdateringar",
|
||||
"Avbildningen uppdateras vid vald tid bara om registret publicerar en ny, med möjlighet att vänta tills den är 1, 3, 7 eller 14 dagar gammal. En container med ändringar gjorda utanför ProxMenux hoppas över och rapporteras."
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "logs",
|
||||
"title": "Loggar",
|
||||
"intro": "Logs-fliken visas bara för containrar installerade av OCI manager Apps, mellan Monteringar och Säkerhetskopior. Den visar standardutdata och standardfel från avbildningens huvudprocess, samma utdata som <code>docker logs</code> visar för en Docker-container.",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"Utdata sparas på värden i <code>/var/log/proxmenux/oci/VMID.console.log</code> (läge 0600), från första starten och över omstarter, så att de kan läsas när containern är stoppad.",
|
||||
"Filen roteras på 10 MB och håller tre komprimerade kopior (<code>/etc/logrotate.d/proxmenux-oci</code>).",
|
||||
"Varje start av containern är markerad i utgången. Fliken visar utgången sedan den sista starten som standard; <strong>Full historia</strong> visar också de tidigare.",
|
||||
"När programmet tas bort tas även dess utdata bort.",
|
||||
"De senaste 100, 500 eller 1000 raderna visas. När containern körs följs nya rader i realtid; om du rullar upp pausas följningen och <strong>Följ</strong> återupptar den.",
|
||||
"Ett filter visar endast linjer som innehåller en text, och <strong>Ladda ner</strong> sparar linjerna laddade.",
|
||||
"Färgkoder tas bort och en rad som ritas om av en förloppsindikator visas i sitt slutliga tillstånd.",
|
||||
"Fliken läser filen varje gång den öppnas; den mellanlagras inte."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Inloggningsuppgifter vid första starten",
|
||||
"body": "Avbildningar som skriver ut ett genererat lösenord på sin första start lämnar det i denna utgång, som <code>docker logs</code> gör. Installatören läser den därifrån för att visa den i sin sammanfattning."
|
||||
}
|
||||
},
|
||||
{
|
||||
"figure": {
|
||||
"src": "/oci-manager/monitor-logs-tab.png",
|
||||
"alt": "Logs-fliken med konsolutgången av en OCI-behållare, linjeväljaren, filtret och följknappen",
|
||||
"caption": "Konsolutgång av en OCI-behållare."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "terminal",
|
||||
"title": "Proxmox VE konsol",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "En OCI-bild kör sin egen process som PID 1 och ingen inloggningstjänst, så standardkonsolen för en LXC skulle öppna en terminal där inget svarar. Containers installerade av OCI Manager Apps skapas med <code>cmode: shell</code>: Proxmox VE-konsolen öppnar ett skal med <code>lxc-attach</code>, motsvarande <code>docker exec</code>, med den löpande applikationen orörd."
|
||||
},
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"Skalet är det som <code>/etc/passwd</code> anger för root i avbildningen. Om root saknar skal eller avbildningen inte innehåller något behålls standardkonsolen.",
|
||||
"Skalet körs som root i containern, utan ett lösenord. Vem kan öppna det beslutas av <code>VM.Console</code> tillstånd av Proxmox VE.",
|
||||
"Monitorns terminal går in i containern med <code>pct enter</code>, som fungerar på samma sätt."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mounts",
|
||||
"title": "Monteringar",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "<mountsLink>Monteringar</mountsLink>-fliken listar containerns diskar och värdkataloger. Användningen av en containerdisk på blocklagring som LVM-thin läses från diskens filsystem, som bara är monterat inuti containern."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,404 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Multi-container applikationer | ProxMenux",
|
||||
"description": "Hur OCI Manager Apps förvandlar en applikation med sin databas och cache till samordnade inbyggda LXC:er: plan, privat nätverk, beroendehook, validering och transaktionsuppdateringar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Program med flera containrar",
|
||||
"description": "En applikation med sin databas, cache och andra tjänster blir flera samordnade inbyggda LXC:er, installerade och uppdaterade som en.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "intro",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "En applikation för användaren, flera LXCs för Proxmox VE",
|
||||
"body": "En multi-container definition är en post av katalogen. Installationsprogrammet skapar en inbyggd LXC per tjänst och håller sina beroenden explicit. Immich, Nextcloud, Paperless-ngx och Tandoor installeras på detta sätt."
|
||||
}
|
||||
},
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart LR\n C[\"Docker Compose\"] --> O[\"{{plan}}\"]\n O --> A[\"{{app}}<br/>{{appNet}}\"]\n O --> D[\"{{db}}<br/>{{private}}\"]\n O --> R[\"{{cache}}<br/>{{private}}\"]\n V1[(\"config\")] --> A\n V2[(\"database\")] --> D\n V3[(\"cache\")] --> R\n D --> A\n R --> A",
|
||||
"labels": {
|
||||
"plan": "Stackplan",
|
||||
"app": "Programmets LXC",
|
||||
"appNet": "LAN + privat",
|
||||
"db": "PostgreSQL LXC",
|
||||
"cache": "Valkey LXC",
|
||||
"private": "privat"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "plan",
|
||||
"title": "1. Planen, innan någon container finns",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Inget LXC skapas medan Compose definitionen tolkas. En komplett plan kommer först, med varje medlem, avbildning, VMID, nätverk, väg, hemlighet, ordning och hälsokontroll. Om planen inte är konsekvent startar installationen inte."
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Planelement",
|
||||
"Innehåll",
|
||||
"Kontrolleras innan du skapar något"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Medlemmar",
|
||||
"Huvudapplikation, databas, cache, maskininlärning och andra beroenden",
|
||||
"Unika VMID, kända roller och exakt en huvudmedlem"
|
||||
],
|
||||
[
|
||||
"Avbilder",
|
||||
"Rullande referens, arkitektur och fastställd digest för varje tjänst",
|
||||
"Alla finns, stöder arkitekturen och klarar OCI-integritetskontrollen"
|
||||
],
|
||||
[
|
||||
"Nätverk",
|
||||
"Privat bro, subnet, en fast adress per tjänst och LAN-åtkomst för huvudmedlemmen",
|
||||
"Ingen kollision med befintliga broar eller undernät och ingen upprepad adress"
|
||||
],
|
||||
[
|
||||
"Persistens",
|
||||
"Container diskar, värdkataloger, ägare och backup",
|
||||
"Inga överlappande vägar, lagring tillgängliga och deklarerade behörigheter"
|
||||
],
|
||||
[
|
||||
"Hemligheter",
|
||||
"Databaslösenord, applikationsnycklar och inledande inloggningsuppgifter",
|
||||
"Genereras en gång och ges endast till de medlemmar som använder dem"
|
||||
],
|
||||
[
|
||||
"Livscykel",
|
||||
"Startorder, stopporder och hälsokontroll per medlem",
|
||||
"Huvudapplikationen börjar sist och stoppar först"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "create",
|
||||
"title": "2. Skapa en medlem i taget",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Reservera varje VMID",
|
||||
"body": "Proxmox VE-inventeringen och instansregistret kontrolleras. En befintlig CT tas inte över och ett kontrakt som fortfarande tillhör en annan instans återanvänds inte."
|
||||
},
|
||||
{
|
||||
"title": "Förbered varje avbildning",
|
||||
"body": "Alla avbildningar löses, laddas ner och verifieras innan den första containern skapas."
|
||||
},
|
||||
{
|
||||
"title": "Skapa varje rootfs",
|
||||
"body": "Den officiella OCI-metadatan importeras och ProxMenux-instansidentiteten och medlemsrollen läggs till."
|
||||
},
|
||||
{
|
||||
"title": "Privat nätverk",
|
||||
"body": "En bro och undernät skapas och varje medlem får sin fasta adress; endast huvudmedlemmen får också LAN-gränssnittet."
|
||||
},
|
||||
{
|
||||
"title": "Persistens",
|
||||
"body": "Varje databas och konfiguration får sin egen containerdisk; endast data avsedda att delas använder värdkataloger."
|
||||
},
|
||||
{
|
||||
"title": "Miljö",
|
||||
"body": "Interna slutpunkter, delade hemligheter och servicevariabler skrivs. Programmet når sina beroenden på deras reserverade privata adresser."
|
||||
},
|
||||
{
|
||||
"title": "Post",
|
||||
"body": "Varje medlem registrerar sin inbyggda konfiguration, de rootfs-ändringar som uppdateringar måste återskapa och sin relation till stacken."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "checks",
|
||||
"title": "3. Börja och kontrollera varje container",
|
||||
"intro": "En skapad LXC betyder inte att tjänsten är redo. Beroendena startar i ordning och varje tjänst genomgår en egen kontroll.",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Tjänst",
|
||||
"Kontroll",
|
||||
"Vad det visar"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"PostgreSQL",
|
||||
"<code>pg_isready</code> i CT med förväntad värd, användare och databas",
|
||||
"Servern accepterar anslutningar för den konfigurerade databasen"
|
||||
],
|
||||
[
|
||||
"Redis / Valkey",
|
||||
"<code>redis-cli</code> eller <code>valkey-cli</code> <code>PING</code> mot sin privata adress",
|
||||
"Brokern lyssnar och svarar"
|
||||
],
|
||||
[
|
||||
"Immich maskininlärning",
|
||||
"HTTP <code>GET /ping</code>, plus en kontroll av den valda GPU runtime",
|
||||
"Tjänsten svarar och den begärda accelerationen har inte fallit tillbaka till CPU"
|
||||
],
|
||||
[
|
||||
"Nextcloud",
|
||||
"<code>GET /status.php</code> med <code>installed=true</code>, <code>maintenance=false</code> och <code>needsDbUpgrade=false</code>",
|
||||
"Initieringen är klar utan väntande migrering"
|
||||
],
|
||||
[
|
||||
"Paperless-ngx / Tandoor",
|
||||
"HTTP på LAN-adressen och tjänstens faktiska port",
|
||||
"Frontend och dess beroenden tillhandahåller programmet"
|
||||
],
|
||||
[
|
||||
"Huvudapplikation",
|
||||
"Slutpunkten för dess mall, till exempel <code>/api/server/ping</code> i Immich",
|
||||
"Hela stacken fungerar genom programmet som använder beroenden"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "Körs betyder inte att allt fungerar",
|
||||
"body": "Det löpande tillståndet säger bara att LXC-processen existerar. Där tjänsten erbjuder en bättre check, en exec eller HTTP check med en timeout används. Om en medlem slutar eller misslyckas med sin kontroll, deklareras inte stacken installerad."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook",
|
||||
"title": "4. Beroende hook",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Kroken är endast inställd på huvudbehållaren av en beroende stack. Proxmox VE håller manuset som en snippet och kör det som <code>hookscript</code> av den CT. Receptet är inte skrivet i manuset: det lever i ett separat privat kontrakt."
|
||||
},
|
||||
{
|
||||
"codeGrid": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Huvud CT konfiguration",
|
||||
"code": "hookscript: local:snippets/proxmenux-stack-dependencies.sh"
|
||||
},
|
||||
{
|
||||
"title": "Privat kontrakt (exempel)",
|
||||
"code": "/etc/pve/priv/proxmenux-stack-VMID.json\n{\n \"schema\": 1,\n \"stack\": \"immich\",\n \"dependencies\": [\n {\"vmid\": 107, \"label\": \"PostgreSQL\", \"healthcheck\": {...}},\n {\"vmid\": 108, \"label\": \"Valkey\", \"healthcheck\": {...}},\n {\"vmid\": 106, \"label\": \"Machine Learning\", \"healthcheck\": {...}}\n ]\n}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"snippet": {
|
||||
"summary": "Fullständig källa till proxmenux-stack-dependencies.sh",
|
||||
"pathCode": "local:snippets/proxmenux-stack-dependencies.sh",
|
||||
"snippetCode": "stackDependencyHook"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Skriptet är detsamma för varje stack. VMID, namn, checktyper och timeouts kommer från det privata kontraktet <code>/etc/pve/priv/proxmenux-stack-VMID.json</code> av varje stack."
|
||||
},
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Proxmox VE anropar pre-start",
|
||||
"body": "Innan CT startar körs kroken med sin VMID och livscykelfasen."
|
||||
},
|
||||
{
|
||||
"title": "Ett lås per stack",
|
||||
"body": "<code>flock</code> på <code>/run/lock/proxmenux-stack-VMID.lock</code> förhindrar två startsekvenser samtidigt."
|
||||
},
|
||||
{
|
||||
"title": "Kontraktet läses och valideras",
|
||||
"body": "Ett känt schema, numeriska beroenden, etiketter, en exec, http eller kör kontroll och en positiv timeout krävs."
|
||||
},
|
||||
{
|
||||
"title": "Beroende i ordning",
|
||||
"body": "Varje CT måste finnas; en stoppad startas och en som redan körs inte startas om."
|
||||
},
|
||||
{
|
||||
"title": "Vänta tills tjänsten är redo",
|
||||
"body": "Kontrollen körs vartannat sekund, och CT bekräftas också vara igång."
|
||||
},
|
||||
{
|
||||
"title": "Huvud CT startar",
|
||||
"body": "När alla beroenden är redo avslutas pre-start och Proxmox VE startar programmet."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Kroken stoppar inte beroenden",
|
||||
"body": "Faserna post-start, pre-stop och post-stop gör ingenting. Om huvud-CT:n stoppas fortsätter PostgreSQL, Redis, Valkey eller maskininlärningen att köras. Hooken ordnar starten; den gör inte flera LXC:er till en process."
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Typ",
|
||||
"Exempel",
|
||||
"Senare starter"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Beroende stack",
|
||||
"Immich, Nextcloud, applikation med PostgreSQL",
|
||||
"Huvud-CT:ns hook startar beroendena och väntar på dem"
|
||||
],
|
||||
[
|
||||
"Applikationssvit",
|
||||
"Arr-programsviten",
|
||||
"Ingen huvudmedlem: varje LXC följer sin egen <code>onboot</code>"
|
||||
],
|
||||
[
|
||||
"Enskilt program",
|
||||
"Jellyfin",
|
||||
"Proxmox VE startar den LXC:n direkt"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "stack-checks",
|
||||
"title": "5. Kontroller på stacken som helhet",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"Varje VMID finns, är unik och håller den förväntade instansidentiteten.",
|
||||
"Varje kontrakt tillhör samma stack och behåller sin roll och registrerade inbyggda konfiguration.",
|
||||
"Huvudmedlemmen är senast i <code>start_order</code> och först i <code>stop_order</code>.",
|
||||
"Ingen medlem, volym eller rootfs anpassning saknas.",
|
||||
"Kroken pekar på den officiella snippet, dess innehåll är oförändrat och dess kontrakt matchar stack receptet.",
|
||||
"De observerade avbildningarna och digestvärdena matchar de förberedda OCI-arkiven.",
|
||||
"Enheter, GPU-profiler, monteringar, hemligheter och ändpunkter matchar fortfarande kontrakten.",
|
||||
"När alla beroenden har klarat kontrollerna verifierar huvudprogrammets ändpunkt integrationen mellan medlemmarna."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "manage",
|
||||
"title": "Hantera en installerad stack",
|
||||
"intro": "Under <strong>Hantera installerade OCI-program</strong> leder varje medlem till hela stacken. Menyn erbjuder <strong>Uppdatera alla programmets containrar</strong>, <strong>Ändra extra sökvägar och enheter</strong>, <strong>Återskapa alla containrar med sparad konfiguration</strong> och <strong>Ta bort: radera programmet och dess containrar</strong>. Återskapa bygger om varje container från dess ursprungliga avbildning med sparad digest, utan att leta efter en nyare. Samma steg som vid en uppdatering används; alternativet erbjuds för stackar som kan uppdateras.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Alla medlemmar",
|
||||
"body": "Medlemmens kontrakt anger huvud-VMID och den fullständiga listan över medlemmar."
|
||||
},
|
||||
{
|
||||
"title": "Stacken är reproducerbar",
|
||||
"body": "Identiteter, kontrakt, krok, anpassningar och en samordnad replay för det receptet valideras."
|
||||
},
|
||||
{
|
||||
"title": "Avbildningar först",
|
||||
"body": "Programmet stoppas inte förrän varje digest har fastställts, hämtats och verifierats."
|
||||
},
|
||||
{
|
||||
"title": "Stoppa och backa upp setet",
|
||||
"body": "Verifierade inbyggda säkerhetskopior tas när stacken är stoppad, så att program och databaser motsvarar samma tidpunkt."
|
||||
},
|
||||
{
|
||||
"title": "Uppdatera och kontrollera varje medlem",
|
||||
"body": "Anpassning, nätverk, fästen, hemligheter och enheter appliceras igen innan hälsokontrollen av varje medlem."
|
||||
},
|
||||
{
|
||||
"title": "Publicera eller återställa allt",
|
||||
"body": "De nya kontrakten publiceras endast när varje medlem passerar. Om man misslyckas återställs varje medlem."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Ändra",
|
||||
"Vilka förändringar",
|
||||
"Vad som behålls"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"Extra sökvägar och enheter",
|
||||
"De läggs till eller tas bort från applikationsbehållaren, som startar om. Ingenting byggs om",
|
||||
"Uppgifterna för programmet, dess databas och andra containrar"
|
||||
],
|
||||
[
|
||||
"Vad som kör igenkänningen (Immich)",
|
||||
"Maskininlärningsbehållaren tar avbildningen och enheterna i CPU eller en GPU av värden. Hela programmet stoppas och uppdateras, som i en uppdatering",
|
||||
"Modellcachen, biblioteket och databasen. Om något misslyckas, återställs tidigare containrar och tidigare val"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutWarning": {
|
||||
"title": "En stack utan samordnad replay uppdateras inte",
|
||||
"body": "Om beredningen av en stack inte kan reproduceras vägras uppdateringen innan stacken stoppas. Applikationen fortsätter att fungera som det är."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "failure",
|
||||
"title": "6. När något misslyckas",
|
||||
"blocks": [
|
||||
{
|
||||
"p": "Under en installation stannar ett fel och tar bort de ofullständiga containrarna som skapats och den privata broen om operationen skapade den. En stack publiceras inte som giltig tills hela sekvensen avslutas."
|
||||
},
|
||||
{
|
||||
"p": "En uppdatering är transaktionell: alla avbildningar är förberedda först, sedan stacken stannar, varje medlem backas upp och backup verifieras, och först då är varje rootfs ersatt. Medlemmar startar en efter en med sin hälsokontroll; om man misslyckas återställs varje medlem från samma uppsättning säkerhetskopior, så databasen och programmet hör aldrig till olika ögonblick."
|
||||
},
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart LR\n P[\"{{prepare}}\"] --> S[\"{{stop}}\"]\n S --> B[\"{{backup}}\"]\n B --> R[\"{{replace}}\"]\n R --> H{\"{{healthy}}\"}\n H -- \"{{yes}}\" --> C[\"{{commit}}\"]\n H -- \"{{no}}\" --> X[\"{{rollback}}\"]",
|
||||
"labels": {
|
||||
"prepare": "Förbered varje avbildning",
|
||||
"stop": "Sluta, huvudmedlem först",
|
||||
"backup": "Verifierad säkerhetskopia av varje CT",
|
||||
"replace": "Ersätt rootfs",
|
||||
"healthy": "Fungerar alla?",
|
||||
"yes": "Ja",
|
||||
"no": "Nej",
|
||||
"commit": "Publicera avtal",
|
||||
"rollback": "Återställ varje medlem"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "not-assumed",
|
||||
"title": "Vad en stack inte inkluderar",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"En svit installerad i ett flöde, till exempel Arr-sviten, är inte en beroende stack: dess containrar har ingen startordning mellan dem.",
|
||||
"Det privata nätverket ersätter inte autentisering, TLS eller konfigurationen av varje applikation.",
|
||||
"Säkerhetskopieringen av en LXC innehåller inte bron, kroken eller kontrakten i resten av stacken.",
|
||||
"Prowlarr, Sonarr eller Radarr får inga indexerare, profiler eller leverantörer från ProxMenux."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,305 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Data, sökvägar och nätverk | ProxMenux",
|
||||
"description": "Så bevarar OCI manager Apps data i en OCI-container: containerdiskar, kataloger på värden, rclone-monteringar, adresser och privata nätverk."
|
||||
},
|
||||
"header": {
|
||||
"title": "Data, sökvägar och nätverk",
|
||||
"description": "Vad som finns i rootfs, vad som bevaras när det ersätts, hur data delas mellan containrar och hur varje container får sin adress.",
|
||||
"section": "OCI manager Apps"
|
||||
},
|
||||
"sections": [
|
||||
{
|
||||
"id": "intro",
|
||||
"blocks": [
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Beständig lagring bestäms innan LXC-containern skapas",
|
||||
"body": "Volymerna som deklareras av avbildningen och dess Compose-fil läses innan containern skapas. Varje sökväg som måste bevaras vid en uppdatering blir en monteringspunkt som är oberoende av rootfs. Därmed innehåller rootfs bara det som tillhör avbildningen och kan ersättas."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "questions",
|
||||
"title": "Vad installationsguiden frågar efter",
|
||||
"intro": "Mallen anger de sökvägar som programmet behöver. Var och en placeras på en containerdisk eller i en katalog på värden. Fler sökvägar kan läggas till före sammanfattningen.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Nödvändiga sökvägar",
|
||||
"body": "<code>/config</code>, <code>/data</code>, bibliotek, hämtningar och alla volymer som programmet deklarerar listas."
|
||||
},
|
||||
{
|
||||
"title": "Plats",
|
||||
"body": "Varje sökväg placeras på en containerdisk eller i en befintlig katalog på värden."
|
||||
},
|
||||
{
|
||||
"title": "Lagring och storlek",
|
||||
"body": "En containerdisk skapas på en Proxmox VE-lagring med den angivna storleken. Standardinstallationen använder <code>local-lvm</code>. Den avancerade installationen frågar efter lagring för varje sökväg strax före storleken och föreslår lagringen för rootfs. Disken visas som <code>vm-VMID-disk-N</code> och ansluts som <code>mpN</code>."
|
||||
},
|
||||
{
|
||||
"title": "Katalog på värden",
|
||||
"body": "Katalogen på värden anges med sin sökväg. Om den inte finns skapas den med den värdanvändare som containeranvändaren mappas till som ägare."
|
||||
},
|
||||
{
|
||||
"title": "Ytterligare sökvägar",
|
||||
"body": "Före installationen kan fler kopplingar läggas till mellan en sökväg eller volym på värden och en sökväg i containern."
|
||||
},
|
||||
{
|
||||
"title": "Sammanfattning",
|
||||
"body": "Hela sökvägsmappningen visas innan CT:n skapas och sparas i instanskontraktet."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "options",
|
||||
"title": "De två platserna för beständig lagring",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Egenskap",
|
||||
"Containerdisk",
|
||||
"Katalog på värden"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"I konfigurationen",
|
||||
"<code>mpN: STORAGE:vm-VMID-disk-N,mp=/config,backup=1,size=16G</code>",
|
||||
"<code>mpN: /mnt/oci-shared/media,mp=/data/media</code>"
|
||||
],
|
||||
[
|
||||
"Containerns säkerhetskopia (vzdump)",
|
||||
"Ingår med <code>backup=1</code>",
|
||||
"Ingår inte"
|
||||
],
|
||||
[
|
||||
"Storlek",
|
||||
"Fast; kan utökas genom att ändra monteringspunktens storlek",
|
||||
"Det lediga utrymmet i värdens filsystem eller dataset"
|
||||
],
|
||||
[
|
||||
"Andra containrar",
|
||||
"Monteras bara av den container som den tillhör",
|
||||
"Samma katalog kan monteras i flera containrar"
|
||||
],
|
||||
[
|
||||
"Ögonblicksbilder och återställning",
|
||||
"Hanteras av Proxmox VE tillsammans med CT:n",
|
||||
"Hanteras på värdens lagring"
|
||||
],
|
||||
[
|
||||
"När programmet tas bort",
|
||||
"Tas bort med containern",
|
||||
"Bevaras med sitt innehåll"
|
||||
],
|
||||
[
|
||||
"När CT:n flyttas till en annan nod",
|
||||
"Flyttas med CT:n",
|
||||
"Samma sökväg måste finnas på den andra noden"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Rootfs är reserverat för binärfilerna och avbildningens innehåll. En uppdatering eller ett återskapande ersätter det utan att röra någon av de två typerna av monteringspunkt."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "example",
|
||||
"title": "Exempel: en container med båda platserna",
|
||||
"blocks": [
|
||||
{
|
||||
"code": {
|
||||
"title": "Jellyfin installerat som CT 151 på local-lvm (utdrag)",
|
||||
"code": "rootfs: local-lvm:vm-151-disk-0,size=8G\n# Container disk, part of the CT backup\nmp0: local-lvm:vm-151-disk-1,mp=/config,backup=1,size=16G\n\n# Host directory, outside the CT backup\nmp1: /mnt/oci-shared/media,mp=/data/media"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "En uppdatering eller ett återskapande ersätter bara rootfs: <code>mp0</code> bevarar användare, bibliotek och inställningar, och <code>mp1</code> visar fortfarande samma medier. När CT:ns säkerhetskopia återställs kommer <code>/config</code> tillbaka. Mediekatalogen återställs vid behov från säkerhetskopian av värdens lagring."
|
||||
},
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{
|
||||
"label": "Kontrakt",
|
||||
"detail": "/config"
|
||||
},
|
||||
{
|
||||
"label": "Plats",
|
||||
"detail": "Containerdisk\neller katalog på värden"
|
||||
},
|
||||
{
|
||||
"label": "LXC",
|
||||
"detail": "Alltid /config\nför programmet"
|
||||
}
|
||||
],
|
||||
"caption": "Programmet ser sökvägen som avbildningen anger. Bara lagringsplatsen ändras."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "shared",
|
||||
"title": "En katalog på värden, flera containrar",
|
||||
"blocks": [
|
||||
{
|
||||
"mermaid": {
|
||||
"chartCode": "flowchart TB\n H[\"{{host}}<br/>/mnt/oci-shared/media\"]\n H --> Q[\"qBittorrent<br/>/data\"]\n H --> J[\"Jellyfin<br/>/data\"]\n H --> R[\"Radarr / Sonarr<br/>/data\"]\n Q -. \"{{config}}\" .-> QV[(\"/config mpN\")]\n J -. \"{{config}}\" .-> JV[(\"/config mpN\")]\n R -. \"{{config}}\" .-> RV[(\"/config mpN\")]",
|
||||
"labels": {
|
||||
"host": "Katalog på värden",
|
||||
"config": "Egen konfiguration"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Varje container sparar sin konfiguration på sin egen disk. Biblioteket eller hämtningarna ligger i en enda katalog på värden som monteras på samma interna sökväg i alla containrar. Därmed är sökvägen som ett program skriver till samma sökväg som ett annat läser från."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rclone",
|
||||
"title": "Molnlagring via programmet rclone",
|
||||
"intro": "Utöver installation erbjuder rclone-posten i katalogen <strong>Aktivera en montering i en befintlig OCI-container med rclone</strong>. En fjärrlagring som redan skapats och auktoriserats i rclones webbgränssnitt monteras och görs tillgänglig på värden. Andra containrar kan använda den som en katalog på värden.",
|
||||
"blocks": [
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{
|
||||
"title": "Container och fjärrlagring",
|
||||
"body": "VMID för rclone-containern, fjärrlagringens exakta namn och, valfritt, en sökväg i den."
|
||||
},
|
||||
{
|
||||
"title": "Monteringens namn och cache",
|
||||
"body": "Monteringens namn och VFS-cacheläget: <code>off</code>, <code>minimal</code>, <code>writes</code> eller <code>full</code> (standard)."
|
||||
},
|
||||
{
|
||||
"title": "Tillgängliga vyer",
|
||||
"body": "En gemensam rot, som standard <code>/mnt/oci-shared</code>, innehåller en läs- och skrivbar vy i <code>/mnt/oci-shared/remotes/NAME</code> och en skrivskyddad vy i <code>/mnt/oci-shared/remotes-ro/NAME</code>."
|
||||
},
|
||||
{
|
||||
"title": "Aktivering",
|
||||
"body": "Efter bekräftelsen stoppas CT:n, dess startkommando och ett Proxmox VE-hookscript konfigureras, och den startas igen. Åtgärden väntar tills båda vyerna är monterade på värden."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
"title": "Om monteringen inte aktiveras",
|
||||
"body": "Containerns tidigare konfiguration återställs och containern startas igen. En misslyckad aktivering lämnar därmed rclone som det var."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "network",
|
||||
"title": "Adresser och nätverk",
|
||||
"intro": "Ett program med en enda container behöver en adress. Ett program med flera containrar behöver också ett stabilt nätverk mellan sina delar.",
|
||||
"blocks": [
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "network",
|
||||
"title": "Program med en container",
|
||||
"body": "En nätverksbrygga väljs tillsammans med DHCP eller en fast adress i CIDR-format. LXC-containern har en egen adress och sammanfattningen visar tjänsternas fullständiga URL:er."
|
||||
},
|
||||
{
|
||||
"icon": "waypoints",
|
||||
"title": "Program med flera containrar",
|
||||
"body": "Ett ledigt subnät hittas och en beständig privat brygga skapas. Varje del – program, databas och cache – får en fast adress på nätverket."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{
|
||||
"label": "LAN",
|
||||
"detail": "Nåbar adress\nbara huvudtjänsten"
|
||||
},
|
||||
{
|
||||
"label": "Huvud-LXC",
|
||||
"detail": "Webb / API\nLAN + privat nätverk"
|
||||
},
|
||||
{
|
||||
"label": "Privat nätverk",
|
||||
"detail": "PostgreSQL · Valkey · ML\nfasta adresser"
|
||||
}
|
||||
],
|
||||
"caption": "Beroenden kommunicerar över det privata nätverket och har ingen adress på LAN:et."
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "Stackkontraktet sparar brygga, subnät, adresser och relationerna mellan tjänsterna. När programmet uppdateras återanvänds samma topologi för alla delar. ProxMenux Monitor öppnar huvudcontainern på dess LAN-adress, inte dess adress på det privata nätverket."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "ownership",
|
||||
"title": "Ägarskap för filer och kataloger",
|
||||
"blocks": [
|
||||
{
|
||||
"list": {
|
||||
"items": [
|
||||
"Nya kataloger skapas med de UID och GID som den oprivilegierade LXC-containern mappas till.",
|
||||
"Ägarskapet för befintliga kataloger ändras inte rekursivt.",
|
||||
"Socklar, systemfiler och känsliga sökvägar erbjuds inte som vanliga kataloger på värden."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "backup",
|
||||
"title": "Vad en säkerhetskopia av containern innehåller",
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": [
|
||||
"Del",
|
||||
"I CT:ns vzdump-säkerhetskopia",
|
||||
"Var det sparas"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"OCI-rootfs",
|
||||
"Ja",
|
||||
"I CT:ns säkerhetskopia; kan också återskapas från avbildningen och kontraktet"
|
||||
],
|
||||
[
|
||||
"Containerdisk med <code>backup=1</code>",
|
||||
"Ja",
|
||||
"CT:ns säkerhetskopia"
|
||||
],
|
||||
[
|
||||
"Katalog på värden",
|
||||
"Nej",
|
||||
"Säkerhetskopian av värdens lagring"
|
||||
],
|
||||
[
|
||||
"Instanskontrakt",
|
||||
"Ja, kopian som finns i CT:n",
|
||||
"<code>/.proxmenux/oci-record.json</code> i CT:n; ytterligare kopior på värden och i klustret sparas separat"
|
||||
],
|
||||
[
|
||||
"Program med flera containrar",
|
||||
"Varje del i sin egen säkerhetskopia",
|
||||
"Säkerhetskopiorna av alla delar samt stackkontraktet och dess nätverksbrygga på värden"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Automatiserat efterinstallationsskript | ProxMenux Dokumentation",
|
||||
"description": "ProxMenux automatiserade efterinstallationsskript kör 14 förvalda optimeringar anpassade efter hårdvaran på en ny Proxmox VE-värd. Det saknar checklista för funktionsval men kan be om bekräftelse för systemuppdateringen, prenumerationsvarningen, vissa Log2RAM-installationer och omstart. Återställbara konfigurationsändringar registreras.",
|
||||
"ogTitle": "Automatiserat efterinstallationsskript | ProxMenux Dokumentation",
|
||||
"ogDescription": "14 fasta, hårdvaruanpassade optimeringar för en ny Proxmox VE-värd, med bekräftelse för vissa åtgärder och registrering av återställbara ändringar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Automatiserat efterinstallationsskript",
|
||||
"description": "ProxMenux kör 14 förvalda grundoptimeringar utan checklista för funktionsval. Vissa åtgärder kräver bekräftelse. Återställbara konfigurationsändringar registreras för Avinstallera optimeringar; paketuppgraderingar beskrivs inte som återställbara.",
|
||||
"section": "Post-Install · Automatiserad"
|
||||
},
|
||||
"intro": {
|
||||
"title": "När du ska välja automatiserad efterinstallation",
|
||||
"body": "Kör detta på en nyinstallerad Proxmox-värd när du vill ha den vettiga baslinjen utan att ta beslut. Skriptet är idempotent - att köra det två gånger är säkert, det tillämpar bara samma konfigurationer igen. Opt-in-funktioner (Fastfetch, IOMMU, Ceph repo, HA, AMD-fixar...) är avsiktligt <strong>inte</strong> en del av denna väg; välj dem från <link>Anpassningsbara</link> om du behöver dem."
|
||||
},
|
||||
"applies": {
|
||||
"heading": "Vad skriptet tillämpar",
|
||||
"intro": "Optimeringarna tillämpas i exakt denna ordning. Kolumnen <em>Kategori</em> länkar till utförlig dokumentation om varje ändring i den anpassningsbara efterinstallationen.",
|
||||
"headerNum": "#",
|
||||
"headerTool": "Verktyg",
|
||||
"headerWhat": "Vad det gör",
|
||||
"headerCategory": "Kategori"
|
||||
},
|
||||
"optimizations": [
|
||||
{
|
||||
"tool": "APT-repositorier + full uppgradering",
|
||||
"what": "Inaktiverar företagsförråden pve-enterprise.sources och ceph.sources, skriver en no-subscription-källa för värdens Debian-kodnamn och kör sedan apt update && apt full-upgrade -y, Proxmox officiella uppgraderingskommando.",
|
||||
"category": "Grundinställningar",
|
||||
"categorySlug": "basic-settings"
|
||||
},
|
||||
{
|
||||
"tool": "Borttagning av prenumerationsvarning",
|
||||
"what": "Ändrar webbgränssnittet för att dölja varningen ”Ingen giltig prenumeration”. Ber om bekräftelse före ändringen; kan återställas via Avinstallera optimeringar.",
|
||||
"category": "Anpassning",
|
||||
"categorySlug": "customization"
|
||||
},
|
||||
{
|
||||
"tool": "Tvinga IPv4",
|
||||
"what": "Skriver /etc/apt/apt.conf.d/99-force-ipv4 så att apt bara använder IPv4 och kringgår instabila IPv6-anslutningar till speglar.",
|
||||
"category": "Nätverk",
|
||||
"categorySlug": "network"
|
||||
},
|
||||
{
|
||||
"tool": "Hoppa över språkpaket",
|
||||
"what": "Skriver /etc/apt/apt.conf.d/99-disable-translations för att sluta hämta index över översatta paketbeskrivningar och minska datamängden vid apt-uppdateringar.",
|
||||
"category": "Grundinställningar",
|
||||
"categorySlug": "basic-settings"
|
||||
},
|
||||
{
|
||||
"tool": "Öka systemgränserna",
|
||||
"what": "Höjer antalet inotify-bevakningar, nofile/nproc-gränser, kärnans nyckelringsgränser och fs.file-max via sysctl.d, limits.d, pam och systemd för värdar med många containrar.",
|
||||
"category": "System",
|
||||
"categorySlug": "system"
|
||||
},
|
||||
{
|
||||
"tool": "Minnesjustering",
|
||||
"what": "Sätter vm.swappiness=10, balanserade andelar ändrade men ännu inte skrivna minnessidor, vm.max_map_count=262144 och proaktiv minneskompaktering när det stöds. Kärnans policy för minnesöverallokering behåller Proxmox standardvärde.",
|
||||
"category": "System",
|
||||
"categorySlug": "system"
|
||||
},
|
||||
{
|
||||
"tool": "Beteende vid kärnpanik",
|
||||
"what": "Konfigurerar värden för att starta om 10 sekunder efter en panik / oops / hardlockup istället för att frysa på obestämd tid.",
|
||||
"category": "System",
|
||||
"categorySlug": "system"
|
||||
},
|
||||
{
|
||||
"tool": "Justering av nätverksstacken",
|
||||
"what": "TCP-buffertstorlekar, IPv4-härdning (omdirigeringar av, rp_filter=2, martian-loggning av), lokala portar 1024-65535, TCP MTU-avkänning, RFC 1337 och hjälpskriptet /usr/local/sbin/proxmenux-fwbr-tune kopplat till en engångsenhet i systemd och en udev-regel. Därmed återställs rp_filter=0 / log_martians=0 på fwbr*/fwln*/fwpr*/tap* varje gång Proxmox återskapar dem när VM:ar startas/stoppas, vid omstart eller livemigrering.",
|
||||
"category": "Nätverk",
|
||||
"categorySlug": "network"
|
||||
},
|
||||
{
|
||||
"tool": "Anpassning av bashrc (root)",
|
||||
"what": "Färgad PS1, vanliga alias (l/la/ll/ls/grep), tidsstämplad historik och inläsning av bash-completion, allt i ett avgränsat PMX_CORE_BASHRC-block som är lätt att ta bort.",
|
||||
"category": "Anpassning",
|
||||
"categorySlug": "customization"
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM (SSD-medveten, auto)",
|
||||
"what": "Minskar SSD-/NVMe-slitage genom att flytta /var/log till en tmpfs-ramdisk med regelbunden synkronisering till disk. Installation från ursprungsprojektet när rotdisken är SSD eller NVMe. Storlek efter värdens RAM (128M / 256M / 512M), periodisk synkronisering och skydd som rensar äldre journaler vid 80% fyllnadsgrad och trunkerar snabbt växande loggar vid 92% före skrivning. Anpassar journald-gränser till ramdisken. Detaljer på <link>Log2RAM</link>.",
|
||||
"category": "Lagring",
|
||||
"categorySlug": "storage"
|
||||
},
|
||||
{
|
||||
"tool": "ZFS autotrim (endast SSD)",
|
||||
"what": "Aktiverar zpool autotrim=on för varje ZFS-pool där alla vdevs är SSD- eller NVMe-enheter med TRIM-stöd. Kontrollerar /sys/block/[dev]/queue/rotational och discard_granularity. Pooler med hårddiskar hoppas över. Endast pooler som ProxMenux faktiskt ändrar registreras för återställning vid avinstallation; manuellt aktiverad autotrim lämnas oförändrad.",
|
||||
"category": "Lagring",
|
||||
"categorySlug": "storage"
|
||||
},
|
||||
{
|
||||
"tool": "Journald storleksgränser",
|
||||
"what": "Tvingar beständig lagring, begränsar SystemMaxUse=64M / RuntimeMaxUse=60M och aktiverar komprimering och info-loggning som Monitor behöver. Hoppas över när Log2RAM är aktivt eftersom det gör sin egen justering.",
|
||||
"category": "System",
|
||||
"categorySlug": "system"
|
||||
},
|
||||
{
|
||||
"tool": "Justering av logrotate",
|
||||
"what": "Sätter globalt daily följt av size 10M, sparar 7 rotationer och aktiverar komprimering och copytruncate. Det senare storleksvillkoret får företräde; enskilda loggregler kan åsidosätta det. Lämpligt för Log2RAM men frekvensen beror på regler och timer.",
|
||||
"category": "System",
|
||||
"categorySlug": "system"
|
||||
},
|
||||
{
|
||||
"tool": "Beständiga gränssnittsnamn",
|
||||
"what": "Skriver en <code>/etc/systemd/network/10-proxmenux-<iface>.link</code> per fysiskt nätverkskort med rubriken ”Managed by ProxMenux” som binder MAC till aktuellt namn. Namn som <code>eth0</code> / <code>enp…</code> förblir stabila efter omstarter och nya nätverkskort.",
|
||||
"category": "Nätverk",
|
||||
"categorySlug": "network"
|
||||
}
|
||||
],
|
||||
"hardwareTitle": "Hårdvaruanpassade standardvärden",
|
||||
"hardwareBody": "Skriptet läser värdhårdvaran innan inställningar tillämpas. Log2RAM är bara installerat på SSD / NVMe rotdiskar som standard (den frågar om upptäckten säger något annat). Log2RAM ramdiskstorlek väljs från totalt RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). De journald gränser matchas till ramdiskstorleken när Log2RAM är aktivt, för att undvika att fylla det.",
|
||||
"upgrade": {
|
||||
"heading": "Uppdatera och uppgradera systemet",
|
||||
"intro": "Det första steget i Automated-paketet är Proxmox-uppgraderingen. Proxmox egen uppgraderingsvägledning för en löpande värd (inom samma stora version) är att köra:",
|
||||
"after": "Denna rad är det officiella kommandot för aktuella Proxmox-versioner. Skriptet kör <strong>exakt</strong> detta och lägger till förrådsstädning och efterarbete enligt uppgraderingsguiden — samma steg som det fristående verktyget <link>Proxmox systemuppdatering</link>:",
|
||||
"items": [
|
||||
"Inaktiverar Enterprise-källorna <code>pve-enterprise.sources</code> / <code>ceph.sources</code>, tar bort äldre förrådsfiler och skriver en no-subscription-källa för värdens kodnamn.",
|
||||
"Kör uppgraderingen utan interaktion med <code>DEBIAN_FRONTEND=noninteractive</code> och <code>--force-confdef --force-confold</code>. Anpassade konfigurationsfiler behålls även när de har ändrats i ursprungsprojektet.",
|
||||
"Installerar viktiga Proxmox-paket om de saknas (<code>zfsutils-linux</code>, <code>proxmox-backup-restore-image</code>, <code>chrony</code>).",
|
||||
"Kontroll av LVM-metadatas rimlighet, <code>apt-get autoremove -y</code> + <code>apt-get autoclean -y</code> och omstartsfråga bara om kärnan faktiskt ändrats."
|
||||
],
|
||||
"sameTitle": "Samma uppdaterare, två ingångspunkter",
|
||||
"sameBody": "Automatiserad bunt och fristående <link>Proxmox System Update</link>-verktyget delar samma underliggande skript (<code>update-pve8.sh</code> / <code>update-pve9_2.sh</code>). Använd verktyget på egen hand när du bara vill uppgradera värden utan att tillämpa resten av optimeringarna."
|
||||
},
|
||||
"endResult": {
|
||||
"heading": "Förväntat slutresultat",
|
||||
"body": "När skriptet är klart visas ett framgångsmeddelande med utdata från varje steg och en fråga om omstart, eftersom vissa kärninställningar kräver det. Du kan skjuta upp omstarten; inställningarna gäller vid nästa start.",
|
||||
"imageAlt": "Automatiserat efterinstallationsskript — slutlig terminalutdata med varje optimering genomförd"
|
||||
},
|
||||
"notDoes": {
|
||||
"heading": "Vad skriptet INTE gör",
|
||||
"items": [
|
||||
"Automatisk tidszonsidentifiering (bortkommenterad i källskriptet; använd Anpassningsbar om du vill ha den).",
|
||||
"Inaktivera portmapper / rpcbind (se <secLink>Säkerhet</secLink>).",
|
||||
"Aktivera IOMMU / VFIO (se <virtLink>Virtualisering</virtLink>).",
|
||||
"Installera Fastfetch / Figurine / Ceph-förråd / HA / AMD-CPU-korrigeringar (se <optLink>Valfritt</optLink>).",
|
||||
"Installera pigz eller justera ZFS ARC (se <perfLink>Prestanda</perfLink> / <storLink>Lagring</storLink>)."
|
||||
]
|
||||
},
|
||||
"xshokTitle": "xshok-proxmox detektering",
|
||||
"xshokBody": "Om värden redan har kört skriptet <code>xshok-proxmox</code> upptäcker ProxMenux markörfilen och varnar innan du fortsätter. Vissa ändringar kan överlappa. Kompanjonskriptet är föråldrat; om du ändå fortsätter, läs <link>översikten</link> för sammanhang.",
|
||||
"revert": {
|
||||
"heading": "Revertering",
|
||||
"body": "Varje verktyg i tabellen registreras i <code>/usr/local/share/proxmenux/installed_tools.json</code>. Öppna <link>Avinstallera optimeringar</link> och välj vilka delar som ska återställas. Kopior av ändrade konfigurationsfiler ligger bredvid originalen med suffixet <code>.bak</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — Välj exakt vad du vill ha från samma katalog."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ valfria delar av ändringarna som gjorts här."
|
||||
},
|
||||
{
|
||||
"label": "Användbara systemkommandon",
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"tail": " — verifiera ändringarna (uptime, free, journalctl osv.)."
|
||||
},
|
||||
{
|
||||
"label": "Översikt över efterinstallation",
|
||||
"href": "/docs/post-install",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Grundläggande inställningar | ProxMenux Dokumentation",
|
||||
"description": "Grundalternativ efter installationen: byt till Proxmox paketförråd utan prenumeration och uppgradera, identifiera tidszon och aktivera NTP, hoppa över APT-översättningar och välj bland 25 vanliga systemverktyg att installera."
|
||||
},
|
||||
"header": {
|
||||
"title": "Post-Install: Grundläggande inställningar",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Fem grundval för en ny Proxmox-värd: byt till gemenskapens paketförråd utan prenumeration, uppgradera hela systemet, konfigurera tidszon och NTP automatiskt, stäng av APT-översättningar för att spara bandbredd och diskutrymme och välj bland 25 vanliga verktyg."
|
||||
},
|
||||
"upgrade": {
|
||||
"heading": "Uppdatera och uppgradera systemet",
|
||||
"intro": "Ställer om APT till det kostnadsfria förrådet <em>pve-no-subscription</em> i stället för Enterprise-förrådet som kräver prenumeration och uppgraderar hela systemet. Stegen beror på huvudversionen av Proxmox VE; ProxMenux identifierar den och startar rätt skript.",
|
||||
"headerVersion": "PVE-version",
|
||||
"headerScript": "Fördelningsskript",
|
||||
"headerCodename": "Debians kodnamn",
|
||||
"rows": [
|
||||
{
|
||||
"version": "9.x",
|
||||
"script": "update-pve9_2.sh",
|
||||
"codename": "trixie"
|
||||
},
|
||||
{
|
||||
"version": "8.x",
|
||||
"script": "update-pve8.sh",
|
||||
"codename": "bookworm"
|
||||
}
|
||||
],
|
||||
"officialTitle": "Den officiella Proxmox rekommendation",
|
||||
"officialBody": "Proxmox egna uppgraderingsvägledning är att köra i denna exakta ordning:",
|
||||
"officialOutro": "Detta är det vanliga kommandot för uppdateringar inom den installerade huvudversionen av Proxmox VE. Kontrollera paketförråden och de föreslagna paketändringarna <em>innan</em> du fortsätter. Byte av huvudversion kräver den officiella migreringsproceduren.",
|
||||
"doesTitle": "Vad ProxMenux-alternativet gör - verifierad mot skriptet",
|
||||
"doesIntro": "ProxMenux-uppdateraren kör apt-kommandona ovan och lägger till för- och eftersteg som du annars behöver hantera manuellt. Punkterna nedan motsvarar vad versionsskriptet gör; se <link>Proxmox systemuppdatering</link> för hela beskrivningen.",
|
||||
"doesItems": [
|
||||
"<strong>Städa först i paketarkiven.</strong> Inaktiverar Enterprise-källorna <code>pve-enterprise.sources</code> / <code>ceph.sources</code>, tar bort gamla arkivfiler från tidigare PVE-versioner och skriver en ren <code>proxmox.sources</code> som pekar på den kostnadsfria kanalen <em>pve-no-subscription</em>, anpassad till värdens Debian-kodnamn: trixie för PVE 9, bookworm för PVE 8.",
|
||||
"<strong>Skriver om Debians paketförråd</strong> med main / updates / security och <code>non-free-firmware</code>, så att firmwarevarningen vid uppgradering försvinner.",
|
||||
"<strong>Kör den officiella uppgraderingen.</strong> <code>apt-get update</code> följt av <code>apt full-upgrade -y</code> (PVE 9) eller <code>apt dist-upgrade -y</code> (PVE 8), båda utan interaktion med <code>--force-confdef --force-confold</code> för att behålla anpassade konfigurationsfiler.",
|
||||
"<strong>Installerar viktiga paket</strong> om de saknas: <code>zfsutils-linux</code>, <code>proxmox-backup-restore-image</code>, <code>chrony</code>.",
|
||||
"<strong>Kontrollerar LVM-metadata.</strong> Söker efter VM:ar med diskgenomkoppling som kan ha lämnat gamla fysiska volymhuvuden på rådiskar. Varnar vid avvikelser utan automatisk åtgärd.",
|
||||
"<strong>Rengör efteråt:</strong> <code>apt-get autoremove -y</code> + <code>apt-get autoclean -y</code>, sedan uppmanar till en omstart om kärnan uppdaterades eller <code>/var/run/reboot-required</code> är närvarande."
|
||||
],
|
||||
"shortTitle": "Kort sagt",
|
||||
"shortBody": "Alternativet kör rekommenderade <code>apt update && apt full-upgrade -y</code>, lägger till förråds- och efterstädning som beskrivs i den officiella guiden och frågar om omstart i slutet. Se <link>Proxmox systemuppdatering</link> för hela diagrammet — samma uppdaterare finns separat i huvudmenyn.",
|
||||
"subTitle": "Tillämpa inte på en värd med prenumeration",
|
||||
"subBody": "Om du har Proxmox-prenumeration och vill behålla Enterprise-förråden ska du hoppa över alternativet. Det stänger av Enterprise och byter till gemenskapskanalen. Paketuppgradering och omskrivning av förråd kan inte återställas via Avinstallera optimeringar; konfigurera förråden uttryckligen om du senare vill byta kanal.",
|
||||
"safetyTitle": "Säkerhetskontroll efter uppdatering",
|
||||
"safetyBody": "Efter uppgraderingen söker skriptet efter gamla metadata för fysiska volymer (PV) på diskar. Det kan uppstå när en VM med diskgenomkoppling skriver LVM-huvuden på en rådisk. Misstänkta fynd ger en varning med förslaget att granska med <code>pvs</code>. Inga automatiska åtgärder utförs."
|
||||
},
|
||||
"time": {
|
||||
"heading": "Synkronisera tiden automatiskt",
|
||||
"intro": "Hämtar serverns offentliga IP-adress med <code>dig myip.opendns.com @resolver1.opendns.com</code>, frågar sedan <code>ipapi.co/'{'ip'}'/timezone</code> efter motsvarande IANA-tidszon och ställer in den med <code>timedatectl set-timezone</code>. Aktiverar slutligen NTP med <code>timedatectl set-ntp true</code>.",
|
||||
"depTitle": "Beroende på två externa tjänster",
|
||||
"depBody": "Uppslagningen är beroende av att OpenDNS och <code>ipapi.co</code> kan nås och att deras svar är korrekta. Om du kör Proxmox bakom en VPN eller på en VLAN som avgår från en annan region, kan den automatiska upptäckta tidszonen vara fel. I det fallet hoppa över detta alternativ och ställa in tidszonen för hand:",
|
||||
"revertTitle": "Kan återställas från Avinstallera-menyn",
|
||||
"revertBody": "<link>Avinstallera optimeringar</link> återställer tidszonen till UTC, ett säkert standardval. NTP förblir aktivt: klockan fortsätter synkroniseras och visar UTC tills du ställer in en annan tidszon."
|
||||
},
|
||||
"languages": {
|
||||
"heading": "Hoppa över nedladdning av ytterligare språk",
|
||||
"intro": "Vid <code>apt update</code> kan APT hämta översatta paketbeskrivningar utöver huvudmetadata. Alternativet stänger av dessa för att spara bandbredd och diskutrymme. Först <strong>kontrollerar ProxMenux att värdens regionala inställning är genererad</strong>: läser <code>/etc/default/locale</code> eller <code>/etc/environment</code>, lägger till i <code>/etc/locale.gen</code> vid behov och kör <code>locale-gen</code>. Därmed behålls skalets regionala inställning.",
|
||||
"writtenTitle": "Vad blir skrivet",
|
||||
"revertTitle": "Kan återställas från Avinstallera-menyn",
|
||||
"revertBody": "Ta bort <code>/etc/apt/apt.conf.d/99-disable-translations</code> (antingen manuellt eller från avinstallationsmenyn) återställer standardbeteendet och APT hämtar språkfiler igen."
|
||||
},
|
||||
"utilities": {
|
||||
"heading": "Installera vanliga systemverktyg",
|
||||
"intro": "Öppnar en grupperad lista med <strong>25 utvalda verktyg</strong>. Välj och bekräfta; ProxMenux installerar dem via <code>apt</code>, kontrollerar resultatet och visar en sammanfattning.",
|
||||
"imageAlt": "Val av ProxMenux-systemverktyg: mellanslag väljer och Enter bekräftar",
|
||||
"reuseTitle": "Samma lista återanvänds någon annanstans",
|
||||
"reuseBody": "Katalogen med 25 verktyg definieras centralt: <code>PROXMENUX_UTILS</code> i <code>scripts/global/utils-install-functions.sh</code>. Menyn <em>Hjälpprogram och verktyg → Systemverktyg</em> erbjuder samma lista för senare installationer utan att köra efterinstallationen igen.",
|
||||
"listTitle": "Vad finns i listan",
|
||||
"groups": [
|
||||
{
|
||||
"group": "Systemövervakare",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "htop",
|
||||
"desc": "Interaktiv processvisare"
|
||||
},
|
||||
{
|
||||
"pkg": "btop",
|
||||
"desc": "Modern resursövervakning (CPU, RAM, diskar, nät, processer)"
|
||||
},
|
||||
{
|
||||
"pkg": "s-tui",
|
||||
"desc": "Terminalgränssnitt för CPU-belastningstest och övervakning"
|
||||
},
|
||||
{
|
||||
"pkg": "iftop",
|
||||
"desc": "Bandbreddsanvändning per anslutning i realtid"
|
||||
},
|
||||
{
|
||||
"pkg": "iotop",
|
||||
"desc": "Disk-I/O per process"
|
||||
},
|
||||
{
|
||||
"pkg": "iptraf-ng",
|
||||
"desc": "Interaktiv IP-/LAN-övervakare"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Nätverk",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "iperf3",
|
||||
"desc": "Mät maximal uppnåelig bandbredd mellan värdar"
|
||||
},
|
||||
{
|
||||
"pkg": "net-tools",
|
||||
"desc": "Äldre verktyg (ifconfig, netstat, route). Fortfarande användbara för snabba kontroller"
|
||||
},
|
||||
{
|
||||
"pkg": "ipset",
|
||||
"desc": "Hantera stora IP-uppsättningar i kärnan - användbart med iptables/nftables-regler."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Nedladdning och arkivering",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "axel",
|
||||
"desc": "Resurssnål accelerator för parallella nedladdningar"
|
||||
},
|
||||
{
|
||||
"pkg": "aria2",
|
||||
"desc": "Nedladdare med flera källor och protokoll (HTTP, FTP, BitTorrent, Metalink)"
|
||||
},
|
||||
{
|
||||
"pkg": "unzip",
|
||||
"desc": "Extrahera ZIP arkiv"
|
||||
},
|
||||
{
|
||||
"pkg": "zip",
|
||||
"desc": "Skapa ZIP-arkiv"
|
||||
},
|
||||
{
|
||||
"pkg": "cabextract",
|
||||
"desc": "Packa upp Microsoft CAB-arkiv (användbart för Windows-ISO-filer)"
|
||||
},
|
||||
{
|
||||
"pkg": "wimtools",
|
||||
"desc": "Hantera Windows WIM-avbildningar (extrahera, dela, montera, tillämpa)"
|
||||
},
|
||||
{
|
||||
"pkg": "genisoimage",
|
||||
"desc": "Skapa ISO 9660-avbildningar från en katalog"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Text och filer",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "dos2unix",
|
||||
"desc": "Konvertera CRLF-radslut (Windows) till LF (Unix)"
|
||||
},
|
||||
{
|
||||
"pkg": "grc",
|
||||
"desc": "Allmän färgmarkering: ger syntaxmarkering åt utdata från ping, traceroute, dig, tail med flera"
|
||||
},
|
||||
{
|
||||
"pkg": "plocate",
|
||||
"desc": "Snabb filsökning (indexerad). Kör `updatedb` efter installation för att bygga indexet."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Fjärråtkomst och sessioner",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "sshpass",
|
||||
"desc": "SSH-lösenordsautentisering utan interaktion (användbart för skript, inte för dagligt bruk)"
|
||||
},
|
||||
{
|
||||
"pkg": "tmux",
|
||||
"desc": "Terminalmultiplexer: koppla loss sessioner, dela paneler och behåll sessioner efter frånkoppling"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Hårdvara och låg nivå",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "msr-tools",
|
||||
"desc": "Läs/skriv CPU-modellspecifika register (rdmsr, wrmsr)"
|
||||
},
|
||||
{
|
||||
"pkg": "intel-gpu-tools",
|
||||
"desc": "Intel GPU diagnostiska verktyg inklusive `intel_gpu_top`"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Virtualisering",
|
||||
"items": [
|
||||
{
|
||||
"pkg": "libguestfs-tools",
|
||||
"desc": "Inspektera och ändra VM-diskavbildningar (virt-ls, virt-cat, guestmount…)"
|
||||
},
|
||||
{
|
||||
"pkg": "chntpw",
|
||||
"desc": "Redigera Windows SAM - användbar för återställning av lösenord på Windows VMs du ärver"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"actionTitle": "Några exempel i praktiken",
|
||||
"noBulkTitle": "Endast ProxMenux-installerade verktyg tas bort",
|
||||
"noBulkBody": "ProxMenux registrerar bara valda paket som inte redan var installerade. Avinstallera optimeringar rensar bort dessa paket och behåller tidigare installerade paket. APT-uppgraderingar har ingen säker atomär återställning: avinstallation av verktygen återställer inte systemuppgraderingen."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Proxmox systemuppdatering",
|
||||
"href": "/docs/utils/system-update",
|
||||
"tail": " — Kör cykeln apt update + dist-upgrade igen vid behov."
|
||||
},
|
||||
{
|
||||
"label": "Installationsprogram för systemverktyg",
|
||||
"href": "/docs/utils/system-utils",
|
||||
"tail": " - installera (eller installera om) verktyg individuellt efter post-install."
|
||||
},
|
||||
{
|
||||
"label": "Uppdateringar och paketkommandon",
|
||||
"href": "/docs/help-info/update-commands",
|
||||
"tail": " — apt-referens för skalet."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Anpassningsbart skript efter installation | ProxMenux-dokumentation",
|
||||
"description": "Välj exakt vilka optimeringar ProxMenux ska tillämpa på en Proxmox VE-värd. 10 kategorier, cirka 35 verktyg och ett gränssnitt med kryssrutor. Innehåller allt i det automatiserade skriptet samt uttryckligen valbara funktioner (IOMMU, Fastfetch, Figurine, Ceph, HA, AMD-korrigeringar …).",
|
||||
"ogTitle": "Anpassningsbart skript efter installation | ProxMenux-dokumentation",
|
||||
"ogDescription": "10 kategorier, ~ 35 individuella optimeringar. Välj exakt vad du vill ha på en Proxmox VE värd. Reversibla förändringar spåras."
|
||||
},
|
||||
"header": {
|
||||
"title": "Anpassningsbart skript efter installation",
|
||||
"description": "Välj exakt vilka optimeringar som ska tillämpas på en Proxmox VE-värd. ProxMenux grupperar cirka 35 verktyg i 10 kategorier i en gemensam dialog med kryssrutor. Samma motor som Automatiserad, med full kontroll över vad som tillämpas.",
|
||||
"section": "Efter installation · Anpassningsbar"
|
||||
},
|
||||
"intro": {
|
||||
"title": "När du ska välja Anpassningsbar",
|
||||
"body": "Välj detta om du redan vet vilka justeringar du vill ha eller undvika på värden. En lista med kryssrutor grupperade per kategori låter dig välja, avmarkera och kombinera optimeringar. Poster kan tillämpas igen senare och återställbara ändringar registreras för <link>Avinstallera optimeringar</link>. Paketuppgraderingar presenteras inte som återställbara."
|
||||
},
|
||||
"compare": {
|
||||
"heading": "Jämförelse med Automatiserad",
|
||||
"body": "Anpassningsbar innehåller hela det <link>automatiserade skriptet</link>: samma 14 grundoptimeringar och en lång lista med valbara alternativ som Automatiserad avsiktligt hoppar över. De passar viss maskinvara (AMD-korrigeringar), viss hosting (OVH RTM) eller särskilda arbetslaster (IOMMU/VFIO, Ceph-förråd, hög tillgänglighet, Fastfetch, Figurine, justering av ZFS ARC, pigz, automatiska ZFS-ögonblicksbilder, hastighetsgränser för vzdump, Open vSwitch, TCP BBR …)."
|
||||
},
|
||||
"categoriesSection": {
|
||||
"heading": "De 10 kategorierna",
|
||||
"body": "Det anpassningsbara skriptet grupperar optimeringarna i 10 kategorier i en gemensam dialog med kryssrutor. Varje kategori har en egen dokumentationssida — öppna ett kort nedan för motivering, standardvärden och verifieringssteg för varje alternativ."
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"name": "Grundinställningar",
|
||||
"description": "Rensar APT-källorna, kör den officiella Proxmox-uppgraderingen och ställer in tidszon, regionala inställningar och vanliga verktyg. Grunden för alla andra kategorier."
|
||||
},
|
||||
{
|
||||
"name": "System",
|
||||
"description": "Justerar loggning och kärngränser för en värd med många VM:ar och containrar. Omfattar journald, logrotate, sysctl (minne och filgränser), beteende vid kärnpanik och snabba omstarter."
|
||||
},
|
||||
{
|
||||
"name": "Virtualisering",
|
||||
"description": "Förbereder värden för avancerad virtualisering. Installerar rätt gästagent när Proxmox självt körs i en VM som stöds och aktiverar IOMMU/VFIO för PCI-genomkoppling av GPU:er, styrenheter och TPU:er."
|
||||
},
|
||||
{
|
||||
"name": "Nätverk",
|
||||
"description": "Stärker och justerar värdens nätverksstack. Tvingar APT över IPv4, tillämpar säkerhetsinställningar i sysctl och TCP-buffertjusteringar, erbjuder Open vSwitch, TCP BBR och TCP Fast Open och binder beständiga gränssnittsnamn till MAC-adresser."
|
||||
},
|
||||
{
|
||||
"name": "Lagring",
|
||||
"description": "Konfigurerar Proxmox vanliga lagringsdelsystem: ZFS ARC-storlek, automatiska ZFS-ögonblicksbilder, ZFS autotrim för SSD-/NVMe-pooler och hastighetsgränser för vzdump så att diskar inte mättas under säkerhetskopiering."
|
||||
},
|
||||
{
|
||||
"name": "Säkerhet",
|
||||
"description": "Minskar attackytan som exponeras som standard. Inaktiverar RPC-tjänsterna portmapper/rpcbind som Proxmox inte behöver men lämnar lyssnande."
|
||||
},
|
||||
{
|
||||
"name": "Anpassning",
|
||||
"description": "Ändrar värdens utseende och skalmiljö: färger och alias i bashrc, MOTD-banner och borttagning av prenumerationsmeddelandet i webbgränssnittet."
|
||||
},
|
||||
{
|
||||
"name": "Övervakning",
|
||||
"description": "Integrerar värden med OVH Real-Time Monitoring. Installerar RTM bara om ProxMenux identifierar en OVH-server; på andra värdar ändrar alternativet ingenting."
|
||||
},
|
||||
{
|
||||
"name": "Prestanda",
|
||||
"description": "Snabbar upp komprimering vid säkerhetskopiering och överföringar genom att ersätta gzip med dess parallella motsvarighet pigz."
|
||||
},
|
||||
{
|
||||
"name": "Valfritt",
|
||||
"description": "Specialiserade alternativ som inte alla värdar behöver: AMD CPU-korrigeringar, Fastfetch-banner, 3D-värdnamn med Figurine, uppdatering av PVE Appliance Manager-indexet, Ceph-förråd, tjänster för hög tillgänglighet, Log2RAM för mindre SSD-slitage och en ZRAM-swapprofil."
|
||||
}
|
||||
],
|
||||
"mixTip": {
|
||||
"title": "Kombinera Automatiserad och Anpassningsbar",
|
||||
"body": "Ett vanligt upplägg: kör först <strong>Automatiserad</strong> för rimliga grundinställningar, öppna sedan <strong>Anpassningsbar</strong> och välj bara de extra verktyg du behöver, till exempel IOMMU för GPU-genomkoppling. Ändringarna registreras separat; Avinstallera visar allt du har tillämpat oavsett vilken väg som lade till det."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Automatiserad efterinstallation",
|
||||
"href": "/docs/post-install/automated",
|
||||
"tail": " — rimliga standardvärden som tillämpas utan frågor."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ valda ändringar utan rester."
|
||||
},
|
||||
{
|
||||
"label": "Grundinställningar",
|
||||
"href": "/docs/post-install/basic-settings",
|
||||
"tail": " — repos, tid, språk, verktyg."
|
||||
},
|
||||
{
|
||||
"label": "Virtualisering",
|
||||
"href": "/docs/post-install/virtualization",
|
||||
"tail": " — IOMMU + VFIO för genomkoppling."
|
||||
},
|
||||
{
|
||||
"label": "Säkerhet",
|
||||
"href": "/docs/post-install/security",
|
||||
"tailRich": " · <storageLink>Lagring</storageLink> · <networkLink>Nätverk</networkLink> · <customLink>Anpassning</customLink> - andra kategorier."
|
||||
},
|
||||
{
|
||||
"label": "Översikt efter installation",
|
||||
"href": "/docs/post-install",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Anpassning | ProxMenux Dokumentation",
|
||||
"description": "Anpassningar i ProxMenux anpassningsbara skript efter installationen: färgad bash-prompt med användbara alias, ProxMenux-banner i MOTD och möjlighet att ta bort prenumerationsmeddelandet från Proxmox webbgränssnitt."
|
||||
},
|
||||
"header": {
|
||||
"title": "Efter installationen: anpassning",
|
||||
"description": "Visuella och praktiska justeringar för Proxmox-värden. De gör skalet trevligare och döljer prenumerationsmeddelandet i webbgränssnittet. Bashrc, MOTD och bannern registreras och kan återställas via Avinstallera.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Tre små oberoende alternativ: en <strong>färgad bash-prompt med alias</strong> för root-skalet, en enradig <strong>MOTD-banner</strong> vid SSH-inloggning och borttagning av <strong>popupen ”Ingen giltig prenumeration”</strong> som Proxmox visar vid varje webbinloggning."
|
||||
},
|
||||
"bashrc": {
|
||||
"heading": "Anpassa bashrc",
|
||||
"intro": "Lägger in ett förberett block i <code>/root/.bashrc</code> med färgad prompt, tidsstämplad historik, vanliga <code>ls</code>-/<code>grep</code>-alias och en <code>source</code> för bash-komplettering. Gör arbetet via SSH trevligare och visar tydligt vilken värd du är på när många flikar är öppna.",
|
||||
"writesTitle": "Vad ProxMenux lägger till .bashrc",
|
||||
"writesOutro": "Blocket avgränsas av markörerna <code>PMX_CORE_BASHRC</code>. Om skriptet körs igen ersätts det gamla blocket utan att dupliceras. Ursprunglig <code>.bashrc</code> säkerhetskopieras en gång till <code>/root/.bashrc.bak</code>, och raden <code>source /root/.bashrc</code> läggs till i <code>/root/.bash_profile</code> så att prompten även gäller i inloggningsskal, till exempel efter <code>su -</code>.",
|
||||
"rootTitle": "Gäller för root endast",
|
||||
"rootBody": "Anpassningen gäller root-kontots skal. Andra användare på värden behåller sina egna standardinställningar. Om du bara administrerar Proxmox via webben och aldrig använder skalet kan du hoppa över detta rent estetiska alternativ."
|
||||
},
|
||||
"motd": {
|
||||
"heading": "Konfigurera anpassad MOTD-banner",
|
||||
"intro": "Lägger <em>\"This system is optimised by: ProxMenux\"</em> först i <code>/etc/motd</code>, meddelandet efter lyckad SSH-inloggning ovanför prompten och före <code>update-motd</code>-skript. Ofarligt och rent informativt — en snabb synlig bekräftelse på att ProxMenux har tillämpats på värden.",
|
||||
"writesTitle": "Vad ProxMenux skriver",
|
||||
"writesOutro": "Vid första tillämpningen registrerar ProxMenux om <code>/etc/motd</code> fanns och sparar originalinnehållet under <code>/usr/local/share/proxmenux</code>. Åtgärden är idempotent: om markörraden redan finns läggs inget till. Äldre installationer med <code>/etc/motd.bak</code> migreras till samma återställbara tillstånd."
|
||||
},
|
||||
"banner": {
|
||||
"heading": "Ta bort prenumerationsbanner",
|
||||
"intro": "Tar bort dialogen <em>”Du har ingen giltig prenumeration för den här servern”</em> som visas vid varje webbinloggning i Proxmox utan Enterprise-prenumeration. ProxMenux tar hänsyn till versionen och väljer rätt skript för huvudversionernas olika gränssnittspaket.",
|
||||
"versionTitle": "Val av skript efter version",
|
||||
"versionItems": [
|
||||
"<strong>PVE 9.x</strong> → kör <code>remove-banner-pve-v3.sh</code>, som patchar både <code>proxmoxlib.js</code> för datorgränssnittet och det nya Yew-baserade mobilgränssnittet.",
|
||||
"<strong>PVE 8.x</strong> → kör <code>remove-banner-pve8.sh</code>, endast för datorgränssnittet."
|
||||
],
|
||||
"versionOutro": "Före patchningen säkerhetskopierar ProxMenux originalfilerna för JS/mallar till <code>/usr/local/share/proxmenux/backups/</code> med tidsstämpel. Avinstallationen återställer filerna därifrån eller installerar om Proxmox gränssnittspaket om säkerhetskopian saknas eller är skadad.",
|
||||
"breakTitle": "Kan bryta efter Proxmox uppdateringar",
|
||||
"breakBody": "Proxmox gränssnittsuppdateringar skriver regelbundet över <code>proxmoxlib.js</code>, vilket kan få meddelandet att återkomma. Du kan tillämpa alternativet igen eller acceptera meddelandet tills dess. ProxMenux installerar också en APT-hook som patchar om efter paketuppgraderingar — se <link>Avinstallera optimeringar</link> för hur den tas bort.",
|
||||
"legalTitle": "Juridisk anmärkning (alltid värt att upprepa)",
|
||||
"legalBody": "Alternativet döljer bara gränssnittets meddelande. Det ger <strong>inte</strong> Enterprise-support eller åtkomst till Enterprise-förrådet och ändrar inte programvarans licens. Proxmox VE ges ut under GNU AGPLv3. En prenumeration stödjer projektet och ger åtkomst till Enterprise-uppdateringskanalen; välj rätt supportnivå för din miljö."
|
||||
},
|
||||
"verify": {
|
||||
"heading": "Verifiering",
|
||||
"intro": "Efter att ha applicerat alla tre:",
|
||||
"reversibleTitle": "Alla tre anpassningsförändringar spåras",
|
||||
"reversibleBody": "<link>Avinstallera optimeringar</link> återställer <code>/root/.bashrc</code>, återför MOTD till exakt innehåll före ProxMenux eller tar bort filen om den inte fanns tidigare och återställer patchade gränssnittsfiler från säkerhetskopian eller installerar om berörda paket vid behov."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Valfritt",
|
||||
"href": "/docs/post-install/optional",
|
||||
"tail": " — Fastfetch och Figurine (andra visuella anpassningar)."
|
||||
},
|
||||
{
|
||||
"label": "Visa versionsinformation",
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"tail": " — bekräftar att anpassningarna spåras som installerade."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ bashrc, motd och prenumerationsmeddelandet."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Skript efter installation av Proxmox VE — Automatiserat och anpassningsbart | ProxMenux",
|
||||
"description": "Översikt över ProxMenux skript efter installation av Proxmox VE. Automatiserad tillämpar rimliga standardvärden utan frågor, Anpassningsbar låter dig välja exakt vad du vill i 10 kategorier och Avinstallera optimeringar återställer de ändringar som stöder återställning.",
|
||||
"ogTitle": "Skript efter installation av Proxmox VE — Automatiserat och anpassningsbart",
|
||||
"ogDescription": "Tillämpa vanliga optimeringar efter installation av Proxmox VE i 10 kategorier — automatiskt eller efter eget val, med återställbara alternativ.",
|
||||
"twitterTitle": "Skript efter installation av Proxmox VE | ProxMenux",
|
||||
"twitterDescription": "Automatiserade och anpassningsbara optimeringar efter installationen för Proxmox VE med reversibla alternativ."
|
||||
},
|
||||
"header": {
|
||||
"title": "Skript efter installationen",
|
||||
"description": "Konfigurera en nyinstallerad Proxmox VE-värd med ProxMenux optimeringar efter installationen. Tillämpa grundinställningarna automatiskt, välj enskilda alternativ, uppdatera installerade funktioner eller återställ de ändringar som stöds. Paketuppgraderingar presenteras inte som återställbara.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad menyn används till",
|
||||
"body": "Efter installation av Proxmox VE finns dussintals små ändringar som gör värden snabbare och lättare att underhålla: paketförråd utan prenumeration, rimliga journald-gränser, lämpliga TCP-buffertar, SSD-vänlig logglagring, förbättringar i bashrc med mera. ProxMenux automatiserar dem och registrerar de konfigurationsändringar som stöder återställning."
|
||||
},
|
||||
"openingMenu": {
|
||||
"heading": "Öppna menyn",
|
||||
"body": "Välj <strong>Inställningar efter installation av Proxmox</strong> i ProxMenux huvudmeny. Då visas följande:",
|
||||
"imageAlt": "Menyn för skript efter installation: Automatiserad, Anpassningsbar, det villkorliga alternativet Tillämpa tillgängliga uppdateringar (bara vid väntande uppdateringar) och Avinstallera, följt av Gemenskapens skript"
|
||||
},
|
||||
"threeWays": {
|
||||
"heading": "Fyra sätt att tillämpa optimeringar",
|
||||
"body": "De fyra ProxMenux-alternativen delar samma kod och register över installerade verktyg men ger olika grad av kontroll. <em>Tillämpa tillgängliga uppdateringar</em> visas bara när minst en installerad optimering har en nyare version på disk än den registrerade. På en nykonfigurerad värd är alternativet dolt."
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"title": "Automatiserad",
|
||||
"description": "Ett utvalt paket med 14 säkra och alltid användbara optimeringar som tillämpas i följd utan frågor. Ett bra standardval för de flesta användare.",
|
||||
"bullets": [
|
||||
"Paketförråd utan prenumeration + systemuppgradering",
|
||||
"Minne, kärna, nätverkstuning",
|
||||
"Log2RAM (auto-detekterad på SSD/NVMe)",
|
||||
"Journald + logrotate storleksgränser",
|
||||
"Beständiga gränssnittsnamn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Anpassningsbar",
|
||||
"description": "Cirka 35 enskilda optimeringar i 10 kategorier. Du väljer exakt vilka som ska tillämpas. Samma motor som Automatiserad, med full kontroll.",
|
||||
"bullets": [
|
||||
"Gränssnitt med kryssrutor per kategori",
|
||||
"Innehåller allt i Automatiserad samt alternativ som väljs uttryckligen (IOMMU, Fastfetch, Figurine, Ceph, HA, AMD-korrigeringar …)",
|
||||
"Kör så många gånger du vill — ändringarna är idempotenta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Tillämpa tillgängliga uppdateringar",
|
||||
"description": "När en optimering efter installationen (Log2Ram, minnesinställningar, Logrotate …) har en nyare version på disk än den registrerade visar alternativet bara de ändrade optimeringarna. Motsvarande funktion körs igen och registret uppdateras — inget annat ändras.",
|
||||
"bullets": [
|
||||
"Uttryckligt val per optimering, endast de ändrade",
|
||||
"Samma väljare finns i Monitors instrumentpanel",
|
||||
"En samlad avisering när nya uppdateringar blir tillgängliga"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Avinstallera optimeringar",
|
||||
"description": "Återställbara ändringar som stöds registreras i ett JSON-register och kopplas till en återställningsfunktion. Åtgärder utan säker återställning, som fullständig paketuppgradering, är avsiktligt uteslutna.",
|
||||
"bullets": [
|
||||
"Detekterar tidigare tillämpade optimeringar automatiskt",
|
||||
"Väljer rätt återställning för varje post: återställer från en .bak-säkerhetskopia om en sådan togs, tar bort konfigurationsfragmentet i sysctl.d om inget behövde säkerhetskopieras eller installerar om originalpaketet med --force-confnew (till exempel för prenumerationsbannern)",
|
||||
"Fråga om omstart vid behov (VFIO, beständiga namn osv.)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"whichTitle": "Vilken ska du välja?",
|
||||
"whichBody": "För en ny Proxmox-installation med rimliga grundinställningar utan beslut: <autoLink><strong>Automatiserad</strong></autoLink>. Om du redan vet vilka justeringar du vill ha eller undvika: <customLink><strong>Anpassningsbar</strong></customLink>. För att bara uppdatera en tillämpad optimering som har en nyare version på disk: <updatesLink><strong>Tillämpa tillgängliga uppdateringar</strong></updatesLink>. För att återställa tidigare ändringar: <uninstallLink><strong>Avinstallera optimeringar</strong></uninstallLink>. Du kan kombinera dem: börja med Automatiserad, lägg sedan till Fastfetch eller IOMMU med Anpassningsbar och återställ enskilda poster senare.",
|
||||
"mixing": {
|
||||
"heading": "Blanda med andra post-install skript",
|
||||
"stackTitle": "Kombinera inte flera skript efter installationen",
|
||||
"stackBody": "Kör flera post-install-skript på samma värd kan orsaka duplicerade konfigurationsfiler, motstridiga sysctl-poster eller värre - brutna nätverk efter omstart. Om du redan tillämpade <strong>Helper-Scripts Post Install</strong>, kan vissa ProxMenux optimeringar överlappa med vad den redan konfigurerade. Håll dig till ett post-install-verktyg per värd.",
|
||||
"xshokTitle": "xshok-proxmox: föråldrad",
|
||||
"xshokBody": "Tidigare versioner av ProxMenux hänvisade till <a>xshok-proxmox</a> som ett kompletterande verktyg efter installationen. Projektet är nu föråldrat och erbjuds inte längre i ProxMenux. Om en tidigare körning lämnat markörer på värden upptäcker ProxMenux dem fortfarande och varnar dig. Det är dock inget som bör installeras tillsammans med ProxMenux i dag."
|
||||
},
|
||||
"community": {
|
||||
"heading": "Gemenskapens skript",
|
||||
"body": "Menyn erbjuder också två tredjepartsskript från projektet <a>community-scripts</a>: <em>Proxmox VE Post Install</em> och <em>Proxmox VE Microcode</em>. Startskripten laddar ned och kör originalförfattarnas skript via <code>wget | bash</code>. De underhålls inte av ProxMenux. Se <link>Externa paketförråd</link> för detaljer och frågor om tillit innan du kör dem."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Proxmox systemuppdatering",
|
||||
"href": "/docs/utils/system-update",
|
||||
"tail": " — håller värden uppdaterad efter grundkonfigurationen."
|
||||
},
|
||||
{
|
||||
"label": "Säkerhet",
|
||||
"href": "/docs/security",
|
||||
"tail": " — Fail2Ban + Lynis utöver säkerhetsförstärkningen efter installationen."
|
||||
},
|
||||
{
|
||||
"label": "Visa versionsinformation",
|
||||
"href": "/docs/settings/show-version-information",
|
||||
"tail": " - se vilka postinstallationskomponenter som spåras som installerade."
|
||||
},
|
||||
{
|
||||
"label": "Uppdateringar och paketkommandon",
|
||||
"href": "/docs/help-info/update-commands",
|
||||
"tail": " — referens för apt / pveupgrade."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Övervakning | ProxMenux Dokumentation",
|
||||
"description": "Övervakningsalternativ i ProxMenux anpassningsbara skript efter installationen. För närvarande ett alternativ: installera OVH Real-Time Monitoring (RTM), som bara aktiveras om värden identifieras som en OVH-server."
|
||||
},
|
||||
"header": {
|
||||
"title": "Efter installationen: övervakning",
|
||||
"description": "Övervakningsalternativ i det anpassningsbara skriptet efter installationen. Denna lilla leverantörsspecifika kategori installerar OVH Real-Time Monitoring-agenten på dedikerade OVH-servrar och gör ingenting på andra värdar.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Avsiktligt begränsad omfattning",
|
||||
"body": "Övervakningen efter installationen begränsas till <strong>en leverantörsspecifik agent</strong>. Allmänna verktyg (Prometheus, Grafana, node_exporter) ingår inte här eftersom arkitekturval om separat värd, datalagring och aviseringsmål inte passar i ett steg med ett klick. ProxMenux Monitor, som ingår i ProxMenux, fyller större delen av den rollen utan extern agent."
|
||||
},
|
||||
"ovh": {
|
||||
"heading": "Installera OVH Real-Time Monitoring (RTM)",
|
||||
"intro": "Om din Proxmox värd är en dedikerad server hyrd från <a>OVHcloud</a>, kan du aktivera RTM för att exponera hårdvara telemetri (CPU temperatur, PSU status, disk SMART, RAID controller state, etc.) till OVH kontrollpanelen. Detta är samma agent OVH använder för sin egen \"Server Monitoring\" -funktion.",
|
||||
"decisionsTitle": "Hur ProxMenux bestämmer",
|
||||
"decisionsItems": [
|
||||
"Hämtar värdens offentliga IP-adress med <code>curl ipinfo.io/ip</code>.",
|
||||
"Slår upp internetleverantören som äger adressen med en <code>whois</code>-fråga till <code>v4.whois.cymru.com</code>.",
|
||||
"Om resultatet nämner OVH hämtas <code>last-public-ovh-infra-yak.snap.mirrors.ovh.net/yak/archives/apply.sh</code> och skickas till <code>bash</code> med Puppet-manifestet för RTM v2.",
|
||||
"Om resultatet <em>inte</em> nämner OVH, är ingenting installerat. Alternativet är en no-op."
|
||||
],
|
||||
"remoteTitle": "Fjärrskript skickas via pipe till bash",
|
||||
"remoteBody": "Installationen kör <code>wget -qO - https://…apply.sh | bash</code>. Om OVH-spegeln komprometteras körs skriptet som root på värden. Väg tilliten till OVH:s spegelkedja mot nyttan av övervakningen innan du aktiverar alternativet. För de flesta hemmaservrar och användare utanför OVH bör det vara avstängt.",
|
||||
"noOpTitle": "Endast aktivera om värden faktiskt är på OVH",
|
||||
"noOpBody": "Alternativet ändrar ingenting på servrar utanför OVH, så att kryssa i det på en hemmaserver med Proxmox orsakar inga problem. Skriptet skriver <em>”Inte en OVH-server, hoppar över RTM-installationen”</em> och avslutas utan att installera paket.",
|
||||
"runsTitle": "Vad ProxMenux kör",
|
||||
"verifyTitle": "Verifiering",
|
||||
"verifyBody": "På en riktig OVH-värd bör du efter omstart se <a>RTM-panelen</a> i OVH Manager med aktuella data från värden. På Proxmox-sidan är RTM-insamlaren en systemd-tjänst — kontrollera den direkt:",
|
||||
"troubleTitle": "Felsökning",
|
||||
"revertTitle": "Ta bort RTM via Avinstallera-menyn",
|
||||
"revertBody": "När RTM är registrerat som installerat erbjuder Avinstallera optimeringar alternativet OVH Real-Time Monitoring. Det kör <code>apt-get purge -y ''ovh-rtm*'' ''rtm'' ''rtm-*''</code>, raderar /etc/rtm och markerar RTM som avinstallerat. Puppet-filer kan fortfarande behöva städas manuellt; granska RTM-specifika manifest i <code>/etc/puppet/</code>. På en värd utanför OVH installerades inga RTM-paket, så inget behöver tas bort."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "ProxMenux Monitor",
|
||||
"href": "/docs/settings/proxmenux-monitor",
|
||||
"tail": " — lokal webbpanel för värden som fungerar hos alla leverantörer, inte bara OVH."
|
||||
},
|
||||
{
|
||||
"label": "Användbara systemkommandon",
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"tail": " — referens för övervakning av den lokala värden."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Nätverk | ProxMenux Dokumentation",
|
||||
"description": "Nätverksalternativ i ProxMenux anpassningsbara efterinstallation: tvinga APT över IPv4, tillämpa en utvald sysctl-profil, installera Open vSwitch, aktivera TCP BBR + Fast Open och bind gränssnittsnamn till deras MAC-adresser."
|
||||
},
|
||||
"header": {
|
||||
"title": "Post-Install: Nätverk",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Fem oberoende nätverksalternativ. Två är enkla (<strong>APT över IPv4</strong>, <strong>installation av Open vSwitch</strong>), två justerar TCP-beteendet (<strong>sysctl-profil för nätverk</strong>, <strong>BBR + Fast Open</strong>) och ett löser ett vanligt driftproblem: <strong>fasta gränssnittsnamn</strong> så att ett nytt nätverkskort eller en BIOS-uppdatering inte byter namn från <code>enp3s0</code> till <code>enp4s0</code> och bryter bryggorna."
|
||||
},
|
||||
"ipv4": {
|
||||
"heading": "Tvinga APT att använda IPv4",
|
||||
"intro": "Skriver <code>Acquire::ForceIPv4 \"true\";</code> till <code>/etc/apt/apt.conf.d/99-force-ipv4</code>. APT vägrar sedan att använda IPv6 för nedladdning av paket, även om värden har IPv6-anslutning.",
|
||||
"tipTitle": "Vem har nytta av det",
|
||||
"tipBody": "Användbart när IPv6-anslutningen är instabil, långsammare än IPv4 eller Debian-/Proxmox-spegeln ibland inte fungerar över IPv6. Ofarligt på värdar utan IPv6. I ett fungerande dual stack-nät ger det förutsägbart beteende: apt överraskar dig inte med en IPv6-timeout."
|
||||
},
|
||||
"sysctl": {
|
||||
"heading": "Tillämpa nätverksoptimeringar",
|
||||
"intro": "Skriver en utvald sysctl-profil till <code>/etc/sysctl.d/99-network.conf</code> med kärnans socketbuffertar, ICMP-härdning, grundläggande skydd mot adressförfalskning och TCP-buffertstorlekar för en hypervisor med många samtidiga flöden.",
|
||||
"tunedTitle": "Vad som justeras",
|
||||
"headerArea": "Område",
|
||||
"headerSettings": "Nyckelinställningar",
|
||||
"rows": [
|
||||
{
|
||||
"area": "Kärnans socketbuffertar",
|
||||
"settings": "<code>netdev_max_backlog=8192</code>, <code>rmem_max=16M</code>, <code>wmem_max=16M</code>, <code>somaxconn=8192</code>"
|
||||
},
|
||||
{
|
||||
"area": "ICMP-härdning",
|
||||
"settings": "<code>icmp_echo_ignore_broadcasts=1</code>, <code>icmp_ignore_bogus_error_responses=1</code>"
|
||||
},
|
||||
{
|
||||
"area": "Routningssäkerhet",
|
||||
"settings": "<code>accept_redirects=0</code>, <code>accept_source_route=0</code>, <code>secure_redirects=0</code>, <code>send_redirects=0</code>, <code>log_martians=0</code>"
|
||||
},
|
||||
{
|
||||
"area": "Filter för omvänd väg",
|
||||
"settings": "<code>rp_filter=2</code> (löst läge, se nedan)"
|
||||
},
|
||||
{
|
||||
"area": "TCP",
|
||||
"settings": "<code>tcp_mtu_probing=1</code>, <code>tcp_rfc1337=1</code>, <code>tcp_sack=1</code>, <code>tcp_rmem=8K/87K/16M</code>, <code>tcp_wmem=8K/64K/16M</code>"
|
||||
},
|
||||
{
|
||||
"area": "Portar",
|
||||
"settings": "<code>ip_local_port_range=1024 65535</code> (pool av tillfälliga portar)"
|
||||
},
|
||||
{
|
||||
"area": "Unix-socketar",
|
||||
"settings": "<code>net.unix.max_dgram_qlen=4096</code>"
|
||||
}
|
||||
],
|
||||
"sourceOutro": "Lägger även till <code>source /etc/network/interfaces.d/*</code> i <code>/etc/network/interfaces</code> om det saknas. Det är standardpraxis för att kunna lägga till separata konfigurationsfiler för gränssnitt utan att redigera huvudfilen.",
|
||||
"fwbrTitle": "Automatisk justering av virtuella brandväggsbryggor",
|
||||
"fwbrBody": "Utöver sysctl-profilen installerar ProxMenux hjälpskriptet <code>/usr/local/sbin/proxmenux-fwbr-tune</code>, som sätter <code>rp_filter=0</code> och <code>log_martians=0</code> på gränssnitten <code>fwbr*</code> / <code>fwln*</code> / <code>fwpr*</code> / <code>tap*</code> som Proxmox skapar för VM:ar och containrar. Engångsenheten <code>proxmenux-fwbr-tune.service</code> kör det vid uppstart och regeln <code>/etc/udev/rules.d/99-zz-proxmenux-fwbr-tune.rules</code> vid varje <code>net add</code>-händelse med dessa prefix. Därmed täcks gränssnitt som återskapas när VM:ar startas/stoppas, vid omstart och vid livemigrering. Skriptet körs även direkt efter installationen för att behandla befintliga gränssnitt.",
|
||||
"rpFilterTitle": "Varför rp_filter=2 (löst) i stället för 1 (strikt)",
|
||||
"rpFilterBody": "Strikt filtrering av omvänd väg kastar paket vars källa skulle nås via ett <em>annat</em> gränssnitt. Det är en lämplig standard för en klient, men kan störa en Proxmox-värd där VM-trafik ofta kommer in via en brygga och lämnar via en upplänk med asymmetriska rutter. <code>rp_filter=2</code> (löst) kastar bara paket med källor som verkligen saknar en rutt. Det är en praktisk avvägning: något sämre upptäckt av lokal IP-adressförfalskning för att hålla VM-nätet fungerande."
|
||||
},
|
||||
"ovs": {
|
||||
"heading": "Installera Open vSwitch",
|
||||
"intro": "Installerar <code>openvswitch-switch</code> + <code>openvswitch-common</code>. Paketen lägger till OVS som alternativ till de Linux-bryggor Proxmox använder som standard. Installationen ändrar ingen nätverkskonfiguration: befintliga <code>vmbrX</code>-bryggor fungerar vidare. När du <em>skapar</em> en ny brygga i Proxmox kan du välja OVS i listan över typer.",
|
||||
"tipTitle": "När OVS är meningsfullt",
|
||||
"tipBody": "Överväg OVS om du behöver <strong>VLAN-trunkning med VLAN-ID:n som inte är sammanhängande</strong>, <strong>LACP med LLDP i vissa lägen</strong>, <strong>detaljerad programmering av trafikflöden</strong> (OpenFlow) eller samverkan med SDN-styrenheter. För ett hemlabb med några VLAN och en enda LACP-upplänk är Linux-bryggor + <code>vmbrX.VID</code> enklare och fullt tillräckliga.",
|
||||
"revertTitle": "Kan återställas via avinstallationsmenyn",
|
||||
"revertBody": "OVS registreras. <link>Avinstallera optimeringar</link> kör <code>apt purge</code> för <code>openvswitch-switch</code> och <code>openvswitch-common</code>. Migrera OVS-bryggor till Linux-bryggor <em>innan</em> du avinstallerar, annars förlorar VM:arna på dem nätverket vid nästa start. Manuell motsvarighet:"
|
||||
},
|
||||
"bbr": {
|
||||
"heading": "Aktivera TCP BBR + TCP Fast Open",
|
||||
"intro": "Skriver två sysctl-filer och laddar om dem. BBR ersätter CUBIC med Googles bandbreddsbaserade överbelastningsalgoritm, som hanterar länkar med hög kapacitet och latens samt paketförluster bättre. TCP Fast Open (TFO) sparar en tur och retur vid upprepade TCP-anslutningar genom att skicka data i SYN.",
|
||||
"verifyTitle": "Verifiering",
|
||||
"impactTitle": "Effekten beror på arbetsbelastningen",
|
||||
"impactBody": "BBR gör mest nytta på länkar med hög latens eller paketförluster (replikering mellan kontinenter, VPN-tunnlar, mobila klienter). I ett LAN mellan två datorer på samma switch ligger skillnaden ofta inom mätbruset. TFO hjälper främst korta, upprepade HTTP-anslutningar.",
|
||||
"revertTitle": "Kan återställas via avinstallationsmenyn",
|
||||
"revertBody": "BBR/TFO registreras. <link>Avinstallera optimeringar</link> tar bort de två sysctl-filerna (<code>/etc/sysctl.d/99-kernel-bbr.conf</code> och <code>99-tcp-fastopen.conf</code>) och laddar om återstående konfiguration. Att ta bort en fil återställer inte dess aktiva kärnvärden. Standardvärden som <code>cubic</code> och <code>tcp_fastopen=1</code> återkommer efter omstart om ingen annan konfiguration åsidosätter dem. Manuell motsvarighet:"
|
||||
},
|
||||
"names": {
|
||||
"heading": "Beständiga gränssnittsnamn",
|
||||
"intro": "Går igenom värdens fysiska nätverkskort och hoppar över loopback, Docker-veth, bryggor, TAP-enheter, bond-gränssnitt, Cilium, ZeroTier och WireGuard. Skriver en systemd-<code>.link</code>-fil som binder det aktuella namnet till den aktuella MAC-adressen. MAC-bindningen får då företräde framför kärnans namnlogik.",
|
||||
"whyTitle": "Varför detta är viktigt",
|
||||
"whyItems": [
|
||||
"Lägga till eller ta bort PCIe-enheter kan flytta bussnumret, vända <code>enp3s0</code> till <code>enp4s0</code>. Om din <code>/etc/network/interfaces</code> refererar till det gamla namnet försvinner bron på omstart.",
|
||||
"BIOS / firmwareuppdateringar ändrar ibland hur enheterna räknas, med samma effekt.",
|
||||
"Hjälpskriptet skriver <code>.link</code>-filer för fysiska nätverkskort, även bond-portar, med den MAC som sysfs rapporterar just då; för bond-portar kan det vara bondens gemensamma MAC, så kontrollera deras namn efter en omstart. Det hoppar över virtuella gränssnitt som LXC-veth och bond-enheterna själva; det löser inte kapplöpningar vid namngivning av virtuella <code>hotplug</code>-kort."
|
||||
],
|
||||
"writtenTitle": "Vad blir skrivet",
|
||||
"writtenIntro": "En fil per fysisk NIC, på <code>/etc/systemd/network/10-proxmenux-<iface>.link</code>. Varje fil börjar med rubriken <code># Managed by ProxMenux — do not edit</code> så att ProxMenux kan skilja sina egna filer från användar- eller pakettillhandahållna <code>.link</code>-filer.",
|
||||
"writtenOutro": "<code>.link</code>-filer från andra paket eller användaren bevaras; endast filer med ProxMenux-rubriken hanteras. Vid nästa körning stämmer funktionen av sina filer: den läser <code>MACAddress=</code> från varje <code>10-proxmenux-*.link</code> och tar bort filer vars MAC inte längre finns under <code>/sys/class/net/</code>. Filer från äldre ProxMenux-versioner i formatet <code>10-<iface>.link</code> migreras automatiskt första gången.",
|
||||
"pveTitle": "PVE 9 vs PVE 8",
|
||||
"pveBody": "Skriptet använder systemd-<code>.link</code>-filer för beständiga namn. På Proxmox VE 9 laddar det även om udev-regler efter skrivningen, så att ett redan fastlåst nätverkskort som ansluts eller identifieras på nytt kan använda sin regel utan omstart. Kontrollera befintliga gränssnitt efter en omstart på både PVE 8 och PVE 9. Detta ersätter inte <code>ifupdown2</code> på värden. Skriptet sätter omstartsflaggan i båda fallen så att den anpassningsbara efterinstallationen frågar om omstart.",
|
||||
"reviewTitle": "Granska befintlig /etc/network/interfaces först",
|
||||
"reviewBody": "Om äldre konfiguration i <code>/etc/network/interfaces</code> använder nätverkskortsnamn som kärnan skapar automatiskt är det rätt att binda <em>dagens</em> namn. Om du redan har anpassat konfigurationen till vissa namn, kontrollera före omstart att bindningarna matchar vad interfaces-filen förväntar sig.",
|
||||
"revertTitle": "Kan återställas via avinstallationsmenyn",
|
||||
"revertBody": "<link>Avinstallera optimeringar</link> tar bara bort <code>10-proxmenux-*.link</code>-filer med ProxMenux-rubriken från <code>/etc/systemd/network/</code>. Alla <code>.link</code>-filer från användaren eller andra paket bevaras. Namngivningen återgår till systemd-standard vid nästa omstart."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Nätverkshantering",
|
||||
"href": "/docs/network",
|
||||
"tail": " — diagnostik, broanalys, guidade reparationer."
|
||||
},
|
||||
{
|
||||
"label": "Beständiga gränssnittsnamn",
|
||||
"href": "/docs/network/persistent-names",
|
||||
"tail": " — samma funktion som eget menyval senare; använd ett av alternativen, inte båda."
|
||||
},
|
||||
{
|
||||
"label": "Referens för nätverkskommandon",
|
||||
"href": "/docs/help-info/network-commands",
|
||||
"tail": " — ip, ss, ethtool, sysctl."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " - återställ någon av dessa nätverksändringar."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "ProxMenux Post-Install: Valfria inställningar",
|
||||
"description": "Guide till valfria inställningar i ProxMenux efterinstallationsskript för ytterligare funktioner och optimeringar i Proxmox VE.",
|
||||
"ogTitle": "ProxMenux Post-Install: Valfria inställningar",
|
||||
"ogDescription": "Guide till valfria inställningar i ProxMenux efterinstallationsskript för ytterligare funktioner och optimeringar i Proxmox VE.",
|
||||
"ogImageAlt": "ProxMenux Post-Install valfria inställningar"
|
||||
},
|
||||
"title": "Valfria inställningar",
|
||||
"intro": "Kategorin <strong>Valfria inställningar</strong> erbjuder ytterligare funktioner och optimeringar för Proxmox VE. De är inte nödvändiga men kan förbättra systemets möjligheter i vissa situationer.",
|
||||
"available": "Tillgängliga valfria funktioner",
|
||||
"stepLabel": "Steg",
|
||||
"ceph": {
|
||||
"title": "Lägg till det senaste Ceph-stödet",
|
||||
"intro": "Detta alternativ installerar den senaste Ceph lagringssystem stöd för Proxmox VE. Ceph är ett distribuerat lagringssystem som ger hög prestanda, tillförlitlighet och skalbarhet.",
|
||||
"doesIntro": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Lägger till Ceph-förvaret i ditt system",
|
||||
"Uppdaterar paketlistor",
|
||||
"Installerar Ceph-paket med kommandot pveceph install",
|
||||
"Verifierar installationen"
|
||||
],
|
||||
"howUse": "Hur man använder: Efter installationen kan du konfigurera och hantera Ceph lagring med Proxmox VE webbgränssnitt eller kommandoradsverktyg.",
|
||||
"automates": "Denna justering automatiserar följande kommandon:"
|
||||
},
|
||||
"amd": {
|
||||
"title": "Tillämpa korrigeringar för AMD-processorer",
|
||||
"intro": "Detta alternativ tillämpar specifika fixar för AMD EPYC och Ryzen CPU för att förbättra stabiliteten och kompatibiliteten.",
|
||||
"doesIntro": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Detekterar om en AMD EPYC eller Ryzen CPU är närvarande",
|
||||
"Tillämpar kärnparametern idle=nomwait för att förebygga slumpmässiga krascher (via /etc/kernel/cmdline på systemd-boot-värdar eller /etc/default/grub på GRUB-värdar, med en .bak-kopia av originalet).",
|
||||
"Konfigurerar KVM för att ignorera vissa MSR (Model Specific Register) för bättre Windows-gästkompatibilitet"
|
||||
],
|
||||
"howUse": "Hur man använder: Dessa korrigeringar tillämpas automatiskt och kräver en omstart av systemet för att träda i kraft.",
|
||||
"automates": "Denna justering automatiserar följande kommandon:"
|
||||
},
|
||||
"ha": {
|
||||
"title": "Aktivera tjänster för hög tillgänglighet",
|
||||
"intro": "Alternativet aktiverar tjänster för hög tillgänglighet (HA) i Proxmox VE, vilket möjliggör automatisk överflyttning av VM:ar och containrar om en nod slutar fungera.",
|
||||
"doesIntro": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Möjliggör och startar tjänsten pve-ha-lrm (Local Resource Manager)",
|
||||
"Möjliggör och startar tjänsten pve-ha-crm (Cluster Resource Manager)",
|
||||
"Möjliggör och startar corosync-tjänsten för klusterkommunikation"
|
||||
],
|
||||
"howUse": "Hur man använder: Efter att ha aktiverat dessa tjänster kan du konfigurera HA-grupper och resurser i Proxmox VE-webbgränssnittet.",
|
||||
"automates": "Denna justering automatiserar följande kommandon:"
|
||||
},
|
||||
"pveam": {
|
||||
"title": "Uppdatera Proxmox VE Appliance Manager",
|
||||
"intro": "Uppdaterar det lokala indexet över containermallar som <code>pveam</code> visar i Proxmox, så att listan över tillgängliga programmallar är aktuell nästa gång du skapar en LXC.",
|
||||
"doesIntro": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Kör <code>pveam update</code> mot Proxmox speglar för att hämta den aktuella katalogen över programmallar",
|
||||
"Fyller listan över programmallar som visas när du skapar en container"
|
||||
],
|
||||
"howUse": "Användning: kör det när listan över programmallar verkar gammal eller efter byte av speglar. Det hämtar bara katalogindexet, inte själva mallarna.",
|
||||
"automates": "Denna justering automatiserar följande kommando:"
|
||||
},
|
||||
"fastfetch": {
|
||||
"title": "Installera och konfigurera Fastfetch",
|
||||
"intro": "Det här alternativet installerar tyst och konfigurerar Fastfetch, ett systeminformationsverktyg som visar systemspecifikationer och en anpassad logotyp vid inloggningen.",
|
||||
"doesLabel": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Tyst laddar ner och installerar den senaste versionen av Fastfetch",
|
||||
"Låter dig välja en anpassad logotyp (<strong>ProxMenux, Proxmox, Helper-Scripts, Home-Labs-Club, Proxmology</strong>, eller en anpassad)",
|
||||
"Konfigurerar Fastfetch för att visa <em> \"System optimerad av ProxMenux\"</em>",
|
||||
"Ställ in Fastfetch för att köra automatiskt vid konsolinloggning"
|
||||
],
|
||||
"importantLabel": "Viktigt:",
|
||||
"importantBody": "Om du ansluter till Proxmox via SSH, bör du välja <strong>Proxmox</strong> logotyp eller skapa en anpassad med <code>jp2a</code> eller <code>img2txt</code>. De andra logotyperna genereras med <code>chafa</code> och kan inte visas korrekt i en vanlig SSH-session.",
|
||||
"customLabel": "Egna logotyper:",
|
||||
"customBody1": "För att använda en anpassad logotyp, placera din ASCII art textfil i: <code>/usr/local/share/fastfetch/logos/</code>",
|
||||
"customBody2": "Du kan skapa anpassade logotyper med verktyg som <code>chafa</code>, <code>jp2a</code> eller <code>img2txt</code>.",
|
||||
"customBody3": "För bästa resultat:",
|
||||
"customItems": [
|
||||
"Håll logohöjden till 35-linjer eller mindre för att upprätthålla proportioner och passa i terminalen",
|
||||
"Använd <code>chafa</code> för färglogotyper (kan inte visas korrekt i SSH-sessioner)",
|
||||
"Använd <code>jp2a</code> eller <code>img2txt</code> för SSH-kompatibel logotyp"
|
||||
],
|
||||
"examplesLabel": "Exempel på logotyper:",
|
||||
"logos": [
|
||||
{
|
||||
"name": "ProxMenux",
|
||||
"alt": "ProxMenux-logotyp",
|
||||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmenux.png"
|
||||
},
|
||||
{
|
||||
"name": "Proxmox",
|
||||
"alt": "Proxmox-logotyp",
|
||||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmox.png"
|
||||
},
|
||||
{
|
||||
"name": "JC Channel",
|
||||
"alt": "JC Channel-logotyp",
|
||||
"src": "/fastfetch/jc-channel.png"
|
||||
},
|
||||
{
|
||||
"name": "Helper-Scripts",
|
||||
"alt": "Helper-Scripts-logotyp",
|
||||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/helper-scripts.png"
|
||||
},
|
||||
{
|
||||
"name": "Home-Labs-Club",
|
||||
"alt": "Home-Labs-Club-logotyp",
|
||||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/home-labs-club.png"
|
||||
},
|
||||
{
|
||||
"name": "Proxmology",
|
||||
"alt": "Proxmology-logotyp",
|
||||
"src": "https://macrimi.github.io/ProxMenux/fastfetch/proxmology.png"
|
||||
}
|
||||
],
|
||||
"automates": "Denna justering automatiserar följande kommandon:"
|
||||
},
|
||||
"figurine": {
|
||||
"title": "Installera och konfigurera Figurine",
|
||||
"intro": "Det här alternativet installerar och konfigurerar Figurine, ett verktyg som skapar snygga ASCII-textbanners för din terminal och visar ditt värdnamn i ett visuellt tilltalande 3D-format.",
|
||||
"doesLabel": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Hämtar och installerar Figurine v2.1.1 från GitHub för värdens arkitektur (AMD64, ARM64 eller ARMv7)",
|
||||
"Skapa ett välkomstmeddelande som visar ditt värdnamn i 3D ASCII-konst när du loggar in",
|
||||
"Uppdaterar en befintlig Figurine-binär först när hämtningen och uppackningen har slutförts utan fel",
|
||||
"Ställ in välkomstmeddelandet för att köra automatiskt vid inloggningen"
|
||||
],
|
||||
"practicalLabel": "Praktisk användning:",
|
||||
"practicalBody": "När du hanterar flera Proxmox-noder i ett kluster ger Figurine en omedelbar visuell indikation på vilken nod du för närvarande är inloggad. Detta hjälper till att förhindra oavsiktliga kommandon på fel nod och förbättrar ditt arbetsflöde när du hanterar flera servrar.",
|
||||
"exampleLabel": "Exempel på utdata:",
|
||||
"imageAlt": "Exempel på utdata från Figurine",
|
||||
"automates": "Denna justering automatiserar följande process:",
|
||||
"outro": "Efter installationen ser du ditt värdnamn som visas i 3D ASCII-konst varje gång du loggar in, vilket gör det omedelbart klart vilken Proxmox-nod du arbetar på."
|
||||
},
|
||||
"log2ram": {
|
||||
"title": "Installera Log2RAM (SSD/NVMe slitage reduktion)",
|
||||
"intro": "Log2RAM monterar <code>/var/log</code> som en tmpfs-ramdisk och synkroniserar regelbundet till disk. Att buffra journalds täta skrivningar i RAM kan minska SSD-slitage och disk-I/O. Synkronisering och normal avstängning sparar loggar, men ett plötsligt strömavbrott kan förlora poster sedan senaste synkroniseringen.",
|
||||
"upstreamLabel": "Upstream projekt:",
|
||||
"upstreamUrl": "https://github.com/azlux/log2ram",
|
||||
"upstreamLinkLabel": "azlux/log2ram på GitHub",
|
||||
"doesLabel": "Vad ProxMenux gör:",
|
||||
"doesItems": [
|
||||
"Detekterar om rotskivan är SSD/NVMe genom att läsa <code>/sys/block/<dev>/queue/rotational</code>. På en rotationsdisk frågar det automatiska flödet först innan du installerar.",
|
||||
"Kloner uppströms repository (<code>azlux/log2ram</code>) i <code>/tmp/log2ram</code> och patchar sin <code>install.sh</code>, ersätta <code>rsync -aAXv</code> med <code>rsync -aXv --no-acls</code>. Denna justering undviker <em>set_acl: Operation not supported</em> exit 23 misslyckande att vaniljskriptet utlöser när man flyttar /var/log på filsystem utan ACL stöd. <code>log2ram</code> systemd-enheten är aktiverad efter installation.",
|
||||
"Anpassar ramdiskens storlek efter värdens RAM: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>> 16 GB → 512M</code>. Skriver värdet till <code>SIZE=</code> i <code>/etc/log2ram.conf</code>.",
|
||||
"Schemalägger regelbunden disksynkronisering via <code>/etc/cron.d/log2ram</code>: var 1 / 3 / 6 timme enligt samma RAM-nivå.",
|
||||
"Installerar <code>/usr/local/bin/log2ram-check.sh</code>, som körs var tionde minut via <code>/etc/cron.d/log2ram-auto-sync</code>. När <code>/var/log</code> når 80% av ramdisken rensas äldre journaler. Vid 92% körs först <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> om filen finns: PBS API-loggar tar ofta mest utrymme på en PBS-värd. Sedan trunkeras <code>pveproxy access/error</code> och <code>pveam.log</code> före synkronisering. <code>log2ram write</code> kopierar bara tmpfs till disk utan att krympa det. Skyddet hjälper till att förebygga PVE-fel med <em>No space left on device</em> när loggar växer okontrollerat.",
|
||||
"Upptäcker tjänsten <code>proxmox-backup-server</code> på värden. Om den finns skapas <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 rotationer) och <code>/etc/cron.hourly/proxmox-backup-logrotate</code> för att begränsa PBS API-loggar, den vanliga tillväxtkällan, även mellan Log2RAM-synkroniseringar. Utan PBS görs ingen ändring.",
|
||||
"Justerar systemd-journald gränser (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) för att passa in i ramdisken så att en enda burst inte kan fylla den.",
|
||||
"Registreras i <code>installed_tools.json</code> så att det kan återställas via Avinstallera optimeringar."
|
||||
],
|
||||
"howUseLabel": "Hur man använder:",
|
||||
"howUseBody": "Det automatiserade flödet installerar Log2RAM utan åtgärd när en SSD-/NVMe-rotdisk upptäcks. Det anpassningsbara flödet frågar om storlek, intervall och synkskydd. Frågan anger 90%, men det genererade skriptet använder trösklarna 80% för rensning och 92% för intensiv rensning som beskrivs ovan.",
|
||||
"verifyLabel": "Verifiera och hantera från skalet:",
|
||||
"verifyCode": "# Service state and configured timers\nsystemctl status log2ram\nsystemctl list-timers log2ram*\n\n# Current ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Force a sync now (tmpfs → disk); does NOT shrink the tmpfs\nlog2ram write\n\n# Trigger the auto-sync guard on demand (vacuum + sync when usage is high)\n/usr/local/bin/log2ram-check.sh\n\n# Current config: SIZE, mail settings, path\ncat /etc/log2ram.conf\n\n# ProxMenux-specific cron jobs\ncat /etc/cron.d/log2ram /etc/cron.d/log2ram-auto-sync\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||||
},
|
||||
"zram": {
|
||||
"title": "Aktivera ZRAM-swap-profil",
|
||||
"intro": "Skapar en komprimerad swap-enhet i RAM, <code>/dev/zram0</code>, med <code>systemd-zram-generator</code>. Sidor som kärnan flyttar till swap komprimeras med zstd och hålls i minnet, så de är skrivna till RAM innan de når swap på disken.",
|
||||
"doesLabel": "Vad det gör:",
|
||||
"doesItems": [
|
||||
"Installerar <code>systemd-zram-generator</code> om det saknas och registrerar om ProxMenux installerade det.",
|
||||
"Skriver <code>/etc/systemd/zram-generator.conf.d/90-proxmenux.conf</code>: en <code>zram0</code>-enhet på en tiondel av värdens RAM, zstd-komprimering (<code>zstd(level=9)</code> med systemd-zram-generator 1.2.0 eller senare) och swap-prioritet 32767.",
|
||||
"Med denna prioritet fyller kärnan ZRAM först. En befintlig swap på disken håller sin egen prioritet och tar de sidor som inte längre passar i ZRAM.",
|
||||
"Innan du ändrar något, letar efter en annan ZRAM-installation: en aktiv zram swap, en zramlinje i <code>/etc/fstab</code>, en systemd-enhet eller en annan generatorfil. Om det hittar en, stannar alternativet och lämnar den inställningen som den är.",
|
||||
"Startar <code>dev-zram0.swap</code> och kontrollerar att den aktiva enheten matchar profilen. Om det inte gör det återställs det tidigare tillståndet.",
|
||||
"Registreras i <code>installed_tools.json</code> så att det kan återställas via Avinstallera optimeringar."
|
||||
],
|
||||
"howUseLabel": "Hur man använder:",
|
||||
"howUseBody": "Alternativet finns bara i det anpassningsbara flödet, inte det automatiserade. Enheten återskapas vid varje start. Medan den är aktiv visar panelen Minne i ProxMenux Monitor kapacitet, använd swap, algoritm, komprimeringsgrad och använt fysiskt minne.",
|
||||
"verifyLabel": "Verifiera från skalet:",
|
||||
"verifyCode": "# Active swap devices and their priority\nswapon --show\n\n# ZRAM device: algorithm, size and compressed data\nzramctl\n\n# Profile written by ProxMenux\ncat /etc/systemd/zram-generator.conf.d/90-proxmenux.conf\n\n# State of the swap unit\nsystemctl status dev-zram0.swap"
|
||||
},
|
||||
"autoApplication": {
|
||||
"title": "Automatisk applikation",
|
||||
"body": "Välj funktioner efter behov i det anpassningsbara flödet. Log2RAM ingår även i det automatiserade flödet med hårdvaruidentifiering; ZRAM finns bara i det anpassningsbara. Läs avsnitten om bekräftelser och förutsättningar."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Prestanda | ProxMenux Dokumentation",
|
||||
"description": "Prestandaalternativ i ProxMenux anpassningsbara skript efter installationen. Ersätter entrådig gzip med pigz (parallell gzip) för snabbare säkerhetskopiering och komprimering på värdar med flera kärnor."
|
||||
},
|
||||
"header": {
|
||||
"title": "Efter installationen: prestanda",
|
||||
"description": "Prestandaalternativ i det anpassningsbara skriptet efter installationen. Kategorin innehåller en enda optimering: att ersätta gzip med pigz så att säkerhetskopiering och komprimering använder alla CPU-kärnor i stället för en.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Det enda prestandaalternativet här styr om systemets gzip till en parallell implementation. Andra prestandajusteringar (minne, I/O-schemaläggning, ZFS ARC-storlek och kärngränser) finns i sina egna kategorier (<em>System</em>, <em>Lagring</em>) eftersom de påverkar andra delsystem."
|
||||
},
|
||||
"pigz": {
|
||||
"heading": "Använd pigz för snabbare gzip-komprimering",
|
||||
"intro": "Vanlig <code>gzip</code> komprimerar med <strong>en enda CPU-kärna</strong>. På moderna Proxmox-värdar med 8, 16 eller 32 kärnor blir det en stor flaskhals vid VM-/CT-säkerhetskopiering med <code>vzdump</code>, loggrotation och annat som går genom <code>gzip</code>. <a>pigz</a> är en direkt kompatibel parallell ersättning: samma gzip-kompatibla utdata, men arbetet fördelas över alla kärnor.",
|
||||
"doesTitle": "Vad ProxMenux gör",
|
||||
"doesIntro": "Fem steg, alla idempotenta:",
|
||||
"doesItems": [
|
||||
"Ställer in <code>pigz: 1</code> i <code>/etc/vzdump.conf</code> så att Proxmox säkerhetskopieringsverktyg använder pigz direkt.",
|
||||
"Installerar <code>pigz</code> apt-paketet om det inte redan finns.",
|
||||
"Skriver ett wrapper-skript på <code>/bin/pigzwrapper</code> som vidarebefordrar varje argument till <code>/usr/bin/pigz</code>.",
|
||||
"Registrerar en dpkg-omdirigering för systemets <code>gzip</code>-program (<code>/usr/bin/gzip</code> på Proxmox VE 9, <code>/bin/gzip</code> på Proxmox VE 8). Originalprogrammet bevaras bredvid som <code>gzip.distrib</code> och wrappern tar dess plats. Därefter använder <em>allt</em> som anropar <code>gzip</code> — logrotate, <code>tar czf</code>, skript och vzdump — pigz transparent.",
|
||||
"Kontrollerar att filen som hålls som <code>gzip.distrib</code> är en fungerande gzip innan omslaget sätts på plats, och installerar om <code>gzip</code>-paketet först när det inte är det. En värd som fortfarande har den tidigare <code>/bin/gzip.original</code> swap flyttas till avledningen när alternativet appliceras igen."
|
||||
],
|
||||
"replacesTitle": "Ersätter ett systemprogram",
|
||||
"replacesBody": "Att sätta en wrapper i stället för <code>gzip</code> är ovanligt. Det är säkert eftersom utdata är gzip-kompatibla, men skript med hårdkodade sökvägar, i restriktiva chroot-miljöer eller med kontroll av programhashar kan fungera annorlunda. Originalprogrammet bevaras som <code>gzip.distrib</code>. Tack vare dpkg-omdirigeringen uppdaterar ett nytt <code>gzip</code>-paket eller uppgraderingen från Proxmox VE 8 till 9 den filen och lämnar wrappern på plats.",
|
||||
"revertTitle": "Kan återställas från Avinstallera-menyn",
|
||||
"revertBody": "Denna optimering registreras. <link>Avinstallera optimeringar</link> kopierar originalprogrammet från <code>gzip.distrib</code> över wrappern, tar bort omdirigeringen och <code>pigzwrapper</code>, kommenterar bort <code>pigz</code>-raden i <code>/etc/vzdump.conf</code> och kör <code>apt purge pigz</code> när gzip har verifierats fungera. Manuell motsvarighet på Proxmox VE 9:",
|
||||
"verifyTitle": "Verifiering",
|
||||
"verifyBody": "Efter applicering bör <code>gzip --version</code> nämna pigz. Ett snabbt riktmärke visar också hastighetsskillnaden på en multi-core värd:",
|
||||
"whenTitle": "När detta betyder mest",
|
||||
"whenBody": "Nyttan ökar med <strong>antalet kärnor på värden</strong> och <strong>hur ofta du säkerhetskopierar</strong>. På en hemmaserver med 2 kärnor och en daglig vzdump är vinsten liten. På en produktionsvärd med 16 kärnor som säkerhetskopierar ett dussin VM:ar varje natt kan pigz minska säkerhetskopieringsfönstret till en bråkdel av tiden för entrådig gzip."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Kommandon för säkerhetskopiering och återställning",
|
||||
"href": "/docs/help-info/backup-commands",
|
||||
"tailRich": " — CLI-referens för vzdump, inklusive trådalternativet <code>--pigz</code>."
|
||||
},
|
||||
{
|
||||
"label": "Lagring",
|
||||
"href": "/docs/post-install/storage",
|
||||
"tail": " — hastighetsgränser för vzdump och justering av ZFS ARC."
|
||||
},
|
||||
{
|
||||
"label": "System",
|
||||
"href": "/docs/post-install/system",
|
||||
"tail": " — justering av filbeskrivare och minne."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Säkerhet | ProxMenux Dokumentation",
|
||||
"description": "Säkerhetsalternativ i ProxMenux anpassningsbara skript efter installationen. För närvarande ett enda alternativ: inaktivera tjänsten portmapper/rpcbind för att minska värdens attackyta."
|
||||
},
|
||||
"header": {
|
||||
"title": "Post-Install: Säkerhet",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Säkerheten efter installationen begränsas till <strong>förstärkning av värden som säkert kan tillämpas utan övervakning</strong>: inaktivera tjänster som nästan ingen behöver och kunna återställa dem via Avinstallera. Aktiva säkerhetsverktyg (Fail2Ban för intrångsskydd och Lynis för granskning) finns under <em>Säkerhet</em> i ProxMenux huvudmeny, utanför efterinstallationen."
|
||||
},
|
||||
"rpcbind": {
|
||||
"heading": "Inaktivera Portmapper / rpcbind",
|
||||
"intro": "<code>rpcbind</code> (tidigare <code>portmap</code>) mappar RPC-programnummer till nätverksportar. NFS och vissa äldre RPC-verktyg är beroende av det. På en typisk Proxmox-värd som inte är NFS-server <strong>använder inget det</strong>; om det lämnas aktiverat lyssnar port <code>111/tcp</code> på alla gränssnitt.",
|
||||
"whyTitle": "Varför det är värt att inaktivera",
|
||||
"whyItems": [
|
||||
"Minskar värdattackytan - en mindre lyssnande tjänst att oroa sig för.",
|
||||
"Historiskt missbrukas som en reflektion/amplifieringsvektor i DDoS-attacker. Inaktivera <code>rpcbind</code> tar bort den förstärkningsfaktorn för din värd.",
|
||||
"Tar bort bruset i loggar och utdata från <code>netstat</code> / <code>ss</code>, så att verklig aktivitet blir lättare att upptäcka."
|
||||
],
|
||||
"nfsTitle": "Inaktivera inte detta om du använder NFS",
|
||||
"nfsBody": "NFS-servern <strong>och</strong> NFS-klienten använder <code>rpcbind</code> för att förhandla om portarna för <code>mountd</code>, <code>statd</code>, <code>lockd</code> med flera. Tillämpa inte alternativet om Proxmox-värden <em>exporterar</em> NFS-resurser till andra datorer eller <em>monterar</em> NFS-resurser från en NAS. Montering misslyckas då med <code>mount.nfs: rpc.statd is not running</code> eller liknande.",
|
||||
"runsTitle": "Vad ProxMenux kör",
|
||||
"runsOutro": "Paketet förblir installerat. ProxMenux registrerar de ursprungliga aktiverings- och körningstillstånden för rpcbind.service och rpcbind.socket, inaktiverar och stoppar sedan båda enheterna så att socketaktivering inte kan starta tjänsten igen.",
|
||||
"verifyTitle": "Verifiering",
|
||||
"verifyBody": "Efter applicering, bekräfta <code>rpcbind</code> är avstängd och ingenting lyssnar på port 111:",
|
||||
"reversibleTitle": "Återställer tjänstens ursprungliga tillstånd",
|
||||
"reversibleBody": "Ändringen registreras i <code>installed_tools.json</code>. <link>Avinstallera optimeringar</link> återställer varje rpcbind-enhet till dess aktiverade/inaktiverade och aktiva/inaktiva tillstånd som registrerades före ProxMenux ändring. Verktyget antar inte att rpcbind var aktiverat på alla värdar."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Säkerhetsmenyn",
|
||||
"href": "/docs/security",
|
||||
"tail": " — kraftfullare verktyg: Fail2Ban (intrångsskydd) och Lynis (granskning)."
|
||||
},
|
||||
{
|
||||
"label": "Lynis",
|
||||
"href": "/docs/security/lynis",
|
||||
"tail": " — granska värden för att hitta fler möjligheter att stärka säkerheten."
|
||||
},
|
||||
{
|
||||
"label": "Användbara systemkommandon",
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"tail": " — referens för tjänststatus, journalctl och lynis audit."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Lagring | ProxMenux Dokumentation",
|
||||
"description": "Lagringsoptimeringar i ProxMenux anpassningsbara efterinstallationsskript: ZFS ARC-storlek efter värdens RAM, periodiska ögonblicksbilder med zfs-auto-snapshot och borttagning av vzdump-hastighetsgränser."
|
||||
},
|
||||
"header": {
|
||||
"title": "Post-Install: Lagring",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Fyra lagringsoptimeringar: anpassa <strong>ZFS ARC</strong> till en rimlig andel av RAM, installera och schemalägg <strong>automatiska ZFS-ögonblicksbilder</strong>, aktivera <strong>ZFS autotrim</strong> på SSD-/NVMe-pooler och ta bort begränsningar i <strong>vzdump</strong> för snabbare säkerhetskopiering. Välj de oberoende alternativen efter din miljö. Ett femte, <link>Log2RAM</link>, minskar SSD-/NVMe-slitage genom att flytta <code>/var/log</code> till en ramdisk. Det ligger under Valfritt eftersom den anpassningsbara menyn grupperar det där."
|
||||
},
|
||||
"trackedTitle": "Alla fyra registreras i avinstallationsmenyn",
|
||||
"trackedBody": "Varje alternativ registreras i <code>installed_tools.json</code> för <link>Avinstallera optimeringar</link>. Återställning av <code>zfs_arc</code> tar bort <code>/etc/modprobe.d/99-zfsarc.conf</code> och bygger om initramfs; <code>zfs_auto_snapshot</code> tar bort cron-schemat och erbjuder paketrensning; <code>zfs_autotrim</code> sätter <code>autotrim=off</code> på pooler det aktiverat; <code>vzdump_speed</code> återställer <code>/etc/vzdump.conf</code> från installationens <code>.bak</code>.",
|
||||
"arc": {
|
||||
"heading": "Optimera ZFS ARC-storlek",
|
||||
"intro": "<strong>Adaptive Replacement Cache (ARC)</strong> är ZFS läscache i RAM. Proxmox VE-installationer från 8.1 sätter 10% av RAM, högst 16 GiB; äldre eller uppgraderade värdar kan skilja sig. Alternativet skriver samma regel uttryckligen (RAM/10, högst 16 GiB, minst 64 MiB) till en egen fil, vilket även täcker äldre eller uppgraderade värdar. Granska befintliga inställningar och arbetslast; en mindre cache är inte alltid snabbare.",
|
||||
"sizingTitle": "Storleksregler",
|
||||
"headerRam": "Värdens RAM",
|
||||
"headerMax": "ARC-gräns",
|
||||
"rows": [
|
||||
{
|
||||
"ram": "Formel",
|
||||
"max": "RAM / 10, högst 16 GiB och minst 64 MiB"
|
||||
},
|
||||
{
|
||||
"ram": "8 GB värd",
|
||||
"max": "≈ 819 MiB (RAM/10)"
|
||||
},
|
||||
{
|
||||
"ram": "16 GB värd",
|
||||
"max": "≈ 1.6 GiB (RAM/10)"
|
||||
},
|
||||
{
|
||||
"ram": "64 GB värd",
|
||||
"max": "≈ 6.4 GiB (RAM/10)"
|
||||
},
|
||||
{
|
||||
"ram": "≥ 160 GB värd",
|
||||
"max": "16 GiB (gräns)"
|
||||
}
|
||||
],
|
||||
"after": "Filen <code>/etc/modprobe.d/99-zfsarc.conf</code> innehåller bara <code>options zfs zfs_arc_max=…</code>. Övriga ZFS-parametrar (<code>zfs_arc_min</code>, L2ARC-förhämtning/skrivbegränsning, TXG-timeout) justeras inte. Först söks andra <code>*.conf</code> i <code>/etc/modprobe.d/</code> efter <code>zfs_arc_min</code> / <code>zfs_arc_max</code>. De säkerhetskopieras med manifest till <code>/usr/local/share/proxmenux/backups/zfs_arc/</code> och de motstridiga värdena <code>zfs_arc_min</code> / <code>zfs_arc_max</code> tas bort (övriga alternativ på de raderna behålls) så att bara ProxMenux ARC-fil sätter gränsen. Sedan körs <code>update-initramfs -u -k all</code> och vid behov <code>proxmox-boot-tool refresh</code> så gränsen når initramfs för system med ZFS-rot.",
|
||||
"rebootTitle": "Kräver en omstart för att träda i kraft",
|
||||
"rebootBody": "ARC-inställningar läses när kärnmodulen <code>zfs</code> laddas. För ZFS-rotvärdar bygger ProxMenux om initramfs med <code>update-initramfs -u -k all</code> och uppdaterar vid behov starthanteraren med <code>proxmox-boot-tool refresh</code>. Den nya parametern kräver fortfarande omstart; omstartsflaggan sätts automatiskt.",
|
||||
"safeTitle": "Säker på icke-ZFS värdar",
|
||||
"safeBody": "Funktionen skriver bara konfigen när <code>zpool list</code> rapporterar minst en importerad ZFS-pool. På ext4 / LVM-bara Proxmox-värdar, eller på maskiner med ZFS-verktyg installerade men ingen pool importerad, kryssa detta alternativ är en no-op - ingenting blir skrivet.",
|
||||
"verifyTitle": "Verifiering och manuell återgång"
|
||||
},
|
||||
"autoSnap": {
|
||||
"heading": "Installera ZFS auto-snapshot",
|
||||
"intro": "Installerar <a>zfs-auto-snapshot</a>-paketet och skriver om sina cron scheman så snapshots tas automatiskt vid flera intervaller. Ett bra säkerhetsnät på toppen av dina vanliga vzdump-backups.",
|
||||
"cadenceTitle": "Intervall för ögonblicksbilder som ProxMenux konfigurerar",
|
||||
"headerLabel": "Etikett",
|
||||
"headerRuns": "Körs",
|
||||
"headerKept": "Sparade ögonblicksbilder",
|
||||
"rows": [
|
||||
{
|
||||
"label": "frekventa",
|
||||
"runs": "var 15:e minut",
|
||||
"kept": "4"
|
||||
},
|
||||
{
|
||||
"label": "timme",
|
||||
"runs": "varje timme",
|
||||
"kept": "1"
|
||||
},
|
||||
{
|
||||
"label": "dagligen",
|
||||
"runs": "En gång om dagen",
|
||||
"kept": "1"
|
||||
},
|
||||
{
|
||||
"label": "Veckovis",
|
||||
"runs": "En gång i veckan",
|
||||
"kept": "1"
|
||||
},
|
||||
{
|
||||
"label": "månadsvis",
|
||||
"runs": "En gång i månaden",
|
||||
"kept": "1"
|
||||
}
|
||||
],
|
||||
"conservativeTitle": "Begränsade antal sparade ögonblicksbilder",
|
||||
"conservativeBody": "ProxMenux sparar ett begränsat antal: 4 täta ögonblicksbilder och 1 för varje längre intervall, så att ZFS-utrymmet inte växer för mycket. För längre lagring, ändra antalen i <code>/etc/cron.d/zfs-auto-snapshot</code>, <code>/etc/cron.hourly/zfs-auto-snapshot</code> osv. efter skriptet.",
|
||||
"onlyZfsTitle": "Endast användbar på ZFS pooler",
|
||||
"onlyZfsBody": "Installera paketet på en ext4-bara värd är ofarlig men meningslös - det finns inga ZFS datamängder för att det ska snapshot. Hoppa över det här alternativet om du inte använder ZFS.",
|
||||
"verifyTitle": "Verifiering och manuell återgång"
|
||||
},
|
||||
"autotrim": {
|
||||
"heading": "Aktivera ZFS autotrim (SSD/NVMe-pooler)",
|
||||
"intro": "Aktiverar <code>autotrim</code> på ZFS-pooler med enbart TRIM-kompatibla SSD- eller NVMe-enheter. Skriptet hoppar försiktigt över pooler med roterande enheter. Pooler som redan har <code>autotrim=on</code> lämnas oförändrade.",
|
||||
"trimTitle": "Vad TRIM gör och varför det spelar roll på ZFS",
|
||||
"trimBody1": "SSD- och NVMe-enheter använder interna raderingsblock som är större än filsystemets logiska sektorer. När en fil tas bort vet enheten ännu inte att sektorerna är lediga, så intern städning kan fortsätta flytta gamla data för att frigöra block. <strong>TRIM</strong> talar om vilka sektorer som är lediga så att de kan raderas i förväg.",
|
||||
"trimBody2": "Utan TRIM kan brist på redan raderade block försämra SSD-prestanda och öka interna skrivningar, vilket förkortar livslängden. Med TRIM kan enheten hålla tomma block redo för skrivning.",
|
||||
"trimBody3": "Med <code>autotrim=on</code> trimmar ZFS nyligen frigjort utrymme i bakgrunden och samlar intervall före kommandona. Periodisk <code>zpool trim <pool></code> är ett alternativ. Autotrim slipper separat schema men påverkan beror på enheterna; periodisk manuell trimning kan passa enklare diskar bättre.",
|
||||
"practicalTitle": "Varför kan det vara praktiskt att aktivera?",
|
||||
"practicalItems": [
|
||||
"<strong>Uthållig skrivprestanda.</strong> TRIM kan hjälpa enheten att återvinna oanvända block effektivt. Nytta och latenspåverkan beror på enhet och arbetslast.",
|
||||
"<strong>Enhetens livslängd.</strong> Färre onödiga interna kopior kan minska skrivförstärkning och NAND-slitage. Det garanterar ingen viss förlängning av livslängden.",
|
||||
"<strong>Inget separat cron-jobb att schemalägga.</strong> Till skillnad från periodisk <code>zpool trim</code> hanteras autotrim automatiskt av poolen."
|
||||
],
|
||||
"whenTitle": "När är detta nödvändigt?",
|
||||
"whenIntro1": "<strong>Överväg att aktivera det</strong> på ZFS-pooler med enbart TRIM-kompatibla SSD-/NVMe-enheter. Kontrollera beteende och latens; schemalagd manuell trimning kan passa bättre.",
|
||||
"whenIntro2": "<strong>Skriptet hoppar automatiskt över det</strong> på:",
|
||||
"whenSkipItems": [
|
||||
"Pooler med roterande HDD-vdev — ett försiktigt maskinvarufilter i skriptet.",
|
||||
"Enheter utan <code>discard_granularity</code> i sysfs — vanligen äldre SSD:er utan TRIM eller passthrough-vägar där operativsystemet inte ser den underliggande enheten.",
|
||||
"Pooler där ZFS rapporterar att egenskapen inte stöds (sällsynt; mycket gamla pooler).",
|
||||
"Pooler som redan är inställda på <code>autotrim=on</code> (no-op)."
|
||||
],
|
||||
"whenIntro3": "<strong>Inte relevant på ext4-bara värdar</strong> - det finns inget för ZFS att trimma. Funktionen avslutas med ett vänligt meddelande i det fallet.",
|
||||
"recordedTitle": "Varför bara pooler som ProxMenux ändrat registreras",
|
||||
"recordedBody": "Funktionen skriver bara en pool till sin interna statliga fil (<code>/usr/local/share/proxmenux/zfs_autotrim_pools</code>) när den aktivt vände den poolen från <code>off</code> till <code>on</code>. Pooler du hade på autotrim innan du kör skriptet lämnas ut ur listan, så en framtida Uninstall stänger inte av inställningar du konfigurerade själv - bara ProxMenux egna ändringar återställs.",
|
||||
"manualTitle": "Manuell motsvarighet (kör på din server)",
|
||||
"manualIntro": "Den fullständiga sekvensen manuset går mot varje pool är replikerbart för hand. Detta är vad du skulle skriva om du ville göra samma sak på en enda pool utan ProxMenux:",
|
||||
"verifyTitle": "Verifiering och manuell återgång",
|
||||
"oneShotTitle": "Behöver du engångstrimning i stället för kontinuerlig?",
|
||||
"oneShotBody": "Vissa operatörer föredrar en manuell trim under off-peak timmar snarare än kontinuerlig trim aktivitet. Inaktivera autotrim och schemalägga ett cronjobb som kör <code>zpool trim <pool></code> - samma slutmål, olika kadens."
|
||||
},
|
||||
"vzdump": {
|
||||
"heading": "Öka hastigheten för vzdump-säkerhetskopiering",
|
||||
"intro": "Skriver bwlimit: 0 och ionice: 5 i global vzdump-konfiguration. Proxmox har redan obegränsad bandbredd som standard, så bara en inställd gräns tas bort. Jämfört med ionice: 7 ger 5 högre best effort-I/O-prioritet där schemaläggaren stöder det. Det kan påverka gäster och garanterar inte snabbare säkerhetskopiering.",
|
||||
"changedTitle": "Vad som ändras i /etc/vzdump.conf",
|
||||
"backupTitle": "Första körningen skapar en .bak av vzdump.conf",
|
||||
"backupBody": "Första gången kopierar ProxMenux <code>/etc/vzdump.conf</code> till <code>/etc/vzdump.conf.bak</code> före ändringar. Senare körningar skriver inte över kopian, så den tidigare manuella konfigurationen kan återställas. <code>bwlimit</code> och <code>ionice</code> ändras med <code>sed</code>; övriga alternativ som compress, pigz, tmpdir och exclude-path bevaras.",
|
||||
"skipTitle": "När man ska hoppa över detta",
|
||||
"skipBody": "På en värd med långsam lokal lagring och VM som är latenskänsliga, kan avlägsna bandbredd cap orsaka märkbara avmattningar under säkerhetskopior. Om du tidigare har angett en specifik <code>bwlimit</code> av den anledningen, håll det - hoppa över det här alternativet.",
|
||||
"verifyTitle": "Verifiering och manuell återgång"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Kommandon för ZFS-hantering",
|
||||
"href": "/docs/help-info/zfs-commands",
|
||||
"tail": " — zpool / zfs referens för ARC, snapshots, scrub."
|
||||
},
|
||||
{
|
||||
"label": "Kommandon för lagring och diskar",
|
||||
"href": "/docs/help-info/storage-commands",
|
||||
"tail": " — generisk block-enhet och Proxmox lagring referens."
|
||||
},
|
||||
{
|
||||
"label": "Kommandon för säkerhetskopiering och återställning",
|
||||
"href": "/docs/help-info/backup-commands",
|
||||
"tail": " — vzdump-CLI-referens för bandbredd och I/O-prioritet."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ ARC-/vzdump-ändringar."
|
||||
},
|
||||
{
|
||||
"label": "Log2RAM",
|
||||
"href": "/docs/post-install/optional#log2ram",
|
||||
"tail": " — minskar SSD-/NVMe-slitage med /var/log på ramdisk; dokumenteras under Valfritt."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: System | ProxMenux Dokumentation",
|
||||
"description": "Systemoptimeringar i ProxMenux anpassningsbara efterinstallationsskript: storleksgränser för journald och logrotate, högre kärn- och filbeskrivargränser, balanserad minnesjustering, snabba omstarter med kexec och återhämtning efter kärnpanik."
|
||||
},
|
||||
"header": {
|
||||
"title": "Efter installationen: system",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Sex oberoende systemoptimeringar. De justerar <strong>journald</strong> och <strong>logrotate</strong> så att loggar inte fyller disken, höjer <strong>kärn- och filbeskrivargränser</strong> för program med många öppna filer, <strong>balanserar minnet</strong> för en virtualiseringsvärd, lägger till <strong>kexec</strong> för omstarter utan BIOS och konfigurerar <strong>automatisk återhämtning</strong> vid kärnpanik. Alla sex registreras och kan återställas via avinstallationsmenyn."
|
||||
},
|
||||
"journald": {
|
||||
"heading": "Optimera journald",
|
||||
"intro": "Skriver om <code>/etc/systemd/journald.conf</code> med rimliga standardvärden så att systemd-journalen inte fyller rotpartitionen över tid. Startar sedan om <code>systemd-journald</code> och rensar äldre loggar.",
|
||||
"keyTitle": "Nyckelvärden",
|
||||
"keyItems": [
|
||||
"<code>Storage=persistent</code> - hålla loggar på disk över omstarter.",
|
||||
"<code>SystemMaxUse=64M</code> / <code>RuntimeMaxUse=60M</code> — gränser för journalens disk- och minnesanvändning.",
|
||||
"<code>Compress=yes</code>, <code>Seal=no</code> — komprimera loggar och hoppa över kryptografisk försegling med framåtsäkerhet (sparar CPU).",
|
||||
"<code>MaxLevelStore=info</code> — lagra info och högre nivåer, vilket behövs för loggvisaren i ProxMenux Monitor och för att Fail2Ban ska upptäcka misslyckad SSH-/Proxmox-autentisering i journalen.",
|
||||
"Frekvensgräns: <code>1000 events / 30 s</code> för att förhindra loggflöden.",
|
||||
"<code>ForwardToSyslog=no</code>, <code>ForwardToWall=no</code> - duplicera inte meddelanden till syslog eller sänds till konsoler."
|
||||
],
|
||||
"tipTitle": "Varför MaxLevelStore=info är viktigt",
|
||||
"tipBody": "En striktare nivå som <code>warning</code> gör att ProxMenux Monitor visar nästan samma poster i alla datumintervall eftersom de flesta aktiviteter har info-nivå, och hindrar Fail2Ban från att se misslyckade inloggningar. Begränsa i stället volymen med <code>SystemMaxUse</code> och <code>RateLimitBurst</code> utan att begränsa vilka nivåer som lagras."
|
||||
},
|
||||
"logrotate": {
|
||||
"heading": "Optimera logrotate",
|
||||
"intro": "Skriver om <code>/etc/logrotate.conf</code> med globala dags- och storleksinställningar, 7 sparade rotationer, komprimering och <code>copytruncate</code> så att tjänster kan fortsätta skriva utan att öppna loggarna igen. Storleksvillkoret står efter daglig rotation och får företräde om ingen enskild loggregel ändrar det. Originalets <code>logrotate.conf</code> kopieras till <code>.bak</code> första gången.",
|
||||
"tipTitle": "Anpassat för Log2RAM",
|
||||
"tipBody": "Direktivet <code>size 10M</code> får företräde framför den tidigare dagsinställningen; det betyder <em>inte</em> det som inträffar först. Logrotate kontrollerar tröskeln när det körs och enskilda loggregler kan åsidosätta globala värden. För <code>/var/log</code> i Log2RAMs RAM bör du granska regler och timerfrekvens för att styra utrymmesanvändningen."
|
||||
},
|
||||
"limits": {
|
||||
"heading": "Öka olika systemgränser",
|
||||
"intro": "Höjer gränser i kärnan, systemd och PAM som kan vara för låga för en värd med många VM:ar, containrar och nätverkstjänster.",
|
||||
"headerFile": "Fil",
|
||||
"headerSets": "Vad det sätter",
|
||||
"rows": [
|
||||
{
|
||||
"file": "/etc/sysctl.d/99-maxwatches.conf",
|
||||
"sets": "<code>fs.inotify.max_user_watches / max_user_instances / max_queued_events = 1048576</code>"
|
||||
},
|
||||
{
|
||||
"file": "/etc/sysctl.d/99-maxkeys.conf",
|
||||
"sets": "<code>kernel.keys.maxkeys / root_maxkeys = 1000000</code>"
|
||||
},
|
||||
{
|
||||
"file": "/etc/sysctl.d/99-swap.conf",
|
||||
"sets": "<code>vm.swappiness = 10</code>, <code>vm.vfs_cache_pressure = 100</code>"
|
||||
},
|
||||
{
|
||||
"file": "/etc/sysctl.d/99-fs.conf",
|
||||
"sets": "<code>fs.nr_open / file-max = 2097152</code>, <code>fs.aio-max-nr = 1048576</code>"
|
||||
},
|
||||
{
|
||||
"file": "/etc/security/limits.d/99-limits.conf",
|
||||
"sets": "<code>nofile</code> och <code>nproc</code> till 1 048 576 (obegränsade för root)"
|
||||
},
|
||||
{
|
||||
"file": "/etc/systemd/system.conf + user.conf",
|
||||
"sets": "<code>DefaultLimitNOFILE=1048576</code> för systemd-tjänster"
|
||||
},
|
||||
{
|
||||
"file": "/etc/pam.d/common-session + runuser-l",
|
||||
"sets": "<code>session required pam_limits.so</code> så ovanstående gäller för inloggningsskal"
|
||||
},
|
||||
{
|
||||
"file": "/root/.profile",
|
||||
"sets": "<code>ulimit -n 1048576</code> för root shell"
|
||||
}
|
||||
],
|
||||
"tipTitle": "Varför inotify är viktigt",
|
||||
"tipBody": "Docker, Syncthing, Node.js filbevakare och Plex-biblioteksskanningar kan förbruka <code>max_user_watches</code>. Standardvärdet beror på kärnan och värdens minne; det är inte alltid 8192. Gränsen 1M tillåter fler bevakningar utan att förallokera dem. Aktiva bevakningar använder kärnminne, så kontrollera användningen på värdar med ont om RAM."
|
||||
},
|
||||
"memory": {
|
||||
"heading": "Optimera minnesinställningar",
|
||||
"intro": "Skriver en balanserad sysctl-profil till <code>/etc/sysctl.d/99-memory.conf</code>. Avsedd för en hypervisorvärd: håller helst VM:arnas aktivt använda minne i RAM och frigör sidor i förväg så att allokeringstoppar inte fastnar.",
|
||||
"warnTitle": "swappiness=10 på värdar med ont om minne",
|
||||
"warnBody": "På en värd med 16 GB RAM och många VM:ar kan lägre swappiness leda till att kärnan avslutar processer vid minnesbrist i stället för att använda swap. Vid återkommande OOM-händelser, höj swappiness till 30–60 i <code>/etc/sysctl.d/99-memory.conf</code> efter skriptet."
|
||||
},
|
||||
"kexec": {
|
||||
"heading": "Aktivera snabba omstarter (kexec)",
|
||||
"intro": "Installerar <code>kexec-tools</code> och trådar upp det så att du kan starta om värden rakt in i en ny kärna <em> utan att gå igenom BIOS / UEFI firmware</em>. På stora servrar där POST tar 45 - 90 sekunder, förvandlar detta en omstart från en kaffepaus till några sekunder av stillestånd.",
|
||||
"installsTitle": "Vad ProxMenux installerar",
|
||||
"installsItems": [
|
||||
"Paketet <code>kexec-tools</code> (debconf förinställt med <code>kexec-tools/load_kexec boolean false</code> så att apt inte frågar och automatisk laddning vid avstängning förblir avstängd).",
|
||||
"Systemd-enhet <code>/etc/systemd/system/kexec-pve.service</code> - laddar Proxmox-kärnan och initrd till minne vid start, återanvändning av den nuvarande cmdline.",
|
||||
"Ett alias i <code>/root/.bash_profile</code>: <code>reboot-quick</code> → <code>systemctl kexec</code>."
|
||||
],
|
||||
"usageIntro": "Användning efter nästa omstart (eller manuell <code>systemctl start kexec-pve</code>):",
|
||||
"warnTitle": "När du inte använder kexec",
|
||||
"warnBody": "kexec hoppar över firmware-nivå init. Om du litar på BIOS/UEFI för att återställa hårdvarutillstånd - till exempel en GPU gör genomgång som bara återställs rent på full POST, eller en besvärlig HBA firmware - kexec omstarter kan lämna dessa enheter i ett halvinitialiserat tillstånd. Använd en normal <code>reboot</code> efter kerneluppgraderingar eller när du behöver BIOS/UEFI ändringar för att träda i kraft. <code>reboot-quick</code> är för vardagliga omstarter."
|
||||
},
|
||||
"panic": {
|
||||
"heading": "Aktivera omstart vid kernel panic",
|
||||
"intro": "Låter kärnan <strong>starta om automatiskt</strong> i stället för att fastna på panikskärmen. Viktigt för fjärrstyrda Proxmox-värdar utan lokal konsol: en låst kärna stoppar alla VM:ar tills du kan bryta och återställa strömmen.",
|
||||
"tipTitle": "Kombinera med åtkomst till fjärrkonsol",
|
||||
"tipBody": "Automatisk omstart är en återställningsmekanism, inte ett felsökningsverktyg. För att <em>undersöka</em> en kärnpanik i stället för att bara starta igen, använd <link>kexec-alternativet</link> ovan med kärnans kdump-stöd, som ProxMenux inte konfigurerar, eller spela in en seriell konsol på en annan värd innan automatisk omstart aktiveras."
|
||||
},
|
||||
"verify": {
|
||||
"heading": "Verifiering",
|
||||
"intro": "Efter att ha tillämpat systemoptimeringarna:",
|
||||
"tipTitle": "Återställning och begränsningar",
|
||||
"tipBody": "Alla sex alternativ finns i <code>installed_tools.json</code> och <link>Avinstallera optimeringar</link>. Återställningen tar bort konfigurationsfilerna, kexec-enheten och aliaset, skriver om journald.conf med systemds standardvärden och återställer logrotate.conf från säkerhetskopian. Vissa aktiva gränser kräver ny session eller omstart."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Användbara systemkommandon",
|
||||
"href": "/docs/help-info/system-commands",
|
||||
"tail": " — verifiera ändringarna (free -h, journalctl, ulimit -a)."
|
||||
},
|
||||
{
|
||||
"label": "Prestanda",
|
||||
"href": "/docs/post-install/performance",
|
||||
"tail": " — ytterligare systemnivåjustering (pigz)."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ någon av dessa förändringar."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,271 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Avinstallera optimeringar | ProxMenux Dokumentation",
|
||||
"description": "Återställ återställbara konfigurationsändringar som ProxMenux gjort efter installationen. Registrerade verktyg har egna avinstallationsfunktioner som bevarar värdens tidigare tillstånd där det är möjligt."
|
||||
},
|
||||
"header": {
|
||||
"title": "Avinstallera optimeringar",
|
||||
"description": "Återställ reversibla ändringar som gjorts av Automatiserade eller Anpassningsbara postinstallationsskript. ProxMenux registrerar varje stödd optimering med sin dedikerade restaureringsfunktion; paketuppgraderingar är avsiktligt uteslutna.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Varför detta existerar",
|
||||
"body": "Varje ändring som stöds för återställning <strong>registreras</strong> i <code>/usr/local/share/proxmenux/installed_tools.json</code>. Registret listar aktiva optimeringar och anropar rätt återställningsfunktion. Åtgärder utan säker återgång, till exempel fullständig paketuppgradering, läggs inte till."
|
||||
},
|
||||
"openMenu": {
|
||||
"heading": "Hur man öppnar den",
|
||||
"body": "Öppna <strong>Proxmox-inställningar efter installation → Avinstallera optimeringar</strong> i huvudmenyn. Listan visar <em>nu tillämpade</em> optimeringar; sådant som inte tillämpats visas inte.",
|
||||
"imageAlt": "Lista för Avinstallera optimeringar med aktiva ändringar och kryssrutor för att välja vad som ska återställas"
|
||||
},
|
||||
"howWorks": {
|
||||
"heading": "Hur reverseringen fungerar",
|
||||
"steps": [
|
||||
{
|
||||
"title": "Register och automatisk identifiering",
|
||||
"body1": "Första gången söker ProxMenux efter kännetecken på värden: <code>/etc/sysctl.d/99-memory.conf</code>, <code>/etc/apt/apt.conf.d/99-force-ipv4</code>, installerat <code>haveged</code>, aktiv Log2RAM-tjänst och liknande. Identifierade ändringar registreras som återställbara även om en äldre ProxMenux-version utan register gjorde dem.",
|
||||
"body2": "Migreringen körs bara en gång. Därefter uppdaterar varje tillämpning och återställning registret direkt."
|
||||
},
|
||||
{
|
||||
"title": "Välj vad som ska återställas",
|
||||
"body1": "Listan visar begripliga namn som <em>Optimering av minnesinställningar</em>, <em>IOMMU/VFIO PCI-passthrough</em> och <em>Log2RAM (SSD-skydd)</em>. Markera det du vill återställa. Omarkerade objekt ändras inte."
|
||||
},
|
||||
{
|
||||
"title": "Återställningen körs",
|
||||
"body1": "För varje valt objekt kallar ProxMenux sin matchande avinstallationsfunktion. De flesta omkastningar följer ett av tre mönster:",
|
||||
"items": [
|
||||
"<strong>Från säkerhetskopia</strong> — återställer en <code>.bak</code> skapad vid ändringen (bashrc, logrotate.conf, journald.conf, GRUB-/kärnkommandorad).",
|
||||
"<strong>Ta bort konfiguration</strong> — tar bort ProxMenux-filerna <code>/etc/sysctl.d/99-*.conf</code>, <code>/etc/apt/apt.conf.d/99-*</code> eller systemd-enheten och laddar om.",
|
||||
"<strong>Ominstallation av paket</strong> — för gränssnittsändringar som prenumerationsvarningen installeras ursprungspaketen om med <code>--force-confnew</code> för att återställa levererad konfiguration."
|
||||
],
|
||||
"body2": "Varje omvänd loggar sina framsteg. Objekt som kräver en omstart (VFIO, ihållande gränssnittsnamn) ställer in en flagga som utlöser omstartsprompten i slutet."
|
||||
},
|
||||
{
|
||||
"title": "Fråga om omstart i slutet",
|
||||
"body1": "Efter återställningen visar menyn en omstartsfråga. Ändringar av kärnparametrar, moduler och gränssnittsnamn (VFIO, beständiga namn) behöver omstart; andra gör det inte. Frågan visas som allmän försiktighetsåtgärd, inte efter en kontroll per objekt."
|
||||
}
|
||||
]
|
||||
},
|
||||
"reversible": {
|
||||
"heading": "Vad är reversibelt",
|
||||
"intro": "Registrerade reversibla optimeringar och deras matchande avinstallatörer grupperas här efter område:",
|
||||
"groups": [
|
||||
{
|
||||
"title": "Repositorier och APT",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Borttagning av prenumerationsvarning",
|
||||
"restores": "Försöker först återställa gränssnittsfiler från ProxMenux säkerhetskopior (/usr/local/share/proxmenux/backups/proxmoxlib.js.backup.* och index.html.tpl.backup.* om mobilgränssnittet ändrats). Bara om kopian saknas eller är skadad installeras pve-manager, proxmox-widget-toolkit, libjs-extjs och libpve-http-server-perl om med force-confnew. Rensar även cachade .js-/ .gz-kopior."
|
||||
},
|
||||
{
|
||||
"tool": "Hoppa över APT-språkfiler",
|
||||
"restores": "Tar bort /etc/apt/apt.conf.d/99-disable-translations så att APT kan hämta index över översatta paketbeskrivningar enligt övriga språkinställningar."
|
||||
},
|
||||
{
|
||||
"tool": "Tvinga IPv4 för APT",
|
||||
"restores": "Ta bort /etc/apt/apt.conf.d/99-force-ipv4."
|
||||
},
|
||||
{
|
||||
"tool": "Systemverktyg",
|
||||
"restores": "Rensar bara valda verktygspaket som ProxMenux registrerat som nyinstallerade. Paket som redan fanns läggs aldrig till i listan och lämnas oförändrade."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Kernel, minne och systemgränser",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Minnesinställningar",
|
||||
"restores": "Tar bort /etc/sysctl.d/99-memory.conf och laddar om sysctl."
|
||||
},
|
||||
{
|
||||
"tool": "Konfiguration vid kärnpanik",
|
||||
"restores": "Ta bort /etc/sysctl.d/99-kernelpanic.conf."
|
||||
},
|
||||
{
|
||||
"tool": "Höjning av systemgränser",
|
||||
"restores": "Tar bort /etc/sysctl.d/99-maxwatches.conf, 99-maxkeys.conf, 99-swap.conf, 99-fs.conf och /etc/security/limits.d/99-limits.conf. Återställer PAM-gränser och systemd DefaultLimitNOFILE. I /root/.profile tas bara äldre ulimit -n 256000 bort; nuvarande ulimit -n 1048576 kan bli kvar och behöva tas bort manuellt."
|
||||
},
|
||||
{
|
||||
"tool": "ZRAM swap profil",
|
||||
"restores": "Stänger av bytet på /dev/zram0, stoppar dev-zram0.swap och tar bort /etc/systemd/zram-generator.conf.d/90-proxmenux.conf. systemd-zram-generatorpaketet rensas endast när ProxMenux installerade det och ingen annan ZRAM-installation är närvarande. Om sidorna i ZRAM inte kan flyttas ut, förblir profilen aktiv och ingenting tas bort."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Nätverk",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Nätverksoptimeringar",
|
||||
"restores": "Tar bort /etc/sysctl.d/99-network.conf, 97-proxmenux-fwbr.conf och 98-proxmenux-rpf.conf samt proxmenux-fwbr-tune.service, hjälpskriptet /usr/local/sbin/proxmenux-fwbr-tune och udev-regeln /etc/udev/rules.d/99-zz-proxmenux-fwbr-tune.rules. Tar även bort raden source /etc/network/interfaces.d/* ur /etc/network/interfaces. Laddar om sysctl, systemd och udev-regler."
|
||||
},
|
||||
{
|
||||
"tool": "Open vSwitch",
|
||||
"restores": "Kör apt purge för openvswitch-switch och openvswitch-common. Migrera OVS-bryggor till Linux-bryggor först, annars förlorar VM:arna på dem nätverket vid nästa start."
|
||||
},
|
||||
{
|
||||
"tool": "TCP BBR + TCP Fast Open",
|
||||
"restores": "Tar bort /etc/sysctl.d/99-kernel-bbr.conf och 99-tcp-fastopen.conf och laddar om övrig sysctl-konfiguration. Borttagning återställer inte aktiva värden; standarder som cubic och tcp_fastopen=1 återkommer efter omstart om ingen annan konfiguration åsidosätter dem."
|
||||
},
|
||||
{
|
||||
"tool": "Persistenta gränssnittsnamn",
|
||||
"restores": "Ta bort endast 10-proxmenux-*.link-filer som bär ProxMenux-rubriken från /etc/systemd/network/. Alla .link-filer som tillhandahålls av ett annat paket eller skrivs av användaren lämnas på plats. Interface namn återvänder till systemd: s standard beteende på nästa omstart."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Loggning",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Optimering av journald",
|
||||
"restores": "Skriver om /etc/systemd/journald.conf med ursprungliga standardvärden och startar om systemd-journald."
|
||||
},
|
||||
{
|
||||
"tool": "Logrotate-optimering",
|
||||
"restores": "Återställer /etc/logrotate.conf från .bak-filen som fångats före ändringen."
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM",
|
||||
"restores": "Stoppar och inaktiverar tjänst och timer. Tar bort cron-jobb, systemd-enheter, binärer, konfiguration och /var/log.hdd. Avinstallerar även apt-paketet om det installerats så."
|
||||
},
|
||||
{
|
||||
"tool": "Automatisk ZFS-TRIM",
|
||||
"restores": "Läser /usr/local/share/proxmenux/zfs_autotrim_pools med faktiskt ändrade pooler och kör zpool set autotrim=off på var och en. Autotrim som aktiverats manuellt före ProxMenux lämnas kvar."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Shell & utseende",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Anpassning av Bashrc",
|
||||
"restores": "Återställer /root/.bashrc från .bak backup. Om ingen säkerhetskopia finns, tar bort PMX_CORE_BASHRC blocket av markörer."
|
||||
},
|
||||
{
|
||||
"tool": "Egen MOTD-banner",
|
||||
"restores": "Återställer det exakta ursprungliga /etc/motd-innehållet som hålls under /usr/local/share/proxmenux, tar bort filen när den inte fanns innan, eller tar säkert bort arvsmarkören när du migrerar en äldre installation."
|
||||
},
|
||||
{
|
||||
"tool": "Fastfetch",
|
||||
"restores": "Tar bort binär, konfigurationskatalog, update-motd-krok och det avgränsade blocket BEGIN FASTFETCH / END FASTFETCH ur /root/.bashrc, ~/.profile, /etc/profile och /etc/profile.d/fastfetch.sh. Rensar apt-paketet om det är installerat."
|
||||
},
|
||||
{
|
||||
"tool": "Figurine",
|
||||
"restores": "Tar bort binären, profile.d-posten och aliasblocket i bashrc/profile."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Hårdvara och virtualisering",
|
||||
"items": [
|
||||
{
|
||||
"tool": "IOMMU / VFIO",
|
||||
"restores": "Ta bort vfio-moduler från /etc/modules, nouveau / radeon / nvidia svartlista poster, och intel_iommu=on / amd_iommu=on / iommu=pt / pcie_acs_override parametrar från /etc/kernel/cmdline (ZFS) eller GRUB. Bygger initramfs."
|
||||
},
|
||||
{
|
||||
"tool": "AMD-processorkorrigeringar (Ryzen/EPYC)",
|
||||
"restores": "Ta bort idle=nomwait från kernel cmdline (ZFS) eller GRUB, och ignore_msrs / report_ignored_msrs alternativ från /etc/modprobe.d/kvm.conf."
|
||||
},
|
||||
{
|
||||
"tool": "Gästagent för en virtualiserad Proxmox-värd",
|
||||
"restores": "Läser /usr/local/share/proxmenux/guest_agent.pkg och rensar det registrerade värdpaketet. Installationen väljer qemu-guest-agent, open-vm-tools eller virtualbox-guest-utils efter hypervisor. Utan post prövas dessa tre paket. Det gäller den nästlade Proxmox-värden, inte gästmallar."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Lagring",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Dimensionering av ZFS ARC",
|
||||
"restores": "Tar bort /etc/modprobe.d/99-zfsarc.conf, återställer eventuella externa *.conf-filer som tillfälligt flyttats till /usr/local/share/proxmenux/backups/zfs_arc/, bygger om initramfs och kör proxmox-boot-tool refresh på värdar med systemd-boot."
|
||||
},
|
||||
{
|
||||
"tool": "Automatiska ZFS-ögonblicksbilder",
|
||||
"restores": "Ta bort cron-posterna som manuset skrev och erbjuder till apt purge zfs-auto-snapshot. Befintliga snapshot-dataset på poolerna lämnas intakt - ta bort dem separat om du vill ha dem borta."
|
||||
},
|
||||
{
|
||||
"tool": "Hastighetsgränser för vzdump",
|
||||
"restores": "Återställer /etc/vzdump.conf från installationens .bak och ger bwlimit och ionice deras värden före ProxMenux."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Tjänster & extras",
|
||||
"items": [
|
||||
{
|
||||
"tool": "Tidssynkronisering",
|
||||
"restores": "Ställ in tidszon tillbaka till UTC (säker standard) via timedatectl."
|
||||
},
|
||||
{
|
||||
"tool": "Entropigenerering (haveged)",
|
||||
"restores": "Stoppar, inaktiverar och rensar paketet haveged."
|
||||
},
|
||||
{
|
||||
"tool": "kexec (snabba omstarter)",
|
||||
"restores": "Inaktiverar kexec-pve.service, tar bort enhetsfilen och aliaset reboot-quick ur /root/.bash_profile och rensar kexec-tools."
|
||||
},
|
||||
{
|
||||
"tool": "Inaktivering av RPC / rpcbind",
|
||||
"restores": "Återställer rpcbind.service och rpcbind.socket var för sig till registrerat aktiverat/inaktiverat och aktivt/inaktivt tillstånd före ProxMenux."
|
||||
},
|
||||
{
|
||||
"tool": "pigz (parallell gzip)",
|
||||
"restores": "Återställer riktig gzip från gzip.distrib, tar bort dpkg-omdirigeringen och /bin/pigzwrapper, kommenterar pigz-raden i /etc/vzdump.conf och kör apt purge pigz efter verifiering av gzip."
|
||||
},
|
||||
{
|
||||
"tool": "Hög tillgänglighetstjänster",
|
||||
"restores": "Stoppar och inaktiverar pve-ha-lrm, pve-ha-crm och corosync. Befintliga HA-grupper och resursdefinitioner raderas inte; ta bort dem i webbgränssnittet om de inte längre behövs."
|
||||
},
|
||||
{
|
||||
"tool": "Ceph-paketförråd",
|
||||
"restores": "Rensar Ceph-paketen som alternativet installerat, tar bort deb822-filen /etc/apt/sources.list.d/ceph.sources på PVE 9 eller äldre Ceph-lista på PVE 8 och uppdaterar APT-cachen."
|
||||
},
|
||||
{
|
||||
"tool": "OVH RTM (övervakning)",
|
||||
"restores": "Rensar paket som matchar ovh-rtm*, rtm och rtm-*, tar bort /etc/rtm och RTM-posten i registret. Puppet-rester under /etc/puppet/ kan behöva granskas och rensas manuellt; katalogen tas inte bort. På andra värdar än OVH gör installationen normalt inga ändringar."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"edge": {
|
||||
"heading": "Specialfall och begränsningar",
|
||||
"packageTitle": "Ominstallation påverkar Proxmox-paket som används",
|
||||
"packageBody": "Om ProxMenux säkerhetskopior inte kan återställa <strong>Borttagning av prenumerationsvarning</strong> installeras <code>pve-manager</code>, <code>proxmox-widget-toolkit</code>, <code>libjs-extjs</code> och <code>libpve-http-server-perl</code> om med <code>--force-confnew</code>. Det påverkar webbgränssnittet som används: uppdatera webbläsaren och vänta några sekunder på återanslutning. Undvik det under migrering eller kloning.",
|
||||
"rebootTitle": "Ihållande namn och VFIO behöver en omstart",
|
||||
"rebootBody": "Att ta bort <code>10-proxmenux-*.link</code>-filerna (<em>Beständiga gränssnittsnamn</em>) och återställa <em>IOMMU/VFIO</em> ändrar inte det redan startade systemet; ändringarna gäller efter omstart. ProxMenux sätter omstartsflaggan automatiskt.",
|
||||
"perItemTitle": "Du kan återställa en sak och hålla resten",
|
||||
"perItemBody": "Avinstallationen arbetar per objekt. För att bara ta bort Log2RAM och behålla nätverksjusteringar och bashrc, markera endast <em>Log2RAM</em>. Övriga ändringar lämnas kvar och registret uppdateras."
|
||||
},
|
||||
"inspect": {
|
||||
"heading": "Inspektera registret manuellt",
|
||||
"intro": "Om du vill se vad som spåras utan att öppna menyn:",
|
||||
"outro": "Varje <code>\"tool\": true</code>-post motsvarar något ProxMenux tillämpas och kan vända. Ta bort en post manuellt rekommenderas inte - använd alltid menyn, som också kör omvänd funktion istället för att bara glömma förändringen.",
|
||||
"reinstallTitle": "Installera om efter avinstallation",
|
||||
"reinstallBody": "En återställd optimering kan tillämpas igen senare. Öppna <link>efterinstallationsmenyn</link> och kör Automatiserad eller Anpassningsbar; registret sparar det nya tillståndet."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Automatiserad post-Install",
|
||||
"href": "/docs/post-install/automated",
|
||||
"tail": " — tillämpa den rimliga grundkonfigurationen igen."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — Välj en annan delmängd."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera ProxMenux",
|
||||
"href": "/docs/settings/uninstall-proxmenux",
|
||||
"tail": " - olika operationer: tar bort ProxMenux själv, inte dess tillämpade optimeringar."
|
||||
},
|
||||
{
|
||||
"label": "Översikt över efterinstallation",
|
||||
"href": "/docs/post-install",
|
||||
"tail": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Tillämpa tillgängliga uppdateringar — Optimeringar efter installation | ProxMenux-dokumentation",
|
||||
"description": "Hur ProxMenux upptäcker nya versioner av optimeringar efter installationen (Log2Ram, minnesinställningar, systemgränser, Logrotate, nätverk …) och hur du tillämpar dem via efterinstallationsmenyn eller Monitors instrumentpanel."
|
||||
},
|
||||
"header": {
|
||||
"title": "Tillämpa tillgängliga uppdateringar",
|
||||
"description": "När en optimering efter installationen (Log2Ram, minnesinställningar, systemgränser, Logrotate …) har en nyare version på disk än den registrerade visar ProxMenux den som en tillgänglig uppdatering. Du kan tillämpa den via skriptens efterinstallationsmeny eller Monitors instrumentpanel. Båda kör samma funktion igen och uppdaterar registret.",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta är",
|
||||
"body": "ProxMenux optimeringar efter installationen har versionsnummer, till exempel <code>Log2ram SSD Protection v1.2</code>. Värden registrerar aktiva optimeringar och deras versioner i <code>/usr/local/share/proxmenux/installed_tools.json</code>. När en ny ProxMenux-version levererar en uppdaterad optimering upptäcks skillnaden och bara den erbjuds för ny tillämpning utan att köra hela efterinstallationen."
|
||||
},
|
||||
"why": {
|
||||
"heading": "Varför detta existerar",
|
||||
"body": "Optimeringar efter installationen förbättras ibland med bättre sysctl-inställningar, striktare Logrotate-gränser, nya storleksregler för Log2RAM eller korrigeringar av specialfall. Utan uppdateringsvägen behövde administratören köra hela skriptet med <em>alla</em> optimeringar igen eller avstå förbättringen. Tillämpa tillgängliga uppdateringar låter dig välja omkörning för endast de optimeringar vars version har ändrats."
|
||||
},
|
||||
"detection": {
|
||||
"heading": "Hur uppdateringar upptäcks",
|
||||
"steps": [
|
||||
{
|
||||
"title": "Versionerade skript på disk",
|
||||
"body": "Varje post-install-funktion förklarar sin version i skriptet (<code>scripts/post_install/auto_post_install.sh</code> och <code>scripts/post_install/customizable_post_install.sh</code>). En scanner extraherar dessa versioner från källan på disken."
|
||||
},
|
||||
{
|
||||
"title": "Versionsregister på värden",
|
||||
"body": "När administratören tillämpade varje optimering skrev motsvarande <code>register_tool</code>-anrop den aktiva versionen till <code>/usr/local/share/proxmenux/installed_tools.json</code>. Filen är den auktoritativa uppgiften om vad som är aktivt på värden just nu."
|
||||
},
|
||||
{
|
||||
"title": "Monitor jämför båda sidor",
|
||||
"body": "Vid start och var 24:e timme jämför Monitor versionerna på disk med registret. Varje skillnad ger en post i <code>/usr/local/share/proxmenux/updates_available.json</code>. Filen styr både efterinstallationsmenyns alternativ och kortet i Monitors instrumentpanel."
|
||||
},
|
||||
{
|
||||
"title": "En avisering per ny version",
|
||||
"body": "När minst en uppdatering väntar skickar Monitor en samlad avisering, till exempel <em>”4 uppdateringar av ProxMenux-optimeringar tillgängliga”</em>, med en rad per verktyg i formatet <code>name (vX → vY)</code>, som för Proxmox-paket. Den upprepas inte dagligen för samma uppsättning; bara en ny version eller ett nytt verktyg i listan utlöser den igen."
|
||||
}
|
||||
]
|
||||
},
|
||||
"pathA": {
|
||||
"heading": "Väg A — Från efterinstallationsmenyn",
|
||||
"intro": "Öppna <strong>Inställningar efter installation av Proxmox</strong> i huvudmenyn. När uppdateringar väntar visas <strong>Tillämpa tillgängliga uppdateringar (N)</strong> ovanför <em>Avinstallera optimeringar</em>. Antalet visar optimeringar med nyare version på disk än i registret. När allt är aktuellt döljs alternativet.",
|
||||
"menuAlt": "Efterinstallationsmenyn med det villkorliga alternativet Tillämpa tillgängliga uppdateringar (N) ovanför Avinstallera optimeringar; antalet visar optimeringar med nyare version på disk",
|
||||
"menuCaption": "<em>Tillämpa tillgängliga uppdateringar (N)</em> visas bara när en optimering har en väntande uppdatering och döljs när värden är aktuell.",
|
||||
"checklistBody": "Öppnar en lista med alla väntande uppdateringar i formatet <code>name (vX → vY)</code>. Alla är valda som standard; avmarkera dem du inte vill tillämpa nu.",
|
||||
"checklistAlt": "Dialogen Tillämpa tillgängliga uppdateringar med en rad per väntande optimering, namn och versionsövergång (aktuell → tillgänglig). Alla rader är valda.",
|
||||
"checklistCaption": "Välj enskilda optimeringar att uppdatera. Samma motor som Automatiserad och Anpassningsbar tillämpar funktionerna igen i bakgrunden och uppdaterar deras registerversioner."
|
||||
},
|
||||
"pathB": {
|
||||
"heading": "Väg B — Från Monitors instrumentpanel",
|
||||
"intro": "Samma uppdateringar finns i Monitor under <link>Inställningar → ProxMenux-optimeringar</link>. Kortet visar en <strong>räknare för väntande uppdateringar</strong> som öppnar väljaren per optimering. Varje verktyg har också en egen uppdateringsåtgärd.",
|
||||
"imageAlt": "Kortet ProxMenux-optimeringar i Monitors inställningar med räknare som öppnar väljaren och uppdateringsåtgärder per verktyg",
|
||||
"imageCaption": "Optimeringskortet i Monitor gör uppdateringarna tillgängliga via räknaren när en nyare version finns på disk, utan skalåtkomst."
|
||||
},
|
||||
"applying": {
|
||||
"heading": "Vad som händer när du tillämpar uppdateringen",
|
||||
"steps": [
|
||||
{
|
||||
"title": "Kör efterinstallationsfunktionen igen",
|
||||
"body": "Den valda funktionen körs igen på värden. Eftersom den är <strong>idempotent</strong> dupliceras inte konfigurationen utan den gamla versionen ersätts av den nya, inklusive sysctl-filer, tilläggskonfigurationer och tjänsteenheter."
|
||||
},
|
||||
{
|
||||
"title": "Uppdaterar registret",
|
||||
"body": "<code>register_tool</code>-anropet i funktionen skriver den nya versionen till <code>installed_tools.json</code>. Nästa skanning ser inte längre en felmatch och uppdateringsinmatningen försvinner från både menyn och Monitor-kortet."
|
||||
},
|
||||
{
|
||||
"title": "Ingen omstart om inte funktionen säger så",
|
||||
"body": "De flesta uppdateringar gäller omedelbart. De som ändrar kärnmoduler, beständiga gränssnittsnamn eller VFIO visar samma fråga om omstart som vid en ny installation."
|
||||
},
|
||||
{
|
||||
"title": "Registreringsuppdatering skickas till Monitor",
|
||||
"body": "När omgången är klar skickar menyn en POST-begäran till <code>http://127.0.0.1:8008/api/updates/post-install/scan</code> för att återskapa <code>/usr/local/share/proxmenux/updates_available.json</code>. När alla väntande uppdateringar tillämpats försvinner räknaren och det villkorliga skalmenyalternativet utan att invänta nästa skanning. Optimeringskortet finns kvar."
|
||||
}
|
||||
],
|
||||
"jqTitle": "jq krävs",
|
||||
"jqBody": "Listan i väg A använder <code>jq</code> för att läsa JSON med väntande uppdateringar. Om <code>jq</code> saknas avslutas flödet tyst: menyn visar antalet men inget händer efter valet. På en modern Proxmox-installation finns <code>jq</code>; kör annars <code>apt install -y jq</code>."
|
||||
},
|
||||
"differs": {
|
||||
"heading": "Hur det skiljer sig från de andra vägarna",
|
||||
"headerPath": "Path",
|
||||
"headerScope": "Omfattning",
|
||||
"headerWhen": "När det är meningsfullt",
|
||||
"rows": [
|
||||
{
|
||||
"pathLabel": "Automatiserad",
|
||||
"pathHref": "/docs/post-install/automated",
|
||||
"scope": "Tillämpar <em>alla</em> optimeringar i paketet igen.",
|
||||
"when": "Ny värd eller fullständig återtillämpning av grundinställningarna för en helt hanterad nod."
|
||||
},
|
||||
{
|
||||
"pathLabel": "Anpassningsbar",
|
||||
"pathHref": "/docs/post-install/customizable",
|
||||
"scope": "Välj från hela katalogen.",
|
||||
"when": "Välja exakt vilka optimeringar som är aktiva på värden."
|
||||
},
|
||||
{
|
||||
"pathLabel": "Tillämpa tillgängliga uppdateringar",
|
||||
"pathHref": null,
|
||||
"scope": "Bara optimeringar med nyare version på disk.",
|
||||
"when": "Hålla installerade optimeringar aktuella utan att ändra resten."
|
||||
},
|
||||
{
|
||||
"pathLabel": "Avinstallera optimeringar",
|
||||
"pathHref": "/docs/post-install/uninstall",
|
||||
"scope": "Omvänd optimering och ta bort dess registerpost.",
|
||||
"when": "Rulla tillbaka en specifik förändring."
|
||||
}
|
||||
]
|
||||
},
|
||||
"notifTitle": "Styrning av aviseringen",
|
||||
"notifBody": "Händelsen <em>Uppdateringar av ProxMenux-optimeringar tillgängliga</em> meddelar väntande uppdateringar. Den är aktiverad som standard på varje kanal och kan tystas per kanal under <link>Inställningar → Aviseringar</link>. Den utlöses bara en gång per unik uppsättning uppdateringar, inte vid varje skanning var 24:e timme."
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Post-Install: Virtualisering | ProxMenux Dokumentation",
|
||||
"description": "Virtualiseringsalternativ i ProxMenux anpassningsbara skript efter installationen: installerar automatiskt rätt gästagent om Proxmox körs i en VM och aktiverar IOMMU / VFIO så att PCI-enheter (GPU:er, nätverkskort, HBA:er) kan genomkopplas till dina VM:ar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Post-Install: Virtualisering",
|
||||
"section": "Inställningar efter installation av Proxmox"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna kategori täcker",
|
||||
"body": "Två oberoende alternativ. <strong>Installera rätt gästagent</strong> hjälper när Proxmox självt körs inuti en annan hypervisor. <strong>Aktivera VFIO IOMMU-stöd</strong> är det alternativ de flesta behöver: aktiverar kärnfunktioner för att genomkoppla en GPU, HBA eller ett nätverkskort direkt till en VM med nästan nativ prestanda."
|
||||
},
|
||||
"guestAgent": {
|
||||
"heading": "Installera relevant gästagent",
|
||||
"intro": "Identifierar Proxmox-värdens virtualiseringsmiljö med <code>systemd-detect-virt</code> och <code>dmidecode</code> och installerar rätt gästverktyg så att den yttre hypervisorn kan kommunicera korrekt med Proxmox: ordnad avstängning, klocksynkronisering, IP-rapportering med mera.",
|
||||
"headerDetected": "Detekterad värd",
|
||||
"headerPackage": "Paket installerat",
|
||||
"rows": [
|
||||
{
|
||||
"detected": "QEMU / KVM",
|
||||
"package": "qemu-guest-agent"
|
||||
},
|
||||
{
|
||||
"detected": "VMware (ESXi, Workstation)",
|
||||
"package": "open-vm-tools"
|
||||
},
|
||||
{
|
||||
"detected": "VirtualBox",
|
||||
"package": "virtualbox-guest-utils"
|
||||
},
|
||||
{
|
||||
"detected": "Bare metal (ingen)",
|
||||
"package": " — ingen åtgärd, inget installeras"
|
||||
}
|
||||
],
|
||||
"skipTitle": "Hoppa över detta när Proxmox körs direkt på maskinvaran",
|
||||
"skipBody": "Om Proxmox körs direkt på maskinvaran, vilket är vanligast, ändrar alternativet ingenting: detektorn returnerar <code>none</code> och skriptet avslutas utan ändringar. Det gäller bara de installationer som kör Proxmox <em>som gäst</em> för test eller labb."
|
||||
},
|
||||
"vfio": {
|
||||
"heading": "Aktivera VFIO IOMMU-stöd",
|
||||
"intro": "Aktiverar IOMMU på värden och läser in kärnmodulerna för PCI-genomkoppling (<code>vfio</code>, <code>vfio_iommu_type1</code>, <code>vfio_pci</code>). Då kan du tilldela en fysisk enhet till en VM, vars gäst får direkt åtkomst med nästan nativ prestanda.",
|
||||
"whoTitle": "Vem behöver detta",
|
||||
"whoItems": [
|
||||
"Du vill genomkoppla en GPU till en Windows-VM för spel eller en macOS-VM.",
|
||||
"Du har en dedikerad 10G NIC för en brandvägg / router VM (OPNsense, pfSense).",
|
||||
"Du vill passera en HBA direkt till en TrueNAS/Unraid VM för ZFS på nakna diskar.",
|
||||
"Du planerar att använda <em>Coral TPU</em>, ett inspelningskort eller en SDR-dongel i en VM."
|
||||
],
|
||||
"whoOutro": "Om inget av dessa stämmer kan du säkert hoppa över det här alternativet. För vidarekoppling till en <strong>LXC</strong> (inte en VM), krävs <em>inte</em> IOMMU.",
|
||||
"doesTitle": "Vad ProxMenux gör",
|
||||
"doesIntro": "Funktionen tar hänsyn till starthanteraren: den identifierar ZFS (systemd-boot) eller LVM/ext4 (GRUB) och skriver till rätt fil. Den är idempotent — parametrar som redan finns läggs inte till igen.",
|
||||
"headerBoot": "Starttyp",
|
||||
"headerFile": "Ändrad fil",
|
||||
"headerPost": "Steg efter uppdatering",
|
||||
"bootRows": [
|
||||
{
|
||||
"boot": "systemd-boot (ZFS)",
|
||||
"file": "/etc/kernel/cmdline",
|
||||
"post": "proxmox-boot-tool refresh"
|
||||
},
|
||||
{
|
||||
"boot": "GRUB (LVM/ext4)",
|
||||
"file": "/etc/default/grub",
|
||||
"post": "update-grub"
|
||||
}
|
||||
],
|
||||
"kernelIntro": "Tillagda kärnparametrar:",
|
||||
"modulesIntro": "Kärnmoduler som läggs till i <code>/etc/modules</code>:",
|
||||
"blacklistIntro": "Konflikterande drivrutiner svartlistas i <code>/etc/modprobe.d/blacklist.conf</code>:",
|
||||
"blacklistTitle": "Svartlistade GPU-drivrutiner förhindrar GPU-användning på värden",
|
||||
"blacklistBody": "Svartlistan hindrar värdkärnan från att binda <em>någon</em> GPU-drivrutin så att VFIO kan ta över GPU:n. Det är önskat för genomkoppling till en VM, men är <strong>motsatsen</strong> till vad du behöver för att <link>installera NVIDIA-drivrutiner på värden</link>, till exempel för LXC-transkodning. Välj en väg per GPU:",
|
||||
"pathItems": [
|
||||
"<strong>GPU → VM:</strong> aktivera VFIO/IOMMU här och låt GPU-drivrutinerna vara svartlistade.",
|
||||
"<strong>GPU → LXC (eller värd):</strong> hoppa över det här alternativet, använd NVIDIA-värdinstallationen, svartlista inte nvidia/nouveau.",
|
||||
"<strong>Två GPU:er:</strong> en kan tilldelas en VM och den andra en LXC, men du behöver mer detaljerad konfiguration: bind bara ett kort till <code>vfio-pci</code> med PCI-ID. Standardsvartlistan är för bred för detta — redigera <code>blacklist.conf</code> efteråt."
|
||||
],
|
||||
"acsTitle": "Om pcie_acs_override — förstå vad du aktiverar",
|
||||
"acsBody": "<code>pcie_acs_override=downstream,multifunction</code> lättar på kontrollen av PCIe Access Control Services. Kärnan kan dela IOMMU-grupper som firmware rapporterar som odelbara, ibland det enda sättet att genomkoppla en enhet utan hela gruppen. Avvägningen är <strong>minskad isolering mellan enheter</strong>: en skadlig eller komprometterad VM med genomkoppling får större attackyta via DMA. Acceptabelt i ett hemlabb, men överväg noga på värdar med opålitliga arbetslaster. Ta bort parametern från <code>/etc/kernel/cmdline</code> eller <code>/etc/default/grub</code> efter skriptet om den inte behövs och uppdatera starthanteraren igen.",
|
||||
"rebootTitle": "Omstart krävs",
|
||||
"rebootBody": "IOMMU, VFIO-moduler och svartlistan börjar gälla efter ombyggnad av initramfs och omstart. Skriptet kör <code>update-initramfs -u -k all</code>, uppdaterar starthanteraren och markerar ”omstart krävs” så att Anpassningsbar frågar i slutet.",
|
||||
"verifyTitle": "Verifiering efter omstart",
|
||||
"revertTitle": "Kan återställas från Avinstallera-menyn",
|
||||
"revertBody": "<link>Avinstallera optimeringar</link> återställer alla ändringar: tar bort IOMMU-parametrarna från <code>/etc/kernel/cmdline</code> eller GRUB, VFIO-modulerna från <code>/etc/modules</code> och drivrutinernas svartlistposter samt bygger om initramfs. En omstart krävs för att återställningen ska börja gälla."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"tail": " — naturliga nästa steg när IOMMU + VFIO är aktiverat."
|
||||
},
|
||||
{
|
||||
"label": "Lägg till Controller eller NVMe till VM",
|
||||
"href": "/docs/disk-manager/add-controller-nvme-vm",
|
||||
"tail": " — samma genomkopplingsinfrastruktur för lagringsstyrenheter."
|
||||
},
|
||||
{
|
||||
"label": "GPU Passthrough kommandon",
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"tail": " — IOMMU verifiering referens."
|
||||
},
|
||||
{
|
||||
"label": "Avinstallera optimeringar",
|
||||
"href": "/docs/post-install/uninstall",
|
||||
"tail": " — återställ IOMMU / VFIO utan rester."
|
||||
},
|
||||
{
|
||||
"label": "Anpassningsbar efterinstallation",
|
||||
"href": "/docs/post-install/customizable",
|
||||
"tail": " — tillbaka till den överordnade menyn."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Fail2Ban | ProxMenux-dokumentation",
|
||||
"description": "Installera Fail2Ban med tre jails inställd för Proxmox (SSH aggressiv, Proxmox UI 8006, ProxMenux Monitor 8008). Inkluderar journald MaxLevelStore fix, anpassade loggtjänster för tillförlitlighet, automatiskt upptäckta nftables/iptables backend och SSH MaxAuthTries härdning.",
|
||||
"ogTitle": "Fail2Ban | ProxMenux-dokumentation",
|
||||
"ogDescription": "Skydd mot lösenordsattacker för SSH och Proxmox webbgränssnitt, med Proxmox-specifika korrigeringar av journald och backend."
|
||||
},
|
||||
"header": {
|
||||
"title": "Fail2Ban",
|
||||
"description": "Installerar Fail2Ban för Proxmox: tre jails (aggressivt SSH, Proxmox-gränssnitt på 8006, ProxMenux Monitor på 8008 och omvänd proxy), journald-korrigering för att spara SSH-händelser, två tjänster som kopierar journalen till filer för att kringgå ett känt systemd-backendproblem, automatisk brandväggsbackend och SSH-härdning med MaxAuthTries.",
|
||||
"section": "Säkerhet"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Installerar Fail2Ban från Debians paketförråd och skapar en Proxmox-konfiguration som direkt skyddar SSH, Proxmox webbgränssnitt och ProxMenux Monitor. En befintlig installation upptäcks och ger i stället en hanteringsmeny för ominstallation eller borttagning."
|
||||
},
|
||||
"firstLaunch": {
|
||||
"heading": "Första lanseringen dialog",
|
||||
"body": "Om Fail2Ban saknas visar skriptet en bekräftelse med vad som ska installeras och konfigureras. Avbryt avslutar utan ändringar; bekräftelse startar installationen.",
|
||||
"imageAlt": "Installationsbekräftelse för Fail2Ban med tre jails, journald-korrigering och SSH-härdning"
|
||||
},
|
||||
"jails": {
|
||||
"heading": "De tre jails",
|
||||
"headerJail": "Jail",
|
||||
"headerProtects": "Skyddar",
|
||||
"headerRetries": "Försök / Tidsfönster",
|
||||
"headerBan": "Blockeringstid",
|
||||
"rows": [
|
||||
{
|
||||
"jail": "[sshd]",
|
||||
"protects": "SSH (aggressivt läge — omfattar ddos, mode, normal)",
|
||||
"retries": "2 / 60 min",
|
||||
"ban": "9 timmar"
|
||||
},
|
||||
{
|
||||
"jail": "[proxmox]",
|
||||
"protects": "Proxmox webb UI (port 8006)",
|
||||
"retries": "3 / 10 min",
|
||||
"ban": "1 timme"
|
||||
},
|
||||
{
|
||||
"jail": "[proxmenux]",
|
||||
"protects": "ProxMenux Monitor (port 8008 + http / https omvänd proxy)",
|
||||
"retries": "3 / 10 min",
|
||||
"ban": "1 timme"
|
||||
}
|
||||
],
|
||||
"outro": "Globala standardinställningar från <code>jail.local</code>: <code>ignoreip = 127.0.0.1/8 ::1</code>, <code>ignoreself = true</code>,<code> bantime = 86400</code> (24h reserv för jails som inte åsidosätter det), <code>maxretry = 2</code>, <code>findtime = 1800</code>."
|
||||
},
|
||||
"journald": {
|
||||
"heading": "Varför journald-korrigeringen är viktig",
|
||||
"intro": "Proxmox levererar <code>/etc/systemd/journald.conf</code> med <codeNw>MaxLevelStore=warning</codeNw>. journald kastar meddelanden på nivåer <em>under</em> warning innan de lagras. SSH och PAM rapporterar autentiseringsfel på nivåerna <em>info</em> / <em>notice</em>, så:",
|
||||
"diagram": {
|
||||
"sshLabel": "SSH / PAM",
|
||||
"sshDetail": "autentiseringsfel\n(nivå info / notice)",
|
||||
"journaldLabel": "journald",
|
||||
"journaldDetail": "MaxLevelStore=warning\n→ händelsen kastas utan varning",
|
||||
"fail2banLabel": "Fail2Ban",
|
||||
"fail2banDetail": "ser ingenting\naldrig förbjuder något",
|
||||
"arrowLabel": "Standard Proxmox"
|
||||
},
|
||||
"afterDiagram": "Installatören upptäcker detta och skriver en drop-in på <codeXs>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</codeXs> höja både <code>MaxLevelStore</code> och <code>MaxLevelSyslog</code> till <code>info</code>:",
|
||||
"code": "[Journal]\nMaxLevelStore=info\nMaxLevelSyslog=info",
|
||||
"outro": "Startar sedan om <code>systemd-journald</code>. Vid avinstallation tas tillägget bort och Proxmox ursprungliga standardvärde återställs."
|
||||
},
|
||||
"loggers": {
|
||||
"heading": "Varför två anpassade loggertjänster",
|
||||
"intro1": "Fail2Ban kan läsa systemd-journalen direkt (<code>backend = systemd</code>), men på Proxmox har denna backend kända problem med arbetsprocesser i <code>pvedaemon</code>: autentiseringshändelser syns i journalen men upptäcks inte alltid. Även <code>sshd</code> berörs ibland.",
|
||||
"intro2": "ProxMenux skapar två små systemd-tjänster som följer berörda enheter med <code>journalctl -f</code> och lägger till varje rad i en fil. Fail2Ban läser filerna med tillförlitliga <code>backend = auto</code> (filläge):",
|
||||
"headerService": "Tjänst",
|
||||
"headerSource": "Källenhet",
|
||||
"headerOutput": "Utdatafil",
|
||||
"rows": [
|
||||
{
|
||||
"service": "proxmox-auth-logger.service",
|
||||
"source": "pvedaemon.service",
|
||||
"output": "/var/log/proxmox-auth.log"
|
||||
},
|
||||
{
|
||||
"service": "ssh-auth-logger.service",
|
||||
"source": "ssh.service",
|
||||
"output": "/var/log/ssh-auth.log"
|
||||
}
|
||||
],
|
||||
"outro": "Båda tjänsterna är deklarerade <code>PartOf=fail2ban.service</code> så de startar om med Fail2Ban och slutar med det. Läget 640 som ägs av <code>root:adm</code> på loggfilerna. Den tredje loggen som används av <code>[proxmenux]</code> jail (<code>/var/log/proxmenux-auth.log</code>) skrivs direkt av appen ProxMenux Monitor Flask – ingen loggertjänst behövs för den."
|
||||
},
|
||||
"backend": {
|
||||
"heading": "Automatisk identifiering av brandväggsbackend",
|
||||
"intro": "Installationsproberar värden: om <code>nft list ruleset</code> fungerar, väljer den <code>nftables</code> som förbudsåtgärden. Annars faller det tillbaka till <code>iptables-multiport</code> / <code>iptables-allports</code>. Valet är skrivet i <code>jail.local</code>:",
|
||||
"code": "# nftables host\nbanaction = nftables\nbanaction_allports = nftables[type=allports]\n\n# iptables host (fallback)\nbanaction = iptables-multiport\nbanaction_allports = iptables-allports"
|
||||
},
|
||||
"hardening": {
|
||||
"heading": "SSH-härdning: MaxAuthTries",
|
||||
"intro": "Lynis-kontrollen <strong>SSH-7408</strong> rekommenderar <code>MaxAuthTries 3</code> i <code>sshd_config</code>. SSH-jailen använder <code>maxretry = 2</code> för blockering efter upprepade fel; MaxAuthTries begränsar försök inom samma anslutning. SSH-inställningen ger ett extra skyddslager även när Fail2Ban stoppats för underhåll.",
|
||||
"installerIntro": "Installationsprogrammet:",
|
||||
"items": [
|
||||
"Läser det aktuella <code>MaxAuthTries</code>-värdet (eller standarder till 6 om det saknas).",
|
||||
"Spara det till <code>/usr/local/share/proxmenux/sshd_maxauthtries_backup</code>.",
|
||||
"Redigerar <code>sshd_config</code> direkt: ersätter befintlig rad, avkommenterar en kommenterad rad eller lägger till en ny.",
|
||||
"Laddar om <code>sshd</code> utan omstart så att befintliga sessioner behålls."
|
||||
],
|
||||
"outro": "Vid avinstallation återställs det sparade ursprungliga värdet och <code>sshd</code> laddas om igen."
|
||||
},
|
||||
"manage": {
|
||||
"heading": "Hantera en befintlig installation",
|
||||
"intro": "Om Fail2Ban redan är installerad när du öppnar menyn upptäcker manuset den och visar en meny istället för att köra om installationsprogrammet:",
|
||||
"headerAction": "Handling",
|
||||
"headerWhat": "Vad det gör",
|
||||
"rows": [
|
||||
{
|
||||
"action": "Reinstallera",
|
||||
"what": "Kör hela installationen igen och skriver om alla jails med aktuella ProxMenux-standardvärden. Använd när en uppdatering ändrar rekommendationerna."
|
||||
},
|
||||
{
|
||||
"action": "Ta bort",
|
||||
"what": "Stoppar fail2ban och de två loggertjänsterna, rensar apt-paketet, tar bort alla jail / filtrera filer, tar bort journald drop-in (återställer Proxmox standard) och återställer originalet SSH MaxAuthTries."
|
||||
}
|
||||
]
|
||||
},
|
||||
"verify": {
|
||||
"heading": "Verifiera att det fungerar",
|
||||
"intro": "Efter installation, användbara kommandon från värden:",
|
||||
"code": "# Service status and version\nsystemctl status fail2ban\nfail2ban-client --version\n\n# All active jails\nfail2ban-client status\n\n# Detail on one jail\nfail2ban-client status sshd\nfail2ban-client status proxmox\nfail2ban-client status proxmenux\n\n# Currently banned IPs in a jail\nfail2ban-client status sshd | grep \"Banned IP\"\n\n# Manually unban an IP (use this if you ban yourself)\nfail2ban-client unban 192.0.2.10\n\n# Tail the auth logs Fail2Ban watches\ntail -f /var/log/ssh-auth.log\ntail -f /var/log/proxmox-auth.log\ntail -f /var/log/fail2ban.log"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"neverBansTitle": "Fail2Ban körs men förbjuder aldrig något",
|
||||
"neverBansBody": "Kontrollera att <code>tail -f /var/log/ssh-auth.log</code> får en post efter ett SSH-försök med fel lösenord från en annan dator. Om filen är tom granskar du <code>systemctl status ssh-auth-logger.service</code>. Om loggern körs visar du aktuella händelser med <code>journalctl -u ssh.service -n 50 --no-pager -p info</code> och kontrollerar att journald-tillägget tillåter nivån <em>info</em>.",
|
||||
"monitorEmptyTitle": "ProxMenux Monitor jail har inga poster även efter misslyckade inloggningar",
|
||||
"monitorEmptyBody": "Jailen <code>[proxmenux]</code> läser <code>/var/log/proxmenux-auth.log</code>, som skrivs av Flask-appen ProxMenux Monitor, inte av en journald-logger. Utan Monitor förblir filen tom och jailen utlöses inte. Det är väntat och konfigurationen är ofarlig. Om Monitor körs men loggen är tom kontrollerar du loggningskonfigurationen i Flask.",
|
||||
"selfBanTitle": "Jag har blockerat min egen åtkomst",
|
||||
"selfBanIntro": "Från en konsol / IPMI / iKVM (eller annan vitlistad IP):",
|
||||
"selfBanCode": "fail2ban-client unban '<'YOUR_IP'>'\n\n# To prevent it next time, edit /etc/fail2ban/jail.local and add your IP:\nignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 203.0.113.42\n\n# Then reload\nfail2ban-client reload",
|
||||
"aptFailTitle": "apt-get misslyckas: ''Unable to locate package fail2ban''",
|
||||
"aptFailBody": "Värden saknas Debian repos (gemensamt på barebones Proxmox installationer). Installatören upptäcker detta och skriver <code>/etc/apt/sources.list.d/debian.sources</code> med rätt kodnamn (<code>bookworm</code> / <code>trixie</code>) innan du går tillbaka. Om det fortfarande misslyckas, kontrollera <code>/etc/os-release</code> för <code>VERSION_CODENAME</code> och bekräfta att repo URL är tillgänglig.",
|
||||
"lockoutTitle": "SSH låser mig efter installation",
|
||||
"lockoutBody": "Installationsprogrammet sätter <code>MaxAuthTries=3</code>. Om din lösenordshanterare / agent har flera nycklar kan du överstiga det på ett enda anslutningsförsök. Begränsa nycklarna som erbjuds: <code>ssh -o IdentitiesOnly=yes -i ~/.ssh/specific_key user@host</code>. Eller tillfälligt höja <code>MaxAuthTries</code> i <code>sshd_config</code> medan du debug."
|
||||
},
|
||||
"files": {
|
||||
"heading": "Filer skrivna",
|
||||
"code": "/etc/fail2ban/jail.local # global defaults + [sshd]\n/etc/fail2ban/jail.d/proxmox.conf # [proxmox]\n/etc/fail2ban/jail.d/proxmenux.conf # [proxmenux]\n/etc/fail2ban/filter.d/proxmox.conf # auth-failure regex for pvedaemon\n/etc/fail2ban/filter.d/proxmenux.conf # auth-failure regex for Monitor\n/etc/systemd/system/proxmox-auth-logger.service # journal → file (pvedaemon)\n/etc/systemd/system/ssh-auth-logger.service # journal → file (sshd)\n/etc/systemd/journald.conf.d/proxmenux-loglevel.conf # MaxLevelStore=info\n/etc/ssh/sshd_config # MaxAuthTries=3 (in-place edit)\n/var/log/proxmox-auth.log # written by logger service\n/var/log/ssh-auth.log # written by logger service\n/var/log/proxmenux-auth.log # written by Monitor Flask app\n/usr/local/share/proxmenux/sshd_maxauthtries_backup # for restore on uninstall"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"monitorLabel": "ProxMenux Monitor → Säkerhetsflik",
|
||||
"monitorTail": " — installation via panelen, aktuell jail-status, blockerade IP-adresser och inställning av försök och blockeringstid per jail i webbläsaren.",
|
||||
"lynisLabel": "Lynis",
|
||||
"lynisTail": " — kör en säkerhetsgranskning före och efter för att bekräfta att kontrollen SSH-7408 uppfylls.",
|
||||
"securityLabel": "Säkerhetsöversikt",
|
||||
"securityTail": " - tillbaka till avsnittsöversikten."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-säkerhet — Fail2Ban och härdningsgranskning med Lynis | ProxMenux",
|
||||
"description": "Två säkerhetsverktyg för Proxmox VE: Fail2Ban (intrångsskydd för SSH, Proxmox webbgränssnitt och ProxMenux Monitor) och Lynis (säkerhets- och härdningsgranskning installerad från det officiella GitHub-arkivet).",
|
||||
"ogTitle": "Proxmox-säkerhet — Fail2Ban och härdningsgranskning med Lynis",
|
||||
"ogDescription": "Fail2Ban och Lynis för Proxmox VE: intrångsskydd och härdningsgranskning, installerade och hanterade av ProxMenux.",
|
||||
"twitterTitle": "Proxmox säkerhet | ProxMenux",
|
||||
"twitterDescription": "Fail2Ban och Lynis för Proxmox VE: intrångsskydd och härdningsgranskning."
|
||||
},
|
||||
"header": {
|
||||
"title": "Säkerhet",
|
||||
"description": "Två kompletterande verktyg för Proxmox VE: aktivt skydd (Fail2Ban blockerar IP-adresser som angriper SSH eller webbgränssnitt) och lokal granskning (Lynis söker härdningsbrister och ger 0–100 poäng). Varje verktyg har en egen installations- och hanteringsmeny som upptäcker befintliga installationer före varje åtgärd.",
|
||||
"section": "Säkerhet"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Aktivt skydd och lokal granskning",
|
||||
"body": "De besvarar olika frågor. <strong>Fail2Ban</strong> svarar på <em>”Angrips vi just nu?”</em> genom att bevaka autentiseringsloggar och blockera angripande IP-adresser. <strong>Lynis</strong> svarar på <em>”Hur väl härdad är värden?”</em> med en engångsgranskning och konkreta rekommendationer. Använd båda: Lynis visar vad som bör förbättras och Fail2Ban hanterar pågående angrepp."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna menyn",
|
||||
"body": "Välj <strong>Säkerhet</strong> i ProxMenux huvudmeny. Du får se följande:",
|
||||
"imageAlt": "Säkerhetsmeny med Fail2Ban och Lynis alternativ"
|
||||
},
|
||||
"pick": {
|
||||
"heading": "Välj ditt verktyg",
|
||||
"body": "Verktygen är oberoende: installera ett, båda eller inget. Varje kort nedan leder till avsnittet som förklarar verktyget i detalj."
|
||||
},
|
||||
"cards": {
|
||||
"fail2ban": {
|
||||
"title": "Fail2Ban",
|
||||
"body": "Aktivt intrångsskydd. Bevakar autentiseringsloggar för SSH och webbgränssnitt och blockerar IP-adresser efter upprepade fel.",
|
||||
"bullets": [
|
||||
"Tre jails: SSH, Proxmox UI (8006), ProxMenux Monitor (8008)",
|
||||
"Korrigerar Proxmox standardinställningar för journald som blockerar autentiseringsloggar",
|
||||
"Upptäcker nftables / iptables automatiskt",
|
||||
"SSH härdning: MaxAuthTries=3 (Lynis rekommendation)"
|
||||
]
|
||||
},
|
||||
"lynis": {
|
||||
"title": "Lynis",
|
||||
"body": "Lokal säkerhetsgranskare. Skannar värden och visar härdningspoäng samt konkreta åtgärdsförslag.",
|
||||
"bullets": [
|
||||
"Installerat från CISOfys officiella GitHub-arkiv (senaste versionen)",
|
||||
"Härdningspoäng 0–100 och lista över varningar och förslag",
|
||||
"Granskning och uppdatering via menyn",
|
||||
"Utformat för enbart läsning: ändrar aldrig systemet"
|
||||
]
|
||||
}
|
||||
},
|
||||
"workflowTip": {
|
||||
"title": "Arbetsflöde som använder båda",
|
||||
"body": "Kör först Lynis för att se startpoäng och viktigaste rekommendationer. Genomför önskade åtgärder. Installera sedan Fail2Ban: det inför automatiskt SSH-skydd mot lösenordsattacker och anpassar <code>MaxAuthTries</code> i <code>sshd_config</code> till kontrollen SSH-7408. Kör Lynis igen för att bekräfta förbättringen."
|
||||
},
|
||||
"fail2banSection": {
|
||||
"heading": "Fail2Ban",
|
||||
"body": "ProxMenux installerar Fail2Ban med en konfiguration för Proxmox. Utöver standardjailen för SSH skyddas Proxmox webbgränssnitt och ProxMenux Monitor. Två specifika problem hanteras: en standardinställning i journald som släpper autentiseringshändelser och ett problem i systemd-backend som hindrar tillförlitlig läsning av vissa journalkällor. Detaljsidan beskriver installationen, de tre jails, journald-korrigeringen, SSH-härdningen och felsökningen.",
|
||||
"optionTitle": "Fail2Ban – installera och hantera",
|
||||
"optionDescription": "Tre förkonfigurerade jails (aggressivt sshd, Proxmox-gränssnitt på 8006, ProxMenux Monitor på 8008 och omvänd proxy), automatisk nftables/iptables-detektering, journald-korrigering och SSH-härdning med MaxAuthTries."
|
||||
},
|
||||
"lynisSection": {
|
||||
"heading": "Lynis",
|
||||
"body": "ProxMenux klonar Lynis från <code>github.com/CISOfy/lynis</code> till <code>/opt/lynis</code> och gör det tillgängligt som <code>/usr/local/bin/lynis</code>. Debianpaketet undviks avsiktligt eftersom det ligger flera huvudversioner efter originalprojektet. Detaljsidan beskriver installation, granskning, uppdatering, avinstallation, rapportläsning och åtgärder utifrån resultaten.",
|
||||
"optionTitle": "Lynis — installera, granska och hantera",
|
||||
"optionDescription": "Installerar den senaste Lynis från den officiella CISOfy GitHub repo (inte det äldre Debian-paketet), kör systemrevisioner med härdningspoäng och uppdateringar via git pull."
|
||||
},
|
||||
"componentStatus": {
|
||||
"heading": "Komponentstatus",
|
||||
"body": "Båda installatörerna registrerar sitt tillstånd i <code>/usr/local/share/proxmenux/components_status.json</code> under kategorin <code>security</code>. ProxMenux använder den här filen för att bestämma om du vill visa installationen eller menyn för hantering påföljande körningar, och samma data matar instrumentpanelerna i ProxMenux Monitor när de är närvarande."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Lynis | ProxMenux-dokumentation",
|
||||
"description": "Installera senaste Lynis från CISOfys officiella GitHub-arkiv, kör en säkerhetsgranskning med härdningspoäng 0–100 och uppdatera med git pull. Utformat för enbart läsning, utan systemändringar.",
|
||||
"ogTitle": "Lynis | ProxMenux-dokumentation",
|
||||
"ogDescription": "Installera och kör säkerhetsgranskaren Lynis på Proxmox VE. Installation från det officiella GitHub-arkivet, granskning och uppdatering."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lynis",
|
||||
"description": "Klonar senaste Lynis från CISOfys officiella GitHub-arkiv, gör det tillgängligt som /usr/local/bin/lynis och erbjuder granskning, uppdatering, ominstallation och avinstallation via menyn. Granskaren läser bara och rapporterar utan att ändra systemet.",
|
||||
"section": "Säkerhet"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Installerar Lynis, CISOfys säkerhetsgranskare med öppen källkod, från dess GitHub-arkiv till <code>/opt/lynis</code> och skapar ett startskript i <code>/usr/local/bin/lynis</code> så att det nås via <code>PATH</code>. En befintlig installation ger i stället en meny för granskning, uppdatering, ominstallation eller borttagning."
|
||||
},
|
||||
"manageMenu": {
|
||||
"heading": "Hanteringsmeny (efter installation)",
|
||||
"intro": "Efter installationen öppnar varje nytt anrop hanteringsmenyn. Där kan du starta en granskning, uppdatera med git pull, installera om eller avinstallera.",
|
||||
"imageAlt": "Lynis management meny med revision, uppdatering, ominstallera och ta bort alternativ"
|
||||
},
|
||||
"whyUpstream": {
|
||||
"heading": "Varför det officiella GitHub-arkivet i stället för apt",
|
||||
"intro": "Debian erbjuder Lynis via apt, men paketet ligger vanligtvis flera huvudversioner efter originalprojektet. Nya kontroller, åtgärder för nya angreppssätt och förbättrade rekommendationer kommer först till GitHub. Lynis är ett fristående skalskript utan kompilering eller installationsberoenden utöver <code>git</code>; kloning av arkivet är därför metoden CISOfy rekommenderar.",
|
||||
"headerSource": "Källa",
|
||||
"headerPath": "Install path",
|
||||
"headerUpdate": "Uppdateringsmetod",
|
||||
"headerFresh": "Versionens aktualitet",
|
||||
"rows": [
|
||||
{
|
||||
"sourceRich": "<strong>ProxMenux (detta manus) </strong>",
|
||||
"path": "/opt/lynis/",
|
||||
"update": "git pull (via menyn)",
|
||||
"fresh": "Senaste versionen av originalprojektet"
|
||||
},
|
||||
{
|
||||
"sourceRich": "<strong>Debian apt</strong>",
|
||||
"path": "/usr/bin/lynis",
|
||||
"update": "apt upgrade",
|
||||
"fresh": "Ofta månader / år bakom"
|
||||
}
|
||||
]
|
||||
},
|
||||
"install": {
|
||||
"heading": "Hur installationen fungerar",
|
||||
"node1Label": "github.com/CISOfy/lynis",
|
||||
"node1Detail": "git clone\n(installera git först om det saknas)",
|
||||
"node2Label": "/opt/lynis/",
|
||||
"node2Detail": "hela arkivet\ninklusive skriptet ./lynis",
|
||||
"node3Label": "/usr/local/bin/lynis",
|
||||
"node3Detail": "wrapper:\ncd /opt/lynis && ./lynis $@",
|
||||
"outro": "Wrapper är obligatorisk - Lynis insisterar på att köras från sin egen katalog eftersom det laddar relativa vägar för plugins och profildata. Wrapper döljer den detaljen så <code>lynis audit system</code> fungerar bara från var som helst."
|
||||
},
|
||||
"detection": {
|
||||
"heading": "Detektering vägar",
|
||||
"intro": "Innan du visar menyn kontrollerar manuset tre platser för att avgöra om Lynis redan är närvarande:",
|
||||
"items": [
|
||||
"<code>/usr/local/bin/lynis</code> Wrapper installerad av ProxMenux",
|
||||
"<code>/opt/lynis/lynis</code> - direkt väg (om wrapperen togs bort)",
|
||||
"<code>/usr/bin/lynis</code> apt-installerad version, om användaren installerade den på det sättet tidigare"
|
||||
],
|
||||
"outro": "Om någon av sökvägarna hittas öppnas hanteringsmenyn. Skriptet avinstallerar <strong>inte</strong> Lynis som installerats via apt, bara den egna installationen i <code>/opt/lynis</code> och dess startskript."
|
||||
},
|
||||
"audit": {
|
||||
"heading": "Kör en revision",
|
||||
"intro": "Välj <strong>Kör säkerhetsgranskning nu</strong> i hanteringsmenyn. Det motsvarar att köra:",
|
||||
"code": "lynis audit system --no-colors",
|
||||
"outro": "Granskningen tar 30 sekunder till några minuter beroende på värdens storlek. Utdata visas direkt i terminalen utan väntanimation. Lynis grupperar kontroller efter kategori och märker varje test med <ok>[ OK ]</ok>, <warn>[ WARNING ]</warn> eller <sugg>[ SUGGESTION ]</sugg>. Slutets sammanfattning visar de viktigaste siffrorna:",
|
||||
"summary": "================================================================================\n\n Lynis security scan details:\n\n Hardening index : 76 [############ ]\n Tests performed : 247\n Plugins enabled : 0\n\n Components:\n - Firewall [V]\n - Malware scanner [X]\n\n Lynis modules:\n - Compliance status [?]\n - Security audit [V]\n - Vulnerability scan [V]\n\n================================================================================"
|
||||
},
|
||||
"report": {
|
||||
"heading": "Läsa rapporten",
|
||||
"intro": "De två viktiga avsnitten är <strong>Warnings</strong> (saker du bör fixa snart) och <strong>Suggestions</strong> (rekommendationer för att förbättra härdning). Varje objekt bär ett kontroll-ID som <code>SSH-7408</code> - användbart när du söker Lynis-dokumenten för motiveringen och fixen.",
|
||||
"headerMarker": "Markör",
|
||||
"headerMeaning": "Betydelse",
|
||||
"headerAction": "Handling",
|
||||
"rows": [
|
||||
{
|
||||
"markerRich": "<strong>OK</strong>",
|
||||
"meaning": "Test passerade",
|
||||
"action": "Ingenting"
|
||||
},
|
||||
{
|
||||
"markerRich": "<strong>WARNING</strong>",
|
||||
"meaning": "Verklig fråga, fix rekommenderad",
|
||||
"action": "Läs kontrollbeskrivningen, planera en fix"
|
||||
},
|
||||
{
|
||||
"markerRich": "<strong>SUGGESTION</strong>",
|
||||
"meaning": "Hardening förbättring tillgänglig",
|
||||
"action": "Tillämpa om det passar din hotmodell"
|
||||
}
|
||||
],
|
||||
"outro": "Fullständig rapport och maskinläsbara data skrivs till <code>/var/log/lynis.log</code> och <code>/var/log/lynis-report.dat</code> av Lynis själv."
|
||||
},
|
||||
"pairFail2ban": {
|
||||
"title": "Kombinera med Fail2Ban",
|
||||
"body": "SSH-7408 (MaxAuthTries) är en av de vanligaste varningarna. Installera <link>Fail2Ban</link> från ProxMenux rensar det automatiskt eftersom installationsprogrammet sätter <code>MaxAuthTries=3</code> som en del av dess SSH härdning steg. Kör Lynis igen efteråt för att bekräfta varningen är borta."
|
||||
},
|
||||
"update": {
|
||||
"heading": "Uppdatering Lynis",
|
||||
"body": "I menyn kör <strong>Uppdatera Lynis till senaste versionen</strong> kommandot <code>git pull --quiet</code> i <code>/opt/lynis</code>. Om katalogen finns men inte är en Git-arbetskopia, exempelvis efter manuell filkopiering, gör skriptet en fullständig ominstallation."
|
||||
},
|
||||
"reinstall": {
|
||||
"heading": "Installera om / avinstallera",
|
||||
"headerAction": "Handling",
|
||||
"headerWhat": "Vad det gör",
|
||||
"rows": [
|
||||
{
|
||||
"actionRich": "<strong>Installera om</strong>",
|
||||
"whatRich": "Tar bort <code>/opt/lynis</code>, klonar igen från GitHub och återskapar startskriptet. Använd om den lokala arbetskopian är skadad."
|
||||
},
|
||||
{
|
||||
"actionRich": "<strong>Ta bort</strong>",
|
||||
"whatRich": "Ta bort <code>/opt/lynis</code> och <code>/usr/local/bin/lynis</code>. Loggar på <code>/var/log/lynis*</code> hålls (de är revisionshistorik). En apt-installerad Lynis på <code>/usr/bin/lynis</code> lämnas orörd."
|
||||
}
|
||||
]
|
||||
},
|
||||
"cli": {
|
||||
"heading": "Användbara CLI-alternativ",
|
||||
"intro": "Efter installationen kan Lynis köras direkt från ett skal med extra alternativ som inte visas i menyn:",
|
||||
"code": "lynis show version # version + build date\nlynis show commands # list every available command\nlynis show details TEST-ID # explain a specific control\nlynis audit system --quick # skip slow tests (e.g. malware scan)\nlynis audit system --pentest # treat host as untrusted (more aggressive)\nlynis update info # check if a newer Lynis is available\n\n# Filter the report log for just the warnings\ngrep \"Warning\" /var/log/lynis.log\n\n# Same, for suggestions only\ngrep \"Suggestion\" /var/log/lynis.log"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"cloneTitle": "git clone misslyckas under installationen",
|
||||
"cloneBody": "Värden behöver nätverksåtkomst och DNS för att nå <code>github.com</code>. Från en konsol: <code>curl -sI https://github.com</code> och <code>git ls-remote https://github.com/CISOfy/lynis.git</code> kommer att avslöja det faktiska felet (DNS, TLS, proxy, repo URL). Om en proxy krävs, sätt <code>https_proxy</code> i miljön innan du kör menyn.",
|
||||
"notFoundTitle": "lynis: kommandot som inte hittats efter installation",
|
||||
"notFoundIntro": "Startskriptet <code>/usr/local/bin/lynis</code> skapades inte eller har tagits bort. Snabbaste lösningen är att installera om via menyn. Manuell lösning:",
|
||||
"notFoundCode": "cat > /usr/local/bin/lynis <<'EOF'\n#!/bin/bash\ncd /opt/lynis && ./lynis \"$@\"\nEOF\nchmod +x /usr/local/bin/lynis",
|
||||
"sshTitle": "Granskningen visar \"Warning: Test SSH-7408 — MaxAuthTries set incorrectly\"",
|
||||
"sshIntro": "SSH daemon tillåter för många auth försök per anslutning. Antingen installera <link>Fail2Ban</link> från ProxMenux (som sätter <code>MaxAuthTries=3</code> automatiskt) eller redigera <code>/etc/ssh/sshd_config</code> för hand:",
|
||||
"sshCode": "sed -i 's/^#?MaxAuthTries.*/MaxAuthTries 3/' /etc/ssh/sshd_config\nsystemctl reload sshd",
|
||||
"scoreTitle": "Score gick ner efter en Proxmox uppgradering",
|
||||
"scoreBody": "Kör <code>lynis update info</code> först - en Lynis-uppdatering kan ha lagt till nya kontroller som flaggar befintlig konfig. Uppdatera Lynis från menyn, re-audit och adressera de nya resultaten."
|
||||
},
|
||||
"files": {
|
||||
"heading": "Filer skrivna",
|
||||
"code": "/opt/lynis/ # full Lynis git checkout\n/usr/local/bin/lynis # wrapper script (cd + exec)\n/var/log/lynis.log # human-readable audit log (Lynis itself)\n/var/log/lynis-report.dat # machine-readable report (Lynis itself)"
|
||||
},
|
||||
"sample": {
|
||||
"heading": "Provrapport",
|
||||
"intro": "ProxMenux Monitor skapar en flersidig PDF för varje Lynis-körning via <link>fliken Säkerhet</link>. Första sidan sammanfattar härdningspoäng, systeminformation och säkerhetsläge. Följande sidor förklarar varje varning, listar förslag efter påverkan och visar paketinventeringen som användes vid granskningen.",
|
||||
"imageAlt": "Första sidan av Lynis Security Audit Report PDF - verkställande sammanfattning med Hardening Index 71/100, systeminformationsblock och säkerhetsställningsöversikt med brandvägg, malware scanner och installerade paket räknas",
|
||||
"captionPrefix": "Första sidan i en exempelrapport. Hela PDF-filen (",
|
||||
"captionLink": "exempel",
|
||||
"captionSuffix": ") fortsätter med detaljerade varningar, förslag och listan över installerade paket.",
|
||||
"cli": "På CLI-sidan är samma data i <code>/var/log/lynis-report.dat</code> (maskinläsbar plattfil) och <code>/var/log/lynis.log</code> (den mänskliga läsbara körloggen). PDF genereras på begäran av ProxMenux Monitor - kör <code>lynis</code> från kommandoraden producerar inte en."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/monitor/dashboard/security",
|
||||
"label": "ProxMenux Monitor → Säkerhetsflik",
|
||||
"tail": " - köra revisionen, bläddra i historiska rapporter och ladda ner PDF direkt från instrumentbrädan."
|
||||
},
|
||||
{
|
||||
"href": "/docs/security/fail2ban",
|
||||
"label": "Fail2Ban",
|
||||
"tailRich": " - implementerar SSH brute-force skydd som Lynis rekommenderar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/security",
|
||||
"label": "Säkerhetsöversikt",
|
||||
"tail": " - tillbaka till avsnittsöversikten."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "HTTPS för ProxMenux Monitor — Proxmox-värdcertifikat eller anpassade sökvägar | ProxMenux",
|
||||
"description": "Tillhandahåll ProxMenux Monitor via HTTPS med Proxmox-värdens automatiskt upptäckta certifikat, inklusive Let’s Encrypt installerat via Proxmox ACME, eller ett eget certifikat på valfri sökväg på disken.",
|
||||
"ogTitle": "HTTPS för ProxMenux Monitor - Proxmox värd eller anpassat certifikat",
|
||||
"ogDescription": "Aktivera HTTPS på port 8008 med Proxmox värdcertifikat eller någon anpassad .pem / .key par."
|
||||
},
|
||||
"header": {
|
||||
"title": "HTTPS för ProxMenux Monitor",
|
||||
"description": "Aktivera HTTPS för Monitor på port 8008 med det automatiskt upptäckta Proxmox-värdcertifikatet eller ett eget certifikat på disken. Proxmox-alternativet föredrar ACME-certifikatet om det finns och återanvänder Let’s Encrypt som Proxmox hanterar utan en extra förnyelseuppgift.",
|
||||
"section": "Säkerhet"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna sida täcker",
|
||||
"body": "Hur man byter Monitor från HTTP till HTTPS i Inställningarna → Säkerhetspanel, vad varje certifikatkälla faktiskt pekar på på disken, hur Proxmox-alternativet beter sig när värden har en Let's Encrypt-cert och hur man ställer in anpassade vägar om du hanterar certer utanför Proxmox."
|
||||
},
|
||||
"wheresetting": {
|
||||
"heading": "Var inställningen finns",
|
||||
"body": "Öppna Monitor och gå till <strong>Inställningar → Säkerhet → HTTPS / SSL</strong>. Panelen visar HTTP eller HTTPS och, om HTTPS inte aktiverats, de upptäckta certifikatkällorna.",
|
||||
"imageAlt": "Inställningar → Säkerhet → HTTPS / SSL-panelen i Monitorn som visar HTTPS-off-tillståndet, det automatiska upptäckta Proxmox-certifikatet (ämne, emittent, utgång) och alternativet Använd anpassat certifikat",
|
||||
"caption": "Panelen Inställningar → Säkerhet → HTTPS / SSL före aktivering. Monitor visar certifikatet som Proxmox använder och låter dig välja det med ett klick."
|
||||
},
|
||||
"twoways": {
|
||||
"heading": "Två sätt att aktivera HTTPS",
|
||||
"proxmox": {
|
||||
"title": "Använd Proxmox-certifikat",
|
||||
"summary": "Ett klick: Monitor återanvänder certifikatet som Proxmox VE presenterar på port 8006.",
|
||||
"items": [
|
||||
"Upptäcks automatiskt, ingen sökväg att skriva",
|
||||
"Föredrar ACME-certifikatet om det finns, annars det självsignerade standardcertifikatet",
|
||||
"Proxmox sköter förnyelsen; Monitor validerar och laddar certifikatet vid nästa nya TLS-anslutning"
|
||||
]
|
||||
},
|
||||
"custom": {
|
||||
"title": "Använd anpassat certifikat",
|
||||
"summaryRich": "Peka monitorn på ett <code>.pem</code> / <code>.key</code>-par var som helst på disken.",
|
||||
"items": [
|
||||
"Absoluta vägar (övervakningsprocessen måste kunna läsa båda)",
|
||||
"Användbara när certerna kommer från <code>certbot</code>, <code>acme.sh</code> eller ett wildcard",
|
||||
"Du ansvarar för förnyelsen: starta om Monitor när filerna ändras"
|
||||
]
|
||||
}
|
||||
},
|
||||
"proxmoxCert": {
|
||||
"heading": "Proxmox-certifikat - vad det faktiskt pekar på",
|
||||
"intro": "Proxmox VE håller två certifikatpar i <code>/etc/pve/local/</code>:",
|
||||
"table": {
|
||||
"headers": {
|
||||
"file": "Fil",
|
||||
"origin": "Ursprung",
|
||||
"when": "När monitorn använder den"
|
||||
},
|
||||
"rows": [
|
||||
{
|
||||
"fileRich": "<code>pveproxy-ssl.pem</code><br /><code>pveproxy-ssl.key</code>",
|
||||
"originRich": "Anpassade certifikat som laddats upp via Proxmox UI - inklusive Let's Encrypt-certifikatet som utfärdats under <em>Datacenter → Node → Certifikat → ACME</em>.",
|
||||
"when": "Föredras när båda filerna finns; Monitor använder certifikatet som Proxmox presenterar."
|
||||
},
|
||||
{
|
||||
"fileRich": "<code>pve-ssl.pem</code><br /><code>pve-ssl.key</code>",
|
||||
"originRich": "Självsignerat certifikat som genereras vid installationstid av Proxmox PKI.",
|
||||
"whenRich": "Fallback när ingen <code>pveproxy-ssl.pem</code> finns."
|
||||
}
|
||||
]
|
||||
},
|
||||
"callout": {
|
||||
"title": "Samma prioritet som Proxmox själv",
|
||||
"bodyRich": "<code>pveproxy</code> använder samma urvalsregel. Med Proxmox-alternativet använder Monitor certifikatet som Proxmox webbgränssnitt presenterar på 8006, utan kopiering eller separat förnyelseflöde."
|
||||
}
|
||||
},
|
||||
"letsencrypt": {
|
||||
"heading": "Få ett Let's Encrypt-certifikat via Proxmox ACME",
|
||||
"intro": "Proxmox VE innehåller en egen ACME-klient. <em>”Order Certificate Now”</em> sparar resultatet i <code>/etc/pve/local/pveproxy-ssl.pem</code>, som Monitor läser. Följande fem steg sammanfattar <extlink1>Proxmox officiella guide</extlink1> i kommandona som behövs.",
|
||||
"prereqs": {
|
||||
"title": "Förutsättningar",
|
||||
"items": [
|
||||
"Noden har ett riktigt DNS-namn (inte bara en IP) som pekar på det.",
|
||||
"<strong>Antingen</strong> port 80 nåbar från Internet (HTTP-01-validering, enklast), <strong>eller</strong> en DNS-leverantör med API-uppgifter (DNS-01, fungerar bakom NAT och stöder wildcard-certifikat).",
|
||||
"En e-postadress för ACME-kontot."
|
||||
]
|
||||
},
|
||||
"step1": {
|
||||
"heading": "Steg 1 - Registrera ACME-kontot",
|
||||
"introRich": "Ersätt e-post med din. Kontonamnet <code>default</code> är bara en etikett - du kan använda någon sträng.",
|
||||
"code": "pvenode acme account register default you@example.com",
|
||||
"afterRich": "Proxmox uppmanar dig att acceptera Let's Encrypt användarvillkor. Därefter kvarstår kontot under <code>/etc/pve/priv/acme/</code> och fliken ACME i GUI kommer att visa det."
|
||||
},
|
||||
"step2": {
|
||||
"heading": "Steg 2 — Välj valideringstyp",
|
||||
"http01Rich": "<strong>HTTP-01</strong> är den enklaste: den är inbyggd, ingen extra plugin. Let's Encrypt ansluter till <code>http://<your-host>/.well-known/acme-challenge/...</code> på port 80, så port 80 måste vara öppen från det offentliga internet till din nod - vanligtvis en port framåt på din router.",
|
||||
"dns01Rich": "<strong>DNS-01</strong> fungerar utan att exponera port 80 (bra för homelabs bakom CG-NAT) och är det enda alternativet för wildcard certifikat. Du lägger till en DNS plugin en gång med din leverantörs API-token. Cloudflare exempel:",
|
||||
"code": "pvenode acme plugin add dns cf \\\n --api cloudflare \\\n --data CF_Token=YOUR_CLOUDFLARE_API_TOKEN",
|
||||
"outroRich": "För andra leverantörer (Gandi, OVH, AWS Route 53 osv.) se <code>pvenode acme plugin add dns --help</code>. Proxmox innehåller <extlink2>alla DNS-insticksmoduler från acme.sh</extlink2>."
|
||||
},
|
||||
"step3": {
|
||||
"heading": "Steg 3 - Bind domänen till din nod",
|
||||
"http01Rich": "För HTTP-01 (använder den inbyggda <code>standalone</code> plugin):",
|
||||
"code1": "pvenode config set --acme domains=host.example.com,account=default",
|
||||
"dns01": "För DNS-01 med Cloudflare plugin från Step 2:",
|
||||
"code2": "pvenode config set --acmedomain0 domain=host.example.com,plugin=cf\npvenode config set --acme account=default",
|
||||
"wildcardRich": "Wildcard? Lägg till <code>domain=*.example.com</code> på en separat <code>--acmedomainN</code>-post. Wildcards kräver DNS-01."
|
||||
},
|
||||
"step4": {
|
||||
"heading": "Steg 4 - Beställ certifikatet",
|
||||
"code": "pvenode acme cert order",
|
||||
"afterRich": "Första körningen tar vanligtvis 30-60 sekunder medan utmaningen sprider sig. På framgång Proxmox skriver <code>/etc/pve/local/pveproxy-ssl.pem</code> + <code>.key</code>, startar <code>pveproxy</code>, och en förnyelsekrona schemaläggs automatiskt (Let's Encrypt certs är giltiga 90 dagar; Proxmox förnyar på 60)."
|
||||
},
|
||||
"step5": {
|
||||
"heading": "Steg 5 - Verifiera emittenten",
|
||||
"code": "openssl x509 -in /etc/pve/local/pveproxy-ssl.pem -noout -issuer",
|
||||
"afterRich": "Bör skriva ut en emittent som börjar med <code>O = Let's Encrypt</code>. Om det i stället läser <code>CN = Proxmox Virtual Environment</code> misslyckades ordern och filen är fortfarande den självsignerade PVE-certen - kör <code>pvenode acme cert order --debug 1</code> för att se varför."
|
||||
},
|
||||
"gui": {
|
||||
"title": "Föredrar GUI? Samma fem steg",
|
||||
"bodyRich": "<em>Datacenter → ACME</em> registrerar kontot; <em>Datacenter → ACME → Plugins</em> lägger till DNS-insticksmodulen; <em>Node → Certificates → ACME</em> kopplar domänen; <em>Order Certificates Now</em> kör steg 4. Kommandona ovan passar för skript och system utan grafiskt gränssnitt."
|
||||
}
|
||||
},
|
||||
"switchToHttps": {
|
||||
"heading": "Byt Monitor till HTTPS",
|
||||
"bodyRich": "När <code>/etc/pve/local/pveproxy-ssl.pem</code> signerats av Let's Encrypt öppnar du <strong>Inställningar → Säkerhet → HTTPS / SSL</strong>, kontrollerar att utfärdaren är <em>Let's Encrypt</em> och inte Proxmox lokala CA och klickar på <strong>Använd Proxmox-certifikat</strong>. Monitor startar om och nästa sidladdning använder HTTPS på 8008 med en offentligt betrodd certifikatkedja. Senare ACME-förnyelser valideras och väljs vid nästa nya TLS-anslutning, utan återkommande avfrågning eller omstart vid förnyelse. <strong>Uppdatera certifikat</strong> finns kvar under Säkerhet för diagnos och återställning."
|
||||
},
|
||||
"custom": {
|
||||
"heading": "Anpassat certifikat - när du ska använda det",
|
||||
"intro": "Klicka på <strong>Använd anpassat certifikat</strong> och ange två absoluta sökvägar:",
|
||||
"items": [
|
||||
"<strong>Certifikat</strong>: hela kedjan i PEM-format (<code>.pem</code> eller <code>.crt</code>).",
|
||||
"<strong>Privat nyckel</strong>: matchande nyckel i PEM-format (<code>.key</code>)."
|
||||
],
|
||||
"outro": "Båda filerna läses av Monitor-processen vid start. De måste kunna läsas av användaren som systemd-enheten körs som (root som standard). Vanliga sökvägar när ACME hanteras utanför Proxmox:",
|
||||
"code": "# certbot\n/etc/letsencrypt/live/<your-host>/fullchain.pem\n/etc/letsencrypt/live/<your-host>/privkey.pem\n\n# acme.sh\n~/.acme.sh/<your-host>_ecc/fullchain.cer\n~/.acme.sh/<your-host>_ecc/<your-host>.key",
|
||||
"symlinkCallout": {
|
||||
"title": "Symlink mål vs. filer",
|
||||
"bodyRich": "<code>certbot</code> lagrar de faktiska filerna i <code>/etc/letsencrypt/archive/</code> och <code>live/</code>-vägen är en symlänk. Peka Monitorn på <code>live/</code> symlink, inte <code>archive/</code>-filen - på så sätt omskriver varje förnyelsecykel helt enkelt symlinkmålet och Monitorn plockar upp den nya certen vid nästa servicestart."
|
||||
}
|
||||
},
|
||||
"afterHttps": {
|
||||
"heading": "Efter att ha aktiverat HTTPS",
|
||||
"bodyRich": "Att spara förändringen skriver <code>/etc/proxmenux/ssl_config.json</code> och utlöser en omstart av <code>proxmenux-monitor</code> systemd-enheten. Fliken webbläsare kommer att förlora sin nuvarande anslutning - ladda den på <code>https://<host>:8008/</code>. Den första belastningen med en Let's Encrypt-cert bör inte visa någon varning; med Proxmox självsignerad cert kommer webbläsaren att kräva ett undantag, samma som för port 8006.",
|
||||
"reverse": {
|
||||
"heading": "Omvända proxyservrar och webhooks",
|
||||
"bodyRich": "När Monitorn byter till HTTPS, Proxmox VE webhook URL-adresser registrerade för meddelanden också vända från <code>http://</code> till <code>https://</code> automatiskt. Befintliga webhook-poster skrivs om nästa gång en anmälningsregel sparas eller återupptäcks, så ingen manuell redigering av Proxmox-meddelandekonfig behövs."
|
||||
}
|
||||
},
|
||||
"trustCa": {
|
||||
"heading": "Lita på Proxmox självsignerade CA",
|
||||
"intro1Rich": "För att behålla Proxmox standardcertifikat utan ACME importerar du klustrets rot-CA i systemets eller webbläsarens betrodda certifikatlager. Monitor upptäcker <code>/etc/pve/local/pve-ssl.pem</code> som reservcertifikat. Klienten litar då på utfärdaren; URL:en måste fortfarande matcha ett namn i certifikatet.",
|
||||
"intro2Rich": "CA-filen bor på <code>/etc/pve/pve-root-ca.pem</code> på varje nod. I ett kluster är vägen på det delade <code>pmxcfs</code>-filsystemet så att alla noder delar samma rot, och en enda import täcker hela datacentret. Kopiera den till din maskin:",
|
||||
"code": "scp root@<your-host>:/etc/pve/pve-root-ca.pem ./pve-root-ca.pem",
|
||||
"thenImport": "Importera sedan den på klientsidan:",
|
||||
"items": [
|
||||
"<strong>Linux (hela systemet):</strong> kör <code>sudo cp pve-root-ca.pem /usr/local/share/ca-certificates/pve-root-ca.crt</code> följt av <code>sudo update-ca-certificates</code>. Webbläsare med systemets certifikatlager (Chromium, Edge) känner igen CA:n efter omstart; Firefox har ett eget lager och behöver den manuella importen nedan.",
|
||||
"<strong>macOS:</strong> dubbelklicka på <code>.pem</code>-filen i Nyckelhanterare, lägg till den i nyckelringen <em>System</em> och välj <em>Lita på → Lita alltid på</em>.",
|
||||
"<strong>Windows:</strong> högerklicka på filen → <em>Installera certifikat</em> → placera det i <em>Betrodda rotcertifikatutfärdare</em>.",
|
||||
"<strong>Firefox (alla operativsystem):</strong> <em>Inställningar → Sekretess och säkerhet → Certifikat → Visa certifikat → Certifikatutfärdare → Importera</em>; markera <em>Lita på denna CA för att identifiera webbplatser</em>."
|
||||
],
|
||||
"standalone": {
|
||||
"title": "Standalone noder utanför ett kluster",
|
||||
"bodyRich": "Varje icke-klustrerad Proxmox värd har sin egen <code>pve-root-ca.pem</code>. Om du hanterar flera fristående värdar, upprepa kopian/importen för varje eller gå med dem till ett kluster så att de delar en enda rot."
|
||||
}
|
||||
},
|
||||
"disable": {
|
||||
"heading": "Inaktivera HTTPS",
|
||||
"bodyRich": "Klicka på <strong>Inaktivera HTTPS</strong> i samma panel. Monitor startar om med okrypterad HTTP, användbart om ett oläsbart eget certifikat hindrar tjänsten från att starta. Ingen separat avinstallation krävs och certifikatfilerna ändras inte.",
|
||||
"stateCallout": {
|
||||
"title": "Var tillståndet lagras",
|
||||
"bodyRich": "<code>/etc/proxmenux/ssl_config.json</code> lagrar de aktiva certvägarna och källan (<code>none</code>, <code>proxmox</code>, <code>custom</code>). Radera filen är likvärdig med att inaktivera HTTPS - nästa start faller Monitor tillbaka till HTTP."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Värd: Lägg till iSCSI-mål som Proxmox-lagring | ProxMenux Dokumentation",
|
||||
"description": "Registrera ett iSCSI-mål som Proxmox-lagring med ProxMenux. Verktyget installerar open-iscsi, hittar portalen via sendtargets, låter dig välja mål och kör pvesm add iscsi. Det ger råa blockenheter för VM-diskavbildningar.",
|
||||
"ogTitle": "Värd: Lägg till iSCSI-mål som Proxmox-lagring | ProxMenux Dokumentation",
|
||||
"ogDescription": "Registrera ett iSCSI-mål som Proxmox-lagring med guidad upptäckt. Använder pvesm add iscsi och ger råa blockenheter för VM-diskar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Värd: Lägg till iSCSI-mål som Proxmox-lagring",
|
||||
"description": "Registrera ett iSCSI-mål (från en SAN, TrueNAS / FreeNAS, Synology, ett Windows Server-mål, någon matris som talar iSCSI) som Proxmox-lagring. De exporterade LUNs visas som blockenheter och kan vara värd för VM-diskbilder vid nära lokal prestanda över nätverket.",
|
||||
"section": "Lagring och delning · Värd"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "ProxMenux erbjuder <code>pvesm add iscsi</code> med ett guidat flöde: det installerar <code>open-iscsi</code> om det behövs, ber om iSCSI portal (IP:port), kör <code>iscsiadm --mode discovery --type sendtargets</code> mot det, låter dig välja ett mål IQN, och registrerar iSCSI lagring i Proxmox. <code>iscsid</code>-tjänsten håller sedan iSCSI-sessionen levande över omstart."
|
||||
},
|
||||
"vocab": {
|
||||
"heading": "iSCSI ordförråd (snabb referens)",
|
||||
"headerTerm": "Termen",
|
||||
"headerMeaning": "Betydelse",
|
||||
"rows": [
|
||||
{
|
||||
"term": "Portal",
|
||||
"meaningRich": "iSCSI service endpoint på målservern - en IP (eller värdnamn) plus en TCP-port. Standardport är <code>3260</code>; ProxMenux antar det om du inte anger en."
|
||||
},
|
||||
{
|
||||
"term": "Mål",
|
||||
"meaningRich": "En enda exporterad \"server\" i portalen, identifierad av dess IQN (<em>iSCSI Kvalificerad Name</em>). En portal kan vara värd för många mål."
|
||||
},
|
||||
{
|
||||
"term": "IQN",
|
||||
"meaningRich": "Kanonisk form är <code>iqn.YYYY-MM.reverse.domain:identifier</code>, till exempel <code>iqn.2024-08.com.truenas:proxmox-pool</code>. Både målet och initiatorn har sin egen IQN."
|
||||
},
|
||||
{
|
||||
"term": "LUN",
|
||||
"meaningRich": "En blockenhet inuti ett mål (Logical Unit Number). Ett enda mål kan exponera flera LUNs; varje LUN visas som sin egen disk i Proxmox och kan bli en VM-skiva."
|
||||
},
|
||||
{
|
||||
"term": "Initiator",
|
||||
"meaningRich": "Klienten som ansluter till ett mål, i detta fall din Proxmox-värd. Initiatorn har ett eget IQN i <code>/etc/iscsi/initiatorname.iscsi</code>. Mål accepterar vanligtvis bara sessioner från förhandsgodkända initiator-IQN."
|
||||
}
|
||||
]
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Från ProxMenux: s huvudmeny, öppna <strong>Storage & Share Manager → Lägg till iSCSI Mål som Proxmox Storage</strong>. Du kommer att se denna sub-meny med fyra alternativ:",
|
||||
"imageAlt": "iSCSI Host Manager-menyn - Lägg till / Visa / Ta bort / Testanslutning"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur man kör skriptet (Lägg till flöde)",
|
||||
"body": "Flödet har två faser med tydlig åtskillnad mellan att \"sätta upp initiativtagaren, upptäcka mål\" och \"registrera lagring i Proxmox\". Till skillnad från NFS / Samba finns det ingen auto-upptäckt på subnet - du måste veta portal adressen (iSCSI är inte sändningsvänlig)."
|
||||
},
|
||||
"add": {
|
||||
"heading": "Lägg till iSCSI-mål som Proxmox-lagring",
|
||||
"items": [
|
||||
"<strong>Ange portal</strong> - Skriv IP- eller värdnamnet på iSCSI-målsservern. Port <code>3260</code> antas om du inte skriver <code>host:port</code>.",
|
||||
"<strong>Upptäck mål</strong> — ProxMenux anropar <code>iscsiadm --mode discovery --type sendtargets --portal <ip:port></code>. Servern svarar med varje IQN som initiatorn får se. Om upptäckten misslyckas visar skriptet det exakta felet från <code>iscsiadm</code> och vanliga orsaker (fel IP, brandvägg, initiatorns IQN är inte godkänt).",
|
||||
"<strong>Målval</strong> - ett enda mål är automatisk vald; flera mål visar en meny.",
|
||||
"<strong>Lagring ID</strong> — standard är <code>iscsi-<last IQN segment, 20 chars max></code>. Endast bokstäver, siffror, <code>-</code> och <code>_</code>.",
|
||||
"<strong>Innehållstyp</strong> — till skillnad från NFS/Samba är iSCSI-innehållet <strong>låst till <code>images</code></strong>. iSCSI exponerar råa blockenheter, inte ett filsystem, så Proxmox tillåter bara VM-diskar där."
|
||||
],
|
||||
"authTitle": "auktorisera Proxmox-initiativtagaren på målet",
|
||||
"authBody1": "Innan tilläggsflödet kan slutföras måste iSCSI-målet känna till din Proxmox-värd. Hämta initiatorns IQN:",
|
||||
"authBody2": "Lägg till detta IQN i målets åtkomstlista (TrueNAS: <em>Sharing → Block → Initiators Groups</em>; Synology: <em>SAN Manager → iSCSI → Target → Edit → Initiators</em>; osv.). Om initiatorn inte är godkänd returnerar <code>iscsiadm</code>-upptäckten en tom lista eller ett autentiseringsfel."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Hela flödet motsvarar dessa kommandon:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa konfigurerade iSCSI lager",
|
||||
"body": "Listar varje iSCSI-post i Proxmox (<code>pvesm status | awk ''$2 == \"iscsi\"''</code>) med portal, mål IQN, innehållstyp och levande status."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Ta bort iSCSI lagring",
|
||||
"body": "Kör <code>pvesm remove <storage-id></code> efter att ha bekräftat portal, mål och innehåll. Endast Proxmox-registreringen tas bort - <strong>iSCSI-målet i sig är inte rörd</strong> och befintliga sessioner på kärnsidan kan dröja kvar till nästa omstart.",
|
||||
"warnTitle": "Kontrollera först befintliga VM-diskar på detta iSCSI",
|
||||
"warnBody": "Om en iSCSI-lagring tas bort medan VM:ar fortfarande har diskar där pekar de på en lagring som inte längre är registrerad. Proxmox rapporterar felet men LUN-data på målet påverkas inte: du kan registrera lagringen igen för att få tillbaka diskarna. Flytta eller säkerhetskopiera ändå VM:arna först."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Test iSCSI-anslutning",
|
||||
"body": "Kör en diagnostik: kontrollerar att <code>iscsiadm</code> är installerat, visar initiatorns IQN, bekräftar att <code>iscsid</code> körs, pingar varje registrerad portal, provar dess port och visar <code>pvesm status</code> samt om en iSCSI-session är aktiv (<code>iscsiadm --mode session</code>). En aktiv session och nåbar portal men ”inactive” i Proxmox tyder oftast på föråldrat tillstånd — prova <code>pvesm set <id> --disable 0</code>."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"portalTitle": "\"Kan inte nå portal\" men servern IP svarar någon annanstans",
|
||||
"portalBody": "Ping misslyckades på portal adressen. Kontrollera att du når <em>lagringsnätverk</em>-gränssnittet (iSCSI bor ofta på ett separat VLAN / subnet från ledningsnätverket). Kontrollera också DNS om du skrev ett värdnamn.",
|
||||
"discoverTitle": "\"iSCSI upptäckt misslyckades\" från iscsiadm",
|
||||
"discoverIntro": "Skriptet visar exakt fel. De vanligaste orsakerna:",
|
||||
"discoverItems": [
|
||||
"Portal IP / port fel (dubbelkontroll, standard är 3260).",
|
||||
"iSCSI-tjänst som inte körs på målservern.",
|
||||
"Brandvägg blockerar 3260 mellan Proxmox och målet.",
|
||||
"<strong>Initiator IQN är inte auktoriserad på målet.</strong> Den vanligaste orsaken till företagsarrayer. Lägg till din Proxmox IQN till målets initiativtagare ACL först."
|
||||
],
|
||||
"noTargetTitle": "Inga mål hittades men upptäckten lyckades",
|
||||
"noTargetBody": "Servern accepterade initiatorn men exponerar inget mål för den. Granska autentisering och åtkomstkontroller: vissa arrayer tillåter upptäckt för alla IQN men filtrerar vilka mål varje IQN får se.",
|
||||
"noLunTitle": "LUNs visas inte i /dev/disk/by-path efter registrering",
|
||||
"noLunBody": "<code>pvesm add iscsi</code> lyckades men kärnan ser inte blockenheter. Kontrollera <code>iscsiadm --mode session</code> - om ingen session är aktiv, starta en manuellt med <code>iscsiadm --mode node --login</code>. Om en session existerar men inga LUN visas, tvinga en rescan: <code>iscsiadm --mode session --rescan</code>. Om fortfarande ingenting, har målet förmodligen inga LUNs tilldelats denna IQN än (konfigurera LUN-kartläggning på målet).",
|
||||
"chapTitle": "CHAP autentisering",
|
||||
"chapBody": "ProxMenux har inga fält för CHAP-användarnamn och lösenord i det interaktiva flödet. Om upptäckten misslyckas stoppar skriptet före <code>pvesm add</code>; lagringen registreras inte trots felet. Konfigurera målets CHAP-krav separat i <code>open-iscsi</code>, inklusive autentisering för upptäckt om det krävs, och försök igen. Kontrollera konfigurationen med <code>iscsiadm</code> och aktiva sessioner med <code>iscsiadm --mode session</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "NFS-delning som Proxmox-lagring",
|
||||
"tail": " — fil-nivå alternativ. Enkelt att ställa in, mer flexibel (backup / ISO / tmpl / avbildningar), något långsammare för levande VM-skivor."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS som Proxmox förvaring",
|
||||
"tail": " — ett annat alternativ på filnivå; undvik för diskar till körande VM:ar på grund av låssemantiken."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"label": "Lägg till lokal disk som Proxmox lagring",
|
||||
"tail": " — när disken finns lokalt på Proxmox-värden i stället för på en annan dator i nätverket."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Värd: Lägg till lokal disk som Proxmox lagring | ProxMenux Dokumentation",
|
||||
"description": "Formatera en lokal SATA-, SAS- eller NVMe-disk på en Proxmox-värd och registrera den som katalog- eller ZFS-poollagring. Verktyget väljer diskar säkert, kräver bekräftelse före destruktiva steg, använder UUID i fstab, skapar ZFS-pooler och kör pvesm add dir / zfspool.",
|
||||
"ogTitle": "Värd: Lägg till lokal disk som Proxmox lagring | ProxMenux Dokumentation",
|
||||
"ogDescription": "Formatera en lokal disk och registrera den som kataloglagring eller ZFS-pool i Proxmox med ett guidat flöde och säkerhetsfilter."
|
||||
},
|
||||
"header": {
|
||||
"title": "Värd: Lägg till lokal disk som Proxmox lagring",
|
||||
"description": "Välj en fysisk disk på Proxmox-värden, formatera den vid behov som ext4, xfs, btrfs eller zfs och registrera den som kataloglagring med pvesm add dir eller som ZFS-pool med pvesm add zfspool. ProxMenux filtrerar bort systemdisken och diskar som används och beskriver varje destruktivt steg innan det körs.",
|
||||
"section": "Lagring och delning · Värd"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Övriga <em>Host</em> verktyg i detta avsnitt behandla <strong>nätverkslagring</strong> (NFS / Samba / iSCSI). Den här handlar om <strong>lokala</strong> diskar - reservdiskar fysiskt fästa på din Proxmox-värd som du vill använda för VM-skivor, säkerhetskopior, ISOs eller mallar. ProxMenux förbereder disken (partition + format + montering) och registrerar den i Proxmox så att UI kan placera innehåll där."
|
||||
},
|
||||
"destructive": {
|
||||
"title": "Destruktivt verktyg för \"format\" vägen",
|
||||
"body": "Alternativet <em>Formatera</em> <strong>förstör befintliga partitioner och data på den valda disken</strong>. ProxMenux visar en varning, filtrerar bort diskar som används och kräver bekräftelse innan <code>wipefs</code> / <code>sgdisk</code> / <code>mkfs</code> körs. Detta är inte säker överskrivning av varje byte. Kontrollera enhetssökvägen två gånger innan du bekräftar."
|
||||
},
|
||||
"compare": {
|
||||
"heading": "Katalog eller ZFS-pool — vilket ska du välja?",
|
||||
"headerDir": "Katalog (ext4 / xfs / btrfs)",
|
||||
"headerZfs": "ZFS pool",
|
||||
"rows": [
|
||||
{
|
||||
"label": "Proxmox lagringstyp",
|
||||
"dirRich": "<code>dir</code>",
|
||||
"zfsRich": "<code>zfspool</code>"
|
||||
},
|
||||
{
|
||||
"label": "VM skivformat",
|
||||
"dir": "qcow2-/raw-fil i ett filsystem",
|
||||
"zfs": "Inbyggt ZFS-dataset (zvol) per disk"
|
||||
},
|
||||
{
|
||||
"label": "Ögonblicksbilder",
|
||||
"dir": "qcow2 snapshots; btrfs snapshots om fs=btrfs",
|
||||
"zfs": "Inbyggda, omedelbara, copy-on-write"
|
||||
},
|
||||
{
|
||||
"label": "Dynamisk allokering",
|
||||
"dir": "Ja (qcow2 standard)",
|
||||
"zfs": "Ja (ZFS standard)"
|
||||
},
|
||||
{
|
||||
"label": "RAM-behov",
|
||||
"dir": "Låg",
|
||||
"zfs": "Högt — ZFS använder ledigt RAM som ARC-cache"
|
||||
},
|
||||
{
|
||||
"label": "Stöder innehållstyper",
|
||||
"dir": "images, backup, iso, vztmpl, snippets, rootdir",
|
||||
"zfs": "endast images och rootdir (blocklagring)"
|
||||
},
|
||||
{
|
||||
"label": "Bäst för",
|
||||
"dir": "Allmänt ändamål disk: blandning av VM diskar, säkerhetskopior, ISOs",
|
||||
"zfs": "Rena VM / LXC datadisk med ögonblicksbild + integritetsbehov"
|
||||
}
|
||||
]
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Add Local Disk as Proxmox Storage</strong> i ProxMenux huvudmeny. Undermenyn har fyra alternativ:",
|
||||
"imageAlt": "Lokal Disk Manager-menyn - Lägg till / Visa / Ta bort / Lista tillgängliga diskar"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur man kör skriptet (Lägg till flöde)",
|
||||
"body": "Flödet har två faser med ett trippelt säkerhetsfilter. Fas 1 upptäcker säkra diskar, bestämmer vad du ska göra med den valda och samlar in lagringsparametrar; Fas 2 gör det destruktiva arbetet. Fram till den slutliga bekräftelsen är disken orörd."
|
||||
},
|
||||
"format": {
|
||||
"heading": "Formatera en blank disk",
|
||||
"intro": "Vägen för en ny skiva eller en vars innehåll du inte bryr dig om.",
|
||||
"items": [
|
||||
"Välj disken (system / in-use diskar är dolda).",
|
||||
"Välj \"Format disk (ERASE all data)\".",
|
||||
"Välj filsystemet - se tabellen ovan för avvägningar.",
|
||||
"Lagring ID (standard <code>disk-<device></code>), monteringsväg, innehållstyp förinställd.",
|
||||
"Bekräfta i dialogen <strong>SLUTLIG BEKRÄFTELSE — DATA KOMMER ATT RADERAS</strong>.",
|
||||
"ProxMenux rensar partitionstabellen och skapar en partition över hela disken. Det kör <code>mkfs.<fs></code> eller <code>zpool create</code> och monterar resultatet. Vanliga filsystem får en UUID-post i <code>/etc/fstab</code> med <code>defaults,nofail</code>; ZFS använder poolens monteringskonfiguration. Om <em>Som Proxmox-lagring</em> är markerat (alltid för ZFS) registreras den sedan med <code>pvesm add dir</code> eller <code>pvesm add zfspool</code>; annars förblir den bara en montering på värden."
|
||||
],
|
||||
"tipTitle": "Varför UUID + nofail i /etc/fstab",
|
||||
"tipBody": "Skriptet skriver <code>UUID=… /mnt/<id> <fs> defaults,nofail 0 2</code>. UUID överlever enhetsreordering över omstart (så <code>/dev/sdc</code> blir <code>/dev/sdd</code> inte bryta start). <code>nofail</code> innebär att om disken någonsin försvinner (hårdvarufel, urkopplad), startar Proxmox ändå - lagring kommer bara att visas som inaktiv tills disken kommer tillbaka."
|
||||
},
|
||||
"reuse": {
|
||||
"heading": "Återanvänd ett befintligt filsystem",
|
||||
"intro": "Vägen för en disk du vill hålla data på - kanske du flyttade den från en annan Proxmox-värd, eller disken har redan säkerhetskopior / ISOs du vill hålla tillgänglig.",
|
||||
"items": [
|
||||
"Välj disken.",
|
||||
"Välj \"Använd befintliga filsystem\".",
|
||||
"Lagring ID, monteringsväg, innehållstyp förinställd.",
|
||||
"ProxMenux vidrör <strong>inte</strong> data: den skapar monteringspunkten, monterar disken, lägger till en UUID-post till <code>/etc/fstab</code> och registrerar den som en Proxmox <code>dir</code>-lagring."
|
||||
],
|
||||
"warnTitle": "Återanvändningsväg hanterar inte ZFS pooler",
|
||||
"warnBody": "Om disken redan innehåller en ZFS pool, <em>reuse</em> väg här försöker bara montera den som ett vanligt filsystem - som misslyckas. För att importera en befintlig ZFS pool använda <code>zpool import <name></code> på kommandoraden och sedan registrera den manuellt med <code>pvesm add zfspool</code>."
|
||||
},
|
||||
"presets": {
|
||||
"heading": "Innehållstyp förinställningar",
|
||||
"intro": "ProxMenux erbjuder tre förinställningar och ett eget alternativ. Den valda innehållssträngen skickas till <code>pvesm add … --content <csv></code>:",
|
||||
"headerPreset": "Förinställning",
|
||||
"headerContent": "Innehållssträng",
|
||||
"headerUse": "Användningsfall",
|
||||
"rows": [
|
||||
{
|
||||
"preset": "VM-lagring",
|
||||
"content": "images,backup",
|
||||
"use": "Lagring avsedd för VM-diskar som även har säkerhetskopior av samma VM:ar nära till hands."
|
||||
},
|
||||
{
|
||||
"preset": "Standard-NAS",
|
||||
"content": "backup,iso,vztmpl",
|
||||
"use": "En arkiv / media disk - säkerhetskopior, ISOs och LXC mallar. Inga live VM-skivor här."
|
||||
},
|
||||
{
|
||||
"preset": "Alla typer",
|
||||
"content": "images,backup,iso,vztmpl,snippets",
|
||||
"use": "Den breda förinställningen aktiverar avbildningar, säkerhetskopior, ISO-filer, LXC-mallar och snippets. Lägg vid behov till andra typer som stöds, exempelvis rootdir, via Anpassad."
|
||||
},
|
||||
{
|
||||
"preset": "Anpassad",
|
||||
"content": "(fri input)",
|
||||
"useRich": "Skriv exakt CSV själv, t.ex. <code>images</code> ensam, eller <code>rootdir,images</code>."
|
||||
}
|
||||
],
|
||||
"zfsTitle": "ZFS pool innehåll är smalare",
|
||||
"zfsBody": "Med <strong>zfs</strong> stöder en <code>zfspool</code> endast <code>images</code> och <code>rootdir</code>, inte ISO- eller säkerhetskopieringsfiler. Ange en lista som stöds via Anpassad. Skriptet skickar valet oförändrat; typer som inte stöds kan få registreringen att misslyckas. Kontrollera därefter <code>pvesm status</code>."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"extIntro": "Format + registrera en disk som ext4 katalog lagring:",
|
||||
"zfsIntro": "Eller som ZFS pool:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa disklagringar",
|
||||
"body": "Listar varje diskstödd Proxmox-lagring (både <code>dir</code> och <code>zfspool</code> som är användarskapade - systempooler som <code>rpool</code> är dolda). Visar monteringsvägen / poolnamn, innehållstyper och aktuell status."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Ta bort disklagring",
|
||||
"body": "Avregistrerar lagringen från Proxmox (<code>pvesm remove</code>) och erbjuder att rensa upp den matchande posten i <code>/etc/fstab</code>. För ZFS pools förstör skriptet <strong>inte</strong> automatiskt pool – det är ett separat <code>zpool destroy <name></code> steg du gör för hand när du är säker.",
|
||||
"warnTitle": "Data och befintliga VM beroenden",
|
||||
"warnBody": "Ta bort lagringen rör inte filsystemet eller poolen - data stannar på disken. Men VMs / CT som refererar till denna lagring av ID kommer inte att starta efter borttagning. Flytta dessa VM-skivor till en annan lagring (eller ta en säkerhetskopia) innan du tar bort."
|
||||
},
|
||||
"list": {
|
||||
"heading": "Lista tillgängliga diskar",
|
||||
"body": "En skrivskyddad diagnostikvy: visar utdata av <code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL</code> följt av <code>dir</code> / <code>zfspool</code> lagringar Proxmox vet redan om. Bra första stopp när du öppnar verktyget och vill se \"vad är på denna värd?\" innan du lägger till något."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noDisksTitle": "\"Inga tillgängliga diskar hittade\"",
|
||||
"noDisksIntro": "Säkerhetsfiltret gömde varje disk. Vanliga skäl:",
|
||||
"noDisksItems": [
|
||||
"Endast rotskivan är närvarande.",
|
||||
"Varje annan disk är en del av en aktiv ZFS / LVM / RAID-array.",
|
||||
"Varje annan disk refereras av en VM eller LXC konfig (genomgång).",
|
||||
"Disken är skrivskyddad (hårdvarufel eller skrivblockerare)."
|
||||
],
|
||||
"noDisksOutro": "Använd <em>List Available Disks</em> från menyn för att se den råa <code>lsblk</code>-utgången och förstå vad som händer.",
|
||||
"mountedTitle": "Format misslyckas med \"enhet är monterad\"",
|
||||
"mountedBody": "Något automatiskt monterade disken (udisksd, en skrivbordshanterare, en kvardröjande systemd-enhet). Avmontera den: <code>umount /dev/sdX?*</code> eller <code>systemctl stop <whatever-mounts-it></code>, och försök igen. Skriptets säkerhetsfilter ska ha dolda monterade diskar, så om du nådde detta fel inträffade monteringen mellan menyn och du bekräftar.",
|
||||
"zpoolTitle": "zpool create misslyckas med ”invalid vdev specification”",
|
||||
"zpoolBody": "Vanligtvis betyder disken fortfarande har gamla GPT / LVM / ZFS signaturer som <code>zpool</code> vägrar att skriva utan att tvingas. Manuset kör <code>wipefs</code> och <code>sgdisk --zap-all</code> före formatet, men en mycket envis disk kan fortfarande ha en gammal etikett. Tvinga en rensning manuellt: <code>zpool labelclear -f /dev/sdX</code> eller <code>dd if=/dev/zero of=/dev/sdX bs=1M count=10</code> och försök igen.",
|
||||
"inactiveTitle": "Lagring visar som inaktiv efter omstart",
|
||||
"inactiveBody": "Kontrollera <code>findmnt <mount-path></code> - om fästet saknas, missade något i <code>/etc/fstab</code>. <code>dmesg | tail</code> pekar vanligen på orsaken (UUID felmatch, filsystem korruption, <code>nofail</code> släppte retry). En <code>mount -a</code> återaktiverar vanligtvis lagringen när orsaken är fast."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/format-disk",
|
||||
"label": "Diskhanterare: formatera / radera fysisk disk",
|
||||
"tail": " — låg nivå alternativ när du bara vill förbereda en disk utan att registrera den som Proxmox lagring."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-iscsi",
|
||||
"label": "Lägg till iSCSI-mål som Proxmox-lagring",
|
||||
"tail": " — motsvarande nätverkslösning när blockenheten finns på en annan dator."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"label": "Lägg till delad katalog på värd",
|
||||
"tail": " — förbered en katalog på värden för LXC-bind-monteringar (registrerar ingen Proxmox-lagring)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Värd: Lägg till delad katalog på Värd | ProxMenux Dokumentation",
|
||||
"description": "Skapa en värdkatalog för LXC-bind-monteringar med behörigheter för både privilegierade och oprivilegierade containrar. Sticky bit, rwx för alla och standard-ACL:er för arv.",
|
||||
"ogTitle": "Värd: Lägg till delad katalog på Värd | ProxMenux Dokumentation",
|
||||
"ogDescription": "Förbered en värdkatalog för LXC-bind-monteringar med behörigheter som är kompatibla med privilegierade och oprivilegierade CT."
|
||||
},
|
||||
"header": {
|
||||
"title": "Värd: Lägg till delad katalog på värd",
|
||||
"description": "Skapa en värdkatalog utformad för att vara bindmonterad till en eller flera LXC-behållare. ProxMenux tillämpar en uppsättning behörigheter som fungerar för både privilegierade och oprivilegierade CT på en gång - ingen skiftad UID huvudvärk, inga per-container chowns - och registrerar katalogen så LXC Mount Manager kan plocka upp det senare.",
|
||||
"section": "Lagring och delning · Värd"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta är (och inte)",
|
||||
"body": "Det här verktyget registrerar <strong>inte</strong> något i Proxmox (ingen <code>pvesm add</code> här). Den förbereder bara en katalog på värden — <code>/mnt/shared</code>, som standard — med behörigheter som alla LXC-behållare kan läsa och skriva, oavsett om CT är privilegierad eller oprivilegierad. Det vanliga nästa steget är att bind-montera den i varje CT med <mountLink>LXC Mount Manager</mountLink>."
|
||||
},
|
||||
"why": {
|
||||
"heading": "Varför ett dedikerat verktyg för detta",
|
||||
"intro": "När du binder en värdkatalog till en LXC-behållare beror behörigheter på:",
|
||||
"items": [
|
||||
"Om CT:n är <strong>privilegierad</strong> (UID 0 i CT = UID 0 på värden) eller <strong>oprivilegierad</strong> (UID 0 i CT = UID 100000 på värden — allt förskjuts med +100000).",
|
||||
"Värdkatalogens ägare (en fil som ägs av UID 1000 på värden använder behörigheterna för ”övriga” ur en oprivilegierad CT:s perspektiv, eftersom ingen CT-användare mappas till värdens UID 1000).",
|
||||
"Oavsett om flera CT delar samma katalog (annorlunda CT kan ha olika UID-intervall)."
|
||||
],
|
||||
"outro": "ProxMenux använder en praktisk metod: <strong>ge alla åtkomst</strong> på filsystemnivå med rwx för alla, sticky bit och ACL:er för arv av behörigheter. Alla mappade UID:n kan läsa och skriva; ingen anpassning av UID/GID behövs."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så körs skriptet",
|
||||
"body": "Skriptet har ingen huvudmeny - det driver en enda åtgärd, <strong>Skapa delad katalog</strong>. Fas 1 samlar in målvägen; Fas 2 skapar katalogen och tillämpar behörigheter."
|
||||
},
|
||||
"bits": {
|
||||
"heading": "Vad varje tillstånd bit gör",
|
||||
"intro": "Numret <strong>1777</strong> är inte godtyckligt - det är samma läge Linux använder för <code>/tmp</code>. Tre egenskaper kombinerade:",
|
||||
"headerBit": "Bit",
|
||||
"headerEffect": "Effekt",
|
||||
"headerWhy": "Varför det spelar roll här",
|
||||
"rows": [
|
||||
{
|
||||
"bit": "1 (sticky bit)",
|
||||
"effect": "Bara filägaren, katalogägaren eller en process med tillräckliga privilegier får ta bort eller byta namn på filen.",
|
||||
"why": "Hjälper till att hindra användare med olika mappade UID:n från att radera varandras filer. Isolerar inte CT:er som delar mappat UID eller privilegierad rootåtkomst."
|
||||
},
|
||||
{
|
||||
"bit": "777 (rwx-rwx-rwx)",
|
||||
"effect": "Alla kan läsa, skriva och korsa.",
|
||||
"why": "Oprivilegierade CT UID (100000+) visas som \"andra\" från värden, så världsrwx ger dem tillgång."
|
||||
},
|
||||
{
|
||||
"bit": "ACL:er (standard)",
|
||||
"effect": "Ärvd på varje nyskapad fil/underdir.",
|
||||
"why": "Nytt innehåll ärver standard-ACL:erna utan att skriptet körs igen. Program kan fortfarande begära restriktiva lägen eller ändra behörigheter senare."
|
||||
}
|
||||
],
|
||||
"privTitle": "Privilegierade CT ser samma sak, bara utan skiftet",
|
||||
"privBody": "För en privilegierad CT, UID 0 i CT är UID 0 på värden, så <code>root</code> inuti CT kan läsa / skriva värdkatalogen direkt. <code>1777</code> är fortfarande bra - det betyder bara att icke-rotanvändare i CT också kan använda katalogen. Samma behörighet omfattar båda fallen."
|
||||
},
|
||||
"where": {
|
||||
"heading": "Var ska man sätta den delade katalogen",
|
||||
"intro": "Platsvalaren erbjuder fyra alternativ:",
|
||||
"opt1Title": "1. Skapa ny mapp i /mnt",
|
||||
"opt1Body": "Det vanliga valet. ProxMenux auto föreslår det första fria namnet (<code>shared</code>, <code>shared2</code>, <code>shared3</code>, ...). Du bekräftar eller skriver ett annat namn.",
|
||||
"opt2Title": "2. Ange anpassad väg",
|
||||
"opt2Body": "För kataloger utanför <code>/mnt</code>. All absolut väg fungerar (t.ex. <code>/srv/media</code>, <code>/data/family</code>). Skriptet tillämpar samma behörigheter.",
|
||||
"opt3Title": "3. Visa befintliga mappar i /mnt",
|
||||
"opt3Body": "Läs-bara diagnostik: listar varje katalog under <code>/mnt</code> med sina behörigheter, ägare och tillgängligt utrymme. Användbar innan du skapar en ny för att undvika namnkollisioner.",
|
||||
"opt4Title": "4. Avbryt",
|
||||
"opt4Body": "Avslutar utan att skapa något, som att trycka på <kbd>Esc</kbd>.",
|
||||
"tipTitle": "Var bor /mnt?",
|
||||
"tipBody": "Som standard <code>/mnt</code> sitter på Proxmox rotfilsystem. Om du vill ha den delade katalogen på en annan disk (en dataskiva, en ZFS pool), montera den disken under <code>/mnt/<name></code> först (Disk Manager eller <diskLink>Lägg till lokal disk som Proxmox lagring</diskLink>), och sedan skapa den delade katalogen som en undermapp i den - eller välj \"Ange anpassad sökväg\" här och peka på den monterade disken."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Hela flödet kan återspelas för hand:"
|
||||
},
|
||||
"next": {
|
||||
"heading": "Nästa steg: bind-mount i containrar",
|
||||
"body": "Att skapa katalogen förbereder den bara – ingen container ser den ännu. För att göra det synligt inuti en eller flera LXC:er, använd <mountLink>LXC Mount Manager</mountLink> för att binda <code>/mnt/<name></code> till CT:erna. Eftersom behörigheterna redan är öppna, kommer Mount Manager <strong>inte</strong> att erbjuda att ändra dem – katalogen är redo att användas som den är."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"mkdirTitle": "\"Failed to create directory\"",
|
||||
"mkdirBody": "Vanligtvis ett filsystemproblem: <code>/mnt</code> är på ett skrivskyddat filsystem, banan innehåller en komponent som inte är en katalog (t.ex. du skrev <code>/etc/passwd/sub</code>), eller disken är full. Kolla med <code>df -h /mnt</code> och <code>mount | grep /mnt</code>.",
|
||||
"writeTitle": "Container kan inte skriva trots öppna behörigheter",
|
||||
"writeBody": "Dubbelkolla CT använder faktiskt bindfästet (<code>pct config <ctid> | grep ^mp</code>). Inuti CT, kör <code>touch /mnt/data/test-$(date +%s)</code> - om detta misslyckas med tillstånd nekas, kan fästet vara på ett värdfilsystem som inte hedrar ACLs (vissa äldre <code>ext3</code> eller <code>vfat</code> fästen). Flytta den delade katalogen till en ext4 / xfs / btrfs / zfs-backning.",
|
||||
"aclTitle": "ACL kommandon tyst otillgängliga",
|
||||
"aclBody": "På en minimal Proxmox installera <code>setfacl</code> / <code>getfacl</code> kanske inte installeras. Manuset faller tillbaka graciöst (<code>command -v setfacl</code> check) och tillämpar endast POSIX behörigheter - vilket ofta är tillräckligt, men nya filer kommer inte automatiskt att ärva den tillåtna profilen. Installera <code>acl</code> med <code>apt-get install -y acl</code> och kör om manuset på katalogen."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Monteringshanterare för LXC",
|
||||
"tail": " - det naturliga nästa steget: binda samman denna katalog till en eller flera containrar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"label": "Lägg till lokal disk som Proxmox lagring",
|
||||
"tailRich": " — Om du vill ha den delade katalogen på en dedikerad disk, förbered disken först, montera den under <code>/mnt</code>, skapa sedan den delade undermappen här."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Värd: montera NFS-delning | ProxMenux-dokumentation",
|
||||
"description": "Montera en extern NFS-export på Proxmox-värden som Proxmox-lagring med pvesm add nfs, som ett separat fstab-montage som inte visas i Datacenter > Storage eller på båda sätten. Fstab passar när sökvägen ska delas med LXC-containrar via bind mount utan att registreras som Proxmox-lagring.",
|
||||
"ogTitle": "Värd: montera NFS-delning | ProxMenux-dokumentation",
|
||||
"ogDescription": "Montera en extern NFS-export på Proxmox-värden via pvesm, fstab eller båda. fstab-väg är idealisk för LXC-bindning."
|
||||
},
|
||||
"header": {
|
||||
"title": "Värd: montera NFS-delning på värden",
|
||||
"description": "Montera en extern NFS export (från en NAS, en annan server, en homelab-delning ...) på Proxmox värd. Välj en eller båda metoderna: registrera den som Proxmox-lagring (synlig i Datacenter > Lagring) och / eller lägg till en vanlig /etc/fstab-montering på en väg du väljer (användbar för bindmontering av delningen i LXC-behållare utan att exponera den som en Proxmox-lagring).",
|
||||
"section": "Lagring och delning · Värd"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "ProxMenux erbjuder två sätt att montera en NFS-export: <strong>(1) Proxmox-lagring</strong> via <code>pvesm add nfs</code>, där resursen visas i Datacenter > Lagring och Proxmox hanterar monteringen på <code>/mnt/pve/<id></code>; <strong>(2) fstab-montering på värden</strong> på en sökväg du väljer, beständig genom <code>/etc/fstab</code> och inte synlig som Proxmox-lagring. Det senare passar för bind-montering till LXC-containrar utan extra poster i Proxmox-gränssnittet. Du kan använda endera metoden eller båda."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Mount NFS Share on Host</strong> i ProxMenux huvudmeny. Undermenyn har fyra alternativ:",
|
||||
"imageAlt": "NFS-värdmeny — Montera / Visa / Ta bort / Testa anslutning"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur manuset går",
|
||||
"body": "Flödet har två faser med tydlig separation mellan \"upptäcka, validera och välja\" och \"faktiskt montering / skrivkonfig\". Efter att ha valt en export väljer du monteringsmetod (er) via en checklista; resten av dialogrutorna ber bara om param för de metoder du valde. Fram till den slutliga bekräftelsen berörs varken <code>/etc/pve/storage.cfg</code> eller <code>/etc/fstab</code>."
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Välj monteringsmetod (ett eller båda alternativen)",
|
||||
"intro": "Efter att ha valt och validerat exporten visar ProxMenux en checklista med de två monteringsmetoderna. Du kan markera antingen, eller båda. Om du trycker på OK utan att markera något, återkommer dialogrutan tills du väljer minst ett alternativ eller trycker på Avbryt flödet.",
|
||||
"imageAlt": "Mount metod checklista med pvesm och fstab alternativ",
|
||||
"headerMethod": "Metod",
|
||||
"headerMount": "Monteringssökväg",
|
||||
"headerUi": "Synlig i datacenter > Lagring",
|
||||
"headerUseCase": "Typiskt användningsfall",
|
||||
"rows": [
|
||||
{
|
||||
"method": "<strong>Som Proxmox-lagring (pvesm)</strong>",
|
||||
"mountRich": "<code>/mnt/pve/<storage-id></code> (hanterad av Proxmox)",
|
||||
"ui": "Ja",
|
||||
"useCase": "VM diskbilder, säkerhetskopior, ISOs, LXC mallar - allt som behöver visas i Proxmox UI."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Endast värdens fstab</strong>",
|
||||
"mountRich": "<code>/mnt/<path></code> (du väljer vägen)",
|
||||
"ui": "Nej",
|
||||
"useCaseRich": "Bind-montera delningen i en eller flera LXC:er <em>utan</em> att registrera den som Proxmox-lagring. Håller Datacenter-gränssnittet överskådligt."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Båda</strong>",
|
||||
"mount": "Båda sökvägarna ovan (två monteringspunkter för samma NFS-export)",
|
||||
"ui": "Ja",
|
||||
"useCase": "Integrering i gränssnittet och en separat stabil värdsökväg med öppna behörigheter för LXC-bind-monteringar."
|
||||
}
|
||||
],
|
||||
"bothTitle": "\"Både\" skapar två oberoende NFS-fästen",
|
||||
"bothBody": "Båda metoderna körs separat: pvesm monterar på <code>/mnt/pve/<id></code> och fstab på <code>/mnt/<path></code>. Det ger en Proxmox-hanterad montering med standardalternativ och en separat värdmontering för LXC-bind-monteringar. Två monteringspunkter garanterar inte två TCP-anslutningar; NFS-klienten kan återanvända transportanslutningar."
|
||||
},
|
||||
"pvesmBranch": {
|
||||
"heading": "Metod A - Som Proxmox lagring (pvesm)",
|
||||
"intro": "Om <em>Som Proxmox-lagring</em> är markerad, ProxMenux kör den ursprungliga pvesm flöde:",
|
||||
"items": [
|
||||
"<strong>Lagring ID</strong> Vad Proxmox kallar detta lagringsutrymme Standard är <code>nfs-<server-ip-with-dashes></code>. Endast bokstäver, siffror, <code>-</code> och <code>_</code> accepteras.",
|
||||
"<strong>Content typer</strong> - Proxmox binder innehållskategorier till lagringsvolymer; välj vad denna NFS är tillåtet att hålla:"
|
||||
],
|
||||
"headerType": "Innehåll typ",
|
||||
"headerAllows": "Vad det tillåter",
|
||||
"rows": [
|
||||
{
|
||||
"type": "import",
|
||||
"allowsRich": "Diskbildsimport (vald som standard). Behövs för <em>Import Disk Image till VM</em>."
|
||||
},
|
||||
{
|
||||
"type": "backup",
|
||||
"allowsRich": "VM och CT backup filer (<code>vzdump</code>)."
|
||||
},
|
||||
{
|
||||
"type": "iso",
|
||||
"allows": "Installation av ISO-bilder."
|
||||
},
|
||||
{
|
||||
"type": "vztmpl",
|
||||
"allows": "LXC mallar."
|
||||
},
|
||||
{
|
||||
"type": "images",
|
||||
"allows": "Diskavbildningar för VM:ar i drift (gör NFS till lagring för VM-diskar)."
|
||||
},
|
||||
{
|
||||
"type": "rootdir",
|
||||
"allows": "LXC rotfilsystem (sällsynta för NFS - läs anteckningen nedan)."
|
||||
},
|
||||
{
|
||||
"type": "snippets",
|
||||
"allows": "Hook scripts och cloud-init snippets."
|
||||
}
|
||||
],
|
||||
"warnTitle": "images och rootdir på NFS",
|
||||
"warnBody": "Med <code>images</code> kan Proxmox lagra VM-diskar på NFS. Prestandan beror på nätverk, server och arbetslast; ett avbrott kan blockera I/O som beror på monteringen. <code>rootdir</code> lagrar LXC-rotfilsystem på NFS, där oprivilegierade containrar kan möta begränsningar i UID-mappning, overlay och ägarskap. Bedöm detta innan du lägger <code>images</code> / <code>rootdir</code> där; NFS passar även för <code>backup</code> / <code>iso</code> / <code>vztmpl</code>.",
|
||||
"result": "Resultatet är <code>pvesm add nfs <id> --server <srv> --export <path> --content <csv></code> och Proxmox auto-mounts på <code>/mnt/pve/<id></code>."
|
||||
},
|
||||
"fstabBranch": {
|
||||
"heading": "Metod B - Värd fstab montering endast",
|
||||
"intro": "Om <em>Endast fstab-montering på värden</em> är markerad, ProxMenux ber om en värd monteringsväg och ihållande alternativ, sedan monterar och skriver ingången till <code>/etc/fstab</code>:",
|
||||
"items": [
|
||||
"<strong>Monteringssökväg på värden</strong> - standard <code>/mnt/<export-basename></code>. Måste vara en absolut väg. Om något redan är monterat där, eller en fstab ingång finns för samma väg, ProxMenux varnar dig och erbjuder att ersätta den.",
|
||||
"<strong>Monteringsalternativ</strong> — <em>Läs/skriv</em> (standard: <code>rw,hard,nofail,_netdev,rsize=131072,wsize=131072,timeo=600,retrans=2</code>), <em>Skrivskyddad</em>, <em>Anpassad</em> (ange egna alternativ)."
|
||||
],
|
||||
"appliesIntro": "När du bekräftar gör skriptet följande:",
|
||||
"applies": [
|
||||
"<code>mkdir -p</code> monteringsvägen.",
|
||||
"<code>mount -t nfs -o <opts> <srv>:<export> <path></code>.",
|
||||
"Skriver en enradig post till <code>/etc/fstab</code>: <code><srv>:<export> <path> nfs <opts> 0 0</code>.",
|
||||
"Kör <code>systemctl daemon-reload</code> så systemd plockar upp den nya fstab inträde.",
|
||||
"Försöker köra <code>chmod 1777</code> och <code>setfacl o::rwx</code> på monteringspunkten utan att rapportera eventuella fel. Det lyckas endast om NFS-servern tillåter det; många NAS-exporter tillåter redan alla användare att skriva."
|
||||
],
|
||||
"lxcTitle": "Använda fstab montering från en LXC",
|
||||
"lxcBody": "Skriptet visar ett <code>pct set</code>-kommando för bind-montering, exempelvis <code>pct set <ctid> -mp0 /mnt/<path>,mp=/mnt/<ct-path>,shared=1,backup=0</code>. Eller använd <mountLink>LXC Mount Manager</mountLink>, som upptäcker fstab-monteringar. <strong>Inget ändras inne i containern</strong>. Åtkomst från en oprivilegierad CT beror på serverbehörigheter för dess mappade UID/GID. Skriptet försöker endast ändra behörigheter från värden; skrivbara exporter och tillverkares standardinställningar garanteras inte. Se Felsökning om åtkomsten misslyckas.",
|
||||
"noUiTitle": "Fstab montering är inte en Proxmox lagring",
|
||||
"noUiBody": "Värd fstab montering är osynlig för Proxmox webb UI - genom design. Det visas inte i <em>Datacenter > Storage</em>, du kan inte välja det i VM / CT skapare, och Proxmox backup jobb kan inte rikta det. Det är bara en värd filsystem väg. Om du också vill ha UI integration, markera <em>båda</em> metoder i väljaren."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"pvesmIntro": "Metod A (pvesm) motsvarar:",
|
||||
"fstabIntro": "Metod B (fstab) motsvarar:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa konfigurerade NFS lager",
|
||||
"body": "Listar varje NFS-post i Proxmox (<code>pvesm status | awk ''$2 == \"nfs\"''</code>) med server, export, innehållstyper, monteringsväg och levande status. <strong>Note:</strong> visar endast pvesm-registrerade lager - fstab-bara fästen är inte listade här. Kontrollera dem med <code>findmnt -t nfs</code> eller <code>grep nfs /etc/fstab</code>."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Ta bort NFS lagring",
|
||||
"body": "Kör <code>pvesm remove <storage-id></code> efter en bekräftelse som visar server / export / innehåll. Endast Proxmox-side-registreringen tas bort - <strong>Den avlägsna NFS-servern själv är aldrig rörd</strong>, inga filer raderas. För att ta bort en fstab-bara montering, redigera <code>/etc/fstab</code> för hand och kör <code>umount <path></code>.",
|
||||
"warnTitle": "Säkerhetskopiera beroenden först",
|
||||
"warnBody": "Om VM, CT eller backup jobb fortfarande refererar till detta lagringsutrymme (genom ID), ta bort det lämnar dem pekar på en lagring som inte längre finns. Proxmox kommer att flagga felet men inte städa upp. Flytta eller släppa dessa referenser först, sedan ta bort lagringen."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Test NFS-anslutning",
|
||||
"body": "Kör ett diagnostiskt pass över varje NFS-lagring registrerad i Proxmox: kontrollerar att <code>showmount</code> är tillgänglig, att <code>rpcbind</code> körs, pings varje server, probes port 2049, kallar <code>showmount -e</code>, och slutligen rapporterar Proxmox egen vy (<code>pvesm status</code>). Bra första stopp när en förvaring visar som <em>inactive</em> i Proxmox UI."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noServersTitle": "\"Inga NFS-servrar som finns på nätverket\"",
|
||||
"noServersBody": "Auto-discover använder <code>nmap -p 2049 --open <subnet>/24</code>. Servern kanske inte svarar om: det är på en annan VLAN / subnet, dess brandvägg blockerar nmap-sonder (många gör) eller port 2049 är avsiktligt stängd på det gränssnittet. Använd alternativet <em>Manual</em> med serverns IP- eller värdnamn istället.",
|
||||
"portTitle": "”NFS-porten (2049) kan inte nås”",
|
||||
"portBody": "Ping lyckades men <code>nc -z -w 3 <server> 2049</code> misslyckades. Kontrollera NFS tjänsten körs på servern (<code>systemctl status nfs-server</code> på Linux, Kontrollpanel → Filtjänster på Synology, NFS plugin på OMV / TrueNAS), och att brandväggen tillåter 2049 från Proxmox värd.",
|
||||
"showmountTitle": "\"Fel att ansluta\" från showmount",
|
||||
"showmountBody": "Servern vägrade exportlistafrågan. Vanliga orsaker: servern genomdriver strikta klient ACL (din Proxmox IP är inte på den tillåtna listan), <code>rpcbind</code> körs inte på servern, eller servern exponerar endast NFSv4 med <code>showmount</code> inaktiverat. Exportvägen kan fortfarande läggas manuellt om du vet det.",
|
||||
"inactiveTitle": "Lagring visar som inaktiv i Proxmox UI",
|
||||
"inactiveBody": "Kör först <em>Testa NFS-anslutning</em>: den kontrollerar att servern svarar på ping, att port 2049 är öppen och att exportlistan (<code>showmount -e</code>) är tillgänglig. Om anslutningen fungerar men lagringen förblir inaktiv, kontrollera <code>journalctl -u pvestatd</code> och serverns/exportens inställningar. Återställ först anslutning eller behörigheter. <code>pvesm set <id> --disable 0</code> aktiverar inaktiverad lagring; det är ingen allmän reparation av NFS-fel.",
|
||||
"lxcNoWriteTitle": "fstab montering fungerar men oprivilegierad LXC kan inte skriva genom en bind-mount",
|
||||
"lxcNoWriteBody": "NFS-åtkomst beror på serverns ägare, ACL:er och squash-inställningar. CIFS-alternativ som <code>uid=</code> och <code>file_mode=</code> gäller <strong>inte</strong> för NFS. Med LXC:s standardmappning blir CT-root värdens UID 100000, inte fjärr-UID 0. Ge åtkomst till det faktiska mappade UID/GID:t eller serverns anonyma identitet. <code>no_root_squash</code> påverkar endast fjärr-UID 0 och löser inte alla fall med UID 100000. Skriptet försöker köra <code>chmod 1777</code> men kan inte kringgå serverns behörigheter.",
|
||||
"fstabBootTitle": "fstab montering kommer inte upp efter omstart",
|
||||
"fstabBootBody": "Skriptet lägger till <code>nofail,_netdev</code> så en saknad andel på start blockerar inte start. Om fästet aldrig kommer upp: bekräfta att nätverket är tillgängligt (<code>ping <server></code>), kontrollera <code>journalctl -u remote-fs.target</code> och verifiera att posten är giltig med <code>mount -fav | grep nfs</code>. <code>mount -a</code> efter start monterar allt som för närvarande saknas."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS som Proxmox-lagring",
|
||||
"tail": " - samma flödesmönster (Metod A pvesm + Metod B fstab) för SMB/CIFS-delningar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Monteringshanterare för LXC",
|
||||
"tailRich": " - bind-mount fstab-bara vägen <code>/mnt/<path></code> i en eller flera containrar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "NFS klient i LXC",
|
||||
"tail": " — alternativ: montering NFS direkt inifrån en privilegierad container (skippar värden)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Värd: montera Samba-delning | ProxMenux-dokumentation",
|
||||
"description": "Montera en extern Samba-/CIFS-delning på Proxmox-värden - antingen som Proxmox-lagring (pvesm add cifs), som en vanlig värd fstab-fäste med öppen uid/gid/file_mode (Inte synlig i Datacenter > Lagring), eller båda. Fstab-metoden öppnar behörigheter så att en oprivilegierad LXC-bindning kan läsa / skriva utan några ändringar i containern.",
|
||||
"ogTitle": "Värd: montera Samba-delning | ProxMenux-dokumentation",
|
||||
"ogDescription": "Montera en extern Samba-/CIFS-delning på Proxmox-värden via pvesm, fstab med öppna behörigheter för LXC-bind-monteringar eller båda."
|
||||
},
|
||||
"header": {
|
||||
"title": "Värd: montera Samba-delning på värden",
|
||||
"description": "Montera en extern Samba-delning (SMB / CIFS) - från en NAS, en Windows-box, en TrueNAS SMB export - på Proxmox värd. Välj en eller båda metoderna: registrera den som Proxmox-lagring (synlig i Datacenter > Lagring) och / eller lägg till en vanlig /etc/fstab-fäste på en väg du väljer, med öppen uid / gid / file_mode så oprivilegierade LXCs kan binda-mount och skriva utan några ändringar i containern.",
|
||||
"section": "Lagring och delning · Värd"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "ProxMenux erbjuder två sätt att montera en Samba-resurs: <strong>(1) Proxmox-lagring</strong> via <code>pvesm add cifs</code>, synlig i Datacenter > Storage och monterad på <code>/mnt/pve/<id></code>. Lösenordet sparas i klartext i <code>/etc/pve/priv/storage/<id>.pw</code>, skyddat av den privata katalog som bara root kan komma åt. Det är åtkomstkontroll, inte kryptering. <strong>(2) fstab-montering på värden</strong> på en vald sökväg, beständig via <code>/etc/fstab</code> med <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> så att oprivilegierade LXC-containrar kan skriva via bind-monteringar. Uppgifterna finns i en fil som bara root kan läsa under <code>/etc/samba/credentials/</code>, aldrig direkt i <code>fstab</code>. Du kan använda endera metoden eller båda."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Mount Samba Share on Host</strong> i ProxMenux huvudmeny. Undermenyn har fyra alternativ:",
|
||||
"imageAlt": "Samba-värdmeny — Montera / Visa / Ta bort / Testa anslutning"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur manuset går",
|
||||
"body": "Flödet har två faser. Fas 1: Upptäck server, validera inloggningsuppgifter, välj delning, välj sedan monteringsmetod (er) via en checklista. Fas 2: endast de metoder du markerade utförs. Inloggningsuppgifter behövs i förväg eftersom <code>smbclient</code> behöver dem för att lista delningar. Fram till den slutliga bekräftelsen berörs varken <code>/etc/pve/storage.cfg</code> eller <code>/etc/fstab</code>."
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Välj monteringsmetod (ett eller båda alternativen)",
|
||||
"intro": "Efter att ha valt delningen och validerat inloggningsuppgifterna visar ProxMenux en checklista med de två monteringsmetoderna. Du kan markera antingen, eller båda. Om du trycker på OK utan att markera något, återkommer dialogrutan tills du väljer minst ett alternativ eller trycker på Avbryt flödet.",
|
||||
"headerMethod": "Metod",
|
||||
"headerMount": "Monteringssökväg",
|
||||
"headerUi": "Synlig i datacenter > Lagring",
|
||||
"headerUseCase": "Typiskt användningsfall",
|
||||
"rows": [
|
||||
{
|
||||
"method": "<strong>Som Proxmox-lagring (pvesm)</strong>",
|
||||
"mountRich": "<code>/mnt/pve/<storage-id></code> (hanterad av Proxmox)",
|
||||
"ui": "Ja",
|
||||
"useCase": "Säkerhetskopior, ISOs, LXC-mallar - allt som behöver visas i Proxmox UI. Live VM-skivor stöds tekniskt men avskräcks på CIFS (låser semantik)."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Endast värdens fstab</strong>",
|
||||
"mountRich": "<code>/mnt/<path></code> med öppen uid/gid/file_mode",
|
||||
"ui": "Nej",
|
||||
"useCaseRich": "Bind-montera delningen i LXC:er <em>utan</em> att registrera Proxmox-lagring. Öppna lokala behörigheter underlättar åtkomst för oprivilegierade CT:er, men SMB-servern måste fortfarande tillåta den autentiserade användaren att skriva."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Båda</strong>",
|
||||
"mount": "Båda sökvägarna ovan (två monteringspunkter för samma CIFS-export)",
|
||||
"ui": "Ja",
|
||||
"useCase": "Du vill ha UI-integration och en stabil värdsida med öppna behörigheter för LXC-bindning. pvesm-fästet använder Proxmox-standarder; fstabfästet tillämpar den öppna uid/gid/file_mode separat."
|
||||
}
|
||||
],
|
||||
"bothTitle": "”Båda” skapar två CIFS-monteringspunkter",
|
||||
"bothBody": "pvesm monterar på <code>/mnt/pve/<id></code> med Proxmox standardalternativ. fstab monterar på <code>/mnt/<path></code> med <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> för lokal åtkomst via LXC-bind-monteringar. SMB-servern upprätthåller fortfarande monteringsanvändarens behörigheter. Två monteringspunkter garanterar inte två separata TCP-anslutningar."
|
||||
},
|
||||
"pvesmBranch": {
|
||||
"heading": "Metod A - Som Proxmox lagring (pvesm)",
|
||||
"intro": "Om <em>Som Proxmox-lagring</em> är markerad, ProxMenux kör den ursprungliga pvesm flöde:",
|
||||
"items": [
|
||||
"<strong>Lagring ID</strong> - Standard <code>cifs-<server-ip-with-dashes></code>. Endast bokstäver, siffror, <code>-</code> och <code>_</code>.",
|
||||
"<strong>Innehållstyper</strong> — den här ProxMenux-listan har <strong>6</strong> val. Den utelämnar <code>rootdir</code> jämfört med NFS-listan. Detta är ett val i skriptet, inte ett påstående att alla versioner av Proxmox CIFS-backend förbjuder LXC-rotfilsystem:"
|
||||
],
|
||||
"headerType": "Innehåll typ",
|
||||
"headerAllows": "Vad det tillåter",
|
||||
"rows": [
|
||||
{
|
||||
"type": "import",
|
||||
"allows": "Diskbildsimport (vald som standard)."
|
||||
},
|
||||
{
|
||||
"type": "backup",
|
||||
"allowsRich": "VM och CT backup filer (<code>vzdump</code>)."
|
||||
},
|
||||
{
|
||||
"type": "iso",
|
||||
"allows": "Installation av ISO-bilder."
|
||||
},
|
||||
{
|
||||
"type": "vztmpl",
|
||||
"allows": "LXC mallar."
|
||||
},
|
||||
{
|
||||
"type": "images",
|
||||
"allowsRich": "Diskavbildningar för VM:ar i drift — <strong>varning visas i dialogen</strong>, se nedan."
|
||||
},
|
||||
{
|
||||
"type": "snippets",
|
||||
"allows": "Hook scripts och cloud-init snippets."
|
||||
}
|
||||
],
|
||||
"warnTitle": "Live VM diskar på CIFS",
|
||||
"warnBody": "Valet <code>images</code> visar en ProxMenux-varning om att CIFS/SMB kan ge låsningsproblem vid VM-diskoperationer. Skriptet rekommenderar NFS men låter dig fortsätta. Säkerhetskopior och ISO-filer är vanliga CIFS-användningar. Bedöm låsning, ögonblicksbilder, migrering och arbetslast innan CIFS används för <code>images</code>.",
|
||||
"credsTitle": "Var pvesm lagrar inloggningsuppgifter",
|
||||
"credsBody": "Lösenordet skrivs inte i <code>/etc/pve/storage.cfg</code>. Proxmox sparar klartextuppgifter i <code>/etc/pve/priv/storage/<storage-id>.pw</code>, i klusterfilsystemets privata område som bara <code>root</code> kan läsa (läge <code>0600</code>); de skyddas av åtkomstbehörigheter, inte av kryptering. Efter ett lösenordsbyte på servern använder du <code>pvesm set <id> --password <new></code> eller tar bort och lägger till lagringen via ProxMenux."
|
||||
},
|
||||
"fstabBranch": {
|
||||
"heading": "Metod B - Värd fstab montering endast",
|
||||
"intro": "Om <em>Endast fstab-montering på värden</em> väljs frågar ProxMenux efter sökväg och beständiga alternativ, skapar en fil med inloggningsuppgifter endast för root i användarläge, monterar delningen och skriver posten i <code>/etc/fstab</code>:",
|
||||
"items": [
|
||||
"<strong>Monteringssökväg på värden</strong> - standard <code>/mnt/<share-name></code>. Måste vara en absolut väg. Om något redan är monterat där, eller en fstab-post existerar, erbjuder ProxMenux att ersätta den.",
|
||||
"<strong>Monteringsalternativ</strong> — <em>Läs/skriv</em> (standard: <code>rw,uid=0,gid=0,file_mode=0777,dir_mode=0777,iocharset=utf8,nofail,_netdev</code>), <em>Skrivskyddad</em> (<code>file_mode=0555,dir_mode=0555</code>), <em>Anpassad</em> (ange egna alternativ). Skriptet rekommenderar öppna uid/gid/file_mode för skrivning via LXC-bind-monteringar."
|
||||
],
|
||||
"credsTitle": "Fil med inloggningsuppgifter (användarläge)",
|
||||
"credsBody": "I användarläge skapar ProxMenux en fil som bara root kan läsa på <code>/etc/samba/credentials/<server>_<share>.cred</code> (läge <code>0600</code>) med raderna <code>username=</code> och <code>password=</code>. Fstab-posten hänvisar till den via <code>credentials=</code>; klartextlösenordet skrivs inte i <code>/etc/fstab</code>. I gästläge läggs <code>guest</code> till i stället och ingen inloggningsfil skapas.",
|
||||
"appliesIntro": "När du bekräftar gör skriptet följande:",
|
||||
"applies": [
|
||||
"<code>mkdir -p</code> monteringsvägen.",
|
||||
"<code>mount -t cifs -o <opts>,credentials=<file></code> (eller <code>guest</code>) <code>//<srv>/<share> <path></code>.",
|
||||
"Skriver en enradig post till <code>/etc/fstab</code>: <code>//<srv>/<share> <path> cifs <opts> 0 0</code>.",
|
||||
"Kör <code>systemctl daemon-reload</code> så systemd plockar upp den nya fstab inträde."
|
||||
],
|
||||
"lxcTitle": "Använda fstab montering från en oprivilegierad LXC",
|
||||
"lxcBody": "CIFS-alternativen <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> öppnar lokala behörighetskontroller för LXC-bind-monteringar. Serverns ACL:er och förhandlad Unix-/POSIX-semantik kan fortfarande påverka åtkomsten. <strong>Inget ändras inne i containern</strong>: ingen <code>chown</code> i CT:n, inga grupper eller ändringar i <code>/etc/lxc</code>. Raden <code>mp</code> hanteras i Proxmox CT-konfiguration. Använd det visade <code>pct set</code>-kommandot eller <mountLink>LXC Mount Manager</mountLink>.",
|
||||
"noUiTitle": "Fstab montering är inte en Proxmox lagring",
|
||||
"noUiBody": "Värd fstab montering är osynlig för Proxmox webb UI - genom design. Det visas inte i <em>Datacenter > Storage</em>, du kan inte välja det i VM / CT skapare, och Proxmox backup jobb kan inte rikta det. Det är bara en värd filsystem väg. Om du också vill ha UI integration, markera <em>båda</em> metoder i väljaren."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"pvesmIntro": "Metod A (pvesm) motsvarar:",
|
||||
"fstabUserIntro": "Metod B (fstab, användarautentisering) — fil med inloggningsuppgifter och montering:",
|
||||
"fstabGuestIntro": "Metod B (fstab, gästautentisering) — ingen fil med inloggningsuppgifter:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa CIFS-lagringar och värdmonteringar",
|
||||
"body": "Visar registrerade CIFS-lagringar (<code>pvesm status | awk ''$2 == \"cifs\"''</code>) med server, delning, innehåll, användare eller <em>Gäst</em>, sökväg och status. Lösenord <strong>visas aldrig</strong>. <strong>Obs:</strong> ett andra avsnitt visar värdens fstab-monteringar, alternativ, inloggningsfilens sökväg och aktiv/inaktiv status. Kontrollera manuellt med <code>findmnt -t cifs</code> eller <code>grep cifs /etc/fstab</code>."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Ta bort CIFS-lagring eller värdmontering",
|
||||
"body": "Väljaren erbjuder pvesm-lagringar och värdens fstab-monteringar. För pvesm körs <code>pvesm remove <storage-id></code> och Proxmox tar bort motsvarande inloggningsuppgifter. För fstab försöker skriptet köra <code>umount <path></code>, tar bort posten i <code>/etc/fstab</code> och uppgifter under <code>/etc/samba/credentials/</code> samt den tomma monteringskatalogen om möjligt. Misslyckad avmontering kräver manuell avmontering eller omstart. <strong>Den externa Samba-servern och dess filer ändras inte</strong>.",
|
||||
"warnTitle": "Säkerhetskopiera beroenden först",
|
||||
"warnBody": "VM, CT eller backup jobb som refererar till denna lagring av ID kommer att misslyckas efter borttagning. Flytta/släpp dessa referenser innan du tar bort lagringen."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Testa Samba-anslutning",
|
||||
"body": "Kör ett diagnostiskt pass över varje CIFS-lagring registrerad i Proxmox: kontrollerar att <code>smbclient</code> är tillgänglig, pings varje server, probes portar 445 och 139, försöker en gästlista och rapporterar Proxmox egen vy (<code>pvesm status</code>). \"Kräver autentisering\" på gästlista betyder att din server endast exponerar aktier till autentiserade användare - normalt för de flesta NAS-inställningar."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noServersTitle": "\"Inga Samba-servrar som finns på nätverket\"",
|
||||
"noServersBody": "Auto-discover använder <code>nmap -p 139,445</code>. Servern kan vara på ett annat undernät, brandvägg eller bara nås via värdnamn (mDNS / WINS). Använd alternativet <em>Manual</em> med IP eller värdnamn istället.",
|
||||
"noSharesTitle": "”Inga tillgängliga delningar hittades”",
|
||||
"noSharesBody": "<code>smbclient -L</code> returnerade ingenting för dessa referenser. Orsaker: användaren har ingen tillåtelse att lista delningar (försök med admin referenser en gång eller ange delningens namn manuellt), servern har dela synlighet inaktiverad, eller referenser är fel. Skriptet låter dig skriva delningens namn för hand i det här fallet.",
|
||||
"denyTitle": "Proxmox montering misslyckas med NT_STATUS_ACCESS_DENIED",
|
||||
"denyBody": "Credentials pvesm lagras inte synkroniseras med Samba-servern (lösenord ändras, konto funktionshindrad, domän / arbetsgrupp felmatch). Ange referenser med <code>pvesm set <id> --username <u> --password <p></code> eller ta bort och re-add från ProxMenux. Om servern finns i en AD-domän, använd <code>--domain <DOMAIN></code> till <code>pvesm set</code>-samtalet.",
|
||||
"sleepTitle": "\"host is down\" eller lagringsstatus går inaktiv på natten",
|
||||
"sleepBody": "Vissa NAS-apparater sätter SMB för att sova aggressivt. <code>pvestatd</code> ser sedan lagringen som inaktiv tills den första åtkomsten vaknar NAS. Om detta är kosmetiskt, är ingenting brutet. Om det orsakar säkerhetskopieringsfel, inaktivera SMB-idle koppla bort på NAS eller schemalägga säkerhetskopior utanför sömnfönstret.",
|
||||
"lxcNoWriteTitle": "Oprivilegierad LXC bind-mount kan inte skriva till fstab-banan",
|
||||
"lxcNoWriteBody": "Kontrollera avsedda alternativ med <code>findmnt /mnt/<path></code>, exempelvis <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>. Saknade lokala skrivbehörigheter kan blockera mappade LXC-UID:n. Tillämpa RW-profilen igen eller anpassa egna alternativ. Kontrollera även SMB-användarens skrivbehörighet på servern och om Unix-/POSIX-tillägg ger serverlägen; öppna lokala lägen åsidosätter inte serverns ACL:er.",
|
||||
"fstabBootTitle": "fstab montering kommer inte upp efter omstart",
|
||||
"fstabBootBody": "Skriptet lägger till <code>nofail,_netdev</code> så en saknad delning på start blockerar inte start. Om fästet aldrig kommer upp: bekräfta att nätverket är tillgängligt (<code>ping <server></code>), kontrollera <code>journalctl -u remote-fs.target</code>, verifiera filen med inloggningsuppgifter fortfarande finns (<code>ls -l /etc/samba/credentials/</code>) och är läsbar och prova <code>mount -a</code> manuellt."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "NFS-delning som Proxmox-lagring",
|
||||
"tail": " — syskon sida med samma flödesmönster (Metod A pvesm + Metod B fstab) och sida vid sida avvägningar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Monteringshanterare för LXC",
|
||||
"tailRich": " - bind-mount fstab-bara vägen <code>/mnt/<path></code> i en eller flera containrar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Samba klient i LXC",
|
||||
"tail": " — alternativ: montering Samba direkt inifrån en privilegierad container (skippar värden)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox NFS, Samba, iSCSI och LXC-monteringspunkter — Lagring och delning | ProxMenux",
|
||||
"description": "Integrera extern och lokal lagring i Proxmox VE och dela mappar mellan värden och LXC-containrar. Lägg till NFS-delningar, Samba-delningar (CIFS) och iSCSI-mål som Proxmox-lagring, konfigurera LXC-bind-monteringar med Mount Manager och kör NFS-/Samba-klienter och servrar i containrar.",
|
||||
"ogTitle": "Proxmox NFS, Samba, iSCSI och LXC-monteringspunkter — Lagring och delning",
|
||||
"ogDescription": "Integrera extern / lokal lagring i Proxmox VE - NFS, Samba, iSCSI registrering plus LXC-bind-monteringar och nätverksdelning.",
|
||||
"twitterTitle": "Proxmox NFS, Samba, iSCSI | ProxMenux",
|
||||
"twitterDescription": "Lägg till NFS / Samba / iSCSI som Proxmox lagring och dela mappar mellan värd och LXC."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lagrings- och delningshanterare",
|
||||
"description": "Integrera extern eller lokal lagring i Proxmox VE och dela mappar mellan värden och LXC-containrar. Tre verktygsgrupper: integration av värdlagring (registrera lagring i Proxmox), LXC Mount Manager (bind-monteringar med praktisk behörighetshantering) och LXC-nätverksdelning (NFS-/Samba-klienter och servrar för särskilda användningsfall).",
|
||||
"section": "Lagring och delning"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad denna meny är för",
|
||||
"body": "Disk Manager arbetar med <em>enskilda fysiska diskar</em>. Storage & Share Manager arbetar en nivå högre: det <strong>registrerar lagringspooler och nätverksdelningar i Proxmox</strong> (så att gränssnittet och VM-skaparen kan använda dem) och <strong>konfigurerar fildelning mellan värden och dina containrar</strong>."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna menyn",
|
||||
"body": "Från ProxMenux huvudmenyn väljer du <strong>Storage & Share Manager</strong>. Du kommer att se detta:",
|
||||
"imageAlt": "Storage & Share Manager menyn med HOST och LXC block"
|
||||
},
|
||||
"groups": {
|
||||
"heading": "Tre verktygsgrupper",
|
||||
"intro": "Menyn är indelad i tre grupper. <strong>Integration av värdlagring</strong> registrerar extern eller lokal lagring i Proxmox. <strong>LXC Mount Manager</strong> är huvudverktyget för att dela mappar med containrar: ett praktiskt bind-monteringsflöde som hanterar UID-mappning för oprivilegierade CT:er på värdsidan. <strong>LXC-nätverksdelning</strong> täcker fyra ytterligare scenarier där en container behöver <em>använda</em> eller <em>exponera</em> NFS-/Samba-delningar direkt.",
|
||||
"hostTitle": "Värdlagring",
|
||||
"hostBody": "Registrera extern och lokal lagring i Proxmox via <code>pvesm add …</code>. När den är registrerad visas lagringen i Proxmox UI och är tillgänglig för VM och CT skapare.",
|
||||
"hostItems": [
|
||||
"Extern NFS / Samba / iSCSI → Proxmox-lagring",
|
||||
"Lokal disk → Proxmox katalog eller ZFS-lagring",
|
||||
"Lokal delad katalog (för bind-monteringar mellan CT:er)"
|
||||
],
|
||||
"lxcMountTitle": "Monteringshanterare för LXC",
|
||||
"lxcMountBody": "Det primära LXC-delningsverktyget. Bind-mounts värdkataloger till behållare via <code>pct set -mpN</code> och hanterar tillståndskrav av oprivilegierade CT utan att skapa någon grupp eller användare i containern.",
|
||||
"lxcMountItems": [
|
||||
"Fungerar med privilegierade och oprivilegierade CT",
|
||||
"Erbjuder <code>o+rwx</code> på värdkatalogen för oprivilegierade UID:n",
|
||||
"Fixar befintliga CIFS / NFS-fästen om det behövs"
|
||||
],
|
||||
"lxcNetTitle": "LXC nätverksdelning",
|
||||
"lxcNetBody": "Fyra ytterligare flöden för containrar som behöver använda eller exponera NFS-/Samba-delningar direkt. Alla kräver en <strong>privilegierad</strong> container.",
|
||||
"lxcNetItems": [
|
||||
"NFS-/Samba-<strong>klient</strong> (använder externa delningar)",
|
||||
"NFS-/Samba-<strong>server</strong> (exponerar CT-mappar)"
|
||||
]
|
||||
},
|
||||
"host": {
|
||||
"heading": "Integration av värdlagring",
|
||||
"intro": "Registrera lagring i Proxmox. Varje alternativ kallar <code>pvesm add …</code> under huven, så lagringen visas i <strong>Datacenter → Storage</strong> och blir tillgänglig för VM / CT skapare.",
|
||||
"options": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"icon": "Network",
|
||||
"title": "Lägg till NFS-delning som Proxmox-lagring",
|
||||
"description": "Registrera en extern NFS-export som Proxmox-lagring med pvesm add nfs. Proxmox hanterar monteringen utan extra poster i fstab."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"icon": "Share2",
|
||||
"title": "Lägg till Samba-delning som Proxmox-lagring",
|
||||
"description": "Registrera en extern Samba- eller CIFS-resurs som Proxmox-lagring med pvesm add cifs. Proxmox hanterar monteringen och inloggningsuppgifterna."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-iscsi",
|
||||
"icon": "Database",
|
||||
"title": "Lägg till iSCSI-mål som Proxmox-lagring",
|
||||
"description": "Anslut till ett externt iSCSI-mål och registrera det som Proxmox-lagring (block-enhet) för VM-diskbilder."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"icon": "HardDrive",
|
||||
"title": "Lägg till lokal disk som Proxmox lagring",
|
||||
"description": "Formatera en lokal SATA / SAS / NVMe disk och registrera den som en Proxmox katalog eller ZFS pool lagring."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"icon": "FolderOpen",
|
||||
"title": "Lägg till delad katalog på värd",
|
||||
"description": "Skapa en värdkatalog som ska bind-monteras i flera CT:er. Den registreras inte som Proxmox-lagring utan är en resurs på värdsidan för LXC-bind-monteringar."
|
||||
}
|
||||
]
|
||||
},
|
||||
"lxcMount": {
|
||||
"heading": "Monteringshanterare för LXC",
|
||||
"intro": "Det primära verktyget för att dela mappar mellan Proxmox värd och LXC behållare. Den använder <code>pct set -mpN</code> för att binda samman en värdkatalog i containern, och hanterar tillståndskrav av oprivilegierade CT på värdsidan (inga grupper eller användare skapas inuti containern).",
|
||||
"card": {
|
||||
"title": "LXC-monteringspunkter (värd ↔ CT)",
|
||||
"description": "Bind-mount någon värdkatalog till en LXC container via pct set -mpN. Fungerar med både privilegierade och oprivilegierade CTs; erbjuder chmod o+rwx / ACLs på värddir och fixar befintliga CIFS / NFS-fästen vid behov."
|
||||
}
|
||||
},
|
||||
"lxcNet": {
|
||||
"heading": "LXC nätverksdelning",
|
||||
"intro": "Använd dessa flöden när en container behöver <em>vara</em> en NFS-/Samba-ändpunkt: använda en extern delning (klient) eller exponera egna mappar (server). För de flesta fildelningsbehov (bind-monteringar värd ↔ CT) är <mountLink>LXC Mount Manager</mountLink> enklare och kräver inga privilegierade containrar.",
|
||||
"options": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"icon": "Download",
|
||||
"title": "NFS klient i LXC",
|
||||
"description": "Montera externa NFS-delningar från en privilegierad LXC-container. Stöder automatisk upptäckt, beständiga poster i /etc/fstab och ren avmontering."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"icon": "Download",
|
||||
"title": "Samba klient i LXC",
|
||||
"description": "Montera Samba-/CIFS-delningar från en privilegierad LXC-container. Inloggningsuppgifter lagras skyddat och automatisk upptäckt finns."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"icon": "Upload",
|
||||
"title": "NFS server i LXC",
|
||||
"description": "Exportera mappar över NFS från en privilegierad LXC-behållare."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"icon": "Upload",
|
||||
"title": "Samba server i LXC",
|
||||
"description": "Exponera mappar över SMB / CIFS inifrån en privilegierad LXC container."
|
||||
}
|
||||
]
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Privilegierat containerkrav",
|
||||
"body": "De fyra flödena för <strong>LXC-nätverksdelning</strong> ovan kräver en <strong>privilegierad</strong> container. Skripten kräver detta stödda läge innan de konfigurerar tjänster och monteringsverktyg (<code>nfs-kernel-server</code>, <code>smbd</code>, <code>mount.nfs</code>, <code>mount.cifs</code>). För att bara dela filer mellan värden och en oprivilegierad CT använder du <mountLink>LXC Mount Manager</mountLink>: det bind-monterar och justerar behörigheterna på värden så att containern kan läsa och skriva utan att dessa tjänster eller verktyg konfigureras i den."
|
||||
},
|
||||
"unprivExplain": {
|
||||
"title": "Hur ProxMenux hanterar oprivilegierade CT behörigheter",
|
||||
"body": "Oprivilegierade LXC-containrar förskjuter sina UID:n med <strong>+100000</strong> på värden (containerns UID 0 = värdens UID 100000, containerns UID 1000 = värdens UID 101000, …). En fil som skapats av en containeranvändare visas därför på värden som <em>övriga</em>, utan motsvarande vanlig värdanvändare eller grupp. LXC Mount Manager löser detta praktiskt: i stället för att anpassa UID/GID mellan värd och CT erbjuder det <code>chmod o+rwx</code> och motsvarande ACL:er på värdkatalogen, så att alla mappade UID:n kan läsa och skriva. För CIFS monterar det om med <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>; för NFS skapar det en katalog som alla får skriva till med sticky bit och vägleder till rätt ändring på servern om root squash används."
|
||||
},
|
||||
"scripts": {
|
||||
"heading": "Skript involverade",
|
||||
"intro": "Varje enskild sida länkar till skriptet som driver dess flöde. Filen nedan är en delad hjälpare som inte dokumenteras som sin egen sida men används av flera av LXC nätverksdelningsflöden:",
|
||||
"itemTail": " - CT validering, val av monteringspunkt, privilegierad kontroll och universella gruppuppställningshjälpare som delats över LXC-klienten / serverflödena."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "LXC-monteringspunkter (värd ↔ container) | ProxMenux-dokumentation",
|
||||
"description": "LXC Mount Manager - bindmontera alla värdkataloger till en eller flera LXC-containrar via pct set -mpN. Hanterar tillståndskrav av oprivilegierade behållare, fixar befintliga CIFS / NFS-fästen på värdsidan, och ändrar aldrig något inuti containern.",
|
||||
"ogTitle": "LXC-monteringspunkter (värd ↔ container) | ProxMenux-dokumentation",
|
||||
"ogDescription": "Bind-mount värdkataloger till LXC containrar. Hanterar oprivilegierad UID-kartläggning pragmatiskt, fixar CIFS / NFS-åtkomst på värdsidan."
|
||||
},
|
||||
"header": {
|
||||
"title": "LXC-monteringspunkter (värd ↔ container)",
|
||||
"description": "Det huvudsakliga verktyget för att dela mappar mellan Proxmox-värden och LXC-containrar. Bind-monterar valfri värdkatalog i en eller flera containrar med Proxmox inbyggda syntax pct set -mpN. Behörighetsproblemen i oprivilegierade containrar hanteras på värden, utan ändringar inne i containern.",
|
||||
"section": "Lagring och delning · LXC"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad detta gör",
|
||||
"body": "Ta en katalog som bor på Proxmox-värden (en lokal mapp, en monterad NAS-delning, en Proxmox-managed lagring ...) och gör att den visas inuti en LXC-behållare på en väg du väljer, med behörigheter som fungerar även för oprivilegierade behållare - utan att röra något inuti containern."
|
||||
},
|
||||
"bigPicture": {
|
||||
"heading": "Hur det fungerar (den stora bilden)",
|
||||
"intro": "En bind-montering instruerar kärnan att visa värdkatalogen <code>X</code> även på sökvägen <code>Y</code> i containern. Ingen kopiering, synkronisering eller nätverksöverföring: båda ser <em>samma filer</em> samtidigt.",
|
||||
"sourceLabel": "Proxmox-värd",
|
||||
"sourceDetail": "/mnt/data\n(din mapp)",
|
||||
"targetLabel": "LXC-container",
|
||||
"targetDetail": "/mnt/data\n(visas här)",
|
||||
"arrowLabel": "bind-montering",
|
||||
"outro": "Värdvägen till vänster och containervägen till höger kan vara annorlunda - till exempel kan <code>/mnt/nas-films</code> på värden bli <code>/media/films</code> inuti containern. Skriptet lägger till posten till containern konfig (<code>/etc/pve/lxc/<ctid>.conf</code>) med nästa lediga <code>mpN</code> index, med två säkra standarder inbyggda:",
|
||||
"items": [
|
||||
"<code>shared=1</code> — anger för Proxmox att data är delade och inte ska migreras med CT:n. Flaggan replikerar inte data: samma sökväg och data måste redan finnas på målnoden.",
|
||||
"<code>backup=0</code> - utesluter bindfästet från <code>vzdump</code> säkerhetskopior (data lever på värden, du backar upp det separat)."
|
||||
]
|
||||
},
|
||||
"perms": {
|
||||
"heading": "Tillståndshantering – smart",
|
||||
"intro": "Bind-monteringar är lätta i princip. Den hårda delen är behörigheter: en <strong>oprivilegierad</strong> LXC behållare skiftar varje UID av <strong> + 100000</strong>, så en fil som skapats inuti containern av användaren 1000 visas på värden som UID 101000 - en UID ingen på värden äger. För att göra detta arbete utan att anpassa UIDs över värdar och behållare, ProxMenux tillämpar rätt \"öppna upp behörigheter\" trick på <em>värden</em> sida, beroende på vilken typ av katalog du valde:",
|
||||
"headerType": "Värd katalog typ",
|
||||
"headerAction": "Vad skriptet erbjuder att göra",
|
||||
"localType": "Lokal mapp",
|
||||
"localTypeSub": "t.ex. /mnt/data",
|
||||
"localActionRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> på värdkatalogen. Endast erbjuds om CT är oprivilegierad och nuvarande behörigheter är otillräckliga.",
|
||||
"cifsType": "Monterad CIFS / SMB",
|
||||
"cifsTypeSub": "t.ex. /mnt/pve/cifs-…",
|
||||
"cifsActionRich": "Montera om med <code>uid=0, gid=0, file_mode=0777, dir_mode=0777</code> så att CT (varje UID) kan läsa och skriva delningen. <code>/etc/fstab</code> uppdateras.",
|
||||
"nfsType": "Monterad NFS",
|
||||
"nfsTypeSub": "t.ex. /mnt/pve/nfs-…",
|
||||
"nfsActionRich": "<code>chmod 1777</code> + <code>setfacl o::rwx</code> på NFS montering. Kan inte åsidosätta server-side squashing - om ens värdrot inte kan skriva, är du vägledd att fixa exporten på NFS-servern.",
|
||||
"privTitle": "Privilegierade containrar behöver inte något av detta",
|
||||
"privBody": "För privilegierade containrar, UID 0 i CT är UID 0 på värden - rot inuti CT kan läsa och skriva värdkatalogen direkt utan tillstånd tricks. Skriptet upptäcker detta och hoppar över \"öppna upp behörigheter\" steg helt.",
|
||||
"noCtTitle": "Skriptet ändrar aldrig något inuti containern",
|
||||
"noCtBody": "Alla tillstånd tweaks händer på <strong>host filsystem</strong>. Inga <code>pct exec</code> chowner, inga grupper skapade i CT, ingen fstab inuti containern. Om du återanvänder den bindmonterade katalogen i en annan CT senare gäller samma behörigheter automatiskt - ingen kontaineruppsättning."
|
||||
},
|
||||
"writes": {
|
||||
"heading": "Vad ProxMenux skriver - och vad det inte gör",
|
||||
"intro": "En vanlig förvirring när bindning till en oprivilegierad CT: människor antar ProxMenux måste skriva <code>lxc.idmap</code> poster i <code>/etc/pve/lxc/<CTID>.conf</code>. <strong>Det gör inte.</strong> Endast en rad är appenderad till den filen - bindfästet själv:",
|
||||
"outro": "Utgångslinjen du ser i slutet av körningen, <em> \"Unprivileged container - UID-kompensation: 100000\"</em>, är helt informativ - det berättar bara att CT använder Proxmox standard oprivileged kartläggning (rot i CT = UID 100000 på värd). Skriptet konfigurerar inte något runt det.",
|
||||
"twoWaysHeading": "De två sätten att få behörigheter att fungera - och varför ProxMenux väljer en",
|
||||
"headerApproach": "Metod",
|
||||
"headerChanges": "Vad det förändras",
|
||||
"headerWhen": "När den passar",
|
||||
"hostType": "Behörigheter på värden",
|
||||
"hostTypeSub": "(vad detta manus gör)",
|
||||
"hostChangesRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> på värdkatalogen. CT: s kartlagda UIDs (100000 +) faller i \"andra\" hinken, så öppna <em>övriga</em> är tillräckligt.",
|
||||
"hostWhen": "Generisk delad mapp tillgång från alla CT. Flera CT: er som delar samma värdkatalog. Enkel och återanvändbar.",
|
||||
"idmapTypeRich": "<code>lxc.idmap</code>",
|
||||
"idmapTypeSub": "(Inte används av detta manus)",
|
||||
"idmapChangesRich": "Anpassad UID / GID-kartläggning i <code>/etc/pve/lxc/<CTID>.conf</code> plus matchning <code>/etc/subuid</code> + <code>/etc/subgid</code>-poster på värden. CT måste startas om varje förändring.",
|
||||
"idmapWhenRich": "Du behöver en <em>visst</em> UID inuti CT för att kartlägga en <em>visst</em> UID på värden (t.ex. <code>media:1000</code> i CT måste äga filer som <code>media:1000</code> på värden så NFS inte squash. En mer styv installation, normalt bara värt det för det exakta scenariot.",
|
||||
"idmapTipTitle": "När du faktiskt behöver lxc.idmap",
|
||||
"idmapTipBody": "Använd manuell ID-mappning när filer skrivna i CT:n måste ha ett visst numeriskt UID/GID på värden, exempelvis för att dela ägare med en värdanvändare. Det åsidosätter inte NFS <code>all_squash</code>; servern bestämmer fortfarande anonym identitet och behörigheter. Lägg vid behov till <code>lxc.idmap</code>-poster manuellt. Bind-monteringsraden är oberoende av dessa poster."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Configure LXC Mount Points (Host ↔ Container)</strong> i ProxMenux huvudmeny. Undermenyn har tre alternativ:",
|
||||
"imageAlt": "LXC Mount Manager-menyn - Lägg till / Visa / Ta bort"
|
||||
},
|
||||
"addFlow": {
|
||||
"heading": "Lägg till en montering - fullt flöde",
|
||||
"intro": "Den tekniska uppfattningen, för när du vill veta exakt vad varje dialog gör:"
|
||||
},
|
||||
"sources": {
|
||||
"heading": "Vad du kan välja som värdkatalog",
|
||||
"intro": "Värd-katalog plockare är den mest grundliga i lagring & Share avsnitt. Den skannar fyra källor och presenterar en deduplicerad lista:",
|
||||
"headerSource": "Källa",
|
||||
"headerWhere": "Där det kommer från",
|
||||
"headerLabel": "Etikett i menyn",
|
||||
"rows": [
|
||||
{
|
||||
"source": "Aktiva nätverksfästen",
|
||||
"whereRich": "Aktuellt monterade CIFS-/NFS-delningar, lästa från <code>/proc/mounts</code>.",
|
||||
"labelRich": "<code>NFS [used/size]</code> eller <code>CIFS/SMB [used/size]</code>"
|
||||
},
|
||||
{
|
||||
"source": "Inaktiva fstab-monteringar",
|
||||
"whereRich": "Definierad i <code>/etc/fstab</code> men inte för närvarande monterad.",
|
||||
"labelRich": "<code>fstab(off)-NFS</code> / <code>fstab(off)-CIFS/SMB</code>"
|
||||
},
|
||||
{
|
||||
"source": "Lokala kataloger",
|
||||
"whereRich": "Sub-kataloger under <code>/mnt</code> som inte är nätverksfästen.",
|
||||
"labelRich": "<code>Local [size]</code>"
|
||||
},
|
||||
{
|
||||
"source": "Proxmox-lagringar",
|
||||
"whereRich": "Lagringsvägar under <code>/mnt/pve/*</code> (NFS / CIFS registrerad via <code>pvesm</code>).",
|
||||
"labelRich": "<code>PVE-NFS</code> / <code>PVE-CIFS/SMB</code> / <code>Proxmox-Storage</code>"
|
||||
},
|
||||
{
|
||||
"source": "Manuell inmatning",
|
||||
"where": "Allt annat - skriv den absoluta vägen själv.",
|
||||
"labelRich": "<em>Ange sökväg manuellt</em>"
|
||||
}
|
||||
],
|
||||
"tipTitle": "Interna Proxmox-vägar filtreras ut",
|
||||
"tipBody": "Väljaren hoppar uttryckligen inre Proxmox-vägar (<code>/mnt/pve/local</code>, <code>/mnt/pve/local-lvm</code>, <code>/mnt/pve/backup</code>, ...) - de är reserverade för Proxmox interna och du bör inte binda dem. Endast användarrelaterade lagringar dyker upp."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"privIntro": "För en privilegierad container - det enklaste fallet, inga tillståndstrick:",
|
||||
"unprivLocalIntro": "För en oprivilegierad container med en lokal värdkatalog - öppna upp behörigheter på värden först:",
|
||||
"unprivCifsIntro": "För en oprivilegierad container med en CIFS-delning som redan är monterad på värden:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa monteringspunkter",
|
||||
"body": "Listar varje <code>mpN</code>-ingång över varje container på denna Proxmox-värd, grupperad av CT-id och visar värdväg → containerväg plus eventuella extra alternativ. Läs bara - användbar som en sanity check innan du lägger till eller tar bort något."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Ta bort en monteringspunkt",
|
||||
"body": "Välj containern, välj <code>mpN</code>-inmatningen, bekräfta. Manuset kör <code>pct set --delete mpN</code> för att släppa inträdet från CT konfig och erbjuder att starta om containern om den körs. Värdkatalogen och dess innehåll är <strong>orörda</strong> - du kan återföra fästet senare (eller bifoga samma katalog till en annan CT).",
|
||||
"warnTitle": "Containrar som körs måste startas om för att ändringarna ska gälla",
|
||||
"warnBody": "Både att lägga till och ta bort monteringspunkter blir bara synliga inuti containern efter en omstart. Manuset erbjuder ett enklick <code>pct reboot</code> vid slutet av varje operation; du kan avböja och starta om manuellt senare."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"noMountTitle": "Mount visas i pct config men inte i containern",
|
||||
"noMountBody": "Bind monterar bara när containern börjar. Om du lade till fästet medan CT kördes, starta om det (<code>pct reboot <ctid></code>). Om det redan har startats om och fortfarande saknas, kontrollera <code>pct config <ctid></code> för att bekräfta att posten finns och värdvägen faktiskt innehåller en katalog.",
|
||||
"noWriteTitle": "Container kan se katalogen men kan inte skriva",
|
||||
"noWriteBody": "Nästan alltid ett behörighetsproblem. För oprivilegierade containrar, kör skriptets tillstånd fix igen - värdkatalogens ACLs kan ha återställts av ett annat verktyg (rsync, återställa från backup, manuell <code>chmod</code>). För CIFS, dubbelkolla monteringsalternativen på värden: <code>findmnt /mnt/pve/cifs-…</code>, leta efter <code>uid=</code> / <code>gid=</code> / <code>file_mode=</code> värden.",
|
||||
"alreadyTitle": "\"Denna väg används redan som en fästpunkt i denna container\"",
|
||||
"alreadyBody": "Du valde samma containersökväg som redan är kopplad till en annan värdkatalog. Välj antingen en annan containerbana eller ta bort den befintliga monteringspunkten först.",
|
||||
"nfsTitle": "NFS-åtkomst blockerad även efter applicering av värdfixen",
|
||||
"nfsIntro": "Din NFS-server squashing root eller alla anslutningar. Skriptet kan upptäcka detta (det försöker skriva en testfil från värden) och visar server-side-vägledning. Två vanliga serversidor för exporten:",
|
||||
"nfsItems": [
|
||||
"<code>no_root_squash</code> privilegierade CT kan skriva direkt.",
|
||||
"<code>all_squash,anonuid=65534,anongid=65534</code> för oprivilegierade CT."
|
||||
],
|
||||
"nfsOutro": "Dessa förändringar sker på NFS-servern (TrueNAS, Synology, din anpassade export, ...), inte på Proxmox.",
|
||||
"fstabOffTitle": "Att montera \"fstab(off)\" -poster gör ingenting",
|
||||
"fstabOffBody": "Väljaren visar <code>fstab(off)-</code>-poster när en nätverksfäste definieras i fstab men inte för närvarande monterad. Skriptet låter dig binda vägen, men katalogen kommer att vara tom tills du faktiskt monterar delningen (<code>mount <path></code> på värden). Montera den först och bind sedan den till CT."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"label": "Lägg till delad katalog på värd",
|
||||
"tailRich": " - typiskt första steg: förbereda en <code>/mnt/shared</code> på värden innan du monterar den i en eller flera CT här."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "Lägg till NFS-delning som Proxmox-lagring",
|
||||
"extraHref": "/docs/storage-share/host-samba",
|
||||
"extraLabel": "Lägg till Samba-delning som Proxmox-lagring",
|
||||
"joiner": " / ",
|
||||
"tailRich": " - registrera en extern delning i Proxmox först, sedan bind-mount sin <code>/mnt/pve/<id></code> väg in i CT här."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "NFS klient i LXC",
|
||||
"extraHref": "/docs/storage-share/lxc-samba-client",
|
||||
"extraLabel": "Samba klient i LXC",
|
||||
"joiner": " / ",
|
||||
"tail": " — alternativet när du vill att CT själv ska montera delningen (kräver en privilegierad container)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "NFS klient i LXC | ProxMenux Dokumentation",
|
||||
"description": "Montera NFS-delningar direkt i en Proxmox LXC-container med ProxMenux. Installerar nfs-common automatiskt, stöder upptäckt på LAN, beständiga monteringar via /etc/fstab och säkra startinställningar. Kräver en privilegierad container.",
|
||||
"ogTitle": "NFS klient i LXC | ProxMenux Dokumentation",
|
||||
"ogDescription": "Montera NFS-delningar i en privilegierad LXC-container. Automatisk upptäckt, beständiga poster i /etc/fstab och säkra startinställningar."
|
||||
},
|
||||
"header": {
|
||||
"title": "NFS klient i LXC",
|
||||
"description": "Montera NFS-delningar direkt i en Proxmox LXC-container. Containern blir en egen NFS-klient: den kommunicerar med NFS-servern över nätverket, kör mount.nfs och skriver till /etc/fstab. ProxMenux installerar nfs-common, hjälper till att hitta servrar och exporter och tillämpar säkra startinställningar.",
|
||||
"section": "Lagring och delning · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Privilegierad container krävs",
|
||||
"body": "NFS-klienten som använder <code>mount.nfs</code> behöver förmågor (minst <code>SYS_ADMIN</code>) som oprivilegierade LXC:er inte tillhandahåller. Skriptet ber dig välja CT och <strong>avbryter om den är oprivilegierad</strong>. Behövs delningen i en sådan CT monterar du den först på Proxmox-värden med <hostNfsLink>NFS-delning som Proxmox-lagring</hostNfsLink> och bind-monterar den i CT:n med <mountLink>LXC Mount Manager</mountLink>."
|
||||
},
|
||||
"what": {
|
||||
"heading": "Vad detta gör",
|
||||
"body": "Till skillnad från LXC Mount Manager - vilket gör CT se något <em>via</em> Proxmox-värden - detta skript ger containern sin <strong>egen NFS-klient</strong>: det talar NFS över nätverket, monterar delningar direkt från NFS-servern och lagrar montet i containerns <code>/etc/fstab</code>. Proxmox-värden ligger inte i datavägen.",
|
||||
"diagramServerLabel": "NFS-server",
|
||||
"diagramServerDetail": "/export/data",
|
||||
"diagramHostLabel": "Proxmox-värd",
|
||||
"diagramHostDetail": "(bara en\nNätverksbro)",
|
||||
"diagramCtLabel": "LXC (privilegierad)",
|
||||
"diagramCtDetail": "/mnt/data\nmount.nfs inuti CT",
|
||||
"diagramArrow": "NFS",
|
||||
"twoWaysTitle": "Två sätt att ge en CT NFS åtkomst - välj en",
|
||||
"twoWaysBind": "<strong>Bind montering via host</strong> (<mountLink>LXC Mount Manager</mountLink>): värd monterar NFS en gång, varje CT bind-monterar samma väg. Fungerar med oprivilegierade CT. Rekommenderas när flera CT behöver samma delning.",
|
||||
"twoWaysDirect": "<strong>Direct NFS monteras inuti CT</strong> (denna sida): CT monterar själva NFS. Kräver privilegierad. Användbart när CT måste äga sin anslutning / referenser, eller för inställningar där varje CT talar till en annan server."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Konfigurera NFS-klient i LXC (endast privilegierad)</strong> i huvudmenyn. ProxMenux ber dig <strong>välja mål-CT</strong>, startar den om den är stoppad och avbryter om den är oprivilegierad. Sedan visas denna undermeny:",
|
||||
"imageAlt": "NFS Client Manager-menyn - Mount / View / Unmount / Testanslutning"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur man kör skriptet (Mount flow)"
|
||||
},
|
||||
"fstabFlags": {
|
||||
"heading": "Varför dessa fstab flaggor",
|
||||
"intro": "För permanenta monteringar lägger manuset tre flaggor bortom standarden NFS-alternativ: <code>_netdev,x-systemd.automount,noauto</code>. Var och en löser ett riktigt starttidsproblem:",
|
||||
"headerFlag": "Flaggan",
|
||||
"headerEffect": "Vad det gör",
|
||||
"rows": [
|
||||
{
|
||||
"flag": "_netdev",
|
||||
"effect": "Berättar initsystemet denna montering behöver nätverket. Boot blockerar inte vänta på det innan nätverket är uppe."
|
||||
},
|
||||
{
|
||||
"flag": "x-systemd.automount",
|
||||
"effectRich": "Skapar en systemd auto-mount enhet: monteringen sker bara första gången något når <code>/mnt/<path></code>. NFS-servern som inte kan nås på starten stallar inte CT."
|
||||
},
|
||||
{
|
||||
"flag": "noauto",
|
||||
"effect": "Hoppar över omedelbar montering vid start. Tillsammans med automount-enheten ovan monteras filsystemet först vid åtkomst."
|
||||
}
|
||||
],
|
||||
"netEffectTitle": "Nettoeffekt",
|
||||
"netEffectBody": "NFS-filsystemet monteras vid <em>första åtkomsten</em> i stället för direkt under starten. Om servern är offline kan åtkomsten vänta eller misslyckas och påverka tjänster som behöver sökvägen. Automount minskar startberoendet men garanterar inte att alla CT-tjänster förblir opåverkade av en otillgänglig NFS-server."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Replicera hela flödet för hand - varje kommando kör <strong>inuti CT</strong> via <code>pct exec <ctid> --</code> eller direkt via <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa aktuella fästen",
|
||||
"body": "Listar varje NFS monteringspunkt aktiv inuti CT (<code>mount | grep nfs</code>) plus varje NFS linje i CT <code>/etc/fstab</code>. För varje fstab-post visas den levande monteringsstatusen - användbar för att upptäcka permanenta fästen som inte kom upp på start."
|
||||
},
|
||||
"unmount": {
|
||||
"heading": "Avmontera NFS-delning",
|
||||
"body": "Kombinerar live-monteringarna och fstab-posterna till en lista, låter dig välja en och <strong>tar bort motsvarande rad från <code>/etc/fstab</code></strong>. Skriptet kör <em>inte</em> <code>umount</code> på live-monteringen – istället talar om för dig att en CT omstart krävs för att avmonteringen ska träda i kraft.",
|
||||
"warnTitle": "Skriptet tar bort fstab-poster, inte levande fästen",
|
||||
"warnBody": "Detta är ett avsiktligt designval: <code>umount</code> på en upptagen montering misslyckas med \"enhet upptagen\" när något inuti CT fortfarande använder det. Ta bort fstab-posten garanterar att fästet försvinner rent på nästa CT-start. Om du vill monteringen borttagen <em>nu</em> och du är säker på att ingenting använder det, kör <code>pct exec <ctid> -- umount /mnt/<path></code> för hand efter skriptet avslutas."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Test NFS-anslutning",
|
||||
"body": "Diagnostic pass inuti CT: bekräftar <code>nfs-common</code> installeras, <code>rpcbind</code> körs, listar aktuella NFS-fästen, sedan itererar över varje NFS-server som refereras i fstab och kontrollerar ping → port 2049 → <code>showmount -e</code>. Bra första stopp när ett permanent fäste inte kommer upp."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"privTitle": "Privilegierad container krävs (skriptet avbryter)",
|
||||
"privBody": "Den valda CT är oprivilegierad. Kernel NFS-klienten behöver <code>SYS_ADMIN</code>-kapacitet som oprivilegierade CT inte exponerar. Antingen konvertera CT till privilegierad (Disk Manager & konvertering dokumenteras i <importLink>Import Disk till LXC</importLink> sida) eller använd den alternativa vägen som beskrivs i varningen högst upp på denna sida.",
|
||||
"aptTitle": "apt-get install nfs-common fails",
|
||||
"aptIntro": "Manuset antar en Debian-familj CT (<code>apt-get</code>). Om CT kör Alpine / Arch / Rocky / Alma misslyckas installationssteget tyst. Installera NFS-klienten för den distroen:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add nfs-utils</code>",
|
||||
"Arch: <code>pacman -S nfs-utils</code>",
|
||||
"Rocky / Alma: <code>dnf install nfs-utils</code>"
|
||||
],
|
||||
"aptOutro": "Sedan kör ProxMenux-skriptet - installationssteget hoppar när verktygen redan finns.",
|
||||
"portTitle": "\"NFS port (2049) is not accessible\"",
|
||||
"portBody": "Ping lyckades men <code>nc -z <server> 2049</code> misslyckades inifrån CT. Kontrollera att NFS-tjänsten körs på servern, att brandväggen tillåter 2049 från CT-nätverket, och att CT faktiskt har en giltig nätverksväg (prova <code>pct exec <ctid> -- ip route</code>).",
|
||||
"bootTitle": "Permanent montering lyckas men kommer inte upp på start",
|
||||
"bootBody": "Nästan alltid en av: nätverket är inte redo när CT-fästen (skriptets <code>_netdev,x-systemd.automount,noauto</code>-flaggor fixar detta - återställer monteringen via skriptet om du skrev fstablinjen för hand utan dem), servern är oåtkomlig vid start (auto-mount väntar på första åtkomst - det är normalt), eller DNS är olöst på start (använd serverns IP, inte dess värdnamn).",
|
||||
"squashTitle": "Server squashes root, ingen skriva tillgång inifrån CT",
|
||||
"squashIntro": "NFS export använder <code>root_squash</code> (standard) och CT skriver som root. Två alternativ:",
|
||||
"squashItems": [
|
||||
"Server-side: ändra exporten till <code>no_root_squash</code> (endast om du litar på CT).",
|
||||
"CT-sida: skriv som en icke-rotanvändare som servern accepterar, eller chown andelen på lämpligt sätt."
|
||||
],
|
||||
"squashOutro": "ProxMenux kan inte fixa detta - det är serverpolicy."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "LXC-monteringspunkter (värd ↔ container)",
|
||||
"tail": " — alternativet för oprivilegierade CT: montering på värd, binda till CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Samba klient i LXC",
|
||||
"tail": " — relaterad sida med samma mönster för SMB-/CIFS-delningar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"label": "NFS server i LXC",
|
||||
"tailRich": " — omvänt: exponera mappar <em>från</em> en CT över NFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "NFS-delning som Proxmox-lagring",
|
||||
"tail": " — registrera delningen i Proxmox i stället för i en enskild CT."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "NFS server i LXC | ProxMenux Dokumentation",
|
||||
"description": "Dela mappar via NFS från en Proxmox LXC-container med ProxMenux. Installerar nfs-kernel-server automatiskt och konfigurerar den gemensamma gruppen sharedfiles, /etc/exports, nätverks-ACL:er och fullständig avinstallation. Kräver en privilegierad container.",
|
||||
"ogTitle": "NFS server i LXC | ProxMenux Dokumentation",
|
||||
"ogDescription": "Kör en NFS-server i en privilegierad LXC med den gemensamma gruppen sharedfiles, nätverks-ACL:er och fullständig avinstallation."
|
||||
},
|
||||
"header": {
|
||||
"title": "NFS server i LXC",
|
||||
"description": "Kör en NFS-kärnserver i en Proxmox LXC-container och dela mappar med andra datorer i nätverket. ProxMenux installerar nfs-kernel-server, konfigurerar den gemensamma gruppen sharedfiles så att flera privilegierade CT:er kan dela filer med samma grupp-ID, hanterar /etc/exports och erbjuder fullständig avinstallation.",
|
||||
"section": "Lagring & Dela · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Privilegierad container krävs",
|
||||
"body": "<code>nfs-kernel-server</code> måste montera kärnans filsystem <code>nfsd</code> på <code>/proc/fs/nfsd</code>. Det kräver <code>CAP_SYS_ADMIN</code> i värdkärnans namnrymd, inte bara i containerns användarnamnrymd. Oprivilegierade LXC-containrar saknar denna förmåga: <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code>; systemd markerar <code>nfs-server.service</code> som misslyckad på grund av ett beroende. Skriptet kräver därför en privilegierad CT och <strong>avbryter för oprivilegierade CT:er</strong>. Ett alternativ är att köra NFS-servern i en VM."
|
||||
},
|
||||
"what": {
|
||||
"heading": "Vad detta gör",
|
||||
"body": "Detta är motsatsen till sidan om <em>NFS-klienten</em>: CT:n blir en <strong>NFS-server</strong> och delar en egen mapp med andra CT:er, Proxmox-värden, VM:ar eller fysiska datorer.",
|
||||
"diagramServerLabel": "LXC (privilegierad) - NFS server",
|
||||
"diagramServerDetail": "/mnt/data\n(mappen du delar)\n\nchown root:sharedfiles\nchmod 2775 (SGID)\n\nnfs-kernel-server\n+ rpcbind körs",
|
||||
"diagramClientLabel": "Valfri klient",
|
||||
"diagramClientDetail": "En annan CT, värden,\nVM, en fysisk maskin.",
|
||||
"diagramArrow": "NFS-export"
|
||||
},
|
||||
"shared": {
|
||||
"heading": "Den gemensamma gruppen ”sharedfiles”",
|
||||
"body": "Innan du exporterar mappen skapar ProxMenux en grupp som heter <code>sharedfiles</code> med <strong>GID 101000</strong> inuti containern, lägger till varje vanlig användare till den och ställer sedan in exportkatalogen till <code>root:sharedfiles</code> med läge <code>2775</code>. <code>2</code> på framsidan är SGID-biten - varje fil eller mapp som skapas inuti ärver automatiskt <code>sharedfiles</code>-gruppen.",
|
||||
"gidTitle": "Varför GID 101000",
|
||||
"gidBody": "Med LXC:s standardmappning (+100000) visas värdens GID 101000 som GID <strong>1000</strong> i en oprivilegierad CT. Detta serverflöde använder en <strong>privilegierad</strong> CT utan förskjutning. Två privilegierade CT:er med <code>sharedfiles</code> på GID 101000 har därför samma numeriska grupp-ID.",
|
||||
"remapTitle": "Äldre skapande av ”remap_*”-användare hoppas över för privilegierade CT:er",
|
||||
"remapBody": "Den äldre grenen för oprivilegierade CT:er skulle skapa <code>remap_<uid></code>-användare med UID <code><uid> + 100000</code>, alla i <code>sharedfiles</code>, för vanliga användare och vanliga UID:n (33, 1000, 1001, 1002). Denna <code>+100000</code>-förskjutning gäller inte de <strong>privilegierade</strong> CT:er som krävs här, så skriptet hoppar över grenen. Det är väntat att <code>remap_*</code>-konton saknas i <code>getent passwd</code> och betyder inte att något är fel."
|
||||
},
|
||||
"defaults": {
|
||||
"heading": "Standardexportalternativ - läs detta första",
|
||||
"warnTitle": "Standardalternativ inkluderar no_root_squash",
|
||||
"warnBody": "ProxMenux använder som standard <code>rw,sync,no_subtree_check,'<'strong'>'no_root_squash'<'/strong'>'</code>. <strong>Varje root-användare på en klient kan skriva som root på exporten.</strong> Använd detta endast i ett betrott hemnätverk. Om CT:n kan nås från ett obetrott nätverk (VPS eller obetrott VLAN), <strong>byt alternativet till <code>root_squash</code></strong> i dialogen för egna alternativ."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Configure NFS Server in LXC</strong> i huvudmenyn. Endast privilegierade CT:er visas. Välj mål-CT:n; skriptet startar den om den är stoppad och avvisar oprivilegierade CT:er. Menyn har fem alternativ.",
|
||||
"imageAlt": "NFS Server Manager-menyn - Skapa / Visa / Ta bort / Status / Avinstallera"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur manuset går (Skapa flöde)"
|
||||
},
|
||||
"network": {
|
||||
"heading": "Nätverks-ACL — vilka klienter får montera?",
|
||||
"intro": "<code>/etc/exports</code> styr vilka klienter som får montera exporten. Dialogen har tre lägen:",
|
||||
"headerMode": "Läge",
|
||||
"headerValue": "Värde skrivet till /etc/exports",
|
||||
"headerWhen": "När man väljer den",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "Lokalt nätverk",
|
||||
"value": "192.168.0.0/16",
|
||||
"whenRich": "För vanliga hem- och småföretagsnät. Omfattar alla adresser under <code>192.168.*.*</code>."
|
||||
},
|
||||
{
|
||||
"mode": "Anpassad subnet",
|
||||
"value": "din CIDR (t.ex. 10.0.0.0/24)",
|
||||
"when": "När ditt LAN inte är i 192.168.x.x eller om du vill ha en hårdare omfattning."
|
||||
},
|
||||
{
|
||||
"mode": "Ensam värd",
|
||||
"value": "din IP (till exempel 10.0.0.42)",
|
||||
"when": "Endast en viss dator får montera exporten. Mest begränsande."
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"heading": "Exportalternativ förklarade",
|
||||
"headerOption": "Alternativ",
|
||||
"headerEffect": "Vad det gör",
|
||||
"rows": [
|
||||
{
|
||||
"option": "rw / ro",
|
||||
"effect": "Tillåt läsning och skrivning eller endast läsning för anslutande klienter."
|
||||
},
|
||||
{
|
||||
"option": "sync",
|
||||
"effectRich": "Bekräftar skrivbegäranden först när data finns på disk. Säkrare än <code>async</code>, men med lägre genomströmning."
|
||||
},
|
||||
{
|
||||
"option": "no_subtree_check",
|
||||
"effect": "Hoppar över kontrollen vid varje begäran att filen fortfarande ligger i det exporterade underträdet. Det går snabbare och undviker problem när filer byter namn under pågående åtkomst."
|
||||
},
|
||||
{
|
||||
"option": "no_root_squash",
|
||||
"effectRich": "<strong>Lita på root på klienten.</strong> En klient som monterar som root skriver som root på servern. Passar betrodda LAN, exempelvis när säkerhetskopieringsverktyg måste bevara ägare. Ersätt med <code>root_squash</code> om du inte litar helt på varje dator som nätverkets ACL tillåter."
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Utför hela flödet manuellt. Varje kommando körs <strong>inne i CT:n</strong> via <code>pct exec <ctid> --</code> eller <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa aktuell export",
|
||||
"body": "Visar <code>/etc/exports</code> inifrån CT:n utan kommentarer och tomma rader, med nätverks-ACL och alternativ för varje export. Användbart för att kontrollera delade mappar innan du lämnar ut CT:ns IP-adress."
|
||||
},
|
||||
"delete": {
|
||||
"heading": "Ta bort en export",
|
||||
"body": "Listar varje rad i <code>/etc/exports</code> för val, tar bort den valda (<code>sed -i</code>), kör <code>exportfs -ra</code> och startar om <code>nfs-kernel-server</code>. Mappen själv och dess innehåll lämnas intakt."
|
||||
},
|
||||
"status": {
|
||||
"heading": "Kontrollera NFS status",
|
||||
"body": "Diagnostik: kontrollerar att <code>nfs-kernel-server</code> och <code>rpcbind</code> är installerade och aktiva, visar utdata från <code>exportfs -v</code>, aktiva NFS-sessioner (<code>showmount -a</code>) och aktuella klientanslutningar."
|
||||
},
|
||||
"uninstall": {
|
||||
"heading": "Avinstallera NFS server",
|
||||
"body": "Fullständig rensning efter bekräftelse: stoppar och inaktiverar <code>nfs-kernel-server</code> och <code>rpcbind</code>, tömmer <code>/etc/exports</code>, tar bort NFS-paketen med <code>apt-get purge</code>, gruppen <code>sharedfiles</code> och användarna <code>remap_*</code> samt avslutar kvarvarande processer. De <strong>exporterade mapparna raderas inte</strong>; endast NFS-konfigurationen och paketen tas bort.",
|
||||
"warnTitle": "Skriptet stannar vid exportlinjen, inte vid data",
|
||||
"warnBody": "Både <em>Ta bort export</em> och <em>Avinstallera NFS-server</em> tar bort exportkonfigurationen. Data i den delade mappen bevaras. Om även data ska tas bort, gör det uttryckligen med <code>rm -rf</code> efter att skriptet har avslutats och säkerhetskopiera först om någon kan behöva dem."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"privTitle": "Privilegierad container krävs (skriptet avbryter)",
|
||||
"privBody": "Den valda CT är oprivilegierad. <code>nfs-kernel-server</code> kan inte starta där eftersom montering <code>/proc/fs/nfsd</code> behöver <code>CAP_SYS_ADMIN</code> i värdkärnans namnrymd, och <code>nfsd</code>-modulen inte heller är tillgänglig i containerns namnrymd (<code>modprobe nfsd</code> inifrån returnerar <code>FATAL: Module nfsd not found</code>). Om du kringgår kontrollen ser du <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code> i journalen och inga NFS-portar kommer någonsin att öppnas. De enda användbara alternativen är: konvertera CT till privilegierad, eller flytta NFS-servern till en VM.",
|
||||
"aptTitle": "apt-get install misslyckas",
|
||||
"aptIntro": "Manuset antar en Debian-familj CT. På Alpine / Arch / Rocky / Alma, installera NFS serverpaket för hand:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add nfs-utils</code>",
|
||||
"Arch: <code>pacman -S nfs-utils</code>",
|
||||
"Rocky / Alma: <code>dnf install nfs-utils</code>"
|
||||
],
|
||||
"aptOutro": "Kör sedan ProxMenux-skriptet igen; installationen hoppas över om verktygen redan finns.",
|
||||
"aclTitle": "Kunden kan inte montera: \"åtkomst nekas av servern\"",
|
||||
"aclBody": "Klientens IP ligger utanför nätverkets ACL. Skapa exporten på nytt med ett större undernät eller lägg till klientens exakta IP. Vanlig fallgrop: via router-NAT kan klienten visas med routerns WAN-IP i stället för sin LAN-IP. Kontrollera på servern med <code>tcpdump -n port 2049</code>.",
|
||||
"ownTitle": "Filer skrivna av kunden visas med konstig ägande på servern",
|
||||
"ownIntro": "Två möjligheter:",
|
||||
"ownItems": [
|
||||
"Med <code>no_root_squash</code> (standard) skriver klientrot som rot på servern. Filer ägs av <code>root:sharedfiles</code> tack vare SGID på mappen.",
|
||||
"Icke-root klient användare skriver som sin egen UID / GID. Om deras UID inte finns på servern visas filer med råa nummer (t.ex. <code>1234:1234</code>). Använd <code>sharedfiles</code>-gruppen på klienten också, eller anpassa UID över de system som delar filer."
|
||||
],
|
||||
"noShowTitle": "Servern kan nås men showmount returnerar inget",
|
||||
"noShowBody": "Efter att du redigerat <code>/etc/exports</code> måste du ladda om exporttabellen med <code>exportfs -ra</code> och starta om <code>nfs-kernel-server</code>. Skriptet gör båda, men efter manuell redigering måste du göra det själv. Kontrollera även att brandväggen i CT:n och på Proxmox-värden tillåter TCP/UDP 2049 och rpcbind-porten (111)."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "NFS klient i LXC",
|
||||
"tail": " — omvänt: montera externa NFS-delningar i en CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"label": "Samba server i LXC",
|
||||
"tail": " — syskonsidan, samma mönster med SMB / CIFS istället för NFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "NFS-delning som Proxmox-lagring",
|
||||
"tailRich": " — när CT:n delar ut via NFS, registrera NFS-delningen i Proxmox så att den visas under <em>Datacenter → Storage</em>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Samba klient i LXC | ProxMenux Dokumentation",
|
||||
"description": "Montera Samba-/CIFS-delningar i en Proxmox LXC-container med ProxMenux. Installerar cifs-utils och smbclient automatiskt och stöder upptäckt, skyddad lagring av inloggningsuppgifter och beständiga monteringar via /etc/fstab. Kräver en privilegierad container.",
|
||||
"ogTitle": "Samba klient i LXC | ProxMenux Dokumentation",
|
||||
"ogDescription": "Montera Samba-/CIFS-delningar i en privilegierad LXC-container. Automatisk upptäckt, skyddad fil med inloggningsuppgifter och beständiga poster i /etc/fstab."
|
||||
},
|
||||
"header": {
|
||||
"title": "Samba klient i LXC",
|
||||
"description": "Montera Samba-delningar (SMB / CIFS) direkt inifrån en Proxmox LXC container. Containern blir en riktig CIFS-klient - pratar med Samba-servern över nätverket, kör mount.cifs, lagrar inloggningsuppgifter säkert och skriver till /etc/fstab. ProxMenux installerar cifs-utils + smbclient för dig och validerar inloggningsuppgifter mot servern innan du monterar.",
|
||||
"section": "Lagring och delning · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Privilegierad container krävs",
|
||||
"body": "Samba / CIFS-klienten som använder <code>mount.cifs</code> behöver förmågor (minst <code>SYS_ADMIN</code>) som oprivilegierade LXC:er inte tillhandahåller. Skriptet ber dig välja CT och <strong>avbryter om den är oprivilegierad</strong>. Behövs delningen i en sådan CT monterar du den först på Proxmox-värden med <hostSambaLink>Samba / CIFS-delning som Proxmox-lagring</hostSambaLink> och bind-monterar den i CT:n med <mountLink>LXC Mount Manager</mountLink>."
|
||||
},
|
||||
"what": {
|
||||
"heading": "Vad detta gör",
|
||||
"body": "Containern talar CIFS över nätverket och monterar delningen på egen hand. Proxmox värd är bara nätverksbroen - det ser inte eller hanterar monteringen.",
|
||||
"diagramServerLabel": "Samba server",
|
||||
"diagramServerDetail": "//srv/share",
|
||||
"diagramHostLabel": "Proxmox-värd",
|
||||
"diagramHostDetail": "(bara en\nNätverksbro)",
|
||||
"diagramCtLabel": "LXC (privilegierad)",
|
||||
"diagramCtDetail": "/mnt/share\nmount.cifs inuti CT",
|
||||
"diagramArrow": "CIFS",
|
||||
"twoWaysTitle": "Två sätt att ge en CT en Samba-andel - välj en",
|
||||
"twoWaysBind": "<strong>Bind montering via host</strong> (<mountLink>LXC Mount Manager</mountLink>): värd monterar CIFS en gång, varje CT bind-monterar samma väg. Fungerar med oprivilegierade CT. Rekommenderas när flera CT behöver samma delning.",
|
||||
"twoWaysDirect": "<strong>Direct CIFS montering inuti CT</strong> (denna sida): CT monterar själva CIFS. Kräver privilegierad. Användbart när CT måste äga sina egna referenser, eller när varje CT talar till en annan server."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Konfigurera Samba-klient i LXC (endast privilegierad)</strong> i huvudmenyn. ProxMenux ber dig <strong>välja mål-CT</strong>, startar den om den är stoppad och avbryter om den är oprivilegierad. Sedan visas denna undermeny:",
|
||||
"imageAlt": "Samba Client Manager-menyn - Mount / View / Unmount / Test-anslutning"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur man kör skriptet (Mount flow)"
|
||||
},
|
||||
"creds": {
|
||||
"heading": "Där lösenordet lever",
|
||||
"body": "ProxMenux <strong>lägger inte lösenordet i monteringskommandot</strong> eller i <code>/etc/fstab</code>. I stället skapas en fil med inloggningsuppgifter i CT:n. Filen innehåller klartext som skyddas med behörigheter endast för root; den är inte krypterad:",
|
||||
"whyTitle": "Varför en separat fil snarare än fstab",
|
||||
"whyBody": "CIFS modulen accepterar <code>username=</code> / <code>password=</code> alternativ inline i fstab, men alla som kan läsa <code>/etc/fstab</code> ser lösenordet i klart. Att sätta referenser i en root-only-fil och peka fstab på den (<code>credentials=</code>) håller lösenordet ur världsläsbar konfig."
|
||||
},
|
||||
"options": {
|
||||
"heading": "Mount alternativ förklarade",
|
||||
"headerOption": "Alternativ",
|
||||
"headerEffect": "Vad det gör",
|
||||
"rows": [
|
||||
{
|
||||
"option": "rw / ro",
|
||||
"effect": "Läs-skriv eller läs-bara läget för hela fästet."
|
||||
},
|
||||
{
|
||||
"option": "file_mode=0664",
|
||||
"effect": "Behörigheter som rapporterats för filer via CIFS. Default låter ägaren + gruppen skriva, andra läser."
|
||||
},
|
||||
{
|
||||
"option": "dir_mode=0775",
|
||||
"effect": "Behörigheter rapporterade för kataloger. Default låter ägaren + gruppen komma in och skapa, andra korsar."
|
||||
},
|
||||
{
|
||||
"option": "iocharset=utf8",
|
||||
"effect": "Använder UTF-8 för filnamn från nätverket. Undviker felkodade tecken i namn utanför ASCII."
|
||||
},
|
||||
{
|
||||
"option": "credentials=file",
|
||||
"effect": "Läs användarnamn / lösenord från filen (läggs automatiskt till användaren auth)."
|
||||
},
|
||||
{
|
||||
"option": "guest",
|
||||
"effect": "Autentisera som gäst, inga referenser behövs (läggs automatiskt när gäst väljs)."
|
||||
},
|
||||
{
|
||||
"option": "_netdev",
|
||||
"effect": "Berättar initsystemet denna montering behöver nätverket. Boot blockerar inte vänta på det."
|
||||
},
|
||||
{
|
||||
"option": "x-systemd.automount",
|
||||
"effect": "Lazy montering: endast fästen vid första åtkomst. CIFS-servern som inte kan nås på starten stannar inte CT."
|
||||
},
|
||||
{
|
||||
"option": "noauto",
|
||||
"effect": "Hoppar över omedelbar montering vid start. Automount-enheten monterar filsystemet först när det används."
|
||||
}
|
||||
],
|
||||
"netEffectTitle": "Nettoeffekten av fstabflaggarna",
|
||||
"netEffectBody": "CIFS-filsystemet monteras vid <em>första åtkomsten</em> i stället för direkt under starten. Om servern är offline kan åtkomsten vänta eller misslyckas och påverka tjänster som behöver sökvägen. Automount minskar startberoendet men garanterar inte att alla CT-tjänster förblir opåverkade av en otillgänglig CIFS-server."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Replicera hela flödet för hand - varje kommando kör <strong>inuti CT</strong> via <code>pct exec <ctid> --</code> eller direkt via <code>pct enter <ctid></code>:",
|
||||
"guestIntro": "Gästvariant - ingen referensfil som behövs:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa aktuella fästen",
|
||||
"body": "Listar varje CIFS-monteringspunkt aktiv inuti CT (<code>mount -t cifs</code>) plus varje CIFS-linje i CT <code>/etc/fstab</code>. För varje fstab-post visas levande monteringsstatus - användbar för att upptäcka permanenta fästen som inte kom upp på start."
|
||||
},
|
||||
"unmount": {
|
||||
"heading": "Avmontera Samba-delning",
|
||||
"body": "Samlar aktiva monteringar och fstab-poster i en lista. När du väljer en post <strong>tas motsvarande rad bort från <code>/etc/fstab</code></strong> tillsammans med filen med inloggningsuppgifter. Skriptet kör inte <code>umount</code> på den aktiva monteringen utan talar om att CT:n måste startas om för att avmonteringen ska få effekt.",
|
||||
"warnTitle": "Skriptet tar bort fstab-poster, inte levande fästen",
|
||||
"warnBody": "Samma design som NFS-klienten: <code>umount</code> på en upptagen montering misslyckas med \"enhet upptagen\". Ta bort fstab-posten garanterar att fästet försvinner rent på nästa CT-start. Om du vill monteringen borttagen <em>nu</em>, kör <code>pct exec <ctid> -- umount /mnt/<path></code> för hand efter att manuset har avslutats."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Testa Samba-anslutning",
|
||||
"body": "Diagnostic pass inuti CT: bekräftar <code>cifs-utils</code> installeras, listar nuvarande CIFS-fästen, sedan för varje server som refereras i fstab-kontroller ping → portar 139 / 445 → gästlista. \"Kräver autentisering\" på gästtestet är normalt för alla servrar som inte exponerar offentliga aktier."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"privTitle": "Privilegierad container krävs (skriptet avbryter)",
|
||||
"privBody": "Den valda CT är oprivilegierad. Kernel CIFS-klienten behöver <code>SYS_ADMIN</code>-kapacitet som oprivilegierade CT inte exponerar. Antingen konvertera CT till privilegierad, eller använd den alternativa vägen som beskrivs i varningen högst upp på denna sida.",
|
||||
"aptTitle": "apt-get install fails",
|
||||
"aptIntro": "Manuset antar en Debian-familj CT (<code>apt-get</code>). På Alpine / Arch / Rocky / Alma, installera CIFS-klienten för hand:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add cifs-utils samba-client</code>",
|
||||
"Arch: <code>pacman -S cifs-utils smbclient</code>",
|
||||
"Rocky / Alma: <code>dnf install cifs-utils samba-client</code>"
|
||||
],
|
||||
"aptOutro": "Sedan kör ProxMenux-skriptet - installationssteget hoppar när verktygen redan finns.",
|
||||
"guestFallbackTitle": "\"Servern kopplade dig som gäst istället för den angivna användaren\"",
|
||||
"guestFallbackBody": "Manusets aktiva validering fångade ett verkligt autproblem. Servern accepterade anslutningen men nedgraderade den till gästen eftersom referenserna är fel. Vanliga orsaker: typo i användarnamnet / lösenordet, användaren finns inte på servern, användaren är låst, eller arbetsgruppen / domänen är missmatchad. Re-run flödet och åter ange referenser noggrant (lösenordet är dolt i dialogrutan).",
|
||||
"denyTitle": "\"NT_STATUS_ACCESS_DENIED\" vid montering",
|
||||
"denyBody": "Inloggningsuppgifterna är validerade men delningen nekar åtkomst. Kontrollera användarens behörigheter för just den delningen på servern (valideringen bekräftar inloggning, inte varje delnings ACL:er). Kontrollera också om servern kräver en viss SMB-version: lägg till <code>vers=3.0</code> (eller <code>2.1</code>, <code>2.0</code>) i monteringsalternativen.",
|
||||
"utf8Title": "Filnamn i UTF-8 / utanför ASCII visas felaktigt",
|
||||
"utf8Body": "Standardalternativen inkluderar <code>iocharset=utf8</code>, men vissa serverkonfigurationer rapporterar en oväntad kodsida. Om filnamn med accenter / symboler ser fel, prova också <code>nounix</code> (vissa Linux Samba-servrar behöver detta när klienten också är Linux) eller ställa in serversidan till <code>unix extensions = no</code>.",
|
||||
"bootTitle": "Permanent montering lyckas men kommer inte upp på start",
|
||||
"bootBody": "Nästan alltid en av: nätverket är inte klart när CT-fästen (skriptets <code>_netdev,x-systemd.automount,noauto</code>-flaggor fixar detta), servern är oåtkomlig vid start (auto-mount väntar på första åtkomst - det är normalt), eller DNS är olöst på start (använd serverns IP, inte dess värdnamn)."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "LXC-monteringspunkter (värd ↔ container)",
|
||||
"tail": " — alternativet för oprivilegierade CT: montering på värd, binda till CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "NFS klient i LXC",
|
||||
"tail": " — relaterad sida med samma mönster för NFS-delningar."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"label": "Samba server i LXC",
|
||||
"tailRich": " — omvänt: exponera mappar <em>från</em> en CT över Samba."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS som Proxmox förvaring",
|
||||
"tail": " — registrera delningen i Proxmox i stället för i en enskild CT."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Samba server i LXC | ProxMenux Dokumentation",
|
||||
"description": "Kör en Samba (SMB / CIFS) server i en Proxmox LXC container med ProxMenux. Auto-installerar samba, hanterar /etc/samba/smb.conf, smbpasswd-användare, sharedfiles grupp för bindmonterade mappar. Kräver en privilegierad container.",
|
||||
"ogTitle": "Samba server i LXC | ProxMenux Dokumentation",
|
||||
"ogDescription": "Dela mappar via SMB/CIFS från en privilegierad LXC-container. Automatisk installation, smbpasswd-användare och behörigheter anpassade till bind-monteringar."
|
||||
},
|
||||
"header": {
|
||||
"title": "Samba server i LXC",
|
||||
"description": "Kör en Samba (SMB / CIFS) server i en Proxmox LXC container och exponera mappar till Windows / macOS / Linux klienter på nätverket. ProxMenux installerar samba, skapar en Samba användare med smbpasswd, hanterar /etc/samba/smb.conf, och tillämpar behörigheter anpassade till bind-monteringar när den delade mappen kommer från värden.",
|
||||
"section": "Lagring & Dela · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Privilegierad container krävs",
|
||||
"body": "Samba antar den anslutande användarens identitet med <code>setgroups()</code> på varje trädanslutning (det ögonblick en klient öppnar en delning). I en oprivilegierad LXC avvisar kärnan det syscall eftersom containerns användarnamnrymd skapas med <code>setgroups=deny</code> - och <code>smbd</code> svarar genom att avsluta arbetsprocessen med <code>PANIC: sys_setgroups failed</code>. Resultatet är att <code>smbd</code> startar och binder portar 139/445, men varje klientanslutning misslyckas med <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Skriptet genomdriver en privilegierad CT av denna anledning och <strong>avbryter om CT:n är oprivilegierad</strong>. Det finns ingen ren fix på serversidan; använd en privilegierad CT eller kör Samba i en VM."
|
||||
},
|
||||
"what": {
|
||||
"heading": "Vad detta gör",
|
||||
"body": "Containern blir en SMB/CIFS-server: den kör <code>smbd</code>, exponerar en mapp via <code>/etc/samba/smb.conf</code> och accepterar klientanslutningar på portar <code>139</code>/<code>445</code>. Klienterna ser delningen på <code>\\\\<ct-ip>\\<share-name></code> i Windows Explorer, <code>smb://<ct-ip>/<share-name></code> i macOS Finder, eller via <code>mount.cifs</code> på Linux.",
|
||||
"diagramServerLabel": "LXC (privilegierad) - Samba server",
|
||||
"diagramServerDetail": "/mnt/data\n(mappen du delar)\n\nsmbd + nmbd körs\n\nAnvändare: <username>\n(via smbpasswd)\n\nTvingad grupp:\nsharedfiles",
|
||||
"diagramClientLabel": "Valfri klient i nätverket",
|
||||
"diagramClientDetail": "Windows: \\\\<ip>\\<share>\nmacOS: smb://<ip>/<share>\nLinux: mount.cifs",
|
||||
"diagramArrow": "SMB / CIFS"
|
||||
},
|
||||
"perms": {
|
||||
"heading": "Två tillståndsvägar beroende på mapptypen",
|
||||
"body": "Innan delningen läggs till i <code>smb.conf</code> kontrollerar skriptet om mappen är en <strong>bind-montering från värden</strong> eller en vanlig <strong>lokal mapp i CT:n</strong> och anpassar ägare och behörigheter därefter:",
|
||||
"headerType": "Mapptyp",
|
||||
"headerAction": "Vad manuset gör",
|
||||
"bindType": "Bind-mount från värd",
|
||||
"bindTypeSubRich": "Detekteras via <code>mount</code>-utgång",
|
||||
"bindActionRich": "Skapar grupp <code>sharedfiles</code> (standard GID 999, dynamisk om det tas), lägger till Samba-användaren till den, sedan <code>chown root:sharedfiles</code> + <code>chmod 2775</code> (SGID - nya filer ärver gruppen). Om användaren fortfarande inte kan skriva gäller <code>setfacl -m u:<user>:rwx</code>.",
|
||||
"localType": "Lokal mapp i CT",
|
||||
"localTypeSub": "Ingen bind-montering upptäckt",
|
||||
"localActionRich": "Standard ägande: <code>chown -R <user>:<user></code> + <code>chmod -R 755</code>. Ingen delad grupp behövdes eftersom ingen annan CT skriver till den här mappen. Falls tillbaka till <code>setfacl</code> om skrivåtkomst fortfarande saknas.",
|
||||
"gidTitle": "GID för \"sharedfiles\" skiljer sig från NFS-serverflödet",
|
||||
"gidBody": "Samba server script använder GID <strong>999</strong> för <code>sharedfiles</code>, medan <nfsLink>NFS server flow</nfsLink> använder GID <strong>101000</strong>. Om du kör båda servrarna i samma CT och vill ha en gemensam grupp över båda protokollen, redigera en av dem för att matcha den andra efter installationen (t.ex. <code>groupmod -g 101000 sharedfiles</code>) och sätt ägare på de berörda mapparna igen. Detta är en känd inkonsekvens i de nuvarande skripten."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Öppna verktyget",
|
||||
"body": "Öppna <strong>Storage & Share Manager → Configure Samba Server in LXC</strong> i huvudmenyn. Endast privilegierade CT:er visas. Välj mål-CT:n; skriptet startar den om den är stoppad och avvisar oprivilegierade CT:er. Menyn har fem alternativ.",
|
||||
"imageAlt": "Samba Server Manager-menyn - Skapa / Visa / Ta bort / Status / Avinstallera"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Hur manuset går (Skapa flöde)"
|
||||
},
|
||||
"modes": {
|
||||
"heading": "De tre delningslägena",
|
||||
"intro": "Varje läge skriver en annan stanza till <code>smb.conf</code>. Alla tre inkluderar <code>valid users = <username></code> (ingen anonym), <code>force group = sharedfiles</code> (så nya filer tillhör den delade gruppen) och <code>veto files = /lost+found/</code> (döljer det från kunder).",
|
||||
"headerMode": "Läge",
|
||||
"headerBlock": "Block skriven till smb.conf",
|
||||
"rwMode": "Läsning och skrivning",
|
||||
"roMode": "Skrivskyddad",
|
||||
"customMode": "Anpassad",
|
||||
"customBodyRich": "Du skriver dina egna direktiv i en fritextlåda. ProxMenux placerar dem fortfarande i ett <code>[share]</code> block med standard <code>path</code>, <code>valid users</code>, <code>force group</code> och <code>veto files</code>."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell motsvarande",
|
||||
"body": "Utför hela flödet manuellt. Varje kommando körs <strong>inne i CT:n</strong> via <code>pct exec <ctid> --</code> eller <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"connect": {
|
||||
"heading": "Ansluta från klienter",
|
||||
"headerOs": "Klientens operativsystem",
|
||||
"headerHow": "Hur att ansluta",
|
||||
"windowsOs": "Windows",
|
||||
"windowsHowRich": "Utforskaren → adressfältet: <code>\\\\<ct-ip>\\<share-name></code>. Eller <em>Anslut nätverksenhet</em> → markera ”Anslut med andra autentiseringsuppgifter”.",
|
||||
"macosOs": "macOS",
|
||||
"macosHowRich": "Finder → <em>Gå → Anslut till Server...</em> → <code>smb://<ct-ip>/<share-name></code>. Eller <code>mount_smbfs //user@<ct-ip>/<share> /mountpoint</code>.",
|
||||
"linuxOs": "Linux",
|
||||
"linuxHowRich": "<code>mount -t cifs //<ct-ip>/<share> /mnt/x -o username=<u>,password=<p>,iocharset=utf8</code>. Eller använd <clientLink>Samba-klienten i LXC</clientLink>-sida om kunden är en annan Proxmox CT."
|
||||
},
|
||||
"view": {
|
||||
"heading": "Visa aktuella delningar",
|
||||
"body": "Läser <code>/etc/samba/smb.conf</code> inuti CT och listar varje <code>[share]</code> block (skippa <code>[global]</code>, <code>[homes]</code>, <code>[printers]</code>) med sin väg. Användbart som en snabb inventering."
|
||||
},
|
||||
"delete": {
|
||||
"heading": "Ta bort en delning",
|
||||
"body": "Låter dig välja en delning med namn, tar bort blocket från <code>smb.conf</code> (<code>sed</code> raderar från <code>[share]</code> ner till nästa tomma rad) och startar om <code>smbd</code>. Mappen själv och dess innehåll lämnas intakt."
|
||||
},
|
||||
"status": {
|
||||
"heading": "Kontrollera Samba status",
|
||||
"body": "Rapporter om <code>smbd</code> och <code>nmbd</code> är installerade och aktiva, listar Samba-användare (<code>pdbedit -L</code>) och trycker aktiva sessioner (<code>smbstatus</code>)."
|
||||
},
|
||||
"uninstall": {
|
||||
"heading": "Avinstallera Samba server",
|
||||
"body": "Fullständig rensning efter bekräftelse: stoppar och inaktiverar <code>smbd</code> och <code>nmbd</code>, säkerhetskopierar <code>smb.conf</code> till <code>smb.conf.backup.YYYYMMDD_HHMMSS</code>, tar bort Samba-användare med <code>smbpasswd -x</code> och Samba-paketen med <code>apt-get purge</code>. De <strong>exporterade mapparna raderas inte</strong>.",
|
||||
"warnTitle": "Mappar överlever - säkerhetskopiera data separat",
|
||||
"warnBody": "<em>Ta bort delning</em> och <em>Avinstallera Samba-server</em> tar bort delningskonfigurationen. Data i de delade mapparna bevaras. Om även data ska tas bort, gör det uttryckligen med <code>rm -rf</code> efter att skriptet avslutats."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"privTitle": "Privilegierad container krävs (skriptet avbryter)",
|
||||
"privBody": "Den valda CT är oprivilegierad och <code>smbd</code> kan inte servera filer där. Om du kringgår kontrollen och konfigurerar Samba för hand börjar <code>smbd</code> och portarna öppna, men den första klientanslutningen orsakar en panik med <code>PANIC: sys_setgroups failed</code> i <code>/var/log/samba/log.<client></code> och klienten ser <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Orsaken är det oprivilegierade användarnamnrymden med <code>setgroups=deny</code>, som blockerar Sambas per-anslutning impersonation. Varken <code>features=keyctl=1</code> eller ta bort <code>force user</code>/<code>force group</code> ändrar detta. De enda användbara alternativen är: konvertera CT till privilegierad, eller flytta Samba till en VM.",
|
||||
"aptTitle": "apt-get install misslyckas",
|
||||
"aptIntro": "Manuset antar en Debian-familj CT. På Alpine / Arch / Rocky / Alma, installera Samba för hand:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add samba</code>",
|
||||
"Arch: <code>pacman -S samba</code>",
|
||||
"Rocky / Alma: <code>dnf install samba</code>"
|
||||
],
|
||||
"aptOutro": "Kör sedan ProxMenux-skriptet igen; installationen hoppas över om verktygen redan finns.",
|
||||
"noShareTitle": "Klienten ansluter men ser inte delningen",
|
||||
"noShareBody": "Kontrollera att <code>browseable = yes</code> är inställd i delningsblocket (standard för rw / ro-lägen; kan saknas i anpassad). Kontrollera också CT brandvägg och Proxmox värd brandvägg tillåter TCP 445 (SMB) och 139 (NetBIOS). Vissa Windows-klienter kräver också namnupplösning - prova IP direkt först.",
|
||||
"authTitle": "Autentisering misslyckas (NT_STATUS_LOGON_FAILURE)",
|
||||
"authBody": "Antingen är lösenordet fel (Samba-lösenord är <em>separata</em> från systemlösenord; lista Samba-användare med <code>pdbedit -L</code>) eller saknas användaren i <code>valid users</code> för delningen. Återställ lösenordet i CT:n med <code>smbpasswd <user></code>.",
|
||||
"groupTitle": "Filer skrivna av kunden visas med fel grupp på servern",
|
||||
"groupBody": "Skriptet sätter <code>force group = sharedfiles</code> i delningsblocket, så nya filer bör vara grupp <code>sharedfiles</code>. Om de inte är det kan SGID-biten på föräldrakatalogen ha gått förlorad (någon körde <code>chmod</code> för hand). Tillämpa igen: <code>chmod 2775 /mnt/<share></code>.",
|
||||
"bothTitle": "Dela samma mapp över både NFS och Samba",
|
||||
"bothBody": "ProxMenux använder olika GID för <code>sharedfiles</code> i varje manus (Samba: 999, NFS: 101000). Om du tjänar samma mapp via båda, besluta om en GID och anpassa båda. Den enklaste fixen: efter att ha kört båda skripten, redigera den mindre GID:"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterad",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Samba klient i LXC",
|
||||
"tail": " — omvänt: montera externa Samba-delningar i en CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"label": "NFS server i LXC",
|
||||
"tail": " — syskonsidan, samma mönster med NFS istället för CIFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS som Proxmox-lagring",
|
||||
"tailRich": " — när CT:n delar ut via Samba, registrera Samba-delningen i Proxmox så att den visas under <em>Datacenter → Storage</em>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user