Self-hosted. Open source.
One API. Seven clouds. No hassle.
Send constraints — vCPU, RAM, region, max price. Get a ranked answer in EUR. No provisioning. No lock-in. Just the cheapest VM that fits.
- One request — ranked recommendation
- Seven providers — AWS, GCP, Azure, Hetzner, Scaleway, DigitalOcean, OVH
- You run it — your data, cancel anytime
One API, with peace of mind.
Get started in minutes. Run locally or deploy yourself.
Ingest instance types and prices from seven clouds. Normalize to EUR. Expose a single recommendation endpoint. No vendor lock-in — you own the stack.
- Ranked recommendations
- Constraints in, list out
- Transparent explain block
- Swagger at /docs
Simple. Fast. Yours.
Simple
One endpoint. Send vCPU, RAM, region, max price. Get the cheapest VM that fits. No provisioning — just the answer.
Fast & easy
make up, make migrate, make ingest-all. Hit /api/recommendations. Done.
Self-hosted
Your PostgreSQL. Your credentials. No SSN, no lock-in. Used by Cloudburst Autoscaler for cost-aware Kubernetes burst.
Our providers? Glad you asked.
One API over seven clouds. Ingest once, recommend forever.
Related articles
Four-part intro in the repo: problem and product, how it works, the API, scope and run.
- 1. The problem and the product
- 2. How it works
- 3. The interface (recommendation API)
- 4. Scope, limits, and how to run it
Architecture
An ingestion pipeline: CLI connectors pull from seven providers; the ingestion service upserts data and normalizes prices to EUR via FX rates. The data model is Provider → Region → InstanceType → Price (append-only) plus FxRate. The recommendation engine filters by constraints (vCPU, RAM, region, max price, allowed providers), scores candidates (price + fit or multi-criteria), and returns a ranked list with a transparent explain block. Cloudburst Autoscaler integrates by calling POST /api/recommendations.
Examples
Start the API and PostgreSQL, then call the recommendation endpoint:
curl -X POST http://localhost:8000/api/recommendations \
-H "Content-Type: application/json" \
-d '{"min_vcpu": 2, "min_ram_gb": 4, "region_constraint": "EU", "max_price_eur_per_hour": 0.2, "limit": 5}'
Interactive docs at http://localhost:8000/docs when the API is running.
Got questions? Here’s the answers.
What is CloudBroker?
CloudBroker is a self-hosted API that ingests VM instance types and hourly prices from seven cloud providers, normalizes them to EUR, and exposes a single recommendation endpoint. Send constraints (vCPU, RAM, region, max price); get a ranked list. No provisioning — it only answers “what’s the cheapest VM that fits?”
Does it create or delete VMs?
No. It only recommends. Used by Cloudburst Autoscaler for cost-aware Kubernetes burst; any script or controller can call it.
How much does it cost?
It’s open source. You run it. Your PostgreSQL, your credentials. No monthly fee to us.
How do I get started?
Clone the repo, make up, make migrate, make seed, make ingest-all. Then hit POST /api/recommendations. See the repo for provider credentials in .env.
Get running in four steps
Yes, we kept it simple.
Then call /api/recommendations. Swagger at /docs.
How they work together
Used by Cloudburst Autoscaler: when a Kubernetes pod can’t be scheduled, Cloudburst calls POST /api/recommendations to pick the cheapest VM that fits, then provisions it.