IncusOS is an immutable OS completely designed to run Incus securely and reliably. It uses modern security features like UEFI Secure Boot and TPM to provide a secure boot experience and seamless full disk encryption.
Updates are applied atomically using an A/B plan to allow easy rollback in case of problems.
The system itself is completely locked, with no local or remote shells, only an authenticated REST API to access Incus and manage the OS through it.
IncusOS is ideal for those who focus on building and operating infrastructure on top of Incus and want the underlying infrastructure to be reliable and easy to update.
All IncusOS servers are guaranteed to run the same software bit by bit, eliminating any deployment variations and also making it easier to scale or redeploy to larger numbers of servers.
Key Design Features:
- Boot Security (UEFI Secure Boot and TPM 2.0 measurement)
- Full disk encryption (TPM supports LUKS and ZFS encryption)
- Immutable (A/B partition scheme, all OS partitions read-only and signed)
- Locked Down (API Management Only)
- Designed for modern Intel/AMD or ARM systems
Storage Features:
- Automated Local ZFS Pool
- Support for creating complex ZFS pools on additional disks
- Fiber Channel and multipath support
- NVMe-over-TCP support
- iSCSI support
- Clustered LVM support (on top of Fiber Channel, NVMe-over-TCP or iSCSI)
- Ceph support for software defined storage (Linstore coming soon)
Network Features:
- Automatic VLAN-aware bridging makes it easy to attach instances to any interface
- Link aggregation support (both passive and conversational)
- lldp support
- Support for enterprise proxy servers (including Kerberos authentication)
- Strong NTP support
- Remote logging support via Syslog (UDP, TCP, TLS)
- OVS/OVN support for software defined networking
- Native support for Telescale (Netbird coming soon)
Management Features:
- Central management through operations center
- Backup/restore of both main OS configuration and individual application data
- Factory reset of the entire OS or individual applications
- flexible update management
IncusOS is built on top of Debian 13 with our own Incus and kernel builds.
In addition to running Incus, IncusOS can also be used as the underlying OS to run Operations Center and Migration Manager, allowing easy migration from VMware or similar environments to Incus.
We make extensive use of SystemD’s modern OS features to create our images, handle updates, and take care of things like the first boot partition and TPM-supported disk encryption.
We currently maintain two update channels for IncusOS:
All installations are by default stable Channel which typically sees at least a weekly update to raise the latest stable bugfix releases of the Linux kernel as well as any relevant security issues.
testing The channel sees builds much more frequently, usually once a day.
The IncusOS system checks for updates every 6 hours by default and will automatically update Incus with very little API downtime (no impact on running instances) and will stage any OS updates to boot on reboot.
Configuration options are available to change the update frequency or disable automatic updates completely, as well as specifying a scheduled downtime period for applying application updates.
IncusOS is developed on Github at https://github.com/lxc/incus-os
The IncusOS project is made up partly of configuration files for running mkosi which is used to build our images and partly of our own Go code for the OS management daemon and related tools.
All code is released under the Apache 2.0 license.
