The homelab hypervisor,Proxmox.
An open-source virtualization platform built on Debian that runs KVM virtual machines and LXC containers behind one web UI, CLI, and REST API. This working reference covers the qm and pct command cheatsheet, container networking with netplan, Windows VM setup with VirtIO drivers, and dark-mode theming.
One panel, every workload
KVM for full hardware virtualization, LXC for lightweight containers — with clustering, high availability, Ceph storage, and backups built into the same Debian-based platform.
- qm — start, stop, and configure KVM/QEMU VMs.
- pct — manage LXC containers from the shell.
- Web panel — HTTPS on port 8006, PAM or PVE auth.
On this page
What this guide covers
Command cheatsheet
The qm and pct CLI quick reference — list, start, shutdown, reboot, and configure VMs and containers.
Container networking
Default ports, OVH IPv4 configuration, and a working Ubuntu 22.04 netplan config for containers.
Windows VM setup
Audio device args for the qemu-server config and installing stable or latest VirtIO driver ISOs.
Dark-mode theming
Give the web panel a Discord-style dark theme with the PVEDiscordDark install script.
Start here
Information
Proxmox is an exquisite open-source server platform that empowers you to orchestrate and administer virtual machines, containers, storage, networking, and backup. It is based on Linux (Debian operating system) and uses KVM (qEMU) and LXC as virtualization technologies. Proxmox offers a web interface for easy administration, as well as command-line interface/tools and a RESTful API. The objective of this software is provide a base-line to build your own paradigm style hybrid cloud through HA (High Avalibity), CEPH and load balancing built-in.
Hint: Utilize the PAM/PVE settings within Proxmox to secure and abstract the system authentication.
This page is a working reference: the command cheatsheet for qm (VMs) and pct (containers), container networking with netplan, Windows VM setup including VirtIO drivers, and theming.
Daily drivers
Cheatsheet
Proxmox Cheatsheet for quick commands and below are the basic CLI (command-line interface)
- qEMU
man qmqm list- List qEMUs on the server.qm start $v_id- Start the specific virtual machine (qEMU).qm shutdown $v_id- Shutdown the specific vm (qEMU).qm reboot $v_id- Reboot the specific vm (qEMU).qm resume $v_id- Resume the specific vm (qEMU).qm reset $v_id- Reset the specific vm (qEMU).qm stop $v_id- Stop the specific vm (qEMU).qm config $v_id- Configure the specific vm (qEMU).qm set -onboot 1 $v_id
- Proxmox Container
man pctpct list- List all containers on the server. (LXC)pct listsnapshot- List all snapshotspct start $v_id- Start container by the specific $v-ID.pct shutdown $v_id- Shutdown container by specific $v-ID.pct reboot $v_id- Reboot container by specific $v-ID.pct config $v_id- Configure container by specific $v-ID.pct set -memory $v_ram $v_id- Set the memory for container.- Example:
pct set -memory 1024 420 $v_ramis in megabytes by default.
- Example:
pct enter $v_id- Enter the terminal of the container (LXC).
Wire it up
Network
- Proxmox has several types of networking options and integrations. We will go over the basics here and slowly expand to different concepts afterwards.
- The default ports for proxmox are
8006for the web panel, which you can log in via PAM/Proxmox PVE and85for the PvEDaemon. To double check the ports, runnmap 127.0.0.1 -p-to see the two open ports and then runnetstat -nlp | grep -E ":85|:8006"to get more information.
Network Config (OVH)
Section titled “Network Config (OVH)”-
Initial IPv4 Configuration during Install
-
Subnet: XXX.XXX.XXX.XXX/32Address: XXX.XXX.XXX.XXXGateway: DDD.DDD.DDD.DDDName Servers: 208.67.222.222, 208.67.220.220Search Servers: fqdn.com#XXX.XXX.XXX.XXX is the IP of the container.#DDD.DDD.DDD.DDD is the IP of the dedicated server.
-
NOTE: As it turns out, this doesn’t work, and we’re not sure if it will ever work.
-
Ubuntu 22.04 LTS netplan config for container
-
network:version: 2ethernets:ens18:dhcp4: falseaddresses: [XXX.XXX.XXX.XXX/32] # The IP of the containerroutes:- to: 0.0.0.0/0via: XXX.XXX.XXX.254 # The first three octets of the hoston-link: truenameservers:addresses: [1.1.1.1, 1.0.0.1] # Default Nameservers (Shouldn't matter)#addresses: [208.67.222.222, 208.67.220.220] # OVH Nameservers
-
-
NOTE: If you’ve set up the ubuntu box using the minimized version (which lacks vim, nano, etc), move or delete the existing
00-installer-config.yamland runcat <<EOF >>00-installer-config.yamlfollowed by the configuration above. -
After updating the yaml, go ahead and run:
-
Terminal window sudo netplan apply -
Test the command by pinging a domain (google.com) and an IPv4 (8.8.8.8), making sure that it works!
Guest OS
Windows
This is a generic guide to installing and setting up windows.
Windows Audio
Section titled “Windows Audio”When booting up the Windows KVM, there has to be an audio configuration that has to be setup for the qemu server.
Grab the qEMU server id from the proxmox list, then go to /etc/pve/qemu-server/$VMID.conf, replacing the $VMID with the ID.
Then add this to the args:
args: -device intel-hda,id=sound5,bus=pci.0,addr=0x18 -device hda-micro,id=sound5-codec0,bus=sound5.0,cad=0 -device hda-duplex,id=sound5-codec1,bus=sound5.0,cad=1If this is a fresh install, then you can add the args configuration at the bottom of the file.
Windows Error
Section titled “Windows Error”Quick and short solutions to common window errors that we faced when deploying.
VirtIO Drivers
Section titled “VirtIO Drivers”There are two drivers that you can use, the stable and latest iso.
To add them into your Proxmox instance, go to the iso folder, located below and then download the right driver ISO.
cd /var/lib/vz/template/iso- Stable
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso- Latest (in the case if Stable does not work.)
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.isoAfter downloading the right ISO, attach it to your KVM/QEMU instance and then reboot the machine. After the reboot, go to My Computer and run the iso to install the proper drivers.
Extras
Notes
- eXtremeSHOCK Optimization / Post Install Scripts located below
Make it pretty
Style
- Dark Mode Theme for Proxmox
- Installation Script located here: Github PVEDiscordDark
- The script alters the css / js , so that the panel has a “Dark” / Discord theme base.
bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install
Off the record
Podcast
General jokes/memes about the proxmox and general weird methods. We were trying to find a cute and creative way to introduce the vast realm of virtual machines.
Just for fun
Jokes
Dock Swarm
# Setting up Docker Swarm on multiple Proxmox VE containers#> Ziggy9263 (@jzanecook), h0lybyte (@KBVE)
## 1. Introduction
### 1.a. Crack your head against a wall
#> The important thing to remember is that any all things that go horribly wrong can and will do so.#> Ziggy9263, from the docker container he has found himself trapped in
#In order to begin working on a Docker Swarm, first you need to brush up on the general concepts behind the entire premise of this system. There are no winners, and there are no losers, there are only those who have discovered the wonders of setting up Docker Swarm, and those who have wandered a little too close to the wonders and have developed a pus filled growth on their abdomen.
#If you have begun emitting a yellowish bioluminescence from your fingertips or have developed a large green and cyan vein stretching from your lower cheek to your posterior, then this article is not for you, and it's too late.
#Otherwise, if you've simply peered over the edge of this foreign landscape, not yet realizing that the brush you're walking through is toxic in nature due to the radiation left from previous swarms, then this article may come in handy in your short lived traversal from bomb stricken wasteland to the maw of the amorphous creature you accidentally brought to your doorstep while typing `docker stack deploy`.
#In the following sections, we'll go over the process of:#-> Setting up Proxmox VE (7.2.1)#-> Installing Proxmox Darkmode for Comfort#-> Setting up `vmbr1` for Internalized Networking#-> Setting up Traefik#-> Minimizing DUIs#-> Initializing a Docker Swarm#-> Creating Nodes and Keeping Order via Quorum#-> Creating Replicants and how to keep Rick Deckard off your ass#-> Creating Reverse Proxies for your Nodes
### 1.b. Invest in your retirement fund
#If you haven't already, it's important that you do before it's too late. This article, however, will not help you with that.
## 2. Proxmox### 2.a. Setting up Proxmox VE (7.2.1)### 2.b. Installing Proxmox Darkmode for Comfort### 2.c. Setting up `vmbr1` for Internalized Networking
## 3. Traefik### 3.a. Setting up Traefik (Version Number Here h0ly don't forget version number here version number don't forget)### 3.b. Minimizing DUIs
## 4. Docker Swarm### 4.a. Initializing a Docker Swarm### 4.b. Creating Nodes and Keeping Order via Quorum### 4.c. Creating Replicants and how to keep Rick Deckard off your ass#In case you aren't in the know like cool guy Jones, Rick Deckard is from Bladerunner and he hunts stray replicants, the premise here don't let replicants go stray.### 4.d. Creating Reverse Proxies for your NodesQuestions
Frequently asked
What is Proxmox VE?
Proxmox Virtual Environment is an open-source server virtualization platform based on Debian Linux. It runs KVM/QEMU virtual machines and LXC containers under one web interface, with clustering, high availability, Ceph storage, and backups built in.
What is the difference between qm and pct in Proxmox?
qm manages KVM/QEMU virtual machines (full hardware virtualization), while pct manages LXC containers (lightweight OS-level virtualization). For example qm start <id> boots a VM and pct start <id> starts a container.
What port is the Proxmox web interface on?
The Proxmox web panel listens on port 8006 over HTTPS, and the PVEDaemon uses port 85. You log in with PAM or Proxmox PVE authentication. Confirm the open ports with nmap 127.0.0.1 -p- or netstat.
How do I install VirtIO drivers on a Windows VM in Proxmox?
Download the VirtIO ISO into /var/lib/vz/template/iso with wget, attach it to the Windows KVM as a second CD drive, reboot, and run the installer from the ISO so Windows recognizes the paravirtualized disk and network devices.
