Quick Start

This guide walks through installing the NodeFoundry master node, registering your first storage servers, and deploying a 3-node Ceph cluster. Estimated time: 15 minutes.


1. Install the master node

Download the NodeFoundry installer and run it on the machine that will act as your control plane. This can be a physical server, VM, or cloud instance. Minimum requirements: 4 vCPU, 8 GB RAM, 50 GB disk.

Shell
curl -fsSL https://get.nodefoundry.io | bash

The installer sets up the NodeFoundry service, iPXE HTTP server, and built-in DHCP server. When complete, the dashboard is available at http://<master-ip>:3000.

2. Configure your network switch

Storage nodes need to PXE boot from the master. On your managed switch, set DHCP option 66 (next-server) or option 67 (boot filename) to point at the master node’s IP:

DHCP option (Cisco IOS example)
ip dhcp pool STORAGE
  network 10.10.1.0 255.255.255.0
  default-router 10.10.1.1
  next-server 10.10.1.10       # master node IP
  filename "ipxe/boot.ipxe"

If you’re using the master node’s built-in DHCP server instead of your switch’s, no configuration is needed — it handles this automatically.

3. Boot your storage nodes

Power on your storage servers. Each node will:

  1. Request a DHCP address from the master
  2. Pull the NodeFoundry bootstrap image over HTTP
  3. Boot into the bootstrap environment and inventory hardware
  4. Register with the control plane over the management network

Nodes appear in the Nodes section of the dashboard within 30–60 seconds of power-on. You can also check from the CLI:

Shell
$ nf node list
NAME          STATUS     DRIVES      RAM     IPMI
storage-01    pending    8× NVMe     256 G   10.10.1.21
storage-02    pending    8× NVMe     256 G   10.10.1.22
storage-03    pending    8× NVMe     256 G   10.10.1.23
Note — Nodes in pending status have registered but not yet been assigned to a cluster. This is expected.

4. Deploy a cluster

Once your nodes are in pending status, you can deploy a Ceph cluster. The --version flag accepts reef or squid.

Shell
$ nf cluster create \
    --name prod-01 \
    --nodes storage-01,storage-02,storage-03 \
    --version reef \
    --failure-domain host
Creating cluster prod-01...
   Validating node inventory
   Generating CRUSH map (3 hosts, failure domain: host)
   Deploying monitors: storage-01, storage-02, storage-03
   Activating 24 OSDs
   Starting MGR and RGW services
Cluster prod-01 is HEALTH_OK
192 TiB raw capacity available

5. Verify health

Shell
$ nf cluster health prod-01
HEALTH_OK
  3 nodes online
  24 OSDs active (24 up, 24 in)
  3 monitors elected
  192 TiB raw / 64 TiB used / 128 TiB available

What’s next