Skip to main content

Playgrounds

A Playground is the running environment launched from a Playspec. Services, URLs, logs, terminal access, an optional Genie panel.

Starting, changing, stopping, or destroying a Playground runtime requires its Marquee to be funded. If billing has expired, these actions return MARQUEE_NOT_FUNDED.

Lifecycle states

StateMeaning
pendingQueued. Marquee hasn't started provisioning.
in progressImages pulling, containers starting, healthchecks settling.
runningUp. URLs work.
has changesPlayspec edited. Running Playground hasn't picked them up. Rollout or Hard restart applies.
completedTricks only. Watched service finished.
errorLaunch failed. Logs say why.
destroyingTearing down.

Actions

  • Rollout — apply edits with minimum disruption. Unchanged services keep running.
  • Hard restart — stop everything, start fresh. Use when state has drifted or after structural changes.
  • Stop — turn off services, keep the Playground record. Restart later.
  • Retry — re-run a failed launch.
  • Extend — push expiration out.
  • Destroy — remove the Playground.
  • Maintenance mode — route traffic to a maintenance page. Containers stay up. Toggle, not a state.

force can bypass some state protections when the server permits it.

Expiration with uncommitted changes

If a Playground has uncommitted changes when expiration falls due, Fibe holds off and surfaces a warning. Commit, extend, or destroy.

What the page gives you

  • Service URLs — public and internal, HTTPS.
  • Live logs per service.
  • In-browser terminal per service.
  • Environment overrides — change values without rebuilding the image.
  • Service discovery — containers reach each other by service name inside the Compose network.
  • Status timeline — build → ready.
  • Genie side panel — chat in context with any configured Genie.

Plain Docker Compose

A Playground's body is a Docker Compose file plus a few Fibe additions (labels, optional settings block). Run the same file locally with docker compose up — no Fibe service required for local dev.

On a Marquee the Fibe additions activate (routing, source mounting, variables, healthchecks). Locally they're ignored by Compose.

What this means:

  • No Fibe install needed for local development.
  • Debug a launch by running the Compose against local Docker.
  • The recipe stays portable. Fibe is one place to run it, not the only one.

Data durability

Where data livesSurvives restartUse for
Named volumeYesDatabases, uploads, anything you'd be sad to lose.
External service (S3, managed DB)YesProduction-shaped data.
Container filesystemNoDisposable. Gone on rollout.

A hard restart can pull a fresh image. Pin tags (postgres:17, not postgres:latest). Renaming services or volume keys can detach existing data — the product warns first.

FAQ

How long does a Playground stay alive?

Until you stop it, destroy it, or its expiration passes. Expiration is surfaced prominently.

Can I have many Playgrounds at once?

Yes. Limited by Marquee capacity. A small Marquee runs a handful; a bigger one runs many.

Rollout vs Hard restart?

Rollout keeps unchanged services running; only changed ones restart. Use for everyday edits.

Hard restart stops and starts every service. Use after structural changes (renamed service, volume layout change) or when state has drifted.

502 from outside but works in the container terminal?

Almost always: the service binds to localhost instead of 0.0.0.0. Fix the bind address. See Common problems for per-framework commands.

What does Maintenance mode do?

The Marquee proxy serves a maintenance page for the Playground's URLs. Containers stay up — SSH in, read logs, edit. Toggle it off and routing returns. The Playground's state (running, has_changes, error) is unaffected.