Skip to main content

Environment

What it is

An environment is a registered place where containers can be created. Concretely: a Docker host or a Kubernetes cluster that you own, with a controller attached that takes instructions from PlatformSmith and drives the local container runtime.

What it is not

It is not a deployment stage. The word "environment" usually means dev/staging/prod. Here it means a piece of compute. You can register three of them and call them dev, staging and prod — but the platform attaches no meaning to the names, and nothing promotes between them.

Types

TypeWhat it is
Host with DockerA machine running Docker; your containers are Docker containers
KubernetesA cluster you bring; your containers are pods

The type is fixed by what you connect. Before a controller has attached, switching the type edits the same environment rather than creating a second one; after it has attached, the environment's type is settled.

Roles

An environment carries a role saying what it is for. You get one of each at signup:

RoleWhat it is for
sandboxInteractive work — where your agents run. The workspace default
buildBuilding project images
deploymentLong-running service pods

Sandboxes can only be launched into a sandbox or deployment environment, which is why the interactive one is the default.

Role is fixed at creation

Name, type and default-ness are all editable. Role is not — no request carries one. A wrong role is fixed by deleting the environment and creating a replacement, which is precisely why signup seeds one of each rather than making you guess.

One constraint is worth knowing before you plan: a build environment must be a Host with Docker, because building images needs Docker itself. A Kubernetes-only organization has nowhere to build.

Who creates it

Signup creates three — one per role, all Docker, with sandbox as the workspace default. What they lack is a controller, which needs a host only you can provide. → What signup creates

You can create more at any time — a second Docker host, a Kubernetes cluster, a bigger machine.

Lifecycle

Create → attach a controller → in use. An environment can exist without a controller (that is what Connect it later leaves you with); it is saved and simply cannot run anything yet. You can re-attach a controller later to move an environment to a different host.

How it relates to workspaces and projects

An environment belongs to a workspace, and has no link to any project. Any project in the workspace can be launched into it. When you launch, you pick the pair.

The common mistake

Creating one environment per project. Environments are compute, and compute is shared. One Docker host serves every project in the workspace. Create a second environment when you need a different machine — a bigger one, a different network, a cluster — not when you start a new project.

Environments and self-hosting, in practice · Controllers