Skip to main content
This guide walks you through launching your first H100 GPU node on SF Compute.

Install the CLI

curl -fsSL https://cli.sfcompute.com | bash

Log in

sf login
This opens your browser to authenticate and stores your credentials locally.

Set up SSH access

Generate a startup.sh that configures SSH access to your nodes. This script injects your local public keys so you can connect immediately.
cat >startup.sh <<SCRIPT
#!/bin/bash

mkdir -p /root/.ssh
cat >>/root/.ssh/authorized_keys <<"EOF"
$(cat ~/.ssh/id_rsa.pub 2>/dev/null)
$(cat ~/.ssh/id_ecdsa.pub 2>/dev/null)
$(cat ~/.ssh/id_ecdsa_sk.pub 2>/dev/null)
$(cat ~/.ssh/id_ed25519.pub 2>/dev/null)
$(cat ~/.ssh/id_ed25519_sk.pub 2>/dev/null)
$(cat ~/.ssh/id_xmss.pub 2>/dev/null)
$(cat ~/.ssh/id_dsa.pub 2>/dev/null)
EOF
SCRIPT
If you don’t have an SSH key pair yet, generate one first.
ssh-keygen -t ed25519

Check availability

See which zones have GPUs available and their pricing.
sf zones ls
NAME             REGION  HARDWARE  NOW  NEXT 48H
richmond         EMEA    H100        3  ▃▃▅▇▇▇▇▇▇▇▇▇▇▇██████  peak: 21
marina           NA      H100        0  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
potrerohill      NA      H200        0  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
...
Pick a zone with availability. In this guide we’ll use richmond.

Create a capacity

A capacity tracks your compute allocation over time. Nodes and orders attach to it.
sf capacities create --zone richmond --name dev

Create a node

Create a node on your capacity with a public Ubuntu + CUDA image and your SSH startup script.
sf nodes create --capacity dev --image ubuntu-22.04.5-cuda-12.7 --cloud-init ./startup.sh
Run sf images list to see all available public images, or omit --image to choose interactively.
The node starts in awaiting_capacity state — it needs compute time before it can run. You get that by placing an order.

Buy compute time

Place a buy order for 1 node-hour on your capacity.
sf orders create --capacity dev --side buy --count 1 --start now --duration 1h --max-price 2.50

Check your order

sf orders get <order-id>
│ SIDE      Buy
│ STATUS    Filled at Mar 19, 4:44pm
│ CAPACITY  cap_nuO4nVSM8O3NnsRE7udBe
│ NODES     1
│ PERIOD    Mar 19, 5pm → 6pm
└ MAX PRICE $2.50/gpu/hr (Filled)
If the order shows Cancelled, the price was too low or there was no availability. Try a higher --max-price, or check sf zones ls to buy compute for a future time when more nodes are available.

Watch your node start

sf nodes list
Once the order fills, your node transitions from awaiting_capacity to running within about a minute. The image download and boot process takes up to 10 minutes before SSH is available.

Connect via SSH

sf nodes ssh <node-id>

Next steps

You now have a running GPU node. Here are some things to try: Check your capacity’s allocation schedule to see the compute time you own.
sf capacities get dev
Create a second node. It will start in awaiting_capacity until you buy more compute time for your capacity.
sf nodes create --capacity dev --cloud-init ./startup.sh
Sell back unused compute. Place a sell order as a standing order — if someone buys it, you get credits back and the node loses its compute time.
sf orders create --capacity dev --side sell --count 1 \
  --start now --stop "in 1h" --min-price 1.00 --allow-standing
Learn more:
  • Capacities — manage compute allocation
  • Orders — buy and sell compute time
  • Nodes — SSH, logs, images, and lifecycle