Skip to main content

Fadebox 1.1

The 1.1 line: fadebox/fadebox:1.1 follows its newest release, and the 1.1 docs describe every release on it. Moving between releases is covered in Upgrading.

1.1.5 — 2026-09-10​

See what a runtime is costing. The runtimes list now shows two bars per host, CPU and memory used of its own capacity, and an instance's status shows the same per container — 0.42 cores · 312 MiB / 2 GiB — with the instance's managed volumes below them. fadebox runtime list gains CPU and MEMORY columns. The instances-per-runtime cap counts instances; this says what they actually cost, which is the number you want before putting another one on a host. Everything is read from each daemon on a timer and held in memory — no page waits on Docker, and nothing is stored — so a dash means not observed yet rather than zero, and CPU needs two readings before it says anything. There is no history: these are current readings, not a time series. See What a runtime is costing and Runtime usage to tune or switch off either pass.

Read a catalog entry before importing it. Details on a catalog card opens the entry itself — the Compose it deploys, the files it injects, its version, image and pairing — read-only, with its own linkable address. Until now the only way to see an entry's contents was to import a copy you might not want, and in a project scope may not be allowed to create. A template's catalog badge now links back to the entry it came from and names the source, entry and imported version on hover; if the entry is gone the sheet says so, since an import is a copy and the template keeps working. See The catalog.

Clearer catalog administration in a project. Global sources and the bundled catalog appear in a project's source list for their status and entry counts, and now say administered globally instead of leaving an empty gap where a maintainer's own sources have controls. See Sources for one project.

Fixed. The Service Templates list no longer scrolls sideways: the image column takes the leftover width and truncates a long registry reference (full value on hover), the others hug their content, and Created steps aside on a narrow window. The drawers that show container logs are wider, so a long log line no longer wraps into three.

Upgrade notes. None: no schema change, and the ingress stack is unchanged. Usage collection starts on its own and needs nothing configured. For API clients, GET /api/runtimes entries carry a nullable usage, GET /api/runtimes/{name}/usage is new (its container rows narrowed to the projects the caller can see), an instance's status carries volumesBytes and per-container cpuCores, memoryUsageBytes, memoryLimitBytes and rootfsRwBytes, and a catalog entry's payload now also carries source, tags and requires.

1.1.4 — 2026-09-09​

HTTPS without a certificate authority. A runtime's new HTTPS certificate setting chooses how the managed ingress stack certifies HTTPS: the Let's Encrypt wildcard as before, or Traefik's own self-signed default certificate — for an internal or air-gapped host that has no public DNS to solve a challenge against but still wants deployed apps served as https://. Browsers warn on the self-signed one; that is the trade. See TLS.

The managed ingress stack follows the egress proxy. On a network that only reaches the internet through a proxy, the Traefik that Fadebox installs now inherits QUARKUS_PROXY_HOST, so Let's Encrypt is reachable, while its backends and the socket proxy stay direct. Nothing to configure; re-apply the stack after changing the proxy. See Egress proxy.

The ingress stack has its own dialog, and knows whether it is current. Install, update and remove moved out of the runtime edit form to an Ingress action on the runtimes list. The dialog says whether the running stack is up to date with the saved settings or outdated — read off the host itself, so a changed setting, a Fadebox upgrade or a changed proxy all show — and saving ingress settings ends by offering it. Saving never touches the running stack. See Setting it up.

Upgrade notes. One migration runs on startup, V007, adding the certificate mode to runtimes; existing runtimes keep Let's Encrypt. Every managed ingress stack installed by an earlier release reads as outdated once, because it carries no record of what it was created from: Update it at a convenient moment — the containers are replaced, issued certificates are kept — and it reads as up to date from then on. For API clients, GET and POST /api/runtimes/{name}/ingress now return { state, containers } instead of a bare list of containers.

1.1.3 — 2026-09-08​

An instance's runtime is a choice, and can be changed. The Runtime field is always offered when an instance is created, pre-filled with what the server would pick — local when it is enabled and available to the project, otherwise the project's only enabled runtime — and left for you when several qualify; a request that names none in that case is refused with the candidates rather than guessed. An instance whose runtime has since been disabled says so on its card and cannot deploy or reset there; Move takes a stopped or draft instance to another runtime, from the card or fadebox instance move <slug> --runtime <runtime>. A move keeps the name, the overrides and the history, not the data: volumes stay on the old daemon and the new runtime has its own ingress domain, so the next deploy comes up on new URLs and empty. See Runtime. Before this, a free-tier installation that switched local off in favour of one remote runtime created instances that could never deploy.

