Skip to main content

How to Install Fedora CoreOS on a Bare Metal Server

In this article, we cover how to install Fedora CoreOS on a bare metal server, configure it with Ignition, and run containers using Podman.

β€” Ravi Saive

Fedora CoreOS (FCOS) is a modern, minimal, immutable Linux distribution built for running containers reliably at scale.

It combines Fedora’s base with Ignition, systemd, and rpm-ostree to provide a host that can be managed consistently using configuration files, rather than being manually configured over time.

As an image-based OS, updates are applied as atomic deployments, and rollbacks are straightforward using rpm-ostree, which reduces configuration drift and makes it easier to keep fleets of identical servers in a known-good state.

Fedora CoreOS also ships with SELinux enabled by default and supports container-first workflows through clean integration with Podman and systemd.

In this guide, you’ll learn how to install Fedora CoreOS on a bare metal server using the official Live ISO and the coreos-installer utility.

Before installation, you will create an Ignition configuration using Butane, a YAML-based tool that generates the JSON format Ignition requires.

This configuration will set up SSH access for the user you define and provide the base system configuration needed for the first boot.

Once the system is running, you’ll move on to installing additional tools, running container workloads using Podman, and configuring the container to start automatically on boot with systemd so the service stays persistent across reboots.

Prerequisites

To install Fedora CoreOS, you will need a Linux workstation to prepare and serve the Ignition configuration file.

During installation, the target system must be able to reach that Ignition file over the network if you are using an Ignition URL.

The workstation and target system requirements are listed below.

Workstation Requirements

  • An SSH key pair (you will use the public key in the Ignition configuration).
  • Podman (for running Butane to produce an Ignition JSON file).
  • Python (or another web server) to serve the Ignition file over the network.

Target System Requirements

  • A bare metal server or dedicated machine (x86_64).
  • 2 CPU cores.
  • 4 GB RAM.
  • 20 GB of disk space.
  • A 2 GB or larger USB drive to boot the Fedora CoreOS Live ISO.

Before continuing, make sure both Podman and an SSH key pair are set up on your workstation.

Install Podman on Workstation

On Fedora/RHEL-based systems:

sudo dnf install -y podman

On Debian/Ubuntu-based systems:

sudo apt install -y podman

Verify it's working:

podman --version

Generate an SSH Key Pair

If you don't already have an SSH key, generate one now.

ssh-keygen -t ed25519 -C "fcos-admin"

Press Enter to accept the default file location and leave the passphrase empty (or set one if you prefer).

Once done, confirm the key exists:

cat ~/.ssh/id_ed25519.pub

You should see a line starting with ssh-ed25519. Keep this output handy; you'll paste it into the Butane config in the next section.

Create The Ignition Config