> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Register a Bare Metal Machine (PXE/iPXE)

> Connect a bare metal server to Omni by PXE or iPXE booting Talos Linux.

export const release = 'v1.13.2';

This guide shows you how to register a bare metal machine with Omni by PXE/iPXE booting.

### Copy the required kernel parameters

Upon logging in you will be presented with the Omni dashboard. Click the “Copy Kernel Parameters” button on the right hand side, and save the value for later.

### Download the PXE/iPXE assets

The following example assumes the use of Matchbox server.

Download `vmlinuz` and `initramfs.xz` from the [release](https://github.com/siderolabs/talos/releases) of your choice (Talos Linux 1.4 or greater is required), and place them in `/var/lib/matchbox/assets`.

#### Create the profile

Place the following in `/var/lib/matchbox/profiles/default.json`:

```json theme={null}
{
  "id": "default",
  "name": "default",
  "boot": {
    "kernel": "/assets/vmlinuz",
    "initrd": ["/assets/initramfs.xz"],
    "args": [
      "initrd=initramfs.xz",
      "init_on_alloc=1",
      "slab_nomerge",
      "pti=on",
      "console=tty0",
      "console=ttyS0",
      "printk.devkmsg=on",
      "talos.platform=metal",
      "siderolink.api=<your siderolink.api value>",
      "talos.events.sink=<your talos.events.sink value>",
      "talos.logging.kernel=<your talos.logging.kernel value>"
    ]
  }
}
```

Update `siderolink.api`, `talos.events.sink`, and `talos.logging.kernel` with the kernel parameters copied from the dashboard.

Place the following in `/var/lib/matchbox/groups/default.json`:

#### Create the group

```json theme={null}
{
  "id": "default",
  "name": "default",
  "profile": "default"
}
```

Once your machine is configured to PXE boot using your tool of choice, power the machine on.

Navigate to the “Machines” menu in the sidebar of Omni. You should now see a machine listed.

You now have a bare metal machine registered with Omni and ready to provision.

## Alternative option: Use a hosting provider that supports iPXE with DHCP

Some bare metal hosting providers (for example, managed dedicated server providers) already provide DHCP and an iPXE boot environment.

In these cases, you don’t need to run your own PXE stack (such as Matchbox or Booter). Instead, you can chainload Talos directly from the Talos Image Factory.

Use the following minimal iPXE script:

```ipxe theme={null}
#!ipxe
dhcp
chain --replace --autofree https://pxe.factory.talos.dev/pxe/<YOUR_SCHEMATIC_ID>/<TALOS_VERSION>/metal-amd64
```

Replace:

* `<YOUR_SCHEMATIC_ID>` with the schematic ID generated in Image Factory
* `<TALOS_VERSION>` with the Talos version you want to boot (for example, {release})

After the machine boots, it will register with Omni using the kernel parameters configured in Image Factory.
