# Which install guide<no value>

<!-- Generated by website/sync-docs.py from docs/install/choosing.md. Edit that file, not this one. -->

Corium ships one image. The target platform decides how you get the image
there, and how the node learns what it is. Find the row that matches your
target.

| Your target | Guide | How configuration reaches the node |
|---|---|---|
| Proxmox, KVM or libvirt | [Proxmox](/docs/install/proxmox/) | cloud-init, from a snippet on the host |
| An OpenStack cloud | [OpenStack](/docs/install/openstack/) | cloud-init, through the metadata service |
| A desktop PC, a tower or a mini-PC in front of you | [Bare metal](/docs/install/baremetal/) | A NoCloud seed on a second USB stick |
| A dedicated server that you reach through the rescue system of a provider | [Rescue mode](/docs/install/rescue/) | A seed that you write to the disk before first boot |
| Any other cloud or hypervisor | [Quick start](/docs/guides/quickstart/) | cloud-init user-data |
| PXE, or bare metal with no seed device | [Quick start](/docs/guides/quickstart/#without-cloud-init) | `/etc/corium/config.yaml` or the kernel command line |

When one node works, you can continue with these guides:

| What you want | Guide |
|---|---|
| Three controllers that continue to work if one fails | [HA cluster](/docs/install/ha-cluster/) |
| A cluster split across two sites or providers | [Stretched cluster](/docs/install/stretched-cluster-wireguard/) |
| Your own image, with your agents or drivers in it | [Building your own image](/docs/guides/derived-images/) |

---

## Before any of them

Get the artefacts. [Downloads](/docs/install/downloads/) tells you where the project
publishes the installer ISO and the qcow2. It also explains why nothing is
attached to the GitHub release, and how to check that what you received is
what the project published. Every guide below assumes that you did this.

Know which artefact you need:

| Artefact | Use it for |
|---|---|
| qcow2 disk | Proxmox, KVM, libvirt, and the import paths of most clouds |
| Installer ISO | Bare metal. Installs without an operator, and you do not write a kickstart |
| The OCI image | `bootc install to-disk` from a rescue system, and derived images |

Read the model if you want to. [Concepts](/docs/guides/concepts/) explains the
filesystem contract and what happens on first boot. If you read it first, each
guide is shorter. If you skip it, you lose nothing until something surprises
you.

---

## What every guide assumes

- A node configuration. `role` is the only required field. A node that waits
  for someone to tell it what it is can leave out even `role`
  ([§3.2](/docs/reference/configuration/#32-role)). See [examples](/docs/reference/examples/) for
  complete documents, and the [configuration reference](/docs/reference/configuration/) for
  every field.
- A way to log in. cloud-init creates the login user. A node that boots with no
  configuration has no account to log in to. It is a host, not a Kubernetes
  node. This is a supported result, not a failure.
- Approximately one minute from power-on to a single node that is `Ready`.

## When it does not work

[Troubleshooting](/docs/guides/troubleshooting/) lists the failures by symptom for
every install path.
