Getting Started with Proxmox: The Ultimate Beginner’s Guide
Welcome to Self-Hosted Tech! If you’re reading this, you’ve probably caught the homelab bug. You’re tired of paying monthly subscription fees for cloud services, you want to reclaim your data, and maybe you’re itching to run your own local AI models without relying on someone else’s API.
To do all of that, you need a solid foundation. You need a hypervisor.
Enter Proxmox Virtual Environment (VE).
Proxmox is a complete open-source platform for enterprise virtualization. But don’t let the word “enterprise” scare you. It is the absolute gold standard for homelabbers. It allows you to run Virtual Machines (VMs) and Linux Containers (LXC) side-by-side, manage them from a beautiful web interface, and handle backups with ease.
In this article, we’re going to walk through everything you need to know to get Proxmox installed, configured, and ready to host your first self-hosted application. Let’s get our hands dirty.
Hardware Requirements: What Do You Need?
One of the best things about Proxmox is that it doesn’t require a massive, power-hungry rack server. You can run it on a wide variety of hardware.
Here is what you’ll need to get started:
- A 64-bit CPU: Intel or AMD, it doesn’t matter. However, your CPU must support virtualization extensions (Intel VT-x or AMD-V). Most CPUs from the last decade have this, but you may need to enable it in your BIOS.
- RAM: 8GB is the absolute bare minimum to get a taste of Proxmox. However, 16GB or 32GB is highly recommended. RAM is the lifeblood of a homelab; the more you have, the more services you can run.
- Storage: An SSD is practically mandatory for the Proxmox OS drive. Running Proxmox on a spinning hard drive will make the web interface sluggish and slow down your VMs. A 128GB or 256GB SSD is plenty for the OS and a few lightweight containers.
- A USB Flash Drive: You’ll need at least an 8GB USB drive to flash the Proxmox installation media.
- A Network Connection: A wired Ethernet connection is strongly recommended. Wi-Fi is notoriously painful to configure on headless servers and isn’t supported out-of-the-box by Proxmox.
Great candidates for a Proxmox host include an old Dell OptiPlex or HP EliteDesk mini PC, an Intel NUC, or a custom-built mini-ITX machine.
Downloading and Installing Proxmox
Let’s get the software. Head over to the Proxmox Downloads page and grab the latest Proxmox VE ISO.
Once the ISO is downloaded, you need to flash it to your USB drive. Don’t just copy and paste the file! Use a dedicated flashing tool like BalenaEtcher or Rufus to write the image directly to the USB.
- Plug your USB drive into the machine you want to use as your Proxmox host.
- Boot it up and enter the BIOS/UEFI settings. Make sure virtualization is enabled, and set the USB drive as the primary boot device.
- Save and exit. The machine should boot into the Proxmox installer.
The installation wizard is very straightforward. It’s built on Debian Linux, so if you’ve ever installed Debian, this will look familiar.
- Target Harddisk: Select your SSD. You can leave the default ext4 filesystem for beginners, or select ZFS if you plan on doing mirrored drives (ZFS is a whole topic on its own, so stick to ext4 for your first run).
- Country, Time zone, and Keyboard: Fill these out accordingly.
- Administration Password and E-mail: Set a strong password for the
rootuser. The email is used for system notifications, so put in a real address. - Network Configuration: This is the most critical step.
- Hostname: Give your server a name, like
proxmox.localorhomelab.lan. - IP Address: Set a static IP address. Pick an IP outside of your router’s DHCP pool so it never changes. For example, if your router is
192.168.1.1, you might set Proxmox to192.168.1.50/24. - Gateway: Your router’s IP (e.g.,
192.168.1.1). - DNS Server: You can use your router’s IP, or a public DNS like
1.1.1.1.
- Hostname: Give your server a name, like
Click “Install,” wait a few minutes, and when it’s done, remove the USB drive and reboot. You’ll be greeted by a terminal telling you the IP address where the web interface can be found.
Post-Installation Setup: The “No Subscription” Fix
Now, grab your everyday computer, open a web browser, and navigate to https://<your-proxmox-ip>:8006.
Yes, you must include the https:// and the :8006 port. Your browser will throw a security warning because Proxmox uses a self-signed SSL certificate by default. This is normal—click “Advanced” and proceed to the page.
Log in with the username root and the password you created during installation.
The very first thing you’ll likely see is a nagging pop-up telling you that you don’t have a valid enterprise subscription. Proxmox is free to use, but they restrict updates to the enterprise repository unless you pay. As homelabbers, we need to switch to the free, “no-subscription” repository to get security updates.
Open up the Proxmox shell (click the >_ Shell button in the top right of the web interface) and run the following commands:
First, let’s comment out the enterprise repository so it stops throwing errors:
| |
Next, let’s add the free no-subscription repository:
| |
Finally, update your system and reboot:
| |
When the server comes back online, log back in. You now have a fully updated, subscription-error-free Proxmox node!
Understanding the Network Bridge
Before we create our first virtual machine or container, we need to understand networking. By default, Proxmox creates a network bridge called vmbr0.
Think of vmbr0 as a virtual network switch. Your physical Ethernet port (e.g., enp3s0) is plugged into this switch. When you create a VM or an LXC container and attach it to vmbr0, it acts just like a physical computer plugged into your physical router. It will pull an IP address from your router’s DHCP server, and other devices on your network can talk to it directly.
If you click on your node name on the left, then go to Network, you will see vmbr0 already configured. You usually don’t need to touch this unless you start doing advanced VLAN tagging or multi-NIC setups.
LXC vs. Virtual Machines: Which to Use?
Proxmox supports two types of virtualization:
- Virtual Machines (VMs): These emulate an entire computer, from the virtual motherboard to the virtual hard drive. They run a full operating system kernel. VMs are great if you want to run Windows, or if you need strict hardware isolation (like passing through a GPU for local AI processing).
- Linux Containers (LXC): These are lightweight, OS-level virtualizations. They share the host’s kernel, meaning there is zero overhead. An LXC container uses a fraction of the RAM and CPU that a VM would use for the same task.
Rule of thumb: If you are running a Linux service (like a web server, database, or media manager), use an LXC container. If you are running Windows, or doing complex tasks like GPU passthrough for local LLMs, use a VM.
Practical Walkthrough: Spinning Up Your First LXC Container
Let’s put theory into practice. We are going to spin up a lightweight Ubuntu LXC container and install a simple web server. This will show you just how fast and efficient Proxmox can be.
Step 1: Download a Template
LXC containers use “templates” instead of full ISO images.
- Click on your node name (e.g.,
pve) on the left sidebar. - Click on local (your storage pool).
- Click on CT Templates and then the Templates button at the top.
- A list of available templates will load. Search for
ubuntu-22.04, select it, and click Download.
Step 2: Create the Container
- In the top right corner, click the Create CT button.
- General: Give it an ID (e.g.,
100) and a Name (e.g.,webserver). Set a strong password for the root user. Uncheck “Unprivileged container” only if you know you need specific mounting capabilities, but for 99% of use cases, leave it checked. - Template: Select the Ubuntu 22.04 template you just downloaded.
- Disks: Give it 8GB of storage. That’s plenty for a web server.
- CPU: 1 Core is fine for a basic Nginx server.
- Memory: 512 MB is plenty. Swap can be 0.
- Network: Leave it on the default
vmbr0bridge. Set IPv4 to DHCP (or assign a static IP if you prefer). - DNS: Leave it as “Use host settings”.
- Click Confirm and then Finish.
Step 3: Start and Access the Container
Your container is created but not running. Click on it in the left sidebar and click the Start button.
Once it’s running, click the >_ Console button. You’ll be dropped into a terminal window. Log in with root and the password you created.
Let’s update the container and install a web server:
| |
That’s it! Nginx is installed and running. To test it, open a web browser on your everyday computer and type in the IP address of your new container. (If you used DHCP, you can find the IP address by typing ip a in the container console).
You should be greeted by the default “Welcome to nginx!” page. You’ve just successfully hosted a web server in a container that took less than 30 seconds to boot and uses almost no system resources.
Where Does Local AI Fit In?
As a Self-Hosted Tech reader, you’re probably wondering how to run local AI models like Llama 3 or Mistral.
While LXC containers are amazing for web servers and databases, local AI often requires a dedicated GPU. If you have a spare Nvidia or AMD GPU in your Proxmox host, you can use a feature called PCIe Passthrough.
This involves creating a Virtual Machine (not an LXC), installing your OS (like Ubuntu Server), and passing the physical GPU directly to the VM. The VM thinks it has a dedicated graphics card, allowing you to install CUDA drivers and run tools like Ollama or text-generation-webui with hardware acceleration.
We will cover GPU passthrough in detail in a future article, but for now, know that Proxmox is fully capable of handling your local AI workloads alongside your standard self-hosted apps.
Backups and Snapshots
One of the biggest advantages of Proxmox over just installing services directly on a bare-metal Linux box is the ability to snapshot and backup.
Before you make any major changes to a VM or container, you can take a Snapshot. This freezes the current state of the disk. If you break something, you can roll back to the snapshot in seconds.
For long-term safety, Proxmox has a built-in backup tool. You can schedule backups of your containers and VMs to run nightly, saving them to a dedicated storage drive. For the ultimate in homelab data protection, you can even set up a separate machine running Proxmox Backup Server (PBS), which does deduplicated, incremental backups over the network.
Summary and Call to Action
Setting up Proxmox is the first major step in taking control of your digital life. By moving away from cloud subscriptions and running your own services in lightweight LXC containers or dedicated VMs, you gain privacy, learn valuable IT skills, and save money.
In this guide, we covered the hardware requirements, installing the OS, fixing the enterprise repository, understanding network bridges, and spinning up your very first containerized web server.
What’s next? If you found this guide helpful, make sure to subscribe to the Self-Hosted Tech YouTube channel and bookmark this blog. We have a ton of upcoming tutorials, including how to configure PCIe passthrough for local AI, setting up Proxmox Backup Server, and deploying complex application stacks using Docker.
Leave a comment below or on the video letting us know what hardware you’re running Proxmox on, and what service you plan to self-host first. Happy homelabbing!