Virtualization beginner ⏱ 60 minutes

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.

By homelabbing.io • 2025-12-16
#proxmox#virtualization#hypervisor#beginner

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:

  1. Proxmox VE Fundamentals - What it is, how it compares, and why it’s perfect for homelabs
  2. Prerequisites & Preparation - Hardware requirements, BIOS settings, and network planning
  3. Installation Process - Complete walkthrough from USB creation to first login
  4. Initial Configuration - Networking, storage, and user management
  5. Creating Resources - Step-by-step VM and container creation
  6. AI-Assisted Approach - How automation transforms Proxmox management
  7. Troubleshooting - Solutions to common problems
  8. 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:

FeatureProxmox VEVMware ESXiHyper-V
CostFree (open-source)Licensed ($$$)Free with Windows / Licensed
Container SupportYes (native LXC)LimitedNo native support
REST APIFull, documentedLimited by licenseYes
ClusteringNo license requiredRequires vSphere/vCenterFailover Cluster required
Live MigrationYes (free)Yes (licensed)Yes
PerformanceNear-identicalSlight edge in some workloadsGood
Learning CurveModerateSteeperModerate
CommunityGrowing, activeHuge ecosystemLarge ecosystem
Hardware SupportRuns on commodity hardwareCertified hardware listWindows-dependent

Why Choose Proxmox for Your Homelab?

  1. Zero cost barrier - No licensing fees, ever. All features included.
  2. Runs on anything - Old desktops, repurposed servers, modern hardware—Proxmox adapts.
  3. Full API access - Build automation projects without paying for “enterprise editions.”
  4. Learn real skills - Proxmox uses industry-standard Linux, KVM, and container technologies.
  5. Debian base - Stable, secure, with access to 50,000+ software packages.
  6. 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:

  1. Server Consolidation: Replace multiple physical servers with VMs on one host
  2. Development Environment: Spin up test VMs, break them, recreate them in minutes
  3. Network Services Lab: Run DNS, DHCP, firewalls, and VPN servers as lightweight containers
  4. Kubernetes Learning: Deploy a multi-node K8s cluster in VMs
  5. Application Testing: Test software deployments before production
  6. Home Automation: Run Home Assistant, Pi-hole, media servers
  7. 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.

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:

  1. OS/System: Fast NVMe SSD (240-500 GB)

    • Where Proxmox itself is installed
    • Boot times and system responsiveness
    • Example: Samsung 980 NVMe
  2. 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
  3. 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):

  1. Download from https://www.balena.io/etcher/
  2. Open Etcher
  3. Select the Proxmox ISO
  4. Select your USB drive (8 GB or larger)
  5. Click “Flash!”

Rufus (Windows):

  1. Download from https://rufus.ie/
  2. Select your USB device
  3. Select the Proxmox ISO
  4. Partition scheme: GPT (for UEFI) or MBR (for BIOS)
  5. 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:

  1. Insert the bootable USB into your server
  2. Power on the system
  3. 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:

  1. Navigate to Advanced settings (sometimes under “CPU Configuration”)
  2. Look for “Intel Virtualization Technology” or “Intel VT-x”
  3. Set to Enabled
  4. If you plan to do GPU/PCI passthrough:
    • Also enable “Intel VT-d” or “VT for Directed I/O”

For AMD Systems:

  1. Navigate to Advanced settings (CPU section)
  2. Look for “SVM Mode” or “AMD-V”
  3. Set to Enabled
  4. 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.local
  • pve-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:

  1. Wrong subnet: IP must be in your network range
    • If gateway is 192.168.1.1, your IP should be 192.168.1.x
  2. IP conflict: Make sure no other device uses this IP
  3. Forgotten IP: Write down your static IP—you’ll need it to access the web interface
  4. 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:

  1. Partitions your disk
  2. Formats filesystems
  3. Copies system files
  4. Installs packages
  5. Configures networking
  6. 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:

  1. Open a web browser (Chrome, Firefox, Edge, Safari)
  2. Navigate to: https://<your-proxmox-ip>:8006
    • Example: https://192.168.1.10:8006
    • Or: https://pve1.homelab.local:8006 (if DNS is configured)

The Port:

  • Proxmox uses port 8006 (not 80, not 8080, not 443)
  • Always include :8006 in 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:

  1. Navigate to Updates:

    • Click your node name in the left sidebar (e.g., “pve1”)
    • Click Updates in the node menu
  2. Refresh Repository:

    • Click Refresh button
    • Proxmox connects to Debian repositories and checks for available updates
    • Wait 10-20 seconds
  3. 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)
  4. 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
  5. 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:

  1. Click Datacenter in the left sidebar
  2. Expand your node name (pve1)
  3. 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:

  1. Don’t modify network settings without planning - You can lock yourself out
  2. Apply configuration changes deliberately - Changes take effect when you click “Apply Configuration”
  3. Keep console access available - If web interface becomes inaccessible, console can fix it
  4. 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:

  1. Click Datacenter
  2. Click Storage
  3. 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:

  1. Click Storage → local
  2. View the Summary tab
  3. 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:

  1. 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/fstab
  2. Add 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:

  1. Prepare NFS server:

    • Create an NFS export (e.g., /mnt/proxmox-nfs)
    • Allow access from Proxmox IP
  2. 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:

  1. Separate system and VM storage - Prevents VMs from filling system disk
  2. Use fast storage for VM disks - SSDs dramatically improve VM responsiveness
  3. Keep backups on separate physical storage - Protect against drive failure
  4. Monitor storage usage regularly - Set up alerts at 70% capacity
  5. 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:

  1. Navigate to User Management:

    • Datacenter → Permissions → Users
  2. 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.

  1. Navigate to Permissions:

    • Datacenter → Permissions → Add → User Permission
  2. 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