Catalog cards say what the software is. Beside the entry's own version, a card shows the tag of the image its main service runs (18-alpine, 26.7), with the full reference on hover; and the pairs with badge names the first provider and counts the rest instead of running off the card. See The catalog.

Fixed. Signing out no longer crashes the web interface before the browser reaches the identity provider's sign-out page.

Upgrade notes. None: no schema change, and the ingress stack is unchanged. For API clients, instances gain runtimeEnabled, catalog entries gain image, and PUT /api/projects/{project}/environments/{env}/instances/{slug}/runtime is new; every existing call answers as before. Quarkus moved to 3.39.2.

1.1.2 — 2026-09-07​

A project's catalog is its maintainers'. A maintainer registers, syncs, switches and removes the project's own catalog sources, imports entries into the project, and creates, edits and deletes the project's own templates — no global role needed. Test runs stay with the global template roles. Over MCP, the catalog and template tools take an optional project for the same.

Unsafe template configuration is refused by default. A project template that declares a privileged container, a bind mount, a host port binding or a traefik./fadebox. label is refused when saved or imported, unless an administrator allows it under Project → Settings → Template Safety. Global templates only warn. Validation lists such findings under unsafe. See Unsafe configuration.

The Members page lists each person once, with every role they hold and the group each comes from, and searches by username or email. The members endpoint (GET /api/projects/{project}/members) now answers one row per user with a roles list instead of one row per grant.

Upgrade notes. Nothing saved or running is checked against the new rule: it applies when a project template is next saved or imported, and the project's switch is off until an administrator turns it on. The members endpoint's changed row shape is the only API change; the web interface is its only shipped client.

1.1.1 — 2026-09-05​

Every project comes with its groups. A project now owns a group per role from the start — acme-viewers, acme-deployers, acme-editors and acme-maintainers for a project acme — shown under Access → Groups with a Project group badge. They take claim mappings, so a directory group maps straight onto one role in one project, and they cannot be deleted by hand or lose their grant; they go with the project. Creating a group under a name a project owns is refused, and so is creating a project whose group names a hand-made group already holds. See Access control.

Fixed. Opening a group under Access → Groups no longer switches the sidebar to project scope.

Upgrade notes. On first start, every existing project gains the project groups it lacks. A hand-made group that already holds one of those names is left alone and logged; rename or delete it, and the project group appears at the next start.

1.1.0 — 2026-09-05​

Deployers can vary an instance. An environment names the services a deployer may change — their variables, their image tag, or both — and whoever creates or redeploys an instance sets values on those services and no others. Everything else stays as the definition says. See What deployers may change and Overrides.

Reset an instance. Removes its containers, network and volumes, then deploys it again with the same values — start over without losing the name or the URL. A deployer action, behind a confirmation; fadebox instance reset in the CLI. See Reset.

Deploy history. Every deploy and reset records what it actually ran — the image per service after every resolution pass, and the values applied — so an instance card stays truthful after the branch a git reference points at has moved. See Deploy history.

Catalog imports through your own registry. With a system image registry configured, the import dialog offers to pull an entry's Docker Hub images from it, and shows exactly what it would rewrite before you accept. The choice is kept, so Update from catalog does not revert it. See Pulling the entry's images from your own registry.

One egress proxy setting. On a network that only reaches out through a proxy, QUARKUS_PROXY_HOST now covers all three outbound paths — OIDC discovery, the OIDC client's own calls, and git. See Egress proxy.

The runtime list shows what you can use. It is narrowed to the runtimes your projects may deploy onto; a global admin still sees them all, and the admin-only fields stay admin-only. See Project roles.

Installation isolation is always on. Several Fadebox installations sharing one Docker daemon no longer need a setting to keep out of each other's containers: every container is stamped with its installation's own id. Containers deployed by an earlier version, before stamping, still count as yours.

The bundled catalog moved on. New and updated entries from the catalog's master as of 2026-09-04 — what changed.

A fix. Two instances whose names happened to join into the same namespace could remove each other's containers on deploy; a deploy now refuses to touch a container that is not its own.

Upgrade notes. Three migrations run on startup — V003 (which services an environment opens to deployers), V004 (the deploy record) and V005 (a template's registry choice). The FADEBOX_INSTALLATION_ID setting is gone; if you had set it, remove it — isolation now keys on the installation's own id, and the setting is ignored. To take the minor, change the compose file's image from fadebox/fadebox:1.0 to fadebox/fadebox:1.1; the 1.0 tag keeps following 1.0.x patches and never moves to 1.1.