ProxmoxVirtualization10 min read

Install Proxmox VE for virtualization

Turn your Bare Metal into a hypervisor with Proxmox to create VMs and LXC containers.


Overview

Proxmox VE is an open-source virtualization platform that combines KVM virtual machines and LXC containers with a web-based management interface. It's ideal for turning your Bare Metal server into a multi-tenant hypervisor.

Requirements

  • Bare Metal server with at least 16 GB RAM (32+ recommended)
  • CPU with virtualization support (Intel VT-x or AMD-V)
  • At least 2 storage devices (one for OS, one for VMs)
  • A dedicated IP or IP range for VMs

Step 1: Install Proxmox VE

Option A: Install from ISO (recommended)

  1. Download the Proxmox VE ISO from the official site
  2. Mount it via IPMI virtual media
  3. Boot from the ISO and follow the installer
  4. Set the management IP, hostname, and root password

Option B: Install on existing Debian 12

Add the Proxmox repository:

bash
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve.list

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

apt update && apt full-upgrade -y
apt install -y proxmox-ve postfix open-iscsi chrony

Reboot:

bash
sudo reboot

Step 2: Access the web interface

Open your browser and navigate to:

terminal
https://YOUR_SERVER_IP:8006

Log in with root and your password.

Step 3: Configure repositories

Disable the enterprise repository (unless you have a subscription):

bash
sudo nano /etc/apt/sources.list.d/pve-enterprise.list
# Comment out the line

Enable the no-subscription repository:

bash
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-no-sub.list
apt update

Step 4: Configure storage

Add storage for VM disks and backups:

  1. Go to DatacenterStorageAdd
  2. For local NVMe/SSD: Add as Directory or LVM-Thin
  3. For backups: Add a separate directory mount

Example LVM-Thin setup:

bash
# Create a thin pool on a dedicated disk
pvcreate /dev/sdb
vgcreate vg-data /dev/sdb
lvcreate -l 100%FREE -T vg-data/thin-pool

Then add it in the web UI as LVM-Thin storage.

Step 5: Create a virtual machine

  1. Click Create VM in the top right
  2. Set name and VM ID
  3. Upload or select an ISO (Ubuntu, Debian, etc.)
  4. Configure hardware:
  • CPU: Set cores and type (host for best performance)
  • Memory: Allocate RAM (enable ballooning for dynamic allocation)
  • Disk: Select your storage pool, set size
  • Network: Select bridge (vmbr0)
  1. Start the VM and install the OS via the console

Step 6: Create an LXC container

Containers are lighter than VMs and boot in seconds:

  1. Download a template: localCT TemplatesTemplates
  2. Click Create CT
  3. Set hostname, password, and resources
  4. Select network configuration (static IP or DHCP)
  5. Start the container
bash
# Or via CLI
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
  --hostname mycontainer \
  --memory 2048 \
  --cores 2 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --storage local-lvm
pct start 100

Step 7: Backups

Configure automated backups:

  1. Go to DatacenterBackup
  2. Click Add to create a backup job
  3. Select schedule, storage, and VMs/CTs to include
  4. Choose compression mode (zstd recommended)

Network tips

  • Use vmbr0 as the main bridge for VM networking
  • For isolated networks between VMs, create additional bridges
  • Configure NAT if you have limited public IPs

Security

  • Enable the Proxmox firewall from the web UI
  • Restrict web interface access to your IP
  • Set up 2FA for the web login
  • Keep Proxmox updated: apt update && apt dist-upgrade

Was this guide helpful?