---
title: Proxmox
description: Bare-metal Hypervisor Virtualization Platform
showHero: false
author: wompmacho
date: '2026-04-11'
lastmod: '2026-04-11'
tags: ['virtualization', 'self-hosted', 'linux', 'kvm', 'lxc']
---

## What is Proxmox?

Proxmox Virtual Environment (VE) is a powerful, open-source Bare-metal Hypervisor / virtualization management platform. It integrates two virtualization technologies—Kernel-based Virtual Machine (KVM) for virtual machines and Linux Containers (LXC) for lightweight container-based virtualization—into a single, easy-to-manage solution with a web-based interface.

> [!NOTE] I actually set this up a while ago, just now getting around to document things. I have run a few itterations of proxmox, the current is my main compute note in my setup hosting most of my docker containers, game-servers, dns resolver / sink etc.

---

## When choosing CPU...

Currently I am running `Proxmox > Ubuntu VM > code-server` for a nice CitC (client in the cloud) like interface I can use to access my projects / documentation and code from anywhere. Had some issues when I wanted to integrate gemini code assistant extension into my code-server instance. 

*Turns out*: in version v2.56 they switched over to a more moderen cpu instruction set / in order to optimize for moderen ai-assisted workflows. Older default cpu architextures (*like the one used by my ubuntu vm at the time*) are missing some newer instruction sets that are required for the extension to run.

> [!NOTE] I struggled with this for a few weeks until I finally looked a bit deeper / aided by gemini `xD`

This is generally only a problem when you are creating a vm for the first time, so when making a vm; consider its uses and if it would make sense to not use the default options like I did. Luckily; they are interchangable on proxmox vms and do not require any sort of reinstalation like you would on a normal OS. 

### Code Assist on a VM

The "The Gemini Code Assist server crashed 5 times" error can occur when using code-server or VS Code. This crash, identified by the SIGILL (Illegal Instruction) signal, is usually due to a hardware mismatch.

#### The Problem

 This is caused by a modern Instructions set on "Generic" Hardware. Starting with version 2.56, the Gemini Code Assist server binary needs the `AVX` (Advanced Vector Extensions) instruction set. Proxmox often sets a VM's CPU type to kvm64. This hides these instructions for compatibility. When the extension tries to run an AVX command on a CPU that doesn't "have" it, the process crashes.

#### The Solution

  - Step 1: Diagnosing the CPU: 
  
    A command can check for the required instruction flags. In the Ubuntu terminal, run:

    ```sh
    lscpu | grep -i 'avx\|aes\|pclmul'
    ```

    The Result: If the output shows aes, but avx and pclmul are missing, the virtual processor is too "basic".

  - Step 2: The Immediate Fix (Downgrade)

    To fix this, roll back to a version before these requirements were enforced:

    1. Go to the Extensions tab in VS Code.
    2. Click the gear icon for Gemini Code Assist and select "Install Another Version...".
    3. Choose v2.55.x or earlier.
    4. Important: Uncheck "Auto Update" to prevent it from breaking again.

  - Step 3: The Long-Term Fix (Proxmox CPU Passthrough)

    The best fix is to expose the physical CPU's features to the VM. No reinstallation is required.
    How to change to "Host" Processor in Proxmox:

    1. Shut down the Ubuntu VM.
    2. Log into your Proxmox Web UI.
    3. Select the VM > Hardware > Processors.
    4. Double-click Type and change it from Default (kvm64) to host.
    5. Restart the VM.

### Why use "Host"?

Setting the type to host passes the physical CPU's features—including AVX—directly to your Ubuntu instance. This fixes the Gemini crash and can improve performance.

- In host mode, the VM executes code directly on the physical hardware.
- This results in lower CPU latency and better performance in high-demand applications like databases, compilation (GCC/Clang), and web servers.
- Modern software often needs specific "shortcuts" in modern CPUs.
  - AVX/AVX2/AVX-512: These are important for math-heavy tasks and AI.
  - AES-NI: Speeds up encryption, which makes SSH, VPNs, and HTTPS faster.
  - PCLMULQDQ: Speeds up data integrity checks and modern security protocols.
- The Linux scheduler can more intelligently place tasks on the right cores.
- The VM can sometimes access hardware-level performance counters, which is vital if you are doing any low-level debugging or performance profiling.
- If you want to run Docker with specialized isolation or even run a VM inside a VM (Nested Virtualization), host mode is usually the most stable way to pass through the necessary "VMX" (Intel) or "SVM" (AMD) flags.
- Modern CPUs have hardware-level protections (like Execute Disable Bit or SMEP/SMAP) that protect against memory injection attacks. Generic CPU models often disable these to ensure the VM can boot on any old server; host mode enables them fully.
