Alan Doyle

   Proxmox - Initial Setup

Proxmox

What is Proxmox?

Proxmox Virtual Environment (PVE, or simply Proxmox) is an excellent, lightweight virtualization platform designed for the provisioning of a Software-defined IT infrastructure.

Proxmox combines 2 powerful virtualization technologies, Linux Containers (LXC) for lightweight virtualized environments and KVM hypervisor for full system virtualization.

It has a simple, yet powerful, web UI and includes advanced features like support for ACME SSL certificates with DNS-01 support, software defined networking, Ceph distributed filesystem and high availability clustering allowing management of all nodes from within the same web UI on any of the nodes. Combine those features with the excellent Proxmox Backup Server (PBS) and it makes for an excellent virtualization platform for both enthusiasts and enterprise users alike.

Why do I use Proxmox?

After the ESXi debacle when Broadcom acquired VMware I decided I needed to find another Virtualization platform for homelabbing.

I own a real domain name, which is used exclusively for my home network, allowing me to assign legitimate ACME SSL certificates to my internal web servers. This removes all the headaches associated with self-signed certificates. Having ACME support out-of-the-box simplifies this process on all Proxmox servers, combined with Round-Robin on a generic Proxmox subdomain makes management of the Proxmox cluster incredibly clean and simple.

My Proxmox Setup

I’m currently using 3 Proxmox servers, not because I really need 3 but mostly because I wanted to try out some of the clustering features. It’s worth noting that none of the systems are particularly taxed but I do like to separate the virtual systems running on each Proxmox node by category.

  • SIF - Local AI/Media Services
  • TYR - NAS Services
  • SYN - Self-hosted Services

Being able to manage all these servers from a single web interface is extremely useful.

I’m not currently using any of Proxmox’s more advanced features like the Ceph Distributed Filesystem nor SDN (Software Defined Networking)

My Setup Script

I’ve written a simple bash script to setup a Proxmox Virtualization or Backup server which I host on GitHub.

The script makes a few changes to the Proxmox server.

  • Enable IOMMU
  • Enable “No subscription” repositories.
  • Disable “Nag popup” in the web UI.
  • Install some additional software (lsscsi, btop, top, sync, iftop, lm-sensors, exa, nala, plocate)
  • Enable power saving features via powertop and AutoASPM scripts.
  • Update the CPU to the latest microcode.
  • Update firmware to latest available.
  • Add some crown entries to keep system up-to-date.
  • Add phpsysinfo to listen on HTTPS port 443. This can be updated to use an ACME SSL certificate generated by Proxmox via ‘setup-https’ script.
  • Add ‘starship’ support to bash.
  • Some QOL bash aliases.

To install this script on a freshly installed Proxmox server run the following command as root via ssh.

bash -c "$(wget -qLO - https://github.com/alandoyle/proxmox-setup/raw/main/proxmox-setup)"

After a reboot the initial install is complete.

Further Reading

Next up I’ve written a couple of follow-up articles.


Updates

  • 2025-07-24 - Re-worked install script to be more modular and to allow it to be re-run without causing issue.
  • 2025-04-01 - Updated with link to Simple Proxmox Cluster Setup Script blog entry.
  • 2025-03-01 - Updated with link to ACME SSL Proxmox blog entry.

Alan Doyle