# Corium > An immutable Linux distribution that boots into a Kubernetes node. Built on bootc, ships k0s, configured with cloud-init. - [Page not found](https://corium-os.github.io/Corium/404/): The page you're looking for doesn’t exist or has moved. Check the URL, use the navigation to browse sections, or return to the homepage. - [Docs](https://corium-os.github.io/Corium/docs/): Build an image, boot a node, and configure a cluster. ## Docs > Build an image, boot a node, and configure a cluster. - [Guides](https://corium-os.github.io/Corium/docs/guides/): Task-oriented walkthroughs: build an image, boot a node, get a cluster. - [Install](https://corium-os.github.io/Corium/docs/install/): Getting a Corium node running on a particular host, one page per target: what to fetch, how to check it, and what the host needs from you. - [Reference](https://corium-os.github.io/Corium/docs/reference/): The configuration schema in full, and the architecture decisions behind the project. ### Guides > Task-oriented walkthroughs: build an image, boot a node, get a cluster. - [Concepts](https://corium-os.github.io/Corium/docs/guides/concepts/): How Corium works and why it is shaped this way: the image, the filesystem contract, first boot, and node identity. - [Quick start](https://corium-os.github.io/Corium/docs/guides/quickstart/): From a published image to a working Kubernetes node in four steps, with the mistakes that cost the most time. - [Upgrades](https://corium-os.github.io/Corium/docs/guides/upgrades/): How a Corium node moves to a new image, how to roll one back, and how to upgrade a cluster without losing quorum. - [Cilium](https://corium-os.github.io/Corium/docs/guides/cilium/): Replacing kube-router with Cilium from the node's own cloud-config: what k0s stops doing, what installs the chart, and the kube-proxy-free variant. - [Software RAID](https://corium-os.github.io/Corium/docs/guides/raid/): Declaring mdadm arrays on a node's spare disks, why they are built before k0s starts, and where a RAID root filesystem stands today. - [Building your own image](https://corium-os.github.io/Corium/docs/guides/derived-images/): Deriving a Corium image to add your own agents, certificates or drivers: where things have to live, how to sign it so nodes accept it, and the mistakes that only show up after an upgrade. - [WireGuard overlay](https://corium-os.github.io/Corium/docs/guides/wireguard-overlay/): Joining hosts across sites or providers over an encrypted overlay from cloud-init: the escape-hatch recipe, why the tools have to be in the image, and the three things it cannot do. ### Install > Getting a Corium node running on a particular host, one page per target: what to fetch, how to check it, and what the host needs from you. - [Downloads](https://corium-os.github.io/Corium/docs/install/downloads/): Where the installer ISO, the qcow2 and the image are published, why nothing is attached to the release, and how to check what you got. - [Proxmox](https://corium-os.github.io/Corium/docs/install/proxmox/): A single node on a Proxmox host, from the published qcow2 to a cluster that schedules work, with the commands and the output from a real run. - [HA cluster](https://corium-os.github.io/Corium/docs/install/ha-cluster/): Building a three-controller cluster by hand: what each node is told, why the joiners wait for a token that does not exist yet, and how to check it. - [OpenStack](https://corium-os.github.io/Corium/docs/install/openstack/): A node on an OpenStack cloud from the published qcow2: registering a UEFI image, and how the corium: block reaches it through the metadata service. - [Rescue mode](https://corium-os.github.io/Corium/docs/install/rescue/): Installing onto a dedicated server from a provider's rescue system: bootc install to-disk, the qcow2 fallback when the rescue runs from a ramfs, and the OVH specifics. ### Reference > The configuration schema in full, and the architecture decisions behind the project. - [Comparison](https://corium-os.github.io/Corium/docs/reference/comparison/): How Corium compares to Talos, Kairos, Flatcar, Bottlerocket and running k0s on an ordinary distribution -- and when not to use it. - [Feature support](https://corium-os.github.io/Corium/docs/reference/feature-support/): What Corium models, what it passes through to k0s, and what it deliberately does not do. - [Configuration](https://corium-os.github.io/Corium/docs/reference/configuration/): Every field of the corium: schema, where the configuration comes from, and what Corium does with it. - [cctl](https://corium-os.github.io/Corium/docs/reference/cli/): Every cctl command, the three things it needs to work, what each role reaches, and how to read a refusal. - [ADR 1 — Base image](https://corium-os.github.io/Corium/docs/reference/adr-0001-base-image/): Why the operating system is based on fedora-bootc rather than Fedora CoreOS, and what that trades away. - [ADR 2 — Root filesystem](https://corium-os.github.io/Corium/docs/reference/adr-0002-root-filesystem/): Why the root filesystem is ext4 rather than xfs, and why the reason is about who can build the image. - [ADR 3 — Software RAID scope](https://corium-os.github.io/Corium/docs/reference/adr-0003-software-raid-scope/): Why software RAID covers a node's spare disks and not its root filesystem, and what upstream would have to change. - [ADR 4 — Management API](https://corium-os.github.io/Corium/docs/reference/adr-0004-management-api/): What a node-local management API is allowed to do, why there is no exec, and the three ways an operator CA reaches a node — including a maintenance mode that puts nothing in cloud-init. - [ADR 5 — SSH access over the API](https://corium-os.github.io/Corium/docs/reference/adr-0005-ssh-access-over-the-api/): Why the management API can add, list and revoke SSH keys for a user that already exists, how it stays out of cloud-init's authority over accounts, and why it is admin-only. - [ADR 6 — Host WireGuard overlay](https://corium-os.github.io/Corium/docs/reference/adr-0006-host-wireguard-overlay/): Why a host WireGuard interface declared from the corium: block earns its place over a cloud-init recipe, with the schema sketch and validation rules it needs.