Skip to main content
Version: 2.5

Run the whole stack locally

Experimental

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 dev context 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. tsm does 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.