# Quick Start Guide - Logmanager

{"<?php $__contextArgs = [];\nif (context()->has($__contextArgs[0])) :\nif (isset($value)) { $__contextPrevious[] = $value; }\n$value = context()->get($__contextArgs[0]); ?>":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://logmanager.com/cs/"},{"@type":"ListItem","position":2,"name":"Dokumentace","item":"https://logmanager.com/cs/dokumentace/"},{"@type":"ListItem","position":3,"name":"Quick Start Guide"}]} [Dokumentace](https://logmanager.com/cs/dokumentace/) › **Quick Start Guide** 

# Průvodce nasazením Virtual Logmanageru

Verze 4.0.4 a novější · listopad 2025

  


 

 ### Na této stránce

- [Úvod](#introduction)
- [Přehled](#overview)
- [Požadavky](#requirements)
- [Nasazení VM](#deployment)
- [Konfigurace CLI síťování](#configure-vm)
- [Přihlášení do Web UI](#web-ui)
 
 

### Potřebujete další pomoc?

 Kompletní dokumentace je k dispozici v portálu dokumentace Logmanageru.

 [ Otevřít produktovou dokumentaci ](https://doc.logmanager.com)

 Preferujete vedenou konzultaci? Můžete si [ naplánovat hovor s expertem. ](https://meetings-eu1.hubspot.com/jiri-moninec)

 

 

 Tento rychlý průvodce vám pomůže nasadit appliance Virtual Logmanager na **VMware ESXi / vSphere**, **Microsoft Hyper-V** nebo **Proxmox VE**, nakonfigurovat síť a poprvé se přihlásit do webového rozhraní.

  ## Úvod

 Logmanager je dostupný jak jako hardwarová appliance, tak jako virtuální stroj. Aktuálně podporované virtuální platformy jsou **VMware ESXi**, **Microsoft Hyper-V** a **Proxmox VE**. Virtual Logmanager je určen pro běh on-premises ve vašem datacentru.

  ## Přehled

 K dispozici jsou dva různé virtuální obrazy:

- **OVA** — lze přímo importovat do VMware ESXi / vSphere a používat i na dalších platformách založených na KVM, jako je Proxmox VE. Většina konfiguračních parametrů, jako je paměť a vCPU, je přednastavena.
- **VHDX** — virtuální pevný disk pro Microsoft Hyper-V. Při práci se souborem VHDX je nutné nakonfigurovat virtuální hardware (RAM, vCPU) na straně Hyper-V.
 
  ## Požadavky

### Požadavky na OS

- **VMware:** ESXi 7.0 nebo novější
- **Microsoft Hyper-V:** Windows Server 2012 R2 nebo novější
- **Proxmox VE:** Proxmox VE 8.3 nebo novější s povolenou virtualizací KVM
 
### Hardwarové požadavky

    EPS Specifikace CPU RAM Minimální úložiště     1000 4 vCPU s minimálně 1600 body single core v PassMark 16 GB 100 GB SSD (alespoň 300 IOPS)   5000 16 vCPU s minimálně 1900 body single core v PassMark 64 GB 100 GB SSD (alespoň 700 IOPS)   Forwarder 2 vCPU 6 GB 100 GB (alespoň 200 IOPS)    

### Dodatečné disky

 Jak pro Virtual Logmanager, tak pro Virtual Logmanager Forwarder je nutné přidat extra disk. Tento dodatečný disk slouží pro **ukládání dat / cache**.

 Další disky je možné později přidat pro navýšení úložiště nebo velikosti cache. Odebrání nebo zmenšení již inicializovaného disku není podporováno, proto nezačínejte s zbytečně velkým diskem.

  ## Nasazení virtuální appliance

 Níže si zvolte platformu pro virtualizaci. Pro detailní video návody se podívejte na: [ video nasazení na VMware ](https://youtu.be/bfzFO0vWO9U?si=flbyx3WNIfM9XOIT) a [ video nasazení na Hyper-V. ](https://youtu.be/zOZTWmoLOqU?si=x6Y8446u4OdNxZGK)

  VMware ESXi / vSphere   Microsoft Hyper-V   Proxmox VE  

Interaktivní průvodce

Klikněte na krok a zobrazte si detaily a screenshoty.

 

 1. Použijte Deploy OVF Template 2. Vyberte stažený soubor OVA 3. Pojmenujte VM a zvolte složku 4. Vyberte výpočetní prostředek 5. Zkontrolujte detaily šablony 6. Přijměte licenční ujednání 7. Vyberte úložiště 8. Vyberte cílovou síť 9. Zkontrolujte a dokončete 10. Upravte vCPU a RAM 11. Přidejte extra datový disk 12. Zapněte virtuální stroj 

### 1. Použijte Deploy OVF Template

V klientovi vSphere / ESXi klikněte pravým tlačítkem na cluster, hostitele nebo datastore a zvolte **Deploy OVF Template**.

 ![Nabídka vSphere s akcí Deploy OVF Template](https://logmanager.com/wp-content/uploads/2025/11/image10.png) 

### 2. Vyberte stažený soubor OVA

Najděte stažený soubor Virtual Logmanager **.ova** a klikněte na **Next**.

 ![Výběr souboru OVA Virtual Logmanageru](https://logmanager.com/wp-content/uploads/2025/11/image3.png) 

### 3. Pojmenujte VM a zvolte složku

Zadejte smysluplný **název virtuálního stroje** a vyberte cílovou složku. Klikněte na **Next**.

 ![Dialog pro název VM a složku ve VMware](https://logmanager.com/wp-content/uploads/2025/11/image14.png) 

### 4. Vyberte výpočetní prostředek

Vyberte hostitele nebo cluster, na kterém bude VM běžet, a klikněte na **Next**.

 ![Výběr výpočetního prostředku pro VM](https://logmanager.com/wp-content/uploads/2025/11/image24.png) 

### 5. Zkontrolujte detaily šablony

Zkontrolujte detaily šablony OVF a ověřte, že konfigurace odpovídá očekáváním. Klikněte na **Next**.

 ![Kontrola detailů šablony OVF](https://logmanager.com/wp-content/uploads/2025/11/image26.png) 

### 6. Přijměte licenční ujednání

Přečtěte si a přijměte licenční ujednání, poté klikněte na **Next**.

 ![Obrazovka licenčního ujednání](https://logmanager.com/wp-content/uploads/2025/11/image6.png) 

### 7. Vyberte úložiště

Vyberte datastore, ve kterém budou uloženy soubory virtuálního stroje, a klikněte na **Next**.

 ![Obrazovka s výběrem úložiště pro VM](https://logmanager.com/wp-content/uploads/2025/11/image1.png) 

### 8. Vyberte cílovou síť

Vyberte virtuální síť / port group, kterou bude VM používat, a klikněte na **Next**.

 ![Výběr cílové sítě pro VM](https://logmanager.com/wp-content/uploads/2025/11/image13.png) 

### 9. Zkontrolujte nastavení a dokončete nasazení

Zkontrolujte finální souhrn. Pokud je vše v pořádku, klikněte na **Finish** a nasazení se spustí.

 ![Finální souhrn před nasazením VM](https://logmanager.com/wp-content/uploads/2025/11/image27.png) 

### 10. Upravte vCPU a RAM

Po vytvoření VM otevřete jeho nastavení hardwaru a upravte **vCPU** a **RAM** podle požadovaného EPS a tabulky hardwarových požadavků.

 ![Úprava hardwaru virtuálního stroje](https://logmanager.com/wp-content/uploads/2025/11/image11.png) 

### 11. Přidejte extra datový disk

Přidejte další virtuální pevný disk pro ukládání dat / cache. Zvolte velikost disku podle vaší licence.

 ![Přidání dalšího virtuálního disku pro data](https://logmanager.com/wp-content/uploads/2025/11/image7.png) 

### 12. Zapněte virtuální stroj

Zapněte VM Virtual Logmanageru. Po nabootování pokračujte konfigurací sítě.

 ![Běžící virtuální stroj Virtual Logmanageru](https://logmanager.com/wp-content/uploads/2025/11/image5.png) 

 

 

 

Interaktivní průvodce

Klikněte na krok a postupujte podle návodu.

 

 1. Zkopírujte soubor VHDX 2. Otevřete Hyper-V Manager 3. Vytvořte nový virtuální stroj 4. Zvolte umístění úložiště 5. Vyberte Generation 2 6. Přidělte paměť 7. Nakonfigurujte síť 8. Připojte existující disk VHDX 9. Potvrďte souhrn 10. Přidejte nový datový disk 11. Zvolte cestu pro sekundární disk 12. Nastavte velikost disku 13. Vypněte Secure Boot 14. Spusťte virtuální stroj 

### 1. Zkopírujte soubor VHDX

Zkopírujte soubor **Logmanager.vhdx** do požadovaného umístění na vašem Hyper-V serveru.

 

### 2. Otevřete Hyper-V Manager

Připojte se k Hyper-V serveru a otevřete konzoli **Hyper-V Manager**.

 

### 3. Vytvořte nový virtuální stroj

V levém panelu klikněte pravým tlačítkem na název serveru a zvolte **New &gt; Virtual Machine**.

 ![Průvodce vytvořením nového virtuálního stroje v Hyper-V](https://logmanager.com/wp-content/uploads/2025/11/image20.png) 

### 4. Zvolte umístění úložiště

Pojmenujte svůj server a volitelně zvolte vlastní umístění pro konfiguraci VM. Výchozí je `C:\ProgramData\Microsoft\Windows\Hyper-V\`.

 ![Výběr umístění úložiště pro virtuální stroj](https://logmanager.com/wp-content/uploads/2025/11/image9.png) 

### 5. Vyberte Generation 2

Na obrazovce **Specify Generation** vyberte **Generation 2** a pokračujte dál.

 ![Výběr Generation 2 v Hyper-V průvodci](https://logmanager.com/wp-content/uploads/2025/11/image12.png) 

### 6. Přidělte paměť

V kroku **Assign Memory** nakonfigurujte paměť VM. Přidělte alespoň **16 GB** RAM.

 ![Přidělení paměti virtuálnímu stroji](https://logmanager.com/wp-content/uploads/2025/11/image18.png) 

### 7. Nakonfigurujte síť

V kroku **Configure Networking** vyberte virtuální switch, přes který bude VM komunikovat.

 ![Výběr virtuálního switche pro VM](https://logmanager.com/wp-content/uploads/2025/11/image15.png) 

### 8. Připojte existující disk VHDX

V kroku **Connect Virtual Hard Disk** vyberte **Use an existing virtual hard disk** a zadejte cestu k souboru Logmanager **.vhdx**.

 ![Připojení existujícího disku VHDX](https://logmanager.com/wp-content/uploads/2025/11/image21.png) 

### 9. Potvrďte souhrn

Zkontrolujte souhrn parametrů VM a potvrďte pomocí **Finish**.

 ![Souhrnná obrazovka nového VM v Hyper-V](https://logmanager.com/wp-content/uploads/2025/11/image25.png) 

### 10. Přidejte nový datový disk

V nastavení VM (Settings) zvolte **IDE Controller 0** a klikněte na **Add** pro přidání nového pevného disku. Zvolte **Fixed size**.

 ![Přidání nového disku pod IDE Controller 0](https://logmanager.com/wp-content/uploads/2025/11/image16.png) 

### 11. Zvolte cestu pro sekundární disk

Zadejte cestu k souboru sekundárního virtuálního disku a klikněte na **Next**.

 ![Výběr cesty pro sekundární datový disk](https://logmanager.com/wp-content/uploads/2025/11/image17.png) 

### 12. Nastavte velikost disku podle licence

Zvolte velikost disku dle licence a očekávaného objemu logů. Zkontrolujte a klikněte na **Finish**.

 ![Výběr velikosti disku](https://logmanager.com/wp-content/uploads/2025/11/image4.png) 

### 13. Vypněte Secure Boot

V nastavení **Security** pro VM zrušte zaškrtnutí **Enable Secure Boot**.

 ![Vypnutí Secure Boot](https://logmanager.com/wp-content/uploads/2025/11/image23.png) 

### 14. Spusťte virtuální stroj

Nakonec virtuální stroj spusťte. Po nabootování pokračujte konfigurací sítě.

 ![Spuštění VM Virtual Logmanageru v Hyper-V](https://logmanager.com/wp-content/uploads/2025/11/image19.png) 

 

 

 

Interaktivní průvodce

Klikněte na krok a zobrazte si detaily a screenshoty.

 

 1. Přidejte úložiště Directory 2. Nahrajte OVA do Import úložiště 3. Vyberte OVA a spusťte Import 4. Nastavte možnosti importu 5. Sledujte průběh importu 6. Přidejte EFI disk 7. Přidejte SCSI datový disk 8. Nastavte typ CPU na Host 9. Ověřte hardwarové parametry 10. Vstupte do UEFI boot menu 11. Otevřete Boot Options 12. Zvolte Add Boot Option 13. Vyberte SCSI disk ve File Exploreru 14. Procházejte adresáře disku 15. Otevřete složku EFI → GRUB 16. Vyberte soubor grub64.efi 17. Pojmenujte volbu a potvrďte 18. Otevřete Change Boot Order 19. Posuňte Logmanager na první místo 20. Vraťte se do hlavního menu UEFI 21. Otevřete Device Manager 22. Vypněte Secure Boot 23. Restartujte virtuální stroj 24. Úspěšné nabootování systému 

### 1. Přidejte úložiště typu Directory (Disk image + Import)

Vytvořte nové úložiště (např. `vm-import`) s typy obsahu **Disk image** a **Import**.

 ![Proxmox VE - přidání úložiště Directory](https://logmanager.com/wp-content/uploads/2026/01/proxmox-1.png) 

### 2. Nahrajte OVA do Import úložiště

Nahrajte stažený soubor OVA do úložiště, které má povolenou funkci Import.

 ![Proxmox VE - nahrání OVA souboru](https://logmanager.com/wp-content/uploads/2026/01/proxmox-2.png) 

### 3. Vyberte OVA a spusťte Import

Vyberte nahrané OVA v seznamu obsahu úložiště a klikněte na tlačítko **Import**.

 ![Proxmox VE - spuštění importu](https://logmanager.com/wp-content/uploads/2026/01/proxmox-3.png) 

### 4. Nastavte možnosti importu

Před importem: odškrtněte **efidisk0**, nastavte **SCSI Controller** na **VirtIO SCSI** a **Network interface** na **VirtIO**.

 ![Proxmox VE - nastavení hardwaru při importu](https://logmanager.com/wp-content/uploads/2026/01/proxmox-4.png) 

### 5. Sledujte průběh importu

Počkejte na dokončení úlohy importu v prohlížeči úloh (Task viewer).

 ![Proxmox VE - log průběhu importu](https://logmanager.com/wp-content/uploads/2026/01/proxmox-5.png) 

### 6. Přidejte EFI disk

Po importu otevřete VM → **Hardware** a přidejte nový **EFI Disk**.

 ![Proxmox VE - přidání EFI disku](https://logmanager.com/wp-content/uploads/2026/01/proxmox-6.png) 

### 7. Přidejte SCSI datový disk (cache/úložiště)

Přidejte extra **SCSI** disk pro data Logmanageru (velikost dle licence).

 ![Proxmox VE - přidání datového disku](https://logmanager.com/wp-content/uploads/2026/01/proxmox-7.png) 

### 8. Nastavte typ CPU na Host

V nastavení procesoru VM nastavte **CPU type** na hodnotu **Host**.

 ![Proxmox VE - nastavení CPU na Host](https://logmanager.com/wp-content/uploads/2026/01/proxmox-8.png) 

### 9. Ověřte hardwarové parametry

Zkontrolujte disky, síťovou kartu, CPU a paměť, zda vše odpovídá požadovaným specifikacím.

 ![Proxmox VE - přehled hardwaru VM](https://logmanager.com/wp-content/uploads/2026/01/proxmox-9.png) 

### 10. Vstupte do UEFI boot menu

Spusťte VM, během startu stiskněte **ESC** a otevřete **Boot Maintenance Manager**.

 ![UEFI menu - Boot Maintenance Manager](https://logmanager.com/wp-content/uploads/2026/01/proxmox-10.png) 

### 11. Otevřete Boot Options

V Boot Maintenance Manageru vyberte položku **Boot Options**.

 ![UEFI - Boot Options](https://logmanager.com/wp-content/uploads/2026/01/proxmox-11.png) 

### 12. Zvolte Add Boot Option

Vyberte **Add Boot Option** pro přidání nového záznamu do firmwaru.

 ![UEFI - Add Boot Option](https://logmanager.com/wp-content/uploads/2026/01/proxmox-12.png) 

### 13. Vyberte SCSI disk ve File Exploreru

V průzkumníku souborů vyberte **SCSI** disk, který obsahuje bootloader.

 ![UEFI File Explorer - výběr disku](https://logmanager.com/wp-content/uploads/2026/01/proxmox-13.png) 

### 14. Procházejte adresáře disku

Procházejte disk a vyhledejte adresář `EFI`.

 ![UEFI - procházení adresářů](https://logmanager.com/wp-content/uploads/2026/01/proxmox-14.png) 

### 15. Otevřete složku EFI → GRUB

Otevřete `EFI` a poté přejděte do složky `GRUB`.

 ![UEFI - složka GRUB](https://logmanager.com/wp-content/uploads/2026/01/proxmox-15.png) 

### 16. Vyberte soubor grub64.efi

Vyberte `EFI/GRUB/grub64.efi` jako soubor pro zavádění systému.

 ![UEFI - výběr grub64.efi](https://logmanager.com/wp-content/uploads/2026/01/proxmox-16.png) 

### 17. Pojmenujte volbu a potvrďte

Zadejte popis (např. **Logmanager**) a potvrďte pomocí **Commit Changes and Exit**.

 ![UEFI - uložení boot volby](https://logmanager.com/wp-content/uploads/2026/01/proxmox-17.png) 

### 18. Otevřete Change Boot Order

Otevřete **Change Boot Order** pro prioritizaci nového záznamu.

 ![UEFI - změna pořadí bootování](https://logmanager.com/wp-content/uploads/2026/01/proxmox-18.png) 

### 19. Posuňte Logmanager na první místo

Posuňte **Logmanager** na první pozici a uložte změny.

 ![UEFI - Logmanager na první pozici](https://logmanager.com/wp-content/uploads/2026/01/proxmox-19.png) 

### 20. Vraťte se do hlavního menu UEFI

Po uložení pořadí se vraťte do hlavního menu.

 ![UEFI - hlavní menu](https://logmanager.com/wp-content/uploads/2026/01/proxmox-20.png) 

### 21. Otevřete Device Manager

Otevřete **Device Manager** pro přístup k nastavení Secure Boot.

 ![UEFI - Device Manager](https://logmanager.com/wp-content/uploads/2026/01/proxmox-21.png) 

### 22. Vypněte Secure Boot

Otevřete **Secure Boot Configuration** a odškrtněte **Attempt Secure Boot**. Uložte (klávesa **F10**).

 ![UEFI - vypnutí Secure Boot](https://logmanager.com/wp-content/uploads/2026/01/proxmox-22.png) 

### 23. Restartujte virtuální stroj

Vraťte se do hlavního menu a zvolte **Reset** pro restart VM.

 ![UEFI - restart systému](https://logmanager.com/wp-content/uploads/2026/01/proxmox-23.png) 

### 24. Úspěšné nabootování systému

Po restartu by měl VM úspěšně nabootovat do systému Logmanager. Pokračujte konfigurací sítě.

 ![Logmanager nabootovaný v Proxmoxu](https://logmanager.com/wp-content/uploads/2026/01/proxmox-24.png) 

 

 

 

 

  ## Konfigurace Virtual Logmanageru

 Jakmile VM běží, otevřete virtuální konzoli v hypervizoru a přihlaste se do textové konzole výchozími údaji:

- **Username:** admin
- **Password:** admin
 
 Počáteční konfiguraci sítě provedete z omezeného CLI Logmanageru. Další příkazy najdete v oficiální [ dokumentaci CLI. ](https://doc.logmanager.com/4.0.5/cli/cli/)

### Konfigurace IP adresy

 Virtual Logmanager používá statické IP adresy. Než začnete, určete si síťové údaje, které chcete použít, například:

- IP adresa: `192.168.1.29`
- Maska: `255.255.255.0`
- Výchozí brána: `192.168.1.1`
 
 Poté postupujte podle následujících kroků v textové konzoli VM.

 

 ![CLI Logmanageru zobrazující nastavení IP a směrování](https://logmanager.com/wp-content/uploads/2025/11/image8.png) 

#### Krok 1: Přidejte novou statickou IP

 ```
set ip 192.168.1.29 255.255.255.0 default_vlan
```

#### Krok 2: Smažte výchozí trasu

 ```
delete route 0.0.0.0 0.0.0.0 192.168.0.1
```

#### Krok 3: Přidejte novou trasu

 ```
set route 0.0.0.0 0.0.0.0 192.168.1.1
```

#### Krok 4: Smažte výchozí IP adresu

 ```
delete ip 192.168.0.20 255.255.255.0 default_vlan
```

  ## Přihlášení do webového rozhraní

 Po nastavení statické IP adresy a výchozí trasy můžete přistoupit k webovému rozhraní Logmanageru z prohlížeče:

 ```
https://VASE-IP-ADRESA/
```

 Přihlaste se administrátorskými údaji a pokračujte standardní konfigurací produktu.

 

 ![Přihlašovací stránka webového rozhraní Logmanageru v prohlížeči](https://logmanager.com/wp-content/uploads/2025/11/image2.png) 

  

 



 × ![]() 

 


  (function () {
    // Taby
    var tabButtons = document.querySelectorAll(".lm-tab-button");
    var tabPanels = {
      vmware: document.getElementById("lm-tab-vmware"),
      hyperv: document.getElementById("lm-tab-hyperv"),
      proxmox: document.getElementById("lm-tab-proxmox")
    };

    tabButtons.forEach(function (btn) {
      btn.addEventListener("click", function () {
        var target = btn.getAttribute("data-tab-target");
        if (!target) return;

        tabButtons.forEach(function (b) {
          b.classList.toggle("lm-tab-button--active", b === btn);
        });

        Object.keys(tabPanels).forEach(function (key) {
          if (tabPanels[key]) {
            tabPanels[key].classList.toggle("lm-tab-panel--active", key === target);
          }
        });
      });
    });

    // Systém kroků (Karusel + plovoucí panely)
    function initStepSystem(root) {
      if (!root) return;
      var steps = root.querySelectorAll(".lm-step");
      var panels = root.querySelectorAll(".lm-step-panel");
      var stepsList = root.querySelector(".lm-steps-list");
      var panelsWrapper = root.querySelector(".lm-step-panels");

      if (!steps.length || !panels.length || !stepsList || !panelsWrapper) return;

      function positionPanels(activeStep) {
        if (window.innerWidth < 780) {
          panelsWrapper.style.transform = "";
          return;
        }

        var listRect = stepsList.getBoundingClientRect();
        var stepRect = activeStep.getBoundingClientRect();
        var wrapperRect = panelsWrapper.getBoundingClientRect();

        var offset = stepRect.top - listRect.top;
        if (offset < 0) offset = 0;

        var maxOffset = listRect.height - wrapperRect.height;
        if (maxOffset < 0) maxOffset = 0;
        if (offset > maxOffset) offset = maxOffset;

        panelsWrapper.style.transform = "translateY(" + offset + "px)";
      }

      steps.forEach(function (stepBtn) {
        stepBtn.addEventListener("click", function () {
          var targetId = stepBtn.getAttribute("data-step-target");
          if (!targetId) return;

          steps.forEach(function (b) {
            b.classList.toggle("lm-step--active", b === stepBtn);
          });

          panels.forEach(function (panel) {
            var panelId = panel.getAttribute("data-step-id");
            panel.classList.toggle(
              "lm-step-panel--active",
              panelId === targetId
            );
          });

          positionPanels(stepBtn);
        });
      });

      var initialActive = root.querySelector(".lm-step.lm-step--active") || steps[0];
      if (initialActive) positionPanels(initialActive);

      window.addEventListener("resize", function () {
        var currentActive = root.querySelector(".lm-step.lm-step--active") || steps[0];
        if (currentActive) positionPanels(currentActive);
      });
    }

    // Inicializace pro všechny taby
    initStepSystem(tabPanels.vmware);
    initStepSystem(tabPanels.hyperv);
    initStepSystem(tabPanels.proxmox);

    // Lightbox
    var lightbox = document.querySelector(".lm-lightbox");
    var lightboxImg = lightbox.querySelector(".lm-lightbox-img");
    var lightboxCaption = lightbox.querySelector(".lm-lightbox-caption");
    var lightboxClose = lightbox.querySelector(".lm-lightbox-close");
    var lightboxBackdrop = lightbox.querySelector(".lm-lightbox-backdrop");

    function openLightbox(src, alt) {
      lightboxImg.src = src;
      lightboxImg.alt = alt || "";
      lightboxCaption.textContent = alt || "";
      lightbox.classList.add("lm-lightbox--open");
      document.body.style.overflow = "hidden";
    }

    function closeLightbox() {
      lightbox.classList.remove("lm-lightbox--open");
      document.body.style.overflow = "";
      lightboxImg.src = "";
      lightboxImg.alt = "";
      lightboxCaption.textContent = "";
    }

    document.querySelectorAll(".lm-step-panel img, .lm-lightbox-trigger").forEach(function (img) {
      img.addEventListener("click", function () {
        var full = img.getAttribute("data-full") || img.src;
        openLightbox(full, img.alt);
      });
    });

    lightboxClose.addEventListener("click", closeLightbox);
    lightboxBackdrop.addEventListener("click", closeLightbox);
    document.addEventListener("keydown", function (e) {
      if (e.key === "Escape" && lightbox.classList.contains("lm-lightbox--open")) {
        closeLightbox();
      }
    });

    // Copy Buttons
    var preBlocks = document.querySelectorAll(".lm-vm-guide pre");
    preBlocks.forEach(function (pre) {
      var wrapper = document.createElement("div");
      wrapper.className = "lm-code-wrap";
      pre.parentNode.insertBefore(wrapper, pre);
      wrapper.appendChild(pre);

      var btn = document.createElement("button");
      btn.type = "button";
      btn.className = "lm-code-copy";
      btn.textContent = "Kopírovat";
      wrapper.appendChild(btn);

      btn.addEventListener("click", function () {
        var text = pre.textContent;
        if (navigator.clipboard && navigator.clipboard.writeText) {
          navigator.clipboard.writeText(text).then(function () {
            var old = btn.textContent;
            btn.textContent = "Zkopírováno";
            setTimeout(function () {
              btn.textContent = old;
            }, 1500);
          });
        }
      });
    });
  })();

  .lm-vm-guide {
    max-width: 1120px;
    margin: 0 auto 4rem auto;
    padding: 2rem 1.5rem 3rem;
  }

  .lm-vm-guide a {
    color: #2563eb;
    text-decoration: underline;
  }

  .lm-vm-hero {
    margin-bottom: 2.5rem;
  }

  .lm-vm-hero h1 {
    font-size: 2.1rem;
    margin: 0 0 0.5rem;
  }

  .lm-vm-subtitle {
    margin: 0;
    opacity: 0.7;
  }

  .lm-vm-intro {
    margin-top: 1rem;
    max-width: 48rem;
  }

/* ODSTRANIT starou .lm-vm-layout grid */
 /* ODSTRANIT .lm-vm-aside a její sticky chování */

/* NOVÁ JEDNOSLOUPCOVÁ STRÁNKA */
.lm-vm-layout {
  display: block;
}

/* Inline TOC + help karty přímo pod podtitulkem */
.lm-inline-cards {
  display: flex;
  gap: 1.25rem;
  margin: 1.75rem 0 2.5rem;
  flex-wrap: wrap;
}

.lm-inline-cards .lm-vm-card {
  flex: 1 1 260px;
  max-width: 340px;
}

/* Karty si zachovávají výchozí styl */
.lm-vm-card {
  padding: 1rem 1rem 1.1rem;
  border-radius: 1rem;
  border: 1px solid rgba(0,0,0,0.06);
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03);
  font-size: 0.9rem;
}

.lm-vm-card h3 {
  margin-top: 0;
  margin-bottom: 0.6rem;
  font-size: 1rem;
}

/* Na mobilu: zobrazit pod sebou na celou šířku */
@media (max-width: 780px) {
  .lm-inline-cards {
    flex-direction: column;
  }
  .lm-inline-cards .lm-vm-card {
    max-width: 100%;
  }
}

  /* ─────────────────────────────────────────────
     NADPISY SEKCI
     ───────────────────────────────────────────── */

  .lm-vm-section {
    margin-bottom: 2.5rem;
  }

  .lm-vm-section h2 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }

  .lm-vm-section h3 {
    font-size: 1.1rem;
    margin-top: 1.5rem;
    margin-bottom: 0.4rem;
  }

  .lm-vm-section h4 {
    font-size: 1rem;
    margin-top: 1.25rem;
    margin-bottom: 0.4rem;
  }

  /* ─────────────────────────────────────────────
     TABULKY
     ───────────────────────────────────────────── */

  .lm-vm-table-wrapper {
    overflow-x: auto;
  }

  .lm-vm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
  }

  .lm-vm-table th,
  .lm-vm-table td {
    border: 1px solid rgba(0,0,0,0.08);
    padding: 0.5rem 0.75rem;
    text-align: left;
    vertical-align: top;
  }

  .lm-vm-table th {
    font-weight: 600;
    white-space: nowrap;
  }

  .lm-vm-note {
    font-size: 0.95rem;
    background: rgba(0,0,0,0.02);
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(0,0,0,0.04);
  }

  .lm-vm-credentials {
    list-style: none;
    padding-left: 0;
  }

  /* ─────────────────────────────────────────────
     BLOKY KÓDU + TLAČÍTKO COPY
     ───────────────────────────────────────────── */

  .lm-vm-guide pre {
    background: rgba(0,0,0,0.04);
    border-radius: 0.5rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
    overflow-x: auto;
    margin: 0; /* malá mezera */
  }

  code {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
                 "Courier New", monospace;
    font-size: 0.9em;
  }

  .lm-code-wrap {
    position: relative;
    margin: 0.25rem 0 0.4rem;
  }

  .lm-code-copy {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    font-size: 0.75rem;
    padding: 0.15rem 0.5rem;
    border-radius: 0.4rem;
    border: 1px solid rgba(0,0,0,0.2);
    background: #ffffff;
    cursor: pointer;
  }

  .lm-code-copy:hover {
    background: #e5efff;
  }

  /* ─────────────────────────────────────────────
     TABY (VMware / Hyper-V)
     ───────────────────────────────────────────── */

  .lm-tabs {
    margin-top: 1.5rem;
  }

  .lm-tabs-nav {
    display: inline-flex;
    border-radius: 999px;
    background: rgba(0,0,0,0.04);
    padding: 0.2rem;
    margin-bottom: 1.25rem;
  }

  .lm-tab-button {
    border: none;
    background: transparent;
    padding: 0.5rem 1.25rem;
    border-radius: 999px;
    font-size: 0.95rem;
    cursor: pointer;
    white-space: nowrap;
  }

  .lm-tab-button--active {
    background: #ffffff;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.06), 0 4px 10px rgba(0,0,0,0.03);
  }

  .lm-tab-panel {
    display: none;
  }

  .lm-tab-panel--active {
    display: block;
  }

  /* ─────────────────────────────────────────────
     SEZNAM KROKŮ + ZAROVNÁNÍ PANELU
     ───────────────────────────────────────────── */

  .lm-steps-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 2.1fr);
    gap: 1.5rem;
    align-items: flex-start;
  }

  .lm-steps-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }

  .lm-step {
    text-align: left;
    border-radius: 0.5rem;
    padding: 0.45rem 0.7rem;
    font-size: 0.9rem;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
  }

/* Záhlaví nad seznamem kroků */
.lm-steps-list-header {
  padding: 0.4rem 0.2rem 0.6rem;
  margin-bottom: 0.35rem;
  border-bottom: 1px dashed rgba(0,0,0,0.08);
}

.lm-steps-label {
  margin: 0;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  opacity: 0.7;
}

.lm-steps-hint {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  opacity: 0.85;
}

/* FAQ-like klikací kroky */
.lm-step {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background: #f9fafb;
  border-radius: 0.6rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.9rem;
  border: 1px solid rgba(0,0,0,0.04);
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.1s ease;
}

.lm-step::after {
  content: "›";
  font-size: 1rem;
  line-height: 1;
  border-radius: 999px;
  min-width: 1.4rem;
  height: 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e5e7eb;
  color: #111827;
  opacity: 0.7;
  transform: translateX(0);
  transition:
    background 0.15s ease,
    opacity 0.15s ease,
    transform 0.15s ease;
}

.lm-step:hover {
  background: #eef2ff;
  border-color: #c7d2fe;
  box-shadow: 0 4px 10px rgba(0,0,0,0.04);
  transform: translateY(-1px);
}

.lm-step:hover::after {
  background: #d4d4ff;
  opacity: 1;
  transform: translateX(2px);
}

.lm-step--active {
  background: #eff6ff;
  border-color: #93c5fd;
  box-shadow: 0 6px 18px rgba(37, 99, 235, 0.12);
}

.lm-step--active::after {
  background: #2563eb;
  color: #ffffff;
  opacity: 1;
  transform: translateX(2px);
}


  .lm-step--active {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.12);
  }

  .lm-step-panels {
    position: relative;
    transition: transform 0.18s ease-out;
  }

  /* JEDNOTLIVÝ PANEL KROKU */

  .lm-step-panel {
    display: none;
    border-radius: 1rem;
    border: 1px solid rgba(0,0,0,0.06);
    padding: 1rem 1rem 1.25rem;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
    font-size: 0.95rem;
  }

  .lm-step-panel--active {
    display: block;
  }

  .lm-step-panel img {
    display: block;
    width: 100%;               /* plná šířka sloupce */
    max-width: 100%;
    height: auto;
    margin-top: 0.5rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(0,0,0,0.06);
    cursor: zoom-in;
  }

  /* ─────────────────────────────────────────────
     PRAVÝ ASIDE: TOC + HELP BOXY
     ───────────────────────────────────────────── */

  .lm-vm-aside {
    position: relative;
  }

  .lm-vm-card {
    position: sticky;
    top: 5.5rem;
    padding: 1rem 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid rgba(0,0,0,0.06);
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
    margin-bottom: 1.5rem;
    font-size: 0.9rem;
  }

  .lm-vm-card--secondary {
    top: auto;
  }

  .lm-vm-card h3 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-size: 1rem;
  }

  .lm-vm-toc je {
    list-style: none;
    padding-left: 0;
    margin: 0;
  }

  .lm-vm-toc li {
    margin: 0.15rem 0;
  }

  /* ─────────────────────────────────────────────
     LIGHTBOX
     ───────────────────────────────────────────── */

  .lm-lightbox {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
  }

  .lm-lightbox.lm-lightbox--open {
    display: flex;
  }

  .lm-lightbox-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.7);
  }

  .lm-lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .lm-lightbox-img {
    max-width: 100%;
    max-height: 80vh;
    border-radius: 0.75rem;
    background: #0f172a;
  }

  .lm-lightbox-caption {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    color: #e2e8f0;
    text-align: center;
  }

  .lm-lightbox-close {
    position: absolute;
    top: -2rem;
    right: 0;
    font-size: 1.6rem;
    line-height: 1;
    border: none;
    background: transparent;
    color: #e2e8f0;
    cursor: pointer;
  }

  /* ─────────────────────────────────────────────
     RESPONSIVE
     ───────────────────────────────────────────── */

  @media (max-width: 960px) {
    .lm-vm-layout {
      grid-template-columns: minmax(0, 1fr);
    }
    .lm-vm-aside {
      order: -1; /* na mobilu nad obsah */
    }
    .lm-vm-card {
      position: static;
    }
  }

  @media (max-width: 780px) {
    .lm-steps-layout {
      grid-template-columns: minmax(0, 1fr);
    }
    .lm-tabs-nav {
      width: 100%;
      justify-content: space-between;
      overflow-x: auto;
    }
    .lm-step-panels {
      transform: none !important;
    }
  }

.lm-inline-figure {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}

/* Text zabírá zbývající prostor */
.lm-inline-figure-text {
  flex: 1 1 0;
  min-width: 0;
}

/* Náhledový obrázek: ~1/3 sloupce, nikdy ne na plnou šířku */
.lm-inline-thumb {
  flex: 0 0 30%;
  max-width: 30%;
  min-width: 180px;      /* aby nebyl příliš malý na velkých obrazovkách */
  height: auto;
  border-radius: 0.75rem;
  border: 1px solid rgba(0,0,0,0.08);
  cursor: zoom-in;
}

/* Na mobilu pod sebou */
@media (max-width: 780px) {
  .lm-inline-figure {
    flex-direction: column;
  }

  .lm-inline-thumb {
    flex: 0 0 auto;
    max-width: 260px;
  }
}
