Run the whole stack locally
The local build and runtime are experimental. The tsm runtime commands are available only in the experimental CLI build,
and their behaviour and configuration may still change.
You will run all required tSM services, the database and infrastructure in Docker for one workspace.
Before you start you need:
- a registered workspace and the
devcontext from Install and connect, - Docker with Compose v2 and enough memory for the selected services,
- a trusted PostgreSQL 17 database seed for your product version (dump, manifest and SHA-256) and the matching
tenant preparation inputs.
tsmdoes not download or create them; get them from your platform delivery owner, - for builds from source: JDK 21, Maven settings with access to the private repository, and checkouts of all required repositories.
Without the seed, use Run one service from your IDE instead; it needs no local database.
1. Prepare the profile
Copy the runtime profile template to .tsm/runtime-profiles.yaml in the workspace and
replace all uppercase placeholders with your real paths and the seed checksum. Source paths are relative to the
workspace, or register a checkout elsewhere with tsm runtime source add NAME --path /absolute/checkout.
The template's full profile contains the four core services plus ordering; add further services to the catalog.
2. Check what would run
These commands start nothing:
tsm cli config environment add local --project tsm
tsm context create local --project tsm --env local
tsm --workspace demo --context local runtime plan full
tsm --workspace demo --context local runtime status
The plan lists the services that will run as containers; status is NOT_CREATED for a new workspace.
3. Start, inspect, stop
tsm --workspace demo --context local runtime profile validate full
tsm --workspace demo --context local runtime up full
tsm --workspace demo runtime status
tsm --workspace demo runtime logs tsm-ordering --tail 50
Example status (names and ports vary):
Workspace: demo Profile: full
Context: local Tenant: default
Phase: RUNNING Runtime: 11111111-1111-1111-1111-111111111111
COMPONENT RUN STATE HEALTH PORT(S)
postgres container running healthy 127.0.0.1:58293
tsm-gateway container running healthy 127.0.0.1:58274
tsm-ordering container running unhealthy 127.0.0.1:58286
Phase: RUNNING alone does not mean ready: check the HEALTH column (— means no health reported).
In this example ordering is not healthy yet; inspect its logs. runtime status --json returns full Docker/process details.
tsm --workspace demo runtime down
down stops the instance and keeps its data; the next up reuses the same instance, ports and database.
runtime down --volumes also deletes the local database. Use it only when you really want to discard local data.
The seed is applied only to a new, empty database volume. Tenant preparation inputs are not re-imported on every up.