Start typing to search across invoices, services, domains, tickets, and more...
This guide shows how to install Proxmox VE (PVE) on a dedicated server and turn it into a hypervisor host for KVM virtual machines and LXC containers. We follow the method recommended by Proxmox: start from Debian 12 and install PVE 8 from the official repository, which is handy when your provider pre-installs Debian 12 and you cannot mount an ISO. It also covers the vmbr0 bridge, the web UI on port 8006 and the "no valid subscription" message.
PVE needs the hostname to resolve to the server's public IP (not 127.0.1.1), otherwise pve-cluster will not start. Replace 203.0.113.10 and the hostname with your own values. The last command must print your public IP.
hostnamectl set-hostname pve1.example.com
nano /etc/hosts
# public IP FQDN short hostname
203.0.113.10 pve1.example.com pve1
hostname --ip-addressAdd the pve-no-subscription repository and its signing key. Compare the sha512sum output with the checksum published in the Proxmox documentation, then bring the system fully up to date.
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
apt update && apt full-upgrade -yInstall the Proxmox kernel first and boot into it; this makes the main package installation smoother. After the reboot, uname -r should show a kernel name containing "pve".
apt install -y proxmox-default-kernel
systemctl rebootInstall proxmox-ve together with postfix (choose "Local only" if you have no mail relay), open-iscsi and chrony. Then remove the stock Debian kernel and os-prober so the boot menu stays clean and guest disks are never scanned.
apt install -y proxmox-ve postfix open-iscsi chrony
apt remove -y linux-image-amd64 'linux-image-6.1*'
update-grub
apt remove -y os-proberTo give VMs public IPs, create a Linux bridge vmbr0, attach the physical NIC to it (eno1 in this example; check the real name with ip -br link) and move the host IP onto the bridge. Back up the old file first and make sure you have IPMI/KVM access in case you lose connectivity.
# /etc/network/interfaces
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 203.0.113.10/24
gateway 203.0.113.1
bridge-ports eno1
bridge-stp off
bridge-fd 0Apply the configuration with ifreload (PVE ships ifupdown2), then check the bridge address and outbound connectivity.
ip -br link
cp /etc/network/interfaces /etc/network/interfaces.bak
ifreload -a
ip -br addr show vmbr0
ping -c 4 1.1.1.1Open https://SERVER-IP:8006 in a browser, log in as root with the "Linux PAM standard authentication" realm and the server's root password. The browser will warn about the self-signed certificate; accept it to continue. If the page does not load, check pveproxy and make sure TCP 8006 is allowed by any firewall.
systemctl status pveproxy --no-pager
ss -tlnp | grep 8006
# open in a browser:
https://203.0.113.10:8006The "No valid subscription" pop-up is expected. Proxmox VE is free and fully functional without a subscription; a subscription adds the enterprise repository and vendor support. Without one, the enterprise repo returns HTTP 401 on apt update, so comment it out and keep using the no-subscription repo from Step 2. For production you may still choose to buy a subscription from Proxmox.
ls /etc/apt/sources.list.d/
# without a subscription: comment out the enterprise repo
sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list
apt updateThis is almost always a hostname resolution issue in /etc/hosts. Fix it as in Step 1 and run systemctl restart pve-cluster pveproxy.
Log in via the IPMI/KVM console, restore /etc/network/interfaces.bak, run ifreload -a, then double-check the NIC name, prefix length and gateway.
We recommend at least 64 GB RAM, NVMe SSDs and an additional IP block. For dense deployments consider IMIDC's 512 GB RAM hosts or servers with a /24 IP range.
Still stuck? Open a ticket and the IMIDC 24/7 support team will help you troubleshoot.