Understanding Roles:

Proxmox has predefined roles with different permission levels:

RolePermissionsUse Case
AdministratorFull access (all privileges)Homelab owner, complete control
PVEVMAdminCreate, modify, delete VMs/containersTrusted user managing VMs
PVEVMUserUse/access VMs (console, start/stop)Regular user with assigned VM
PVEPoolUserAccess VMs in a specific poolLimited access to grouped VMs
PVEAuditorRead-only access (view only)Monitoring, reporting
PVEDatastoreUserView backup informationBackup operators
NoAccessNo 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:

  1. Datacenter → Permissions → Pools → Create
  2. Name the pool: production, testing, lab, etc.
  3. Assign VMs/storage to the pool
  4. Grant users access to the entire pool

Best Practices:

  1. Never share the root password - Create individual user accounts
  2. Use least privilege - Give minimum permissions needed
  3. Document access - Keep track of who has what access
  4. Regular audits - Review user list quarterly, remove unused accounts
  5. 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:

Download the ISO to your local computer.

Upload to Proxmox:

  1. Navigate to Storage:

    • Click your node (pve1) → local → ISO Images tab
  2. 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)
  3. 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)
  • 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
  • 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.

  1. Select your VM:

    • Click the VM in the left sidebar (e.g., “100 (ubuntu-server-01)“)
  2. Start the VM:

    • Click Start button (top right, play icon)
    • VM powers on and boots from the ISO
  3. Open Console:

    • Click Console (or >_ Console tab)
    • You’ll see the VM display, just like a physical computer’s monitor
  4. 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)
  5. Reboot:

    • After installation, the VM reboots
    • You may need to disconnect the ISO:
      • Hardware → CD/DVD Drive → Do not use any media → OK
  6. 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:

  1. Download guest agent ISO from Proxmox
  2. Hardware → Add → CD/DVD Drive → Select virtio-win.iso
  3. Inside Windows, open virtio-win drive
  4. Run guest-agent installer
  5. 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.

  1. Navigate to Templates:

    • Click your node → local → CT Templates tab
  2. 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)
  • 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

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
  • 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
  • DNS servers: Space-separated list
    • Example: 8.8.8.8 8.8.4.4
    • Or your router IP
  • 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

  1. Select the container:

    • Click the container in the sidebar (e.g., “101 (web-server)“)
  2. Start the container:

    • Click Start button
  3. Open console:

    • Click Console
    • You’ll see a login prompt in 1-2 seconds (containers boot fast!)
  4. Login:

    • Username: root
    • Password: The password you set during creation
  5. 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:

MetricVM (Ubuntu)Container (Ubuntu)
Boot time30-60 seconds1-2 seconds
RAM usage (idle)1,000 MB50-100 MB
Disk usage4-10 GB500 MB - 2 GB
CPU overhead5-10%<1%
Startup lagNoticeableInstant

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:

  1. Natural Language Requests: “Deploy a 3-node Kubernetes cluster with monitoring”
  2. Intelligent Decision-Making: Agent determines optimal node placement, resource allocation
  3. Self-Healing: Detects issues and fixes them without human intervention
  4. Predictive Analysis: Forecasts problems before they occur
  5. Continuous Optimization: Constantly rebalances resources for efficiency
  6. 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:

  1. Open Proxmox web interface
  2. Click through 8 tabs of the Create VM wizard
  3. Install OS (wait 20 minutes)
  4. Configure network, install software, set up services
  5. Repeat for each VM
  6. 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:

  1. 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
  2. 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"
      }
    }
  3. Provisions VMs via Proxmox API (parallel creation in 60 seconds)

  4. 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: yes
  5. Sets up backups (vzdump schedule)

  6. Installs monitoring agents

  7. Validates deployment:

    • Web server responds on port 80
    • Database accepts connections
    • Backups configured correctly
    • Monitoring shows both servers
  8. 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:

  1. 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
  2. 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)
  3. 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:

  1. Create 5-10 VMs manually
  2. Create 3-5 containers
  3. Set up backups manually
  4. 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:

  1. Terraform creates VMs
  2. Ansible configures software
  3. 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:

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
  • 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:

  1. Remove old backups:

    cd /var/lib/vz/dump/
    ls -lah
    # Delete old backups manually or configure retention policy
  2. Clear template cache:

    cd /var/lib/vz/template/cache/
    rm <old-templates>
  3. Check for temporary files:

    du -sh /tmp
    rm -rf /tmp/*
  4. 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:

  1. Before updating:

    # Backup important VMs
    vzdump <vmid> --storage local --mode snapshot
    
    # Take notes of running services
    systemctl list-units --state=running
  2. Update carefully:

    apt update
    apt list --upgradable
    apt upgrade -y  # Regular updates
    apt full-upgrade  # Major updates (careful)
  3. If update breaks system:

    • Boot into older kernel (GRUB menu)
    • Rollback problematic packages:
      apt install <package>=<old-version>
      apt-mark hold <package>
  4. 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:

  1. Identify resource-hungry VM:

    # Show VM resource usage
    pvesh get /nodes/pve1/qemu --output-format=json | jq '.[] | {vmid,name,mem,maxmem}'
  2. Limit VM resources:

    • Edit VM → CPU → Set CPU limit
    • Edit VM → Memory → Reduce allocation
  3. Check for runaway processes:

    # Inside problematic VM
    top
    # Kill problematic processes if needed
  4. Enable 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:

  1. Check Proxmox forum: forum.proxmox.com
  2. Consult logs: /var/log/syslog, journalctl
  3. 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 .tf file
  • 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

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:

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:

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:

Professional Support:


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