# Install Edera

The installer sets up the Edera runtime and configures your system. Your machine will reboot when it completes.

**Disposable infrastructure only.** Edera modifies your bootloader and there is no automated uninstall. Only install on instances or VMs you can terminate and recreate.

## Run the installer

The installer defaults to **Xen**. KVM support is coming soon — Xen is the current path for EderaON.

### Option 1: Script

```bash
EDERA_LICENSE_KEY=<your-key> /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/edera-dev/learn/main/getting-started/edera-on-installer/scripts/install.sh)"
```

### Verify UEFI boot

Xen requires UEFI. Run:

```bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
```

If the output is `BIOS`, Edera with Xen will not work on this machine.

### Run edera-check

Verify your system meets the requirements before installing:

```bash
docker run --pull always --pid host --privileged \
  ghcr.io/edera-dev/edera-check:stable preinstall
```

If any **required** checks fail, resolve them before proceeding. **Optional** checks indicate features that won’t be available but won’t block installation.

### Authenticate to the Edera registry

Set your license key as an environment variable, then authenticate:

```bash
export EDERA_LICENSE_KEY=<YOUR_LICENSE_KEY>
```

Docker / Podman (RHEL/CentOS)

```bash
docker login -u license -p $EDERA_LICENSE_KEY images.edera.dev
```

```bash
sudo podman login -u license -p $EDERA_LICENSE_KEY images.edera.dev
```

### Pull the installer image

Docker / Podman (RHEL/CentOS)

```bash
docker pull images.edera.dev/installer:on-preview
```

```bash
sudo podman pull images.edera.dev/installer:on-preview
```

### Run the installer

Docker / Podman (RHEL/CentOS)

```bash
docker run --rm --privileged --pid=host --net=host \
  --env 'TARGET_DIR=/host' \
  --env "EDERA_LICENSE_KEY=${EDERA_LICENSE_KEY}" \
  --volume '/:/host' \
  images.edera.dev/installer:on-preview
```

```bash
sudo podman run --rm --privileged --pid=host --net=host \
  --env 'TARGET_DIR=/host' \
  --env "EDERA_LICENSE_KEY=${EDERA_LICENSE_KEY}" \
  --volume '/:/host' \
  images.edera.dev/installer:on-preview
```

The machine will **reboot** when the installer completes.

**Note:** `EDERA_LICENSE_KEY` is automatically written to `/var/lib/edera/protect/license.key` during installation. You do not need to write the file yourself afterward.

**KVM support is coming soon.** KVM is not yet available for EderaON. Use Xen for now — it is the default and the recommended path.

## Verify the installation

After reboot, SSH back in and verify:

```bash
# Check the daemon is running
sudo systemctl is-active protect-daemon
# Expected: active

# Confirm KVM device is present
ls /dev/kvm
# Expected: /dev/kvm
```

```bash
# Check you're running the Edera/Xen kernel
uname -r
# Expected: 6.x.y-edera

# Confirm Xen is present
ls /proc/xen
# Expected: capabilities  privcmd  xenbus

# Check the daemon is running
sudo systemctl is-active protect-daemon
# Expected: active
```

`activating` is not the same as `active`. The daemon should become `active` within a few seconds. If it stays in `activating`, it failed to start — a missing or invalid license key is a common cause. Check logs with `sudo journalctl -u protect-daemon -n 50`.
