Models on a GPU
Providers
Supported providers, billing units, and planned GPU adapters.
Reviewed 2026-09-12
Chalupa runs on DigitalOcean for CPU and GPU workloads, and Hetzner for CPU
workloads. More GPU providers are planned, but their adapters do not exist yet.
Only digitalocean, hetzner and chalupa are accepted in chalupa.yml
today. chalupa is the managed GPU provider, which runs in
Chalupa's account instead of yours.
Bring your own account
You rent compute in your own provider account and pay the provider directly. Keep credentials in tvault, never in YAML. In your own account, Chalupa never uses its own provider key and adds no markup. Managed GPU is the exception: it runs in Chalupa's account, at the separately priced rates on Managed GPU.
Implemented providers
Billing follows the provider's resource lifecycle. Powering off a machine does not necessarily end its charges; retained storage bills separately.
| Provider | Workloads | Billing unit and limits |
|---|---|---|
DigitalOcean (digitalocean) |
CPU + GPU; host Ollama inference | Hourly compute. A powered-off GPU still bills until destroyed. Volumes bill in $/GiB-month and continue billing after compute is destroyed. |
Hetzner (hetzner) |
CPU cloud servers only | Hourly compute capped monthly. The adapter has no GPU support. |
See remote GPU inference for the current workflow and costs and idle observation for estimate boundaries. The console's external reaper (session expiry, idle, and CI-authorized shutdown) supports both DigitalOcean and Hetzner, each armed with its own per-organization token; see costs-idle for the Hetzner project-wide-token caveat.
Planned
These are roadmap entries, not selectable providers. No price is shown until an adapter reads it live; marketplace rates are not hardcoded quotes.
| Provider | Status and limits to resolve |
|---|---|
RunPod (runpod) |
First extra GPU cloud to implement. Requires its own adapter before use. |
Vast.ai (vast) |
Research interruptible GPU capacity, availability, and persistence guarantees. |
Lambda (lambda) |
Research GPU availability, account setup, billing, and lifecycle support. |
Hetzner GEX (hetzner-gex) |
Dedicated GPU servers, monthly billing plus a setup fee; not an hcloud size. Requires a separate adapter. |
Lium (lium) |
Parked: renter signup friction and possible 12-month lock-in; reopen only after a clean card + API key signup. |
Shadeform-style aggregators and Paperspace, Modal, Fly, and Voltage Park remain backlog research. None has an implemented Chalupa adapter or a price claim.
What an adapter must provide
Every adapter must support the same private access and explicit lifecycle contract before its provider becomes selectable:
- Credential spec: vault key, token validation, SSH key registration, and account or project scope.
- List and quote: live available compute, currency, billing unit, and any minimum charge or setup fee.
- Provision, wait, and SSH: create compute, wait for readiness, and connect with services bound to loopback.
- Destroy: delete the intended compute resource and state what storage survives and continues billing.
- Tags or labels: identify Chalupa resources so inventory, audits, and garbage collection can find them.
- Honest limits: document the service-level agreement (SLA), spot or interruptible behavior, and persistence guarantees.
The Taskfile continues to own the lifecycle. Provider support must not imply that hourly billing, dedicated capacity, or persistent disks behave the same across vendors.