> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gpuoutlet.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Instances

> Lifecycle of an instance from launch to settlement.

An **instance** (or "pod" — we use the terms interchangeably) is a single
rental: a machine with one or more GPUs, running the template image you picked,
with your SSH key injected at first boot.

## Multi-GPU: a whole machine, pooled

Many machines carry more than one GPU. When you rent more than one, you get the
**whole box** — the GPUs are pooled in a single node with their fast
interconnect, ready for multi-GPU training. You aren't handed GPUs spread across
separate hosts. A marketplace (seller) listing is always rented whole: every GPU
in that machine is yours for the session. How many GPUs a machine offers is
shown on its listing.

## Service tiers

When a machine offers them, you choose **how** you rent — a trade-off between
price and how long you're guaranteed to keep the GPU:

| Tier          | Price          | Can it be reclaimed?                                                       |
| ------------- | -------------- | -------------------------------------------------------------------------- |
| **On-demand** | Headline price | No — it's yours until you stop it.                                         |
| **Spot**      | Cheaper        | Yes — by a full-price on-demand buyer, or by the host pausing the machine. |

If your Spot instance is reclaimed, you're only charged for the time you
actually ran, and the unused hold is released. Save your work often on Spot.

Which tiers a machine sells is up to its seller, and it is not simply "whatever
is priced". Some machines sell both. Some sell on-demand only. Some are **Spot
only** — the seller has withdrawn on-demand from sale, so the machine is cheap
because it can be taken back, and there is no full-price option on it at all.
The listing shows what you can actually pick; if a tier is not there, it is not
on offer, whatever prices you may see elsewhere.

## Lifecycle

```mermaid theme={null}
stateDiagram-v2
  [*] --> Provisioning
  Provisioning --> Running: machine boots, SSH ready
  Provisioning --> Failed: launch error
  Running --> Stopping: you stop it / wallet hits $0
  Stopping --> Stopped
  Stopped --> [*]
  Failed --> [*]
```

| State            | What's happening                                     | Billing                      |
| ---------------- | ---------------------------------------------------- | ---------------------------- |
| **Provisioning** | Machine allocated, image pulling, SSH config writing | Not billed                   |
| **Running**      | SSH reachable, work happens                          | Metered per second           |
| **Stopping**     | Terminate request sent                               | Final partial second settled |
| **Stopped**      | Machine released                                     | No further charges           |
| **Failed**       | Launch error                                         | Refunded automatically       |

## Templates

A template is a starting OS image plus pre-installed software. Seven are wired
in today:

<CardGroup cols={3}>
  <Card title="PyTorch + Jupyter" icon="fire">
    CUDA + PyTorch 2.x with Jupyter Lab. The default pick.
  </Card>

  <Card title="Ubuntu + CUDA" icon="ubuntu">
    Bare Ubuntu with CUDA drivers — bring your own stack.
  </Card>

  <Card title="Ollama" icon="comment-dots">
    Ollama daemon ready to `ollama pull`.
  </Card>

  <Card title="vLLM" icon="bolt">
    OpenAI-compatible inference server. Pass a model to serve.
  </Card>

  <Card title="Text Generation WebUI" icon="message">
    Oobabooga's text-generation WebUI.
  </Card>

  <Card title="ComfyUI" icon="diagram-project">
    Node-based Stable Diffusion workflow UI.
  </Card>

  <Card title="Stable Diffusion (A1111)" icon="palette">
    AUTOMATIC1111 WebUI.
  </Card>
</CardGroup>

Custom images are on the roadmap.

## Per-second metering

Every running instance sends a heartbeat every second. The metering worker:

1. Reads the instance's hourly rate
2. Converts to per-second: `rate_per_hour / 3600`
3. Atomically debits that amount from the rental's wallet ledger entry
4. If the wallet reaches `$0`, sends a terminate signal to the machine

The dashboard shows the live accrued charge for each running instance, updated
every second.

## Stopping

Click **Stop** in the dashboard. The instance is unreachable within \~5 seconds.
We settle the final partial second, so you pay exactly for what you used — not a
rounded-up minute.

<Warning>
  Stopping is permanent. The instance's local disk is wiped. Save your work to
  external storage (S3, your machine via `scp`, a HuggingFace repo) BEFORE
  hitting Stop.
</Warning>

## Failure & refund

If an instance fails to provision or crashes within 60 seconds of going Running,
the wallet is refunded in full automatically. You'll see the error in the rental
detail view.
