IncusOS Hypervisor: Running Incus on Bare Metal

Set up IncusOS as a bare metal hypervisor for your homelab. Learn installation, VM management, and how it compares to Proxmox.

• 8 min read
incusincusoshypervisorvirtualizationhomelabbare-metal
IncusOS Hypervisor: Running Incus on Bare Metal

IncusOS Hypervisor: Running Incus on Bare Metal

If you’ve been running Proxmox or ESXi in your homelab, you’ve probably wondered if there’s a lighter, more focused alternative. Enter IncusOS—a purpose-built hypervisor operating system designed specifically for running Incus containers and virtual machines on bare metal servers.

What is IncusOS?

IncusOS is a minimal, immutable operating system based on Debian 13 that boots directly into an Incus environment. Unlike traditional Linux distributions where you install and configure Incus manually, IncusOS IS the platform—the hypervisor and the OS are one integrated unit.

Why IncusOS Exists

Running Incus on different Linux distributions creates inconsistency. Each distro has its own kernel versions, ZFS builds, networking stacks, and systemd configurations. When you run multiple hosts in a cluster, this drift becomes problematic.

IncusOS solves this by providing reproducible, consistent builds where every machine on the same version is identical—bit-for-bit. Think of it like a network switch firmware: you don’t manage the underlying OS, you just run it.

Key Features

Immutable Design

The root filesystem is read-only. There’s no package manager, no manual configuration. Updates are handled atomically through an A/B partition system:

  1. New OS image downloads to the inactive partition
  2. System reboots into the new version
  3. If something fails, automatic rollback to the previous version

This is the same pattern used by ChromeOS, Talos, and MicroOS—proven technology for reliable updates.

Built-in Security

IncusOS doesn’t just support security features—it requires them:

  • Full Disk Encryption: TPM-bound LUKS encryption protects your data at rest
  • Secure Boot: Custom IncusOS certificates ensure only signed code runs
  • TPM 2.0: Used for PCR measurements and encryption key binding
  • Automatic Key Rotation: Yearly certificate rotation with 18-24 month overlap

The security model uses multiple TPM Platform Configuration Registers (PCRs):

  • PCR 7: Secure Boot state verification
  • PCR 11: Unified Kernel Image integrity
  • PCR 15: Prevents TPM unlock replay attacks

Zero Maintenance

No apt update. No manual kernel upgrades. No configuration drift. IncusOS checks for updates automatically every few hours and handles everything. Your job is running workloads, not managing an operating system.

System Requirements

ComponentRequirement
CPUModern Intel/AMD (x86_64_v3) or ARM (aarch64)
UEFIRequired, with Secure Boot support
TPMTPM 2.0 module (hardware preferred)
RAMMinimum 4GiB for system use
StorageMinimum 50GiB
NetworkAt least one wired port

Degraded Security Mode

For homelab use, IncusOS can run in a degraded security state:

  • Without Secure Boot (for broken UEFI implementations)
  • With software TPM (for systems without hardware TPM)

You cannot run with both disabled—IncusOS requires at least one security layer.

Installation Process

Step 1: Generate Client Certificate

IncusOS uses certificate-based authentication. Generate a TLS certificate before downloading the ISO:

#!/bin/bash
set -e

mkdir -p incus-client-cert
cd incus-client-cert

openssl genpkey -algorithm RSA -out client.key -pkeyopt rsa_keygen_bits:4096

openssl req -new -x509 -key client.key -out client.crt -days 3650 \
  -subj "/CN=$(hostname)-incus-client"

cat client.crt client.key > client.pem

# Create browser certificate
openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt

Step 2: Download ISO

Visit the IncusOS Image Downloader, paste your client certificate (the .crt file content), and download the ISO. The download is approximately 3.5GB.

Step 3: Configure BIOS/UEFI

Before installing, configure your server’s BIOS:

SettingConfiguration
RAID ModeDisable - Can interfere with IncusOS boot
TPM 2.0Enable
Secure BootEnable “Setup Mode” for auto-enrollment, or manually load IncusOS keys
Boot OrderSet to boot from installation media

Step 4: Install

Boot from the ISO or USB drive. The installation is automated:

  1. System boots into IncusOS installer
  2. If using Setup Mode, keys are imported automatically
  3. Installation completes
  4. System reboots into IncusOS

Note: During installation, use a single disk. Adding multiple disks causes errors.

Step 5: Authenticate

Import the .pfx certificate into your browser:

Windows: Import into Current User > Personal > Certificates

macOS: Import into Keychain, set to “Always Trust”

Navigate to https://[incusos-ip]:8443 and select your certificate when prompted.

IncusOS vs Proxmox vs ESXi

IncusOS vs Proxmox VE

AspectIncusOSProxmox VE
PurposeMinimal Incus hypervisorFull virtualization platform
Base OSImmutable Debian 13Mutable Debian 12
UpdatesAutomatic, atomicManual via apt
Container TypesSystem + OCILXC containers
Web UIBasic Incus interfaceRich management console
Learning CurveModerateEasier
Resource OverheadMinimalHigher
BackupExternal toolsBuilt-in
ClusteringIncus nativeIntegrated cluster

When to choose IncusOS: You want minimal overhead, already know Incus, or need edge deployments.

When to choose Proxmox: You’re new to virtualization, need a rich GUI, or want built-in backup solutions.

