Status
The fleet reports itself
Each environment sends a signal when it launches and while it stays afloat. The console distinguishes fresh activity, stale signals, and compute that has been torn down.
Chalupa turns your Compose file into an isolated stack on DigitalOcean or Hetzner, preserves seeded data between sessions, and tears down compute before temporary infrastructure becomes permanent cost.
curl -fsSL https://chalupa.run/install.sh | bashInstalls bun, go-task, and the CLI for you. Then run chalupa setup to link your DigitalOcean token, SSH key, and console account.
Fleet / now
demo-harbor
12s ago
agent connected
$0.04/h
estimated, not billed
Container memory
last 6 minutes
3.8 GB
Ephemeral compute
Removed when the environment is torn down.
Persistent volume
Separate 20 GiB volume; it survives.
One operational view
What is live, what retains data, and what happened.
Status
Each environment sends a signal when it launches and while it stays afloat. The console distinguishes fresh activity, stale signals, and compute that has been torn down.
Cost
Compare hourly compute, approximate month-to-date spend, and the observed idle window. Every figure is labeled as estimated; the provider invoice remains authoritative.
Evidence
Duration, outcome, percentiles, and artifacts appear beside the environment that produced the run, without confusing storage with observability.
Operating model
Declarative configuration in your project, local inference, and a control plane that receives signals. Every piece has a clear boundary.
A chalupa.yml selects services and overrides. Compose remains the source of truth for ports, volumes, and dependencies.
Pulumi creates ephemeral compute. When persistence is declared, the volume lives in a separate stack so it survives every destroy.
The agent pushes signed heartbeats to the control plane. Chalupa never needs to open an SSH connection to the droplet.
Connect through a tunnel, run suites, keep the evidence, and tear down compute when you finish. Persistent data remains untouched.
Two lifecycles
The droplet is replaceable. The persistent volume lives in a separate stack and is removed only through an explicit, destructive action. The console keeps that boundary visible for every environment.
Understand data and seedingCompute stack
Data stack
Security by topology
Services bind to 127.0.0.1 on the droplet and travel through an SSH tunnel. The agent only makes signed outbound requests to the control plane.
Databases, queues, and internal UIs never listen on the public interface.
Vercel receives heartbeats; it never needs to enter the droplet or read local Pulumi state.
Every payload is authenticated before it can change the fleet view.
One interface, explicit boundaries
No second manual list of ports and volumes to maintain.
Every environment shows how to open its tunnel and run the seed.
The UI has no launch or destroy buttons; the optional idle worker can stop only verified Chalupa compute.
Chalupa keeps references; large files stay in the storage you chose.
Free CLI, optional cloud
The local CLI and TUI are free. Hosted plans start at $15/month for managed hours, history, CI evidence, and cost visibility. DigitalOcean charges remain separate and transparent.
See plans and limitsCommunity
$0
Compose inference, preview, lifecycle, SSH tunnels, and the local TUI.
Solo
$15/mo
Hosted control plane with 500 managed environment-hours each month.
Start in your project
The quickstart separates local validation, persistent storage, compute, and tunnels so every step is deliberate.