Back to Docs

Quickstart

Launch a real Linux machine, run something risky, and rewind it to a known-good state — the whole loop, in one sitting.

Base URL: examples use $CLUNDRA_API as a placeholder for your Clundra API host. Set it to the host shown in your dashboard.

1. Sign up and get an API key

Create an account, then mint an API key. Everything below works with either a logged-in dashboard session or an API key.

  1. Sign up at Clundra.
  2. Go to Account → API Keys and click Create New Key, choosing the machines:read, machines:write, and machines:delete scopes.
  3. Copy the key immediately — it starts with gopt_live_ and is shown only once.

Pass it in the X-API-Key header on every request:

X-API-Key: gopt_live_your_key_here

2. Create a machine

In the dashboard: click Deploy machine, pick a tier, and it's running in seconds. Prefer the API? Creation is synchronous — the call returns a machine that is already running, with an IP:

curl -X POST $CLUNDRA_API/machines \
  -H "X-API-Key: gopt_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "tier": "small" }'

Grab the returned machine id — the next steps use it as $ID.

3. Run a command

It's a real Linux environment. Run a command from the machine's exec console in the dashboard, or over the API:

curl -X POST $CLUNDRA_API/machines/$ID/exec \
  -H "X-API-Key: gopt_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "command": "uname -a" }'

The response contains the command output and a success flag: { "output": "...", "success": true }.

4. Create your first checkpoint

Before you do anything risky — a migration, an upgrade, an experiment — capture a checkpoint. In the dashboard, click Checkpoint and give it a label. Over the API:

curl -X POST $CLUNDRA_API/machines/$ID/checkpoints \
  -H "X-API-Key: gopt_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "label": "before-migration" }'

The response returns a checkpointId — save it as $CPID. The label is optional.

5. Rewind

Now break something — then put it back. Click Rewind to your checkpoint in the dashboard, or:

curl -X POST $CLUNDRA_API/machines/$ID/rewind \
  -H "X-API-Key: gopt_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "checkpointId": "'$CPID'" }'

Rewind restores the machine's state from that checkpoint and the machine stays live — same machine, same id, its state moved back. Your other checkpoints are untouched and still rewindable.

One limit to know: a machine with a mounted volume cannot be checkpointed, rewound, or forked. Keep reversible machines volumeless. See Checkpoints & Rewind for details.

Next steps

  • Machines — sizes, lifecycle, persistence, and deletion.
  • Checkpoints & Rewind — what a checkpoint captures and how restore behaves.
  • Fork — branch a brand-new machine from any checkpoint.
  • Networking — expose a service with a public IP and firewall rules.