IncusOS vs VMware ESXi

AspectIncusOSESXi
LicensingFree, open sourceFree tier limited, vSphere paid
Container SupportNative (system + OCI)Requires additional tools
Hardware SupportModern x86_64/ARMHCL-restricted
ManagementIncus CLI + basic UIvCenter (paid feature)
UpdatesFree, automaticFree tier manual, paid automated
SecurityFDE + Secure Boot + TPMSecure Boot only

When to choose IncusOS: You want free full features, container-native workloads, or modern security defaults.

When to choose ESXi: You’re in an enterprise environment, need vSphere features, or have approved hardware.

Storage and Networking

Storage Options

IncusOS inherits Incus’s storage flexibility:

DriverBest ForNotes
ZFSRecommended defaultCopy-on-write, snapshots
BtrfsAlternative COWLess mature ZFS alternative
LVMTraditional volumesThin provisioning available
CephDistributed storageFor clusters
dirSimple directoryLeast features

Storage volumes are organized into types:

  • container/virtual-machine: Root disks (auto-created)
  • image: Unpacked images for fast launches
  • custom: Persistent user volumes
  • block: VM attachments only
  • iso: ISO images for VM boot

Networking

IncusOS provides managed networks out of the box:

Network TypeUse Case
BridgeSingle host, public cloud (default)
OVNPrivate cloud, software-defined
macvlanDirect network interface
physicalPassthrough, uplink for OVN

Recommendation: Use the default bridge network for homelab setups. Use OVN when building a private cloud with multiple isolated networks.

Running Your First Workload

Create a Container

# Launch a container from the image catalog
incus launch images:debian/12 my-container

# Check status
incus list

# Get a shell
incus exec my-container -- bash

Create a Virtual Machine

# Launch a VM
incus launch images:ubuntu/24.04 my-vm --vm

# Configure resources
incus config set my-vm limits.cpu 2
incus config set my-vm limits.memory 4GiB

Use an OCI Container

IncusOS supports OCI (Docker) images natively:

# Run a Docker container
incus launch docker:nginx web-server

Homelab Use Cases

1. Edge Nodes and Remote Locations

Minimal overhead, atomic updates, and automatic rollback make IncusOS ideal for edge deployments where you can’t visit on-site for maintenance.

2. Development Environments

Quick snapshots and instant rollback let you experiment freely:

incus snapshot create my-container clean-state
# ... experiment ...
incus snapshot restore my-container clean-state

3. CI/CD Runners

Lightweight containers for GitLab runners, Jenkins agents, or GitHub Actions self-hosted runners with minimal host overhead.

4. Media Servers

Run Plex, Jellyfin, or Home Assistant in containers with direct hardware pass-through for transcoding.

5. Kubernetes Nodes

Deploy Talos or K3s inside IncusOS VMs for a nested Kubernetes setup with full VM isolation.

Pros and Cons Summary

Advantages

  • Minimal Overhead: Purpose-built OS with no bloat
  • Security by Default: FDE, Secure Boot, and TPM required
  • Zero Maintenance: Automatic updates, no package management
  • Consistent Clusters: Bit-for-bit identical builds
  • Free and Open Source: No licensing tiers or feature gates
  • Native Container Support: System containers, VMs, and OCI images

Limitations

  • Hardware Requirements: Must have TPM 2.0 and UEFI Secure Boot
  • No Package Manager: All workloads run through Incus
  • Single Disk Install: Multi-disk setups require post-install configuration
  • Newer Project: Smaller community than Proxmox/ESXi
  • Basic Web UI: Less polished than Proxmox interface
  • TLS Authentication: Certificate management adds complexity

Getting Started Checklist

  • Verify hardware supports TPM 2.0 and UEFI Secure Boot
  • Generate client TLS certificate (.crt + .key + .pfx)
  • Download ISO from IncusOS Image Downloader
  • Configure BIOS: disable RAID, enable TPM, set Secure Boot to Setup mode
  • Create bootable USB or VM with ISO
  • Boot and install (automated process)
  • Import certificate into browser
  • Access web UI at https://[ip]:8443
  • Launch your first container or VM

Conclusion

IncusOS represents a philosophical shift in hypervisor management. Instead of managing a Linux distribution AND a hypervisor, you get a unified, immutable platform that treats the OS as an appliance. For homelab operators tired of system maintenance interrupting their workloads, this is compelling.

The trade-off is clear: you gain simplicity, security, and consistency, but lose the flexibility of a general-purpose Linux system. If your workloads fit the container/VM model—and most homelab workloads do—IncusOS is a refreshing alternative to managing yet another Linux server.

Compare that to Proxmox, which runs a full Debian underneath, requires manual updates, and includes backup tools at the cost of higher overhead. Or ESXi, which gives you enterprise features behind a paywall. IncusOS sits in a sweet spot for users who want their hypervisor to disappear into the background.

If you’re ready to try a hypervisor that manages itself, IncusOS might be exactly what your homelab needs.


For more information, visit the official IncusOS documentation or check out the GitHub repository.

Anthony Lattanzio

Anthony Lattanzio

Tech Enthusiast & Builder

I'm a tech enthusiast who loves building things with hardware and software. By night, I run a homelab that's grown way beyond what any reasonable person needs. Check out about me for more.

Comments

Powered by GitHub Discussions