Proxmox VE Setup Guide: Build Your Homelab Foundation
Complete beginner's guide to installing and configuring Proxmox VE. Create VMs, containers, and leverage AI for automation.
You’re tired of paying VMware licensing fees. Or maybe you want to consolidate five aging servers into one powerful machine. Perhaps you’re eager to learn enterprise infrastructure concepts without enterprise pricing. Whatever brought you here, you’re in the right place.
Proxmox VE makes all of this possible—completely free and open-source.
But here’s the challenge: Most Proxmox guides assume you already know virtualization inside and out. Documentation is scattered. The fear of “getting it wrong” on your first installation is real. That’s where this guide comes in.
Why This Guide Is Different
At homelabbing.io, we take a unique approach:
- Step-by-step installation with clear explanations at every decision point
- Practical examples from real homelabs, not theoretical scenarios
- Common mistakes highlighted so you can avoid them before they happen
- AI-forward angles showing how modern automation enhances Proxmox management
This isn’t just another installation walkthrough. It’s your roadmap to building a production-grade homelab foundation.
What You’ll Accomplish
By the end of this guide, you will:
- Install Proxmox VE from scratch in 30 minutes
- Access the web interface and complete initial configuration
- Create your first virtual machine within 45 minutes
- Understand when to use VMs versus containers
- Set up automated backups and user permissions
- Know the path forward for advanced features like clustering and automation
Whether you’re running a single server or planning a multi-node cluster, this guide gives you the foundation you need.
Content Roadmap
Here’s what we’ll cover:
- Proxmox VE Fundamentals - What it is, how it compares, and why it’s perfect for homelabs
- Prerequisites & Preparation - Hardware requirements, BIOS settings, and network planning
- Installation Process - Complete walkthrough from USB creation to first login
- Initial Configuration - Networking, storage, and user management
- Creating Resources - Step-by-step VM and container creation
- AI-Assisted Approach - How automation transforms Proxmox management
- Troubleshooting - Solutions to common problems
- Next Steps - Your learning path forward
Let’s dive in.
Proxmox VE Fundamentals
What Is Proxmox VE?
Proxmox Virtual Environment (VE) is an open-source virtualization platform that combines two proven technologies into a unified management interface:
KVM Virtual Machines: Full-featured hypervisor for running complete operating systems—Windows, Linux, BSD—with near-native performance. Each VM runs its own kernel and has complete OS isolation. Think of KVM VMs as “complete computers” running inside your physical server.
LXC Containers: Lightweight containerization specifically for Linux distributions. Containers share the host kernel while maintaining process and filesystem isolation through Linux namespaces and cgroups. LXC containers use 50-80% fewer resources than VMs, start in 1-2 seconds, and are perfect for running services like web servers, databases, or Docker hosts.
The Power of Both Together:
Here’s what makes Proxmox unique: You can run a Windows VM for desktop applications alongside lightweight Linux containers for your services—all managed from a single web interface. This hybrid approach gives you flexibility that pure container platforms (like Kubernetes) or traditional hypervisors (like VMware ESXi) can’t match.
Management Features:
- Unified web-based control panel (accessible via HTTPS)
- Comprehensive REST API for automation
- Built-in clustering for high availability
- Live migration of VMs and containers
- Integrated snapshot and backup systems
- Software-defined networking (SDN)
- GPU and PCI device passthrough
- Support for multiple storage backends
Real-World Example:
Imagine you’re running a home lab. You need:
- A Windows VM for testing applications (KVM)
- A Linux web server (LXC container)
- A database server (LXC container)
- A Docker host for containerized apps (LXC container)
Proxmox lets you run all of these efficiently on a single physical server, with the web server and database containers using minimal resources while the Windows VM gets the full performance it needs.
Proxmox vs. Other Hypervisors
You have choices when it comes to virtualization platforms. Let’s compare them honestly:
| Feature | Proxmox VE | VMware ESXi | Hyper-V |
|---|---|---|---|
| Cost | Free (open-source) | Licensed ($$$) | Free with Windows / Licensed |
| Container Support | Yes (native LXC) | Limited | No native support |
| REST API | Full, documented | Limited by license | Yes |
| Clustering | No license required | Requires vSphere/vCenter | Failover Cluster required |
| Live Migration | Yes (free) | Yes (licensed) | Yes |
| Performance | Near-identical | Slight edge in some workloads | Good |
| Learning Curve | Moderate | Steeper | Moderate |
| Community | Growing, active | Huge ecosystem | Large ecosystem |
| Hardware Support | Runs on commodity hardware | Certified hardware list | Windows-dependent |
Why Choose Proxmox for Your Homelab?
- Zero cost barrier - No licensing fees, ever. All features included.
- Runs on anything - Old desktops, repurposed servers, modern hardware—Proxmox adapts.
- Full API access - Build automation projects without paying for “enterprise editions.”
- Learn real skills - Proxmox uses industry-standard Linux, KVM, and container technologies.
- Debian base - Stable, secure, with access to 50,000+ software packages.
- Optional support - Get professional support if you need it, but community support is excellent.
The Honest Truth:
VMware ESXi is more polished and has a larger ecosystem, but the licensing costs are prohibitive for home labs. Hyper-V is free if you’re already in the Windows ecosystem, but it lacks the flexibility of native container support and requires Windows management tools. Proxmox hits the sweet spot: enterprise features, zero cost, and maximum flexibility.
Why Proxmox for Homelabs?
Let’s get specific about why Proxmox excels in home lab environments:
Hardware Flexibility:
Proxmox runs on commodity hardware. That old Dell desktop from 2015? It can become your virtualization host. That gaming PC you upgraded? Perfect Proxmox server. Unlike enterprise hypervisors with hardware compatibility lists, Proxmox works with standard x86-64 hardware and modern Linux drivers.
Feature Completeness:
There are no “home lab” versus “enterprise” editions. When you download Proxmox VE, you get:
- Unlimited VMs and containers
- Full clustering capabilities
- High availability features
- All storage options (local, NFS, iSCSI, Ceph)
- Complete API access
- Live migration
- Advanced networking (VLANs, SDN)
- Backup and restore tools
Learning Environment:
Proxmox is used in production environments worldwide. Skills you learn managing your home Proxmox cluster translate directly to professional environments. You’re not learning a “toy” version—you’re learning the real thing.
Common Use Cases That Fit Proxmox Perfectly:
- Server Consolidation: Replace multiple physical servers with VMs on one host
- Development Environment: Spin up test VMs, break them, recreate them in minutes
- Network Services Lab: Run DNS, DHCP, firewalls, and VPN servers as lightweight containers
- Kubernetes Learning: Deploy a multi-node K8s cluster in VMs
- Application Testing: Test software deployments before production
- Home Automation: Run Home Assistant, Pi-hole, media servers
- Infrastructure Automation: Learn Terraform, Ansible, and Infrastructure as Code
Cost Comparison (3-Year TCO):
- Proxmox VE: $0 (community edition with full features)
- VMware ESXi: $995+ per host + $3,000-$6,000 for vCenter (essential for clustering)
- Hyper-V: Free with Windows Server license (~$1,000), or free with Windows 10/11 (limited features)
The savings are real, and you get a platform that’s actively developed with modern features like container support.
Prerequisites & Preparation
Hardware Requirements
Let’s be realistic about what Proxmox needs to run well. There’s a difference between “minimum” and “recommended,” and I’ll explain both.
Minimum Requirements (Will Work, But Limited)
These are the bare minimum specs from Proxmox documentation:
- CPU: 64-bit processor with virtualization extensions (Intel VT-x or AMD-V)
- RAM: 2 GB minimum
- Storage: 32 GB for OS installation
- Network: One network interface card (NIC)
Reality Check: These minimums will get Proxmox installed and running, but you won’t be able to do much with them. With 2 GB RAM, you’ll struggle to run even a single VM. Consider these “proof of concept” requirements.
Recommended Specifications for Real Homelabs (5-10 VMs)
Here’s what I recommend for a functional home lab:
CPU:
- Intel: 6+ cores with VT-x and VT-d support
- Examples: Intel i5-9600K or newer, i7-9700K or newer
- 9th generation or later preferred for better performance and features
- AMD: 6+ cores with AMD-V and AMD-Vi support
- Examples: AMD Ryzen 5 3600 or newer, Ryzen 7 3700X or newer
- Passmark Score: 2,000+ single-thread for smooth operation
- Must have: Virtualization extensions enabled in BIOS
What to check: Before buying used hardware, verify on the manufacturer’s spec sheet that your CPU supports:
- Intel: VT-x (virtualization) and VT-d (device passthrough)
- AMD: AMD-V (virtualization) and AMD-Vi (device passthrough)
RAM:
- 16 GB: Minimum for running 5-10 lightweight VMs comfortably
- 32 GB: Sweet spot for serious home labs with mixed workloads
- 64 GB+: For heavy usage, multiple Windows VMs, or ZFS storage
- ECC RAM: Nice to have (especially with ZFS), but not required
Rule of thumb: Allocate 2-4 GB per VM, plus 4-8 GB for Proxmox itself. If using ZFS, add 1-2 GB per TB of storage for ARC cache.
Storage: Three-Tier Approach
Think about storage in layers:
OS/System: Fast NVMe SSD (240-500 GB)
- Where Proxmox itself is installed
- Boot times and system responsiveness
- Example: Samsung 980 NVMe
VM Storage: Additional SSD or fast HDD pool
- Where VM disks live
- Performance matters here—SSDs make VMs feel snappy
- Example: 1-2 TB SSD or 4-8 TB HDD depending on budget
Backup Storage: Separate drive or NAS
- Keep backups isolated from primary storage
- Can be slower, prioritize capacity
- Example: Large HDD, external USB drive, or network NAS
RAID considerations:
- Hardware RAID controller (if you have one)
- Software RAID via ZFS (built into Proxmox)
- Or simple mirroring for basic redundancy
Network:
- Gigabit Ethernet: Minimum standard today
- Dual NICs: Recommended for separating management traffic from VM traffic
- 10 GbE: Nice to have for shared storage or high-performance clusters
Power & Cooling:
- UPS: Recommended for graceful shutdowns during power failures
- Adequate cooling: Servers run 24/7—ensure proper airflow
- Power consumption: Calculate your electricity costs for always-on operation
Special Considerations:
BIOS/UEFI Settings You’ll Need:
- Virtualization extensions (VT-x or AMD-V): Required
- IOMMU/VT-d (Intel) or AMD-Vi (AMD): Required for GPU/PCI passthrough
- These are typically disabled by default—you’ll enable them during installation prep
Budget Examples:
Budget Build ($300-500 used):
- Intel i5-8400 or Ryzen 5 2600
- 16 GB DDR4 RAM
- 240 GB NVMe SSD + 1 TB HDD
- Basic Gigabit Ethernet
Mid-Range Build ($800-1,200):
- Intel i7-10700 or Ryzen 7 3700X
- 32 GB DDR4 RAM
- 500 GB NVMe SSD + 2 TB SATA SSD
- Dual Gigabit NICs
Performance Build ($2,000+):
- Intel i9-12900K or Ryzen 9 5900X
- 64 GB DDR4/DDR5 RAM
- 1 TB NVMe SSD + 4 TB NVMe SSD
- 10 GbE network card
Software Prerequisites & Network Planning
Download and Prepare Proxmox VE
Step 1: Download the ISO
Visit https://www.proxmox.com/en/downloads and download the latest stable release. As of December 2025, the current stable version is Proxmox VE 9.1.
Step 2: Verify the Download
Always verify the SHA256 checksum to ensure your download isn’t corrupted:
# Linux/Mac
sha256sum proxmox-ve_9.1-*.iso
# Windows PowerShell
Get-FileHash proxmox-ve_9.1-*.iso -Algorithm SHA256 Compare the output with the checksum on the Proxmox download page. They must match exactly.
Step 3: Create Bootable USB
You have several options:
Balena Etcher (Recommended for Beginners):
- Download from https://www.balena.io/etcher/
- Open Etcher
- Select the Proxmox ISO
- Select your USB drive (8 GB or larger)
- Click “Flash!”
Rufus (Windows):
- Download from https://rufus.ie/
- Select your USB device
- Select the Proxmox ISO
- Partition scheme: GPT (for UEFI) or MBR (for BIOS)
- Click “Start”
dd command (Linux):
# CAREFUL: Wrong device will destroy data
# Verify device with: lsblk
sudo dd if=proxmox-ve_9.1-*.iso of=/dev/sdX bs=4M status=progress
sudo sync Replace /dev/sdX with your actual USB device (like /dev/sdb). Never use partitions like sda1—use the whole device.
Network Planning: Critical Pre-Installation Step
Before you start installation, answer these questions:
Network Planning Worksheet:
1. What hostname will you use?
Example: pve1.homelab.local or proxmox.home.local
Your answer: _________________________________
2. Static IP or DHCP?
Recommendation: Static (for stability)
Your answer: _________________________________
3. If static, what IP address?
Example: 192.168.1.10
Must be: Outside your DHCP range, within your subnet
Your answer: _________________________________
4. What is your subnet mask?
Example: 255.255.255.0 (for /24 networks)
Your answer: _________________________________
5. What is your gateway IP?
Example: 192.168.1.1 (usually your router)
Your answer: _________________________________
6. What DNS servers will you use?
Primary: _________________________________
(Example: 8.8.8.8, 1.1.1.1, or your router IP)
Secondary: _________________________________
(Example: 8.8.4.4, 1.0.0.1, or leave blank) Why This Matters:
Your hostname is difficult to change after installation—Proxmox uses it for clustering and internal configurations. Choose carefully now.
Using a static IP prevents the “I can’t find my Proxmox server” problem when your router’s DHCP lease expires and assigns a different IP.
Network Design Tip:
If your home network is 192.168.1.0/24, consider reserving a range for servers:
- 192.168.1.1-192.168.1.50: DHCP range for computers, phones, etc.
- 192.168.1.51-192.168.1.100: Static IPs for servers and infrastructure
- 192.168.1.101-192.168.1.200: VMs and containers
This prevents IP conflicts and keeps your network organized.
Installation Process
Now we get to the exciting part: installing Proxmox VE on your hardware. I’ll walk you through every step with explanations for each decision point.
Phase 1: Pre-Installation Preparation
Step 1: Configure BIOS/UEFI Settings
Before booting from USB, you need to enable virtualization in your system firmware.
Access BIOS/UEFI:
- Insert the bootable USB into your server
- Power on the system
- Press the BIOS key during startup
- Common keys: Delete, F2, F12, F1, Esc
- Look for on-screen prompts like “Press DEL for Setup”
- Some systems use different keys—check your motherboard manual
Enable Virtualization:
For Intel Systems:
- Navigate to Advanced settings (sometimes under “CPU Configuration”)
- Look for “Intel Virtualization Technology” or “Intel VT-x”
- Set to Enabled
- If you plan to do GPU/PCI passthrough:
- Also enable “Intel VT-d” or “VT for Directed I/O”
For AMD Systems:
- Navigate to Advanced settings (CPU section)
- Look for “SVM Mode” or “AMD-V”
- Set to Enabled
- For passthrough:
- Enable “IOMMU” or “AMD-Vi”
Optional Performance Settings:
- XMP/DOCP: Enable this to run your RAM at its rated speed (if you have performance RAM)
- Boot Order: Set USB as first boot device (you can change this back after installation)
- Secure Boot: If Proxmox fails to boot, try disabling Secure Boot
Save and Exit: Press F10 (or the save key indicated on screen) to save settings and reboot.
Step 2: Boot from USB
Your system should now boot from the USB drive and display the Proxmox VE installation menu. You’ll see several options:
- Install Proxmox VE (Graphical) ← Choose this
- Install Proxmox VE (Terminal UI)
- Advanced options
- Rescue boot
- Test memory
Select “Install Proxmox VE (Graphical)” and press Enter.
Troubleshooting Boot Issues:
- “Boot failure” or returning to BIOS: USB not bootable—recreate with Etcher
- Black screen: Try the Terminal UI option instead
- “Kernel panic”: Virtualization might not be enabled in BIOS—go back and check
- Won’t boot from USB: Check boot order in BIOS, try different USB port (USB 2.0 often more compatible)
Phase 2: Installation Walkthrough
The graphical installer will guide you through several configuration screens. Let’s go through each one.
Step 3: Accept EULA
The first screen shows the Proxmox VE End User License Agreement.
- Read if you like (it’s AGPL open-source license)
- Check “I agree to the above terms and conditions”
- Click Next
This is standard open-source licensing—you’re agreeing to use Proxmox under AGPL v3 terms.
Step 4: Select Target Disk and Filesystem
This screen shows all available disks where Proxmox can be installed.
Selecting Your Disk:
You’ll see a list like:
/dev/sda(500 GB SSD)/dev/sdb(2 TB HDD)- etc.
Choose your fastest disk for Proxmox OS installation. This is typically your SSD or NVMe drive.
WARNING: The selected disk will be completely erased. Make absolutely sure you’re selecting the correct disk if you have multiple drives.
Click “Options” to Choose Filesystem:
ext4 (Recommended for Beginners):
- Standard Linux filesystem
- Proven, stable, excellent performance
- Wide compatibility
- Easy to understand and manage
- Choose this if: You’re new to Proxmox or want simplicity
XFS:
- High-performance filesystem
- Good for large files
- Less common in Proxmox setups
ZFS (Advanced Users):
- Copy-on-write filesystem with advanced features
- Enables: RAID, snapshots, compression, deduplication
- Requires: More RAM (recommended 1 GB per TB, plus 8 GB base)
- Benefits: Data integrity checks, flexible storage management
- Choose this if: You have 16+ GB RAM and want advanced features
If You Choose ZFS:
Additional options appear:
RAID Level Selection:
- RAID0: No redundancy—faster but risky (one drive fails = data loss)
- RAID1 (Mirror): Two drives with identical copies—one can fail safely
- RAID10: Requires 4+ drives—combines striping and mirroring
- RAIDZ-1: Similar to RAID5—one drive can fail (3+ drives)
- RAIDZ-2: Similar to RAID6—two drives can fail (4+ drives)
- RAIDZ-3: Three drives can fail (5+ drives required)
Example: If you have 4x 1TB drives and select RAIDZ-1:
- Available capacity: ~3 TB
- Redundancy: 1 drive can fail without data loss
- Performance: Good read, moderate write
Compression: Enable for automatic data compression (saves space, minimal CPU cost)
My Recommendation for First-Timers:
- Single disk? Use ext4
- Two disks? Use ZFS RAID1
- Three+ disks? Use ext4 initially, learn ZFS later, or use RAIDZ-1 if you’re confident
Click Next after making your selections.
Step 5: Country, Timezone, and Keyboard Layout
This screen configures regional settings.
Country:
- Select your country
- This determines which Debian package mirror Proxmox uses for updates
- Affects time server selection
Time Zone:
- Select your local timezone
- Important for accurate log timestamps
- Example: America/New_York, Europe/London, Asia/Tokyo
Keyboard Layout:
- Choose your keyboard language
- Affects how keys are mapped (important for passwords with special characters)
- Default: US (en-us)
These settings can be changed after installation if needed, but getting them right now saves hassle later.
Click Next.
Step 6: Administrator Password and Email
Set Root Password:
This is your Proxmox administrator password. You’ll use it to:
- Log into the web interface
- SSH into the server
- Execute system commands
Password Requirements:
- Minimum 5 characters (but use more)
- Recommended: 12+ characters
- Mix of uppercase, lowercase, numbers, symbols
- Store in a password manager
Confirm Password:
- Re-type exactly to confirm
Email Address:
Enter an email for system notifications:
- Backup job reports
- Update availability
- System alerts
- Subscription notices (even if you’re using the free version)
You can use a personal email or a dedicated homelab email address.
Security Note: Write down or store your root password securely. Unlike desktop Linux, there’s no easy password recovery for Proxmox. If you lose it, you’ll need to boot into recovery mode for a complex reset process.
Click Next.
Step 7: Network Configuration (Most Important Step)
This is the most critical configuration screen. Mistakes here can make Proxmox inaccessible, requiring reinstallation.
Management Interface:
Proxmox detects your network interfaces and displays them:
eno1,eth0,enp2s0(common naming conventions)
If you have multiple network interfaces, choose the one connected to your network—typically the first one or the one with a link light.
Hostname (FQDN):
Enter a fully qualified domain name for your Proxmox host.
Format: hostname.domain.tld
Examples:
pve1.homelab.local(if your domain is homelab.local)proxmox.home.localpve-server.lab.internal
Critical: The hostname is difficult to change after installation. Proxmox uses it for:
- Clustering (identifying nodes)
- SSL certificates
- Internal configurations
Avoid:
- Just “proxmox” (not FQDN format)
- Using an external domain you don’t own
- Special characters or spaces
IP Address (IPv4):
This is where you configure static IP or use DHCP.
Option 1: Static IP (Recommended)
Static IPs don’t change, making your Proxmox host always accessible at the same address.
Fields to fill:
- IP Address: The static IP you chose during planning (e.g., 192.168.1.10)
- Netmask: Your subnet mask (typically 255.255.255.0 for home networks, which is /24)
- Gateway: Your router’s IP address (e.g., 192.168.1.1)
How to find your gateway:
- It’s usually your router’s IP
- On Windows:
ipconfig→ look for “Default Gateway” - On Linux/Mac:
ip route→ look for “default via”
Option 2: DHCP (Easier, Less Stable)
If you select DHCP, your router assigns an IP automatically.
Pros:
- Simpler initial setup
- No need to know network details
Cons:
- IP might change after reboot
- Can’t access Proxmox if you forget the IP
- Not suitable for production
My recommendation: Use static IP. Take the extra 2 minutes to plan it properly.
DNS Server:
Enter DNS servers for domain name resolution.
Common options:
- Google DNS: 8.8.8.8 and 8.8.4.4
- Cloudflare DNS: 1.1.1.1 and 1.0.0.1
- Quad9: 9.9.9.9
- Your router: If it provides DNS (e.g., 192.168.1.1)
You can enter one or two DNS servers (primary and secondary).
Network Configuration Example:
Management Interface: eno1
Hostname (FQDN): pve1.homelab.local
IP Address (CIDR): 192.168.1.10/24
Gateway: 192.168.1.1
DNS Server: 8.8.8.8 Common Mistakes to Avoid:
- Wrong subnet: IP must be in your network range
- If gateway is 192.168.1.1, your IP should be 192.168.1.x
- IP conflict: Make sure no other device uses this IP
- Forgotten IP: Write down your static IP—you’ll need it to access the web interface
- Complex hostname: Keep it simple and memorable
Click Next after carefully verifying all network settings.
Step 8: Review and Install
The summary screen displays all your configuration choices:
- Country and timezone
- Keyboard layout
- Root password (hidden)
- Email address
- Management interface
- Hostname
- IP address
- Gateway
- DNS
Review Everything Carefully:
This is your last chance to catch mistakes. Check especially:
- Hostname (hard to change later)
- IP address (must be correct)
- Target disk (will be erased)
Ready to Install:
If everything looks correct:
- Click Install to begin
The installation process takes 5-10 minutes. You’ll see a progress bar as Proxmox:
- Partitions your disk
- Formats filesystems
- Copies system files
- Installs packages
- Configures networking
- Sets up bootloader
Do not power off during installation.
Installation Complete:
When finished, you’ll see a success message with:
- Your Proxmox web interface URL:
https://192.168.1.10:8006 - Confirmation of successful installation
Remove the USB drive and click Reboot (or the system will reboot automatically).
First Boot:
The first boot may take 2-5 minutes as Proxmox:
- Initializes services
- Configures networking
- Starts web interface
- Prepares clustering components
You’ll see a login prompt on the console showing your IP address. This means Proxmox is ready.
Phase 3: Post-Installation Access
Step 9: Access the Proxmox Web Interface
Now for the moment of truth: accessing your new Proxmox installation.
From Another Computer:
- Open a web browser (Chrome, Firefox, Edge, Safari)
- Navigate to:
https://<your-proxmox-ip>:8006- Example:
https://192.168.1.10:8006 - Or:
https://pve1.homelab.local:8006(if DNS is configured)
- Example:
The Port:
- Proxmox uses port 8006 (not 80, not 8080, not 443)
- Always include
:8006in the URL - HTTPS is required (HTTP won’t work)
SSL Certificate Warning:
You’ll see a browser security warning:
- “Your connection is not private”
- “This site is not secure”
- Certificate error
This is completely normal. Proxmox uses a self-signed SSL certificate. Click:
- Chrome: “Advanced” → “Proceed to 192.168.1.10 (unsafe)”
- Firefox: “Advanced” → “Accept the Risk and Continue”
- Safari: “Show Details” → “visit this website”
You can install a proper SSL certificate later if desired.
Proxmox Login Screen:
You’ll see the Proxmox VE login interface with fields for:
Username: root
Password: The root password you set during installation
Realm: Linux PAM standard authentication or Proxmox VE authentication
- For the root user, either works
- Default:
Linux PAM standard authentication
Language: Choose your preferred interface language
Click Login.
Subscription Notice:
On first login, you’ll see a subscription dialog:
“You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.”
Don’t panic—this is normal. Proxmox is fully functional without a subscription. The community edition includes all features. Subscriptions provide:
- Access to enterprise update repository (more stable, tested updates)
- Professional support
- Support for Proxmox development
For home labs, the free community edition is perfectly fine.
Check “Don’t show this again” (optional) and click OK.
Welcome to Proxmox VE:
You’re now in the Proxmox web interface! You’ll see:
- Left sidebar: Your server node, storage, and resources
- Center panel: Summary dashboard with CPU, memory, and storage usage
- Top menu: Create VM, Create CT, and management tools
Take a moment to explore the interface. You’ve successfully installed Proxmox VE.
Step 10: Apply System Updates
Before doing anything else, update your system to get the latest security patches and features.
Update Process:
Navigate to Updates:
- Click your node name in the left sidebar (e.g., “pve1”)
- Click Updates in the node menu
Refresh Repository:
- Click Refresh button
- Proxmox connects to Debian repositories and checks for available updates
- Wait 10-20 seconds
Review Available Updates:
- You’ll see a list of packages with available updates
- Typical first update: 50-200 packages (this is normal for a fresh install)
Apply Updates:
- Click Upgrade button
- A terminal window opens showing update progress
- Enter ‘Y’ when prompted to confirm
- Wait 5-15 minutes depending on your internet speed
Reboot (if needed):
- If a kernel update is included, you should reboot
- A notification will indicate if reboot is required
- To reboot: Click Reboot button (top right) or use command:
reboot
Why Updates Matter:
- Security: Patches for vulnerabilities
- Stability: Bug fixes and improvements
- Features: New capabilities in minor releases
- Compatibility: Updated drivers and hardware support
Update Schedule Going Forward:
Check for updates weekly or monthly:
- Critical security updates: Apply immediately
- Regular updates: Apply during maintenance windows
- Kernel updates: Require reboot
Troubleshooting Updates:
If updates fail with “repository not accessible” errors:
- Check internet connectivity:
ping 8.8.8.8 - Verify DNS resolution:
ping debian.org - Check firewall settings on your router
Your Proxmox installation is now complete and up to date. Let’s move on to initial configuration.
Initial Configuration & First Steps
Now that Proxmox is installed and updated, let’s configure the essential settings you’ll need for day-to-day operation.
Understanding Proxmox Networking
Networking in Proxmox uses Linux bridges to connect VMs and containers to your physical network. Understanding this is crucial for making your VMs accessible.
What Is a Bridge?
Think of a bridge as a virtual network switch inside Proxmox. VMs connect to the bridge, and the bridge connects to your physical network interface. This allows VMs to communicate with your network as if they were physical computers.
Default Bridge: vmbr0
After installation, Proxmox creates vmbr0 automatically:
- Connected to your physical NIC (eno1, eth0, etc.)
- Has your Proxmox management IP (192.168.1.10 in our example)
- VMs can connect to vmbr0 to access your network
View Network Configuration:
- Click Datacenter in the left sidebar
- Expand your node name (pve1)
- Click Network
You’ll see:
- vmbr0: Your bridge (type: Linux Bridge)
- eno1 (or eth0): Your physical NIC
- Connection showing vmbr0 → eno1 → Physical Network
Typical Beginner Setup:
For most home labs, the default configuration works perfectly:
- Use vmbr0 for management and VM traffic
- VMs get IP addresses from your router’s DHCP (or you assign static IPs)
- Everything communicates on the same network
When to Add More Bridges:
You might create additional bridges (vmbr1, vmbr2) for:
- Network segmentation: Separate lab network from production
- VLAN tagging: Isolate VM traffic by VLAN
- Multi-NIC setups: Dedicate NICs to specific purposes
Example: Two-Bridge Setup
If you have dual NICs and want to separate traffic:
vmbr0 (Management):
- Connected to eno1
- Proxmox web interface
- SSH access
- Management traffic only
vmbr1 (VM Traffic):
- Connected to eno2
- All VM/container traffic
- Separate from management for stability For now, stick with the default vmbr0 setup. You can add complexity later as you learn.
Network Configuration Best Practices:
- Don’t modify network settings without planning - You can lock yourself out
- Apply configuration changes deliberately - Changes take effect when you click “Apply Configuration”
- Keep console access available - If web interface becomes inaccessible, console can fix it
- Document your setup - Write down bridge assignments and IP ranges
Storage Configuration
Storage in Proxmox determines where VMs, containers, ISOs, and backups are stored. Let’s understand the defaults and when to expand.
Default Storage Pool: local
After installation, you have one storage pool called “local”:
View Storage:
- Click Datacenter
- Click Storage
- You’ll see “local” listed
What’s in “local”:
- Path:
/var/lib/vz - Type: Directory (standard filesystem)
- Content types enabled:
- ISO images (.iso files for OS installation)
- Container templates (.tar.gz files for LXC)
- VZDump backup files (.vma, .tar archives)
- Disk images (VM disks)
Check Storage Usage:
- Click Storage → local
- View the Summary tab
- See: Used space, Available space, Total capacity
Rule: Try to keep storage below 80% full for optimal performance.
Storage Content Types Explained:
- Disk image: Virtual hard drives for VMs (vmdk, qcow2, raw)
- ISO image: Installation media for operating systems
- Container template: Pre-built root filesystems for LXC
- VZDump backup file: Backup archives of VMs/containers
- Snippets: Configuration files and scripts
When to Add More Storage:
You’ll need additional storage when:
- Your main drive is getting full (>70%)
- You want to separate VM storage from system storage
- You need shared storage for clustering
- You want specialized storage (fast NVMe for databases, large HDD for archives)
Adding Local Storage (Additional Drive):
If you have a second drive in your system:
Prepare the drive (via console/SSH):
# Identify the disk lsblk # Partition the disk (example: /dev/sdb) fdisk /dev/sdb # Press: n (new partition), p (primary), 1 (partition 1), Enter, Enter, w (write) # Format the partition mkfs.ext4 /dev/sdb1 # Create mount point mkdir -p /mnt/vm-storage # Mount the drive mount /dev/sdb1 /mnt/vm-storage # Make permanent (add to /etc/fstab) echo "/dev/sdb1 /mnt/vm-storage ext4 defaults 0 0" >> /etc/fstabAdd to Proxmox:
- Datacenter → Storage → Add → Directory
- ID:
vm-storage(choose a name) - Directory:
/mnt/vm-storage - Content: Check “Disk image”, “Container”, “VZDump backup file”
- Click Add
Now you have two storage pools: local and vm-storage.
Adding Network Storage (NFS):
If you have a NAS or NFS server:
Prepare NFS server:
- Create an NFS export (e.g.,
/mnt/proxmox-nfs) - Allow access from Proxmox IP
- Create an NFS export (e.g.,
Add to Proxmox:
- Datacenter → Storage → Add → NFS
- ID:
nas-storage - Server:
192.168.1.20(your NAS IP) - Export:
/mnt/proxmox-nfs - Content: Select desired types
- Click Add
Network storage is essential for clustering (shared storage required for live migration).
Storage Best Practices:
- Separate system and VM storage - Prevents VMs from filling system disk
- Use fast storage for VM disks - SSDs dramatically improve VM responsiveness
- Keep backups on separate physical storage - Protect against drive failure
- Monitor storage usage regularly - Set up alerts at 70% capacity
- Plan for growth - VMs grow over time—leave headroom
User and Permission Management
By default, you’re logging in as root—the all-powerful administrator. For better security and multi-user environments, let’s create additional users.
When to Add Users:
- Other people need access to Proxmox
- You want to give limited permissions (e.g., manage VMs but not system settings)
- You want to audit who made what changes
- Best practice: Use dedicated accounts instead of sharing root
Create a New User:
Navigate to User Management:
- Datacenter → Permissions → Users
Add User:
- Click Add button
- User name: Choose a username (e.g.,
homelab-admin) - Realm:
Proxmox VE authentication(stores password in Proxmox) - Password: Set a strong password
- Confirm Password: Re-enter
- Email: Optional (for notifications)
- Expire: Optional (set account expiration)
- Enabled: Checked (user can log in)
- Click Add
Authentication Realms:
- Proxmox VE authentication: Users stored in Proxmox database
- Linux PAM standard authentication: Uses system Unix accounts
- LDAP/Active Directory: Enterprise integration (advanced)
For home labs, use “Proxmox VE authentication.”
Assign Permissions to User:
Creating a user isn’t enough—they need permissions to do anything.
Navigate to Permissions:
- Datacenter → Permissions → Add → User Permission
Configure Permission:
- Path: Where permission applies
/= Entire datacenter (all nodes, VMs, storage)/vms/100= Specific VM only/storage/local= Specific storage only
- User: Select the user you created
- Role: Select permission level (see below)
- Propagate: Checked (apply to child objects)
- Click Add
- Path: Where permission applies
Understanding Roles:
Proxmox has predefined roles with different permission levels:
| Role | Permissions | Use Case |
|---|---|---|
| Administrator | Full access (all privileges) | Homelab owner, complete control |
| PVEVMAdmin | Create, modify, delete VMs/containers | Trusted user managing VMs |
| PVEVMUser | Use/access VMs (console, start/stop) | Regular user with assigned VM |
| PVEPoolUser | Access VMs in a specific pool | Limited access to grouped VMs |
| PVEAuditor | Read-only access (view only) | Monitoring, reporting |
| PVEDatastoreUser | View backup information | Backup operators |
| NoAccess | No access (explicit deny) | Block access to specific resources |
Example Permission Scenarios:
Scenario 1: Give friend full VM management
- User:
friend-user - Path:
/ - Role:
PVEVMAdmin - Result: Can create/delete VMs but can’t modify Proxmox system settings
Scenario 2: Give user access to one VM only
- User:
limited-user - Path:
/vms/100 - Role:
PVEVMUser - Result: Can start/stop/access VM 100, nothing else
Scenario 3: Read-only monitoring account
- User:
monitor - Path:
/ - Role:
PVEAuditor - Result: Can view everything, modify nothing
Resource Pools (Advanced Organization):
For complex setups, organize VMs into pools:
- Datacenter → Permissions → Pools → Create
- Name the pool:
production,testing,lab, etc. - Assign VMs/storage to the pool
- Grant users access to the entire pool
Best Practices:
- Never share the root password - Create individual user accounts
- Use least privilege - Give minimum permissions needed
- Document access - Keep track of who has what access
- Regular audits - Review user list quarterly, remove unused accounts
- Strong passwords - Enforce 12+ characters for all users
For most home labs, you’ll probably stick with root access, but understanding users helps when you’re ready to expand or need to give others limited access.
Creating Virtual Machines and Containers
This is where Proxmox shines—creating and managing virtual resources. Let’s walk through creating both a VM and a container step-by-step.
Creating Your First KVM Virtual Machine
KVM VMs are full virtual machines running their own operating system kernel. Use VMs for:
- Windows operating systems
- Operating systems other than Linux
- Workloads requiring complete isolation
- Applications needing kernel modules or drivers
Let’s create a Ubuntu Linux VM as our first example.
Preparation: Upload an ISO Image
Before creating a VM, you need installation media.
Download an ISO:
Choose an operating system:
- Ubuntu: ubuntu.com/download/server - Ubuntu 22.04 LTS or 24.04 LTS
- Debian: debian.org - Stable release
- Windows: Use your Windows installation media
- Rocky Linux: rockylinux.org - RHEL alternative
Download the ISO to your local computer.
Upload to Proxmox:
Navigate to Storage:
- Click your node (pve1) → local → ISO Images tab
Upload Method 1: From Local Computer
- Click Upload button
- Click Select File and choose your ISO
- Click Upload
- Wait for upload to complete (5-30 minutes depending on size and network speed)
Upload Method 2: Download from URL (Faster)
- Click Download from URL
- Paste the direct download URL
- File name: Auto-filled from URL
- Click Query URL → Download
- Proxmox downloads directly (faster than uploading from your computer)
The ISO is now stored in /var/lib/vz/template/iso/ and ready to use.
Create the Virtual Machine
Click the Create VM button in the top-right corner. A wizard opens with multiple tabs.
Tab 1: General
- Node: Your Proxmox node (pve1) - Already selected
- VM ID: Unique identifier for this VM
- Auto-assigned (usually starting at 100)
- You can change it (e.g., use 200-series for web servers, 300-series for databases)
- Keep numbers sequential for organization
- Name: Descriptive name for this VM
- Example:
ubuntu-web-01,windows-desktop,test-server - Use lowercase and hyphens (not spaces)
- Example:
- Resource Pool: Optional (leave “Default”)
- Start at boot: Optional (check if this VM should auto-start with Proxmox)
Example:
VM ID: 100
Name: ubuntu-server-01 Click Next.
Tab 2: OS
- Use CD/DVD disc image file (iso): Selected
- Storage: local
- ISO Image: Select the Ubuntu ISO you uploaded
- Click dropdown and choose:
ubuntu-24.04-live-server-amd64.iso
- Click dropdown and choose:
- Type: Linux (or Windows if installing Windows)
- Version: Latest version in list
Why Type matters: Proxmox optimizes drivers and defaults based on OS type. Choosing “Linux” enables VirtIO drivers by default, which offer better performance.
Click Next.
Tab 3: System
- Graphic card: Default (SPICE or VNC)
- Machine: Default (i440fx for older systems, q35 for modern UEFI)
- BIOS: SeaBIOS (default) or OVMF (UEFI)
- Use SeaBIOS for most Linux VMs (simple, compatible)
- Use OVMF (UEFI) for modern Windows or if you need Secure Boot
- SCSI Controller: VirtIO SCSI (default, best performance)
- Qemu Agent: Check this box (enables Proxmox integration)
- Allows: Clean shutdown, snapshot freeze, better monitoring
- You’ll install the agent inside the guest OS later
- Add TPM: Unchecked (only needed for Windows 11)
Important: Enable Qemu Agent—it’s easy to forget and improves integration significantly.
Click Next.
Tab 4: Disks
This is where you configure the VM’s virtual hard drive.
- Bus/Device: SCSI 0 (default, best performance)
- Storage: local-lvm or your storage pool
- Choose fast storage for better VM performance
- Disk size (GiB): Set based on OS requirements
- Linux minimal: 10-20 GB
- Linux desktop: 40-60 GB
- Windows 10/11: 60-100 GB
- Database servers: 100+ GB
- Start smaller—you can expand later if needed
- Cache: Default (or writeback for better performance)
- Discard: Checked (enables TRIM for thin provisioning—saves space)
- SSD emulation: Check if using SSD storage (improves guest OS optimization)
Example for Ubuntu Server:
Disk size: 32 GiB
Discard: Checked Click Next.
Tab 5: CPU
Configure how many CPU cores the VM gets.
- Sockets: 1 (number of virtual CPU sockets)
- Keep at 1 unless you have specific licensing requirements (like Windows Server)
- Cores: Number of CPU cores
- Light workload: 1-2 cores
- Moderate workload: 2-4 cores
- Heavy workload: 4-8 cores
- Start conservative—you can add more later
- Type: kvm64 (default) or host
- kvm64: Safe, allows live migration between different CPUs
- host: Better performance, exposes all CPU features to guest
- Use kvm64 unless you need specific CPU features
CPU allocation tip: Don’t over-allocate. If you have 8 physical cores, don’t create VMs totaling 20 vCPUs—you’ll get poor performance. Leave headroom.
Example:
Sockets: 1
Cores: 2
Type: kvm64 Click Next.
Tab 6: Memory
Configure RAM allocation.
- Memory (MiB): RAM in megabytes
- 1024 MiB = 1 GB
- 2048 MiB = 2 GB
- 4096 MiB = 4 GB
OS-specific recommendations:
Linux minimal: 512-1024 MB (0.5-1 GB)
Linux desktop: 2048-4096 MB (2-4 GB)
Windows 10/11: 4096-8192 MB (4-8 GB)
Database servers: 4096-16384 MB (4-16 GB)
Minimum memory: Optional (for memory ballooning)
- Leave blank for now
Ballooning Device: Enabled
- Allows Proxmox to dynamically adjust VM RAM
- Works if QEMU agent is installed
Memory allocation tip: Like CPUs, don’t over-commit dramatically. If you have 32 GB host RAM:
- Reserve 4-8 GB for Proxmox
- Allocate the remaining 24-28 GB across VMs
- Watch for swap usage (indicates over-commitment)
Example:
Memory: 2048 MiB (2 GB) Click Next.
Tab 7: Network
Configure network connectivity.
- Bridge: vmbr0 (your default bridge)
- VLAN Tag: Empty (unless you’re using VLANs)
- Model: VirtIO (paravirtualized)
- VirtIO: Best performance for Linux (default)
- Intel E1000: Better compatibility, use if VirtIO doesn’t work
- VirtIO for Linux, E1000 for Windows is the common pattern
- MAC address: Auto-generated (leave default)
- Firewall: Unchecked (unless using Proxmox firewall)
Network Model Explanation:
- VirtIO: Paravirtualized network driver—fast but requires guest driver support
- E1000: Emulates Intel network card—slower but universally compatible
Example:
Bridge: vmbr0
Model: VirtIO (paravirtualized) Click Next.
Tab 8: Confirm
Review all settings:
- VM ID and name
- OS type and ISO
- Disk size and storage
- CPU cores
- Memory allocation
- Network configuration
Options:
- Start after created: Check this if you want the VM to boot immediately after creation
- Advanced: Unchecked (default settings are fine)
Everything look good? Click Finish.
Proxmox creates the VM in seconds. You’ll see it appear in the left sidebar under your node.
Install the Operating System
Now your VM exists, but it’s empty—let’s install the OS.
Select your VM:
- Click the VM in the left sidebar (e.g., “100 (ubuntu-server-01)“)
Start the VM:
- Click Start button (top right, play icon)
- VM powers on and boots from the ISO
Open Console:
- Click Console (or >_ Console tab)
- You’ll see the VM display, just like a physical computer’s monitor
Follow OS Installation:
- Ubuntu: Follow the standard Ubuntu Server installation wizard
- Choose language, keyboard layout, network settings, disk partitioning
- Create a user account and password
- Install OpenSSH server (if you want SSH access)
- Wait for installation to complete (10-30 minutes)
Reboot:
- After installation, the VM reboots
- You may need to disconnect the ISO:
- Hardware → CD/DVD Drive → Do not use any media → OK
Login:
- You now have a running Ubuntu VM
- Login with the username/password you created during installation
Install QEMU Guest Agent
For the best Proxmox integration, install the QEMU Guest Agent inside your VM.
In the VM console:
For Debian/Ubuntu:
sudo apt update
sudo apt install qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent For Rocky Linux/CentOS:
sudo dnf install qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent For Windows:
- Download guest agent ISO from Proxmox
- Hardware → Add → CD/DVD Drive → Select virtio-win.iso
- Inside Windows, open virtio-win drive
- Run guest-agent installer
- Restart Windows
Benefits of QEMU Guest Agent:
- Clean VM shutdown (instead of hard power-off)
- Accurate IP address display in Proxmox
- Filesystem freeze for consistent snapshots
- Better performance metrics
After installing the agent, shut down your VM and start it again. Proxmox will now show detailed information about the VM (IP address, running processes, etc.).
Congratulations! You’ve created and configured your first Proxmox VM. The VM behaves exactly like a physical computer—you can install software, configure services, and use it for any purpose.
Creating an LXC Container
LXC containers are lightweight virtualization perfect for Linux workloads. They start in 1-2 seconds and use 50-80% fewer resources than VMs.
When to use LXC instead of VMs:
- Running Linux-only services (web servers, databases, Docker hosts)
- Need fast startup times
- Want to maximize density (run more workloads on same hardware)
- Don’t need kernel-level isolation
When NOT to use LXC:
- Running Windows or BSD (containers are Linux-only)
- Need complete isolation (VMs are more isolated)
- Require custom kernel modules
Download a Container Template
Container templates are pre-built root filesystems for various Linux distributions.
Navigate to Templates:
- Click your node → local → CT Templates tab
Download Template:
- Click Templates button
- Browse available templates:
- Ubuntu (22.04, 24.04) - Most popular, good for beginners
- Debian (11, 12) - Lightweight, stable
- Alpine - Extremely minimal, only 5 MB!
- Rocky Linux - RHEL clone
- Arch Linux - Rolling release
- Click a template to download it
- Wait for download to complete (usually 30-120 seconds)
Example: Download ubuntu-24.04-standard_24.04-1_amd64.tar.zst
Create the Container
Click Create CT button (top right).
Tab 1: General
- Node: Your Proxmox node (pre-selected)
- CT ID: Unique container ID
- Start at 101 (to distinguish from VMs at 100)
- Hostname: Container’s hostname
- Example:
web-server,docker-host,db-container - Don’t use FQDN for containers (just hostname)
- Example:
- Unprivileged container: Checked (recommended for security)
- Unprivileged: Runs as non-root, safer
- Privileged: Full root access, needed for some special cases
- Nesting: Unchecked (enable only if running Docker/LXC inside container)
- Password: Root password for the container
- You’ll use this to login to the container
- Confirm password: Re-enter
- SSH public key: Optional (for SSH key authentication)
Example:
CT ID: 101
Hostname: web-server
Password: <strong-password> Click Next.
Tab 2: Template
- Storage: local
- Template: Select the template you downloaded
- Example:
ubuntu-24.04-standard_24.04-1_amd64.tar.zst
- Example:
Click Next.
Tab 3: Disks
- Storage: local-lvm or your storage pool
- Disk size (GiB): Storage allocated to container
- Minimal services: 4-8 GB
- Web servers: 10-20 GB
- Docker hosts: 20-50 GB
- General purpose: 16-32 GB
- Mount options: Default
- ACLs: Unchecked (unless needed)
Containers use less space than VMs because they share the kernel and are typically more efficient.
Example:
Disk size: 16 GiB Click Next.
Tab 4: CPU
- Cores: Number of CPU cores
- Containers can share CPU more efficiently than VMs
- 1-2 cores for light services
- 2-4 cores for moderate load
- Leave at default (uses all available) unless limiting
- CPU limit: Unlimited (0) or set a limit
- Default 0 = no limit
- Or set to 1.0 = 1 full core, 2.0 = 2 cores, etc.
Example:
Cores: 2
CPU limit: 0 (unlimited) Click Next.
Tab 5: Memory
- Memory (MiB): RAM allocation
- Minimal: 256-512 MB
- Web servers: 512-1024 MB (0.5-1 GB)
- Databases: 1024-4096 MB (1-4 GB)
- Docker hosts: 2048-4096 MB (2-4 GB)
- Swap (MiB): Swap space
- Usually half of RAM
- Example: 512 MB RAM → 256 MB swap
- Or equal to RAM for safety
Containers use much less RAM than VMs—you can run 10 containers with 1 GB each on a 16 GB host comfortably.
Example:
Memory: 1024 MiB (1 GB)
Swap: 512 MiB Click Next.
Tab 6: Network
- Name: eth0 (default container interface)
- Bridge: vmbr0 (your default bridge)
- IPv4: DHCP or static
- DHCP: Automatic (easier, but IP might change)
- Select: DHCP
- Static: Manual IP assignment (recommended for servers)
- IPv4/CIDR: Example:
192.168.1.50/24 - Gateway: Example:
192.168.1.1
- IPv4/CIDR: Example:
- DHCP: Automatic (easier, but IP might change)
- IPv6: DHCP, static, or ignore
- Usually ignore unless you use IPv6
- MAC address: Auto
- VLAN Tag: Empty (unless using VLANs)
- Firewall: Unchecked
Example with DHCP:
IPv4: DHCP
IPv6: Ignore Example with static IP:
IPv4/CIDR: 192.168.1.50/24
Gateway (IPv4): 192.168.1.1 Click Next.
Tab 7: DNS
- DNS domain: Your domain (optional)
- Example:
homelab.local - Leave empty if unsure
- Example:
- DNS servers: Space-separated list
- Example:
8.8.8.8 8.8.4.4 - Or your router IP
- Example:
- Use host settings: Checked (uses Proxmox’s DNS settings)
Example:
Use host settings: Checked Click Next.
Tab 8: Confirm
Review all settings:
- Hostname and CT ID
- Template
- Disk size
- CPU and memory
- Network configuration
Options:
- Start after created: Check to boot container immediately
Click Finish.
The container is created instantly (containers are very fast to create).
Access and Use the Container
Select the container:
- Click the container in the sidebar (e.g., “101 (web-server)“)
Start the container:
- Click Start button
Open console:
- Click Console
- You’ll see a login prompt in 1-2 seconds (containers boot fast!)
Login:
- Username:
root - Password: The password you set during creation
- Username:
You’re now inside the container:
# Update packages apt update && apt upgrade -y # Install software apt install nginx -y # Check IP address ip addr show eth0 # Test connectivity ping 8.8.8.8
Your container is now running. You can install software, configure services, and use it just like a lightweight Linux VM.
Container vs VM: Performance Comparison
Let’s compare a VM and container doing the same task:
| Metric | VM (Ubuntu) | Container (Ubuntu) |
|---|---|---|
| Boot time | 30-60 seconds | 1-2 seconds |
| RAM usage (idle) | 1,000 MB | 50-100 MB |
| Disk usage | 4-10 GB | 500 MB - 2 GB |
| CPU overhead | 5-10% | <1% |
| Startup lag | Noticeable | Instant |
Use containers when possible for efficiency. Use VMs when you need isolation or non-Linux OSes.
AI-Assisted Approach: The Future of Homelab Management
Manual VM creation is fine for a few servers. But what if you need to deploy 10 VMs? 50? What if you want to test different configurations quickly? What if you want your infrastructure to heal itself when problems arise?
This is where AI and automation transform Proxmox from a manual management platform into an intelligent, self-operating infrastructure.
Why AI Matters for Proxmox Management
The Manual Management Challenge:
As your homelab grows, manual tasks become overwhelming:
- Provisioning: Creating 10 VMs manually takes an hour or more
- Configuration: Installing software on each VM individually is repetitive and error-prone
- Monitoring: Watching dashboards constantly for issues is tedious
- Troubleshooting: Correlating logs across multiple VMs is time-consuming
- Optimization: Identifying which VMs waste resources requires manual analysis
- Backups: Verifying backup integrity manually is neglected until it’s too late
Traditional automation (scripts, Ansible, Terraform) helps but still requires:
- Writing custom code for each scenario
- Manual monitoring of results
- Pre-defined playbooks for every situation
- No intelligence in decision-making
How AI Agents Transform the Game:
AI agents add intelligence to automation:
- Natural Language Requests: “Deploy a 3-node Kubernetes cluster with monitoring”
- Intelligent Decision-Making: Agent determines optimal node placement, resource allocation
- Self-Healing: Detects issues and fixes them without human intervention
- Predictive Analysis: Forecasts problems before they occur
- Continuous Optimization: Constantly rebalances resources for efficiency
- Learning: Improves over time based on your environment’s patterns
Think of AI agents as tireless administrators who never sleep, never forget, and constantly improve your infrastructure.
Real-World AI Use Cases for Proxmox
Let me show you specific scenarios where AI agents create massive value.
Use Case 1: Automated VM Provisioning
Traditional Approach:
- Open Proxmox web interface
- Click through 8 tabs of the Create VM wizard
- Install OS (wait 20 minutes)
- Configure network, install software, set up services
- Repeat for each VM
- Total time: 1-2 hours per VM
AI Agent Approach:
You say: “Deploy a LAMP stack with separate web and database servers, configure automatic backups, and set up monitoring.”
AI Agent does:
Parses your requirements:
- Two VMs needed (web + database)
- Ubuntu 24.04 LTS (assumed or asks)
- LAMP = Linux, Apache, MySQL, PHP
- Backups: Daily at 2 AM, 7-day retention
- Monitoring: Prometheus + Grafana
Generates infrastructure code (Terraform):
resource "proxmox_vm_qemu" "web_server" { name = "web-server-01" target_node = "pve1" cores = 2 memory = 2048 disk { size = "32G" storage = "local-lvm" type = "scsi" } network { model = "virtio" bridge = "vmbr0" } } resource "proxmox_vm_qemu" "db_server" { name = "db-server-01" target_node = "pve1" cores = 4 memory = 4096 disk { size = "64G" storage = "local-lvm" type = "scsi" } }Provisions VMs via Proxmox API (parallel creation in 60 seconds)
Executes configuration (Ansible playbook):
- name: Configure Web Server hosts: web_server tasks: - name: Install Apache apt: name: [apache2, php, libapache2-mod-php] state: present - name: Configure firewall ufw: rule: allow port: '80,443' proto: tcp - name: Configure Database Server hosts: db_server tasks: - name: Install MySQL apt: name: mysql-server state: present - name: Secure installation mysql_secure_installation: yesSets up backups (vzdump schedule)
Installs monitoring agents
Validates deployment:
- Web server responds on port 80
- Database accepts connections
- Backups configured correctly
- Monitoring shows both servers
Reports back:
- “LAMP stack deployed successfully”
- “Web server: http://192.168.1.50”
- “Database server: 192.168.1.51:3306”
- “Next backup: Tonight at 2:00 AM”
Total time: 5 minutes (mostly unattended)
Implementation Technology:
- Proxmoxer (Python library for Proxmox API)
- Terraform (Infrastructure as Code)
- Ansible (Configuration management)
- Large Language Model (Requirement parsing and code generation)
Use Case 2: Intelligent Backup Management
Traditional Approach:
- Set up backup schedule manually
- Hope backups succeed
- Check logs occasionally (if you remember)
- Discover backup failures weeks later when you need to restore
AI Agent Approach:
The agent continuously monitors your backup ecosystem:
Monday Morning:
- Agent runs: Backup verification test
- Attempts to restore VM 100 to temporary location
- Validates restored VM boots and is accessible
- Deletes temporary VM
- Reports: “All backups verified, restoration successful”
Tuesday:
- Backup job for VM 105 fails (disk full)
- Agent detects failure within 60 seconds
- Analyzes: “Backup storage 95% full, caused by unexpected data growth in VM 105”
- Actions:
- Cleans up old backups (keeps only 5 most recent instead of 7)
- Frees 50 GB of space
- Re-runs backup job
- Success
- Alerts admin: “Backup initially failed due to storage space, resolved automatically. Consider adding storage capacity soon.”
Wednesday:
- Agent analyzes backup patterns over 3 months
- Detects: VM 110 backup time increased from 10 minutes to 45 minutes
- Inference: “Data growth rate 15% per month, backup window becoming problematic”
- Recommendation: “Switch VM 110 to Proxmox Backup Server (PBS) for incremental backups”
- Generates migration plan with code examples
Friday:
- Agent generates weekly backup report:
- 12 VMs backed up successfully
- Average backup time: 18 minutes
- Total backup storage: 450 GB (68% of capacity)
- Prediction: Storage full in 14 weeks at current growth rate
- 3 restore tests performed, all successful (100% success rate)
- Recommendation: “Add 500 GB backup storage by week 12”
Implementation Technology:
- Proxmox Backup Server API integration
- Automated restore testing
- Time-series analysis for trend detection
- Alert correlation and intelligent notification
Use Case 3: Cost-Aware Resource Optimization
The Problem: You allocated 8 GB RAM to a VM because “it might need it someday.” Six months later, the VM uses 1.2 GB on average. That’s 6.8 GB of wasted RAM that could power 3-4 additional containers.
AI Agent Solution:
Continuous Analysis: The agent monitors actual resource usage for all VMs/containers over time:
VM 100 (web-server):
Allocated: 8 GB RAM, 4 CPU cores, 100 GB storage
Actual average usage: 1.2 GB RAM, 0.8 CPU cores, 35 GB storage
Waste: 85% RAM, 80% CPU, 65% storage
VM 101 (database):
Allocated: 4 GB RAM, 2 CPU cores
Actual average usage: 3.8 GB RAM, 1.9 CPU cores
Waste: 5% RAM, 5% CPU
Status: Well-sized
VM 102 (test-server):
Allocated: 4 GB RAM, 2 CPU cores
Last started: 47 days ago
Running time: 2 hours in last 90 days
Status: Zombie VM (rarely used)
Container 201 (monitoring):
Allocated: 2 GB RAM
Actual average: 450 MB
Waste: 78% RAM Recommendations Generated:
Right-Size VM 100:
- Reduce RAM: 8 GB → 2 GB (saves 6 GB)
- Reduce CPU: 4 cores → 2 cores
- Impact: No performance degradation (usage well below limits)
- Savings: 6 GB RAM available for other workloads
Archive VM 102:
- Create final backup
- Shutdown and mark for deletion
- Free: 4 GB RAM, 2 CPU cores, 50 GB storage
- Or: Convert to “on-demand startup” (start only when needed)
Right-Size Container 201:
- Reduce RAM: 2 GB → 512 MB (saves 1.5 GB)
- Still maintains 100+ MB headroom
Impact Calculation:
Current state:
- Host: 32 GB RAM, running 8 VMs/containers
- RAM usage: 30 GB allocated (94% committed)
- Actual usage: 14 GB (46% of host)
After optimization:
- RAM freed: 7.5 GB + 4 GB from zombie VM = 11.5 GB
- New allocation: 18.5 GB (58% committed)
- Available for new workloads: 11.5 GB
Result: Can deploy 5-10 additional containers
Or 2-3 additional VMs
Without buying hardware Implementation:
- Prometheus for metrics collection
- Python for usage pattern analysis
- Machine learning for anomaly detection (detecting unusual usage spikes)
- Report generation with actionable recommendations
The agent doesn’t just tell you “RAM usage is high”—it tells you exactly which VMs to resize and by how much, with confidence based on historical data.
Use Case 4: Predictive Issue Detection
Traditional Monitoring: Alerts fire when things are already broken.
AI Predictive Monitoring: Alerts fire before things break.
Example Scenario:
Week 1:
- Agent monitors storage usage: 65%
Week 2:
- Storage usage: 68%
- Growth rate: 3% per week
Week 4:
- Storage usage: 74%
- Growth rate: 3% per week (consistent)
Agent Analysis:
Current: 74% (222 GB used of 300 GB)
Growth: 9 GB per week
Calculation: 26 GB free / 9 GB per week = 2.9 weeks until full
Prediction: Storage exhausted by January 8, 2026 Agent Action (Week 5):
- Alert sent: “PREDICTION: Storage will be full in 2 weeks”
- Severity: Warning (not critical yet)
- Recommendation: “Add storage capacity or clean up old data”
- Detailed breakdown:
- VM 100 growing fastest (4 GB/week) - check logs for unusual data
- Backups consuming 45% of storage
- Recommendation: Move backups to separate NAS or add 500 GB drive
You take action: Order a 1 TB drive, add it as storage, configure backup migration.
Result: No downtime, no emergency scrambling, no data loss. Problem solved proactively.
Other Predictive Scenarios:
Network Bandwidth Prediction:
- Current: 400 Mbps average
- Trend: +50 Mbps per month
- Prediction: Saturate 1 Gbps link in 12 months
- Recommendation: Upgrade to 10 GbE or implement QoS
Certificate Expiration:
- SSL certificate expires in 30 days
- Auto-renewal might fail (has failed before due to DNS issue)
- Alert 45 days early: “Verify auto-renewal working, certificate expires soon”
Hardware Failure Prediction:
- Disk SMART data shows increasing error rate
- Prediction: Failure likely within 2-4 weeks
- Alert: “Replace disk proactively before failure”
Implementation Technology:
- Time-series database (InfluxDB or Prometheus)
- Linear regression for trend analysis
- Anomaly detection for unusual patterns
- Alerting with context and recommendations
Getting Started with Proxmox Automation
You don’t need to build an AI agent on day one. Start small and build progressively.
Phase 1: Learn the Foundation (Weeks 1-2)
Get comfortable with manual Proxmox management:
- Create 5-10 VMs manually
- Create 3-5 containers
- Set up backups manually
- Understand the web interface thoroughly
Goal: Know what you want to automate.
Phase 2: Basic Scripting (Weeks 3-4)
Start with simple automation:
Example: Python script to list all VMs
from proxmoxer import ProxmoxAPI
# Connect to Proxmox
proxmox = ProxmoxAPI('192.168.1.10', user='root@pam', password='your-password', verify_ssl=False)
# List all VMs
for node in proxmox.nodes.get():
print(f"Node: {node['node']}")
for vm in proxmox.nodes(node['node']).qemu.get():
print(f" VM {vm['vmid']}: {vm['name']} - Status: {vm['status']}") Example: Script to create VM snapshot
from proxmoxer import ProxmoxAPI
proxmox = ProxmoxAPI('192.168.1.10', user='root@pam', password='your-password', verify_ssl=False)
# Create snapshot of VM 100
proxmox.nodes('pve1').qemu(100).snapshot.post(snapname='backup-before-update')
print("Snapshot created successfully") Goal: Understand Proxmox API basics.
Phase 3: Infrastructure as Code (Weeks 5-8)
Use Terraform to define infrastructure as code:
Install Terraform:
# Download Terraform from terraform.io
wget https://releases.hashicorp.com/terraform/1.6.0/terraform_1.6.0_linux_amd64.zip
unzip terraform_1.6.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/ Create Terraform configuration:
# main.tf
terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
version = "2.9.14"
}
}
}
provider "proxmox" {
pm_api_url = "https://192.168.1.10:8006/api2/json"
pm_user = "root@pam"
pm_password = "your-password"
pm_tls_insecure = true
}
resource "proxmox_vm_qemu" "web_server" {
name = "web-server-terraform"
target_node = "pve1"
clone = "ubuntu-template" # Must exist as template
cores = 2
memory = 2048
disk {
size = "32G"
storage = "local-lvm"
type = "scsi"
}
network {
model = "virtio"
bridge = "vmbr0"
}
} Deploy:
terraform init
terraform plan # Preview changes
terraform apply # Create VM Now your infrastructure is defined as code—version-controlled, reproducible, and automatable.
Goal: Deploy VMs via code instead of clicking.
Phase 4: Configuration Automation (Weeks 8-12)
Use Ansible to automate software installation:
Install Ansible:
sudo apt install ansible -y Create Ansible playbook:
# webserver-setup.yml
---
- name: Configure Web Server
hosts: web_servers
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes
- name: Install Apache and PHP
apt:
name:
- apache2
- php
- libapache2-mod-php
state: present
- name: Start and enable Apache
systemd:
name: apache2
state: started
enabled: yes
- name: Configure firewall
ufw:
rule: allow
port: '80,443'
proto: tcp
- name: Deploy website
copy:
src: ./website/
dest: /var/www/html/
owner: www-data
group: www-data Run playbook:
ansible-playbook -i inventory.ini webserver-setup.yml Combine Terraform + Ansible:
- Terraform creates VMs
- Ansible configures software
- Complete application stack deployed automatically
Goal: Fully automated application deployment.
Phase 5: AI Integration (Weeks 13+)
Integrate large language models for intelligent automation:
Example: Natural language VM provisioning
from proxmoxer import ProxmoxAPI
import openai
def parse_vm_request(request):
"""Use LLM to parse natural language into VM specs"""
prompt = f"""
Parse this VM request into a JSON specification:
"{request}"
Return JSON with: name, cores, memory_mb, disk_gb, os_type
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return json.loads(response.choices[0].message.content)
def create_vm(specs):
"""Create VM based on parsed specifications"""
proxmox = ProxmoxAPI('192.168.1.10', user='root@pam', password='password', verify_ssl=False)
proxmox.nodes('pve1').qemu.post(
vmid=get_next_vmid(),
name=specs['name'],
cores=specs['cores'],
memory=specs['memory_mb'],
# ... full VM creation
)
# Usage
request = "Create a Ubuntu web server with 4 cores, 4GB RAM, and 50GB storage"
specs = parse_vm_request(request)
create_vm(specs) Goal: Natural language infrastructure management.
Learning Resources
Proxmox Automation:
Infrastructure as Code:
AI Integration:
- LangChain - Framework for LLM applications
- OpenAI API - GPT integration
The path from manual management to AI-powered automation is gradual. Start simple, learn the tools, and build complexity over time.
Troubleshooting Common Issues
Even with careful setup, you’ll encounter problems. Here’s how to diagnose and fix the most common Proxmox issues.
Issue 1: Can’t Access Web Interface
Symptom: Browser can’t connect to https://YOUR-PROXMOX-IP:8006
Possible Causes & Solutions:
Cause 1: Wrong IP Address
- Solution: Verify Proxmox IP from console
# At console login, check IP ip addr show vmbr0 - Try the IP shown (might be different if using DHCP)
Cause 2: Port 8006 Blocked by Firewall
- Check if Proxmox firewall is enabled:
pve-firewall status - If enabled, allow port 8006:
# Edit firewall rules nano /etc/pve/firewall/cluster.fw # Add: IN ACCEPT -p tcp --dport 8006
Cause 3: pveproxy Service Not Running
- Check service status:
systemctl status pveproxy - Restart if stopped:
systemctl restart pveproxy
Cause 4: Network Misconfiguration
- Verify network connectivity:
ping 8.8.8.8 # Test internet ping <your-router-ip> # Test local network - Check bridge configuration:
cat /etc/network/interfaces
Quick Fix:
# Restart networking
systemctl restart networking
# Restart web services
systemctl restart pveproxy
systemctl restart pvedaemon Issue 2: VM Won’t Start or Boot Issues
Symptom: VM fails to start or crashes immediately
Possible Causes & Solutions:
Cause 1: Insufficient Resources
- Check host resources:
free -h # Check RAM df -h # Check disk space - Solution: Free up resources or reduce VM allocation
Cause 2: Lock File Present
- VMs can get locked after crashes:
# Check for locks ls /var/lock/qemu-server/ - Remove lock:
rm /var/lock/qemu-server/lock-<vmid>.conf
Cause 3: Disk Image Corruption
- Check VM disk:
qemu-img check /var/lib/vz/images/<vmid>/vm-<vmid>-disk-0.qcow2 - Attempt repair if errors found:
qemu-img check -r all /path/to/disk.qcow2
Cause 4: BIOS/UEFI Mismatch
- If VM was created with BIOS but needs UEFI (or vice versa)
- Solution: Recreate VM with correct firmware type
Issue 3: Network Issues in VMs
Symptom: VM can’t reach network or internet
Possible Causes & Solutions:
Cause 1: Wrong Bridge Assignment
- Check VM network settings:
- Hardware tab → Network Device → Verify bridge is
vmbr0
- Hardware tab → Network Device → Verify bridge is
- Change if incorrect
Cause 2: Driver Issues
- Linux: Use VirtIO (best performance)
- Windows: Use E1000 initially, then install VirtIO drivers
- Solution: Change network model in VM Hardware settings
Cause 3: DHCP Not Working
- Verify DHCP server is reachable from VM network
- Test: Assign static IP to VM and test connectivity
- If static works, DHCP issue is external to Proxmox
Cause 4: Firewall Blocking
- Check VM firewall settings (inside guest OS)
- Check Proxmox VM firewall (if enabled)
- Disable to test:
# Inside VM sudo ufw disable # Ubuntu/Debian sudo systemctl stop firewalld # Rocky/CentOS
Diagnostic Commands:
Inside VM:
# Check IP assignment
ip addr show
# Check routing
ip route show
# Test connectivity
ping 8.8.8.8 # Internet
ping YOUR-GATEWAY-IP # Gateway
# Test DNS
nslookup google.com Issue 4: Storage Full or Performance Issues
Symptom: “No space left on device” or slow VM performance
Solutions:
Check Storage Usage:
# Overall disk usage
df -h
# Specific locations
du -sh /var/lib/vz/*
# Largest files
du -ah /var/lib/vz/ | sort -rh | head -20 Clean Up Space:
Remove old backups:
cd /var/lib/vz/dump/ ls -lah # Delete old backups manually or configure retention policyClear template cache:
cd /var/lib/vz/template/cache/ rm <old-templates>Check for temporary files:
du -sh /tmp rm -rf /tmp/*Prune unused images:
# List all VM disks pvesm list local-lvm # Remove unused disks (careful!) pvesm free local-lvm:vm-<vmid>-disk-0
For ZFS:
# Check pool status
zpool status
# Check pool usage
zpool list
# Clear ARC cache if memory issues
echo 3 > /proc/sys/vm/drop_caches Issue 5: Backup Failures
Symptom: Backup jobs fail or can’t restore
Common Causes:
Cause 1: Insufficient Storage Space
df -h /var/lib/vz/dump/
# Free up space or change backup location Cause 2: VM Running Without Guest Agent
- Install QEMU guest agent in VM
- Enable in VM options: Options → QEMU Guest Agent → Enable
Cause 3: Permission Issues
# Fix permissions
chown -R root:root /var/lib/vz/dump/
chmod -R 755 /var/lib/vz/dump/ Cause 4: Corrupted Backup
- Remove corrupted backup file
- Create fresh backup
Test Backup Integrity:
# List backups
vzdump --list
# Test restore (to temporary VM ID)
qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma 999 --storage local-lvm Issue 6: Update/Upgrade Problems
Symptom: System updates fail or cause boot issues
Safe Update Process:
Before updating:
# Backup important VMs vzdump <vmid> --storage local --mode snapshot # Take notes of running services systemctl list-units --state=runningUpdate carefully:
apt update apt list --upgradable apt upgrade -y # Regular updates apt full-upgrade # Major updates (careful)If update breaks system:
- Boot into older kernel (GRUB menu)
- Rollback problematic packages:
apt install <package>=<old-version> apt-mark hold <package>
Check logs:
journalctl -xe tail -100 /var/log/apt/history.log
Issue 7: High CPU or Memory Usage
Symptom: Proxmox host is slow, unresponsive
Diagnose:
# Check overall resource usage
top
# More detailed view
htop
# Check per-VM resource usage
qm list Solutions:
Identify resource-hungry VM:
# Show VM resource usage pvesh get /nodes/pve1/qemu --output-format=json | jq '.[] | {vmid,name,mem,maxmem}'Limit VM resources:
- Edit VM → CPU → Set CPU limit
- Edit VM → Memory → Reduce allocation
Check for runaway processes:
# Inside problematic VM top # Kill problematic processes if neededEnable CPU pinning for performance isolation:
- Advanced: Pin specific VMs to specific CPU cores
- Prevents noisy neighbor problems
Diagnostic Commands Reference
Keep these handy for troubleshooting:
# System status
pvesh get /nodes/pve1/status
# List all VMs
qm list
# List all containers
pct list
# Check cluster status (if clustered)
pvecm status
# View task history
pvesh get /cluster/tasks
# Check logs
journalctl -u pveproxy -f # Web interface logs
journalctl -u pvedaemon -f # Daemon logs
tail -f /var/log/syslog # System logs
# Network diagnostics
ip addr show # Show interfaces
ip route show # Show routing
brctl show # Show bridges
# Storage diagnostics
pvesm status # Show all storage
df -h # Disk usage
lsblk # Block devices When All Else Fails:
- Check Proxmox forum: forum.proxmox.com
- Consult logs:
/var/log/syslog,journalctl - Reboot (last resort):
reboot
Document your solutions—you’ll likely encounter similar issues again.
Next Steps: Your Learning Path Forward
Congratulations on setting up Proxmox VE! You now have a powerful virtualization platform running. Here’s how to continue your homelab journey.
Immediate Next Steps (Week 1)
1. Create Your First Real-World VM
Don’t just create test VMs—deploy something useful:
Pi-hole: Network-wide ad blocking
- Deploy Ubuntu LXC container
- Install Pi-hole:
curl -sSL https://install.pi-hole.net | bash - Configure router to use Pi-hole as DNS
Home Assistant: Home automation platform
- Download official VM image
- Import into Proxmox
- Access via http://YOUR-VM-IP:8123
Nextcloud: Self-hosted cloud storage
- Deploy Ubuntu VM or container
- Install Nextcloud
- Sync your files
2. Set Up Automated Backups
Don’t wait until you need a backup to realize you don’t have one:
# Create backup schedule
# Datacenter → Backup → Add
# Or via command line:
vzdump 100 --storage local --mode snapshot --compress zstd 3. Practice VM Management
Get comfortable with day-to-day operations:
- Start/stop VMs
- Take snapshots before changes
- Clone VMs for testing
- Adjust resources (CPU, RAM)
- Monitor performance metrics
Short-Term Goals (Weeks 2-4)
1. Explore LXC Containers
Containers are more efficient than VMs for many workloads:
- Deploy Docker in LXC container
- Run multiple lightweight services
- Compare resource usage: containers vs VMs
- Learn when to use each approach
2. Implement Monitoring
Set up proper monitoring for your homelab:
Option 1: Grafana + Prometheus
- Deploy Grafana in container
- Install Proxmox exporter
- Create dashboards for CPU, RAM, storage, network
Option 2: Netdata
- Lightweight, real-time monitoring
- Install on Proxmox host:
bash <(curl -Ss https://my-netdata.io/kickstart.sh) - Access: http://YOUR-PROXMOX-IP:19999
3. Organize Your Storage
Plan your storage strategy:
- Add second drive for VM storage
- Set up NFS share for backups (if you have NAS)
- Configure backup retention policies
- Document what goes where
Medium-Term Goals (Weeks 4-12)
1. Learn Infrastructure as Code
Start automating your infrastructure:
Week 4-6: Terraform Basics
- Install Terraform
- Write your first
.tffile - Deploy VM via code instead of GUI
- Version control your infrastructure (Git)
Week 7-9: Ansible Configuration
- Install Ansible
- Write playbooks for software installation
- Combine Terraform (create VMs) + Ansible (configure software)
- Deploy complete application stacks automatically
Week 10-12: Build a Pipeline
- Create GitHub repository for infrastructure code
- Set up automated deployments
- Deploy test environments on-demand
- Tear down environments when done
2. Experiment with Advanced Networking
Level up your network skills:
- Create multiple bridges
- Set up VLANs for network segmentation
- Implement pfSense VM as router/firewall
- Build isolated lab network for testing
3. Deploy a Kubernetes Cluster
Learn container orchestration:
- Deploy 3 Ubuntu VMs (1 master, 2 workers)
- Install Kubernetes using kubeadm
- Deploy applications to K8s
- Learn kubectl, pods, services, ingress
Advanced Topics (Months 3+)
1. Clustering and High Availability
If you have multiple Proxmox hosts:
- Create Proxmox cluster (3+ nodes)
- Set up shared storage (NFS or Ceph)
- Enable high availability for critical VMs
- Test live migration between nodes
- Simulate node failure and recovery
2. Proxmox Backup Server
Professional backup solution:
- Deploy PBS on separate VM or hardware
- Configure incremental backups
- Enable deduplication and compression
- Test restore procedures
- Set up off-site backup sync
3. GPU Passthrough
Pass physical GPU to VM:
- Enable IOMMU in BIOS
- Configure PCI passthrough
- Assign GPU to VM
- Use for: Gaming VMs, machine learning, video encoding
4. Automation and AI Integration
Build intelligent infrastructure:
- Implement Terraform + Ansible pipeline
- Create self-service VM provisioning portal
- Build monitoring with predictive alerting
- Integrate LLM for natural language infrastructure management
- Develop self-healing automation
5. Security Hardening
Lock down your homelab:
- Implement VLANs for network segmentation
- Set up VPN access (WireGuard or OpenVPN)
- Enable 2FA for Proxmox
- Install proper SSL certificates
- Configure firewall rules
- Regular security audits
Related homelabbing.io Guides
Continue your learning journey with these guides:
- “Proxmox Backup Strategies: Protecting Your Homelab” - Comprehensive backup and disaster recovery
- “Proxmox Clustering: Building High-Availability Infrastructure” - Multi-node clustering guide
- “Infrastructure as Code with Terraform and Proxmox” - Automate VM provisioning
- “Deploying Kubernetes on Proxmox: Complete Guide” - Container orchestration
- “Proxmox Storage Deep Dive: ZFS, NFS, and Ceph” - Advanced storage configurations
- “AI-Powered Infrastructure Management” - Intelligent automation for homelabs
Community Resources
Join the Proxmox community:
Official Resources:
- Proxmox Wiki - Comprehensive documentation
- Proxmox Forum - Active community support
- Proxmox API Documentation - For automation
Community Spaces:
- Reddit: r/Proxmox - Daily discussions, troubleshooting, showcases
- Discord: Homelab servers often have Proxmox channels
- YouTube: ServeTheHome, Craft Computing, TechnoTim - Proxmox tutorials
Learning Resources:
- LearnLinuxTV Proxmox Series - Excellent video tutorials
- Proxmox Documentation - Official PDF guides
- awesome-proxmox - Curated resources on GitHub
Keep Learning
Your Proxmox journey doesn’t end here—it’s just beginning. The skills you develop managing your homelab translate directly to professional environments:
- Virtualization: Understanding hypervisors and resource management
- Linux administration: Managing Debian-based systems
- Networking: VLANs, bridging, routing, firewalls
- Storage: Local, network, and distributed storage systems
- Automation: Infrastructure as Code, configuration management
- Monitoring: Observability and alerting
- Troubleshooting: Systematic problem diagnosis
Each VM you create, each problem you solve, each automation script you write—all of these build valuable skills.
Start small. Experiment fearlessly. Break things (in your lab). Learn constantly.
Your homelab is a safe space to make mistakes and learn from them. That’s the whole point.
Conclusion
You’ve just installed one of the most powerful open-source virtualization platforms available. Proxmox VE gives you enterprise-grade features with zero licensing costs—perfect for learning, experimentation, and running production workloads.
What You’ve Accomplished:
- Installed Proxmox VE from scratch
- Configured networking and storage
- Created your first virtual machine and container
- Learned the difference between VMs and containers
- Set up user permissions and backups
- Discovered how AI and automation can transform infrastructure management
- Built a foundation for advanced topics like clustering and orchestration
Remember:
- Start simple - Master the basics before attempting advanced features
- Document everything - Future you will thank present you
- Back up regularly - Test your backups before you need them
- Learn from failures - Your homelab is a safe place to break things
- Join the community - Share your experiences and learn from others
Proxmox VE is just the beginning. Whether you’re building a home automation setup, learning Kubernetes, or preparing for a career in infrastructure—you now have the foundation you need.
Your homelab journey starts now. Welcome to the world of virtualization.
Additional Resources
Quick Reference Commands
# VM Management
qm list # List all VMs
qm start <vmid> # Start VM
qm stop <vmid> # Stop VM
qm status <vmid> # Check VM status
qm snapshot <vmid> <name> # Create snapshot
# Container Management
pct list # List all containers
pct start <ctid> # Start container
pct stop <ctid> # Stop container
pct enter <ctid> # Enter container console
# Storage Management
pvesm status # Show storage status
pvesm list <storage> # List storage contents
df -h # Disk usage
# Backup Management
vzdump <vmid> # Manual backup
vzdump <vmid> --storage local # Backup to specific storage
qmrestore <backup-file> <vmid> # Restore VM
# System Management
pveversion # Show Proxmox version
apt update && apt upgrade # Update system
systemctl status pveproxy # Check web service
reboot # Reboot host
# Network Management
ip addr show # Show IP addresses
brctl show # Show bridges
ping 8.8.8.8 # Test connectivity Keyboard Shortcuts (Web UI)
- Ctrl + Alt + 1-9: Switch between VMs in console
- Ctrl + Alt + T: Open terminal
- Ctrl + Alt + D: Duplicate current view
Default File Locations
# Configuration
/etc/pve/ # Proxmox config files
/etc/network/interfaces # Network configuration
# Storage
/var/lib/vz/ # Default storage
/var/lib/vz/images/ # VM disks
/var/lib/vz/template/cache/ # Container templates
/var/lib/vz/template/iso/ # ISO images
/var/lib/vz/dump/ # Backup files
# Logs
/var/log/syslog # System log
journalctl -u pveproxy # Web interface log
journalctl -u pvedaemon # Daemon log Support and Help
Free Support:
- Proxmox Forum: forum.proxmox.com
- Documentation: pve.proxmox.com/wiki
- Community Discord and Reddit
Professional Support:
- Proxmox Subscription: Includes professional support and enterprise repositories
- Pricing: From €90/year per CPU socket
- More info: proxmox.com/en/proxmox-ve/pricing
Happy homelabbing!
This guide is part of the homelabbing.io learning series. Check out our other guides for deep dives into networking, automation, Kubernetes, and AI-powered infrastructure management.
Last updated: December 16, 2025 Proxmox VE version covered: 9.1