Self-hosted · Docker-native

Your whole stack, on demand, on plain Docker

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.

Install self-hostedRequest a demo
Fadebox dashboard — projects, environments, running services, fleet CPU and memory usage, and recent deployments with live status
$ fadebox connect pr-42
keycloak 8080 → localhost:8080
postgres 5432 → localhost:5432
Press Ctrl-C to stop

Use cases

Every step gets its own stack

A branch, a pull request, a regression pass, a demo, a support ticket: each runs on a copy that exists for that reason.

All seven, and who each is for →

Everything an on-demand environment needs

Built on Compose files you already have.

On-demand copies

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.

Preview URL per instance

Every service gets {instance}-{service}.your-domain with wildcard TLS via built-in ingress.

Your tools on localhost

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.

Compose-native templates

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.

Multi-runtime

Target local or remote Docker daemons over mTLS. Spread instances across hosts.

Git value sources

Pull config values straight from your repos, so environments track your branches.

How it fits together

A Fadebox environment — its services grouped into startup waves that wait for the previous wave to become healthy, next to the instance that runs them
01

Point at a runtime

Register a Docker daemon and set your ingress domain.

02

Import templates

From the catalog or your own Compose files.

03

Compose an environment

Pick the services a branch of your app needs.

04

Deploy an instance

Get a URL, or fadebox connect from your laptop.

Wire it into CI in an afternoon

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.com

Model Context Protocol

Let your coding agent drive it

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.

  • Diagnose from live evidenceStatus, per-container health and exit codes, plus a log search that scans on the server rather than tailing — so the answer comes back, not the log.
  • Compose and operateImport from the catalogue, wire the shared variables, deploy an instance, hand back the URL. The mechanical part is the part worth delegating.
  • Bounded by the same rolesAn agent's authority is its account's. A viewer key explains a failure and cannot deploy — and a log line telling it to delete everything is refused like any other call it lacks the role for.
Read the MCP docs →
$ 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?

Pricing

One flat price per installation, per year. You scale by Docker hosts, not by headcount — adding people to fadebox never changes what you pay.

Free

€0

The whole product with caps — not a crippled build. Every feature, offline, on your own hardware.

1 runtime · 5 instances · 5 users

Install

Team

€990per year, per installation

The same product, more of it. Adding developers never changes the bill.

5 runtimes · 10 instances each · unlimited users

Coming soon

Enterprise

€2,990per year, per installation

For a fleet of hosts, an identity provider to integrate with, and a security review to pass.

Unlimited everything · compliance features

Coming soon

FreeTeamEnterprise
Runtimes (Docker hosts)15Unlimited
Concurrent instances, per runtime510Unlimited
Users5UnlimitedUnlimited
Service accounts for CI3UnlimitedUnlimited
Projects, environments, templatesUnlimitedUnlimitedUnlimited
Every product feature✓✓✓
IdP group mapping · audit log · metrics export——✓
SupportCommunityEmail, next business daySLA, 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.

No phone-home, ever

A licence is a signed file you paste in. Verification is a local signature check — nothing leaves your host, including in air-gapped installs.

Priced per installation

One flat annual number, not a per-seat calculation. Give everyone an account; the bill stays the same.

Your instances are never held hostage

Caps are checked when you create or deploy. Running instances are never stopped — not on overage, not on expiry.

Expiry stops updates, not features

The version you paid for keeps every feature, forever. Lapsing means falling behind on releases, not a broken environment.

Running on your own host in 10 minutes

Two containers. Works offline. Your data never leaves your infra.

Install self-hostedRequest a demo