Skip to content

Deploy on Proxmox

This guide will help you deploy TrapEye on your Proxmox environment smoothly, from preparing your VM template to launching your first instance.


  1. Log in to the TrapEye Portal, go to Management → Installation and download the latest TrapEye Proxmox image (.qcow2 format).

    Download image

  2. Open a Terminal on your Laptop and push the downloaded .qcow2 image to your Proxmox server via ssh using scp:

    Terminal window
    scp trapeye-image.qcow2 root@<proxmox-ip>:/var/lib/vz/images/
  1. Open the Proxmox Shell via the web interface or SSH.

    Open Shell

  2. Verify the presence of the uploaded image:

    Terminal window
    file /var/lib/vz/images/trapeye-image.qcow2
  3. Create a new VM with the appropriate value in memory, cores and bridge.

    ResourceMinimum ValueRecommended Value
    CPU1 vCPUs2 vCPUs
    Memory1024 MiB (1 GB)4096 MiB (4 GB)
    Terminal window
    qm create 9000 --name trapeye-template --memory <choose memory value in MB> --cores <choose cores number> --net0 virtio,bridge=<your bridge network>
  4. Import the image into your VM:

    Terminal window
    qm importdisk 9000 /var/lib/vz/images/trapeye-image.qcow2 local-lvm
  5. Open the Hardware tab of your Template, select the Unused Disk, and double-click to edit.

    Change Disk Settings

  6. Set Bus/Device to VirtIO Block and click Add.

    Select VirtIO block

    Once added, the new disk should appear attached as a VirtIO device.

  7. Adjust the Boot Order so that the VM boots from the newly added disk:

    • Go to the Options tab of your VM.
    • Double-click on Boot Order.
    • Enable the VirtIO disk and move it to the top of the list.
    • Click OK to confirm.

    Change Boot Order

  8. Convert your VM into a template

    Terminal window
    qm template 9000

The easiest way to configure TrapEye for mass deployment and to avoid manual configuration of each VM is to use a Cloud Init config in the Proxmox Template.

  1. Create the cloud init disk in your Proxmox template.

    Terminal window
    qm set 9000 --ide2 local-lvm:cloudinit
  2. Change the password for root user.

    Terminal window
    qm set 9000 --ciuser root --cipassword CHANGEME
  3. From the TrapEye Platform, go to Management → Installation and copy the values for url, entity_uuid, and auth_token.

    Config Menu

  4. Create snippets folder if it doesn’t exist and create the configuration file with your specific data.

    Terminal window
    mkdir -p /var/lib/vz/snippets/
    cat > /var/lib/vz/snippets/trapeye-vendor.yaml <<EOF
    #cloud-config
    write_files:
    - path: /etc/trapeye/auth-config.toml
    permissions: '0600'
    content: |
    url = "INGESTION-URL-HERE"
    entity_uuid = "ENTITY-URL-HERE"
    auth_token = "ENTITY-TOKEN-HERE"
    EOF
  5. Apply that config file into your cloud-init disk:

    Terminal window
    qm set 9000 --cicustom "vendor=local:snippets/trapeye-vendor.yaml"
  6. Clone your template into a Proxmox VM and start it.

    Terminal window
    qm clone 9000 100 --name trapeye-prod-01
    qm start 100

By default, if Cloud Init does not push the /etc/trapeye/auth-config.toml file, TrapEye service boot in Manual Config Mode and allow you to connect to it via its IP Address (DHCP by default).

  1. Clone your template into a Proxmox VM and start it.

    Terminal window
    qm clone 9000 100 --name trapeye-prod-01
    qm start 100
  2. Get the IP Address of your VM

  3. From the TrapEye Platform, go to Management → Installation and copy the values for url, entity_uuid, and auth_token.

    Config Menu

  4. Connect to the TrapEye Manual Config Web Page by navigating to https://<your_vm_ip>:8443

  5. Ignore the TLS warning as this is a temporary self-signed certificate and fill the form with your 3 custom value copied earlier:

    Config Page

Your TrapEye virtual machine has been successfully deployed on Proxmox.

It will now appear in the Devices section of the TrapEye Deception Platform, and you will begin receiving real-time alerts as soon as any activity is detected.