Skip to content

Step 1 of 8 · Proxmox and KVM

Create the appliance in Proxmox and open the setup wizard in your browser.

  • Access to Downloads in sslbrain Cloud (EU).
  • Space for a machine with 2 vCPU, 4 GB RAM and a 40 GB disk.
  • Access to the Proxmox host’s shell and the names of your storage and network bridge.
  1. Open Downloads in sslbrain Cloud and download the qcow2 file and its .sha256 file.

  2. Copy both files to the Proxmox host and check the file. Replace <version> with the file’s version:

    Terminal window
    sha256sum -c sslbrain-<version>.qcow2.sha256

The commands use an available <vmid>, your <storage> and the bridge vmbr0. Adjust these for your environment.

  1. Create the machine with SeaBIOS and no disk:

    Terminal window
    qm create <vmid> --name sslbrain --cores 2 --memory 4096 \
    --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci \
    --bios seabios --ostype l26
  2. Import the disk image:

    Terminal window
    qm importdisk <vmid> sslbrain-<version>.qcow2 <storage>
  3. Attach the imported disk as scsi0. Use the disk name from the import result, after unused0::

    Terminal window
    qm set <vmid> --scsi0 local-lvm:vm-<vmid>-disk-0 --boot order=scsi0
  1. Start the machine and open Console. Wait while the appliance expands the disk and downloads and checks its software.

  2. Open the address in Open https://<ip> in a browser to use it. Your browser warns about the self-signed certificate. Check the fingerprint and continue to the page.

The setup wizard shows Log in with sslbrain Cloud.

Continue with 2. First-time setup.

  • The checksum does not match → download the disk image and its matching .sha256 file again.
  • The machine does not boot from disk → select SeaBIOS and put scsi0 first in the boot order.
  • The console shows NO NETWORK ADDRESS → set a static address using item 3 in the console menu.
  • The seed disk’s address is not applied → read the reason in the console and set the address using item 3.
  • The software cannot be downloaded → run the connection test using item 2 in the console menu. See Network and firewall and No connection to sslbrain Cloud.

Copy the disk image to libvirt’s image directory and create the machine. Replace br0 with your bridge.

Terminal window
virt-install --name sslbrain --vcpus 2 --memory 4096 \
--disk path=/var/lib/libvirt/images/sslbrain-<version>.qcow2,bus=scsi \
--controller type=scsi,model=virtio-scsi \
--network bridge=br0,model=virtio \
--os-variant ubuntu24.04 --import --noautoconsole

Without a seed disk, the appliance uses DHCP. A static address is passed on a small seed disk, which the appliance reads once, at first boot.

  1. Write a file called user-data. All keys are optional. Write one key per line, without quotation marks:

    #cloud-config
    hostname: sslbrain-01
    ip_address: 10.0.0.10/24
    gateway: 10.0.0.1
    dns: 10.0.0.53,10.0.0.54
  2. Create an empty meta-data next to it, and create the seed disk:

    Terminal window
    touch meta-data
    genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
  3. Attach the seed disk to the machine as a CD-ROM before you start it for the first time.

    On Proxmox: put seed.iso in an ISO storage, for example /var/lib/vz/template/iso/, and attach it:

    Terminal window
    qm set <vmid> --ide2 local:iso/seed.iso,media=cdrom

    With virt-install: add --disk path=seed.iso,device=cdrom to the command above.

The appliance uses only the four keys above. cloud-init is disabled, so users, SSH keys and network sections in the file are not used. After first boot the seed disk can be removed. From then on, you change the address with item 3 in the console menu (Console menu).

You can expand the disk before first boot with qm resize <vmid> scsi0 +20G.