A copy per pull request, per release, per demo, and one per developer that their own tools reach on localhost. No Kubernetes. No SaaS control plane.

$ fadebox connect pr-42
keycloak 8080 → localhost:8080
postgres 5432 → localhost:5432
Press Ctrl-C to stopUse cases
A branch, a pull request, a regression pass, a demo, a support ticket: each runs on a copy that exists for that reason.
For reviewers and engineering managers
The pipeline brings up this commit's build beside the real database and neighbours, puts the URL on the pull request and runs the suite against it. Reviewers click through the change instead of imagining it. Merged means deleted.
See how it works →For developers
The moment a branch needs the actual Keycloak realm or a search index with data in it, one command stands up the whole stack with only that developer's service swapped for their build. Nobody asks whether staging is free.
See how it works →For developers
Run the service you are changing in your IDE, breakpoints and all, against the team's database, identity provider and broker. fadebox connect puts each of them on localhost, through Fadebox itself, with no VPN.
See how it works →For QA and release managers
Clone the environment, pin its versions and mark it protected, so an afternoon's edit to dev cannot change what is being tested. A test that wrecks its own data is one reset away from a known state.
See how it works →For sales
A copy per prospect from a demo blueprint, seeded data and all, on a URL of its own. It stops by itself when its lifetime runs out, so three prospects are three copies and nobody's problem afterwards.
See how it works →For support
Support brings up a copy pinned to the version the customer runs, reproduces the report and pastes the instance URL into the ticket. The developer opens the same URL and starts the hotfix from what they see.
See how it works →For trainers
One environment, an instance per attendee, each with its own seed data and URL. Attendees own their labs, and the trainer resets any of them to the starting state in a couple of minutes.
See how it works →Built on Compose files you already have.
An isolated copy of your whole stack per pull request, release, demo or developer. Short-lived or long-lived: give it a lifetime and it stops on its own when that runs out.
Every service gets {instance}-{service}.your-domain with wildcard TLS via built-in ingress.
psql, DBeaver and your IDE reach an instance's services: on localhost through fadebox connect with no VPN, or at fixed addresses over your Tailscale or Headscale tailnet.
Templates are the Compose YAML you already write, no new DSL. Import ready-made ones — Postgres, Redis, RabbitMQ, Keycloak and more — from the open-source catalog, or from a git repo of your own.
Target local or remote Docker daemons over mTLS. Spread instances across hosts.
Pull config values straight from your repos, so environments track your branches.

Register a Docker daemon and set your ingress domain.
From the catalog or your own Compose files.
Pick the services a branch of your app needs.
Get a URL, or fadebox connect from your laptop.
One binary and a project-fenced API key: pipelines create, deploy, and destroy instances — one preview environment per pull request, torn down on merge. --wait follows the deploy and exits non-zero if it fails, so a broken environment stops the build instead of passing it.
$ fadebox instance up pr-42 --wait
Created instance 'pr-42'.
instance: STARTING
web: running (starting)
api: running (starting)
web: running (healthy)
api: running (healthy)
instance: RUNNING
Instance 'pr-42' is RUNNING
SERVICE STATE HEALTH IMAGE URLS
web running healthy acme/web:pr-42 https://pr-42-web.example.com
api running healthy acme/api:pr-42 https://pr-42-api.example.comModel Context Protocol
Fadebox speaks MCP, so Claude Code, your IDE assistant or a CI bot can read, build and operate environments directly instead of you relaying between them. One endpoint, no configuration to switch on — connect by signing in through your browser, or with an API key.
$ claude mcp add --transport http fadebox \
https://fadebox.example.com/mcp
Connected. 24 tools available.
> Why is pr-42 red?
· get_instance pr-42
· get_instance_logs api, tail 200
· get_environment shop-dev
api exited 1 eleven seconds after start: it cannot
resolve host 'postgres'. The environment runs that
service as 'db', so DB_HOST is pointing at a name
nothing answers to.
Set DB_HOST=db on api and redeploy?One flat price per installation, per year. You scale by Docker hosts, not by headcount — adding people to fadebox never changes what you pay.
The whole product with caps — not a crippled build. Every feature, offline, on your own hardware.
1 runtime · 5 instances · 5 users
InstallThe same product, more of it. Adding developers never changes the bill.
5 runtimes · 10 instances each · unlimited users
Coming soon
For a fleet of hosts, an identity provider to integrate with, and a security review to pass.
Unlimited everything · compliance features
Coming soon
| Free | Team | Enterprise | |
|---|---|---|---|
| Runtimes (Docker hosts) | 1 | 5 | Unlimited |
| Concurrent instances, per runtime | 5 | 10 | Unlimited |
| Users | 5 | Unlimited | Unlimited |
| Service accounts for CI | 3 | Unlimited | Unlimited |
| Projects, environments, templates | Unlimited | Unlimited | Unlimited |
| Every product feature | ✓ | ✓ | ✓ |
| IdP group mapping · audit log · metrics export | — | — | ✓ |
| Support | Community | Email, next business day | SLA, named contact |
Prices exclude VAT. The Free tier needs no licence key at all — install and run. Fadebox runs entirely on your own hardware and never phones home — on any tier, licensed or not.
A licence is a signed file you paste in. Verification is a local signature check — nothing leaves your host, including in air-gapped installs.
One flat annual number, not a per-seat calculation. Give everyone an account; the bill stays the same.
Caps are checked when you create or deploy. Running instances are never stopped — not on overage, not on expiry.
The version you paid for keeps every feature, forever. Lapsing means falling behind on releases, not a broken environment.
Two containers. Works offline. Your data never leaves your infra.