Featured image of post Proxmox VE Installation and Initial Setup Guide Featured image of post Proxmox VE Installation and Initial Setup Guide

Proxmox VE Installation and Initial Setup Guide

Step-by-step Proxmox VE installation guide covering ISO setup, first-boot configuration, repository management, network tuning, and post-install best practices.

What is Proxmox VE?

Proxmox Virtual Environment (Proxmox VE) is an open-source server virtualization platform that combines KVM-based virtual machines and LXC-based containers under a single web interface. Built on Debian Linux, it integrates enterprise features such as live migration, high availability, software-defined storage, and a built-in firewall. Its agentless design and central management interface make it a popular choice for homelabs, small businesses, and data centers alike.

The platform supports ZFS, Ceph, and LVM for storage, and includes a RESTful API for automation. The installation process is straightforward, but proper configuration immediately after setup is critical for a stable and secure environment.

Downloading the ISO and Creating Installation Media

Download the latest Proxmox VE ISO from the official Proxmox website. The ISO is a hybrid image that fits on a standard USB drive. Use a tool such as Rufus (Windows), Balena Etcher (cross-platform), or dd (Linux) to write the image.

# Linux: write ISO to USB drive (replace /dev/sdX with your device)
sudo dd if=proxmox-ve_*.iso of=/dev/sdX bs=1M status=progress

The ISO includes the Proxmox VE installer and a bootable Debian base system. On first boot, you are greeted by the installer menu with options for graphical or terminal-based installation. The graphical installer is recommended for most users.

Installation Walkthrough

Partitioning

The installer presents several partitioning schemes. For most deployments, choose ext4 with LVM or ZFS if you want advanced features such as snapshots, compression, and checksums.

FilesystemUse CaseProsCons
ext4+LVMGeneral-purpose, maximum compatibilitySimple, well-understoodNo native snapshots
ZFSHomelab, critical dataSnapshots, compression, RAIDHigher RAM usage
BtrfsExperimental or single-disk setupsSnapshots, subvolumesLess mature on Proxmox

ZFS is strongly recommended for the root filesystem if you have enough RAM (8 GB minimum). It enables instantaneous snapshots through the Proxmox backup mechanism and transparent compression with lz4.

Network Configuration

Assign a static IP address during installation. Do not rely on DHCP for a production server. The installer asks for the following:

  • IP address (CIDR): e.g., 192.168.1.100/24
  • Gateway: e.g., 192.168.1.1
  • DNS server: e.g., 1.1.1.1 or your local DNS

Root Password and Email

Set a strong root password. Proxmox uses the root account for web UI authentication and SSH access. You also configure a system email address — this is where Proxmox sends alerts about hardware issues, backup failures, and certificate expiration.

First Login to the Web UI

Once installation completes, reboot and note the IP address shown in the console. Open a browser and navigate to:

https://<YOUR_IP>:8006

Accept the self-signed certificate warning. Log in with username root and the password you set during installation. The dashboard shows summary graphs for CPU, memory, network, and storage usage.

Removing the Enterprise Repository

Proxmox ships with the enterprise repository enabled by default, which requires a paid subscription to access. For non-production or homelab use, replace it with the no-subscription repository.

# Remove enterprise repo
rm /etc/apt/sources.list.d/pve-enterprise.list

# Add no-subscription repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

Then update the system:

apt update && apt full-upgrade -y

A pop-up about a missing subscription appears on login. To suppress it:

sed -i 's/^/#/' /etc/apt/sources.list.d/ceph.list

System Updates and Kernel Management

Keeping Proxmox updated is essential for security and stability. The platform uses Proxmox-kernel (a custom kernel) rather than the stock Debian kernel. After updates, reboot to activate the new kernel.

apt update && apt dist-upgrade -y
reboot

Check the installed kernel version with:

uname -r

Proxmox retains the previous kernel so you can boot into it if the new kernel causes issues. Use proxmox-boot-tool to manage kernel versions.

Network Bridge Configuration

Proxmox creates a bridge interface vmbr0 during installation. This bridge connects your VMs to the physical network. The configuration lives in /etc/network/interfaces.

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

To add a second bridge for a separate network (e.g., isolated lab network), duplicate the block with a different subnet and omit the bridge-ports line for an isolated bridge.

Hostname and DNS Configuration

Verify the hostname and /etc/hosts are correctly configured. Proxmox requires that the hostname resolves to the primary IP address.

# /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.100 proxmox.example.com proxmox

The file /etc/hostname should contain just the short hostname:

proxmox

Test resolution with:

hostname --ip-address

If this returns the wrong address, Proxmox services may fail to start.

Firewall Basics

Proxmox includes a built-in firewall managed through the web UI or via pve-firewall. Enable datacenter-level firewall first:

Datacenter → Firewall → Options → Enable: Yes

Then configure rules per node or per VM. At minimum, allow HTTPS (8006) and SSH (22) from your management network. The firewall is stateful and applies rules in order — place the most specific rules first.

Generate and apply firewall rules from the CLI as well:

pve-firewall compile
pve-firewall restart

Creating the First User

It is good practice not to use root for daily operations. Create a separate user with administrator privileges.

pveum user add admin@pve --password <password>
pveum acl modify / --user admin@pve --role Administrator

Log out of the root session and log in as the new user. Assign roles more granularly if needed — for example, create users with the PVEVMAdmin role who can only manage VMs.

Enabling Two-Factor Authentication for Admin

Proxmox supports TOTP-based two-factor authentication. Enable it in the web UI under Datacenter → Two-Factor Authentication.

  1. Select TOTP as the provider.
  2. Scan the QR code with an authenticator app (Authy, Google Authenticator, or Bitwarden).
  3. Enter the current code to verify setup.

For the root account, configure 2FA via the CLI if the web UI is inaccessible:

pveum user tfa add root@pam --type totp

Store the recovery codes printed during setup in a secure location. Without them, losing the authenticator device means losing access to the root account.

Backing Up /etc/pve

The directory /etc/pve is a special FUSE-backed filesystem that stores all Proxmox cluster configuration. It exists on every node but changes are synchronized cluster-wide. Regular backup of this directory is critical for disaster recovery.

tar czf /root/pve-backup-$(date +%Y%m%d).tar.gz /etc/pve

For a more structured approach, use proxmox-backup-client if you have a Proxmox Backup Server. Otherwise, schedule a cron job:

0 3 * * * tar czf /root/pve-backup-$(date +\%Y\%m\%d).tar.gz /etc/pve

Test your backup by extracting it to a temporary directory and verifying the files are readable.

Post-Install Checklist

Run through this checklist after every Proxmox installation:

  • Enterprise repositories disabled, no-subscription repo enabled
  • System fully upgraded
  • Static IP confirmed in /etc/network/interfaces
  • Hostname resolves correctly
  • Firewall enabled with minimal allow rules
  • Non-root admin user created
  • Two-factor authentication configured
  • /etc/pve backup scheduled
  • NTP time synchronization verified
  • SSH key-based authentication set up for root/admin