Skip to content

Deployment Profiles

A deployment profile is the answer to "what should this Host be running?" Today the answer is split across two artifacts:

  1. Runtime records under <host-home>/runtimes/<runtimeId>.json — one file per supervised runtime, written by hivecast up.
  2. Per-runtime environment files under <host-home>/runtime-env/<runtimeId>.json — written by writeHostRuntimeEnvironment at up time.

Together they describe the Host's desired state. The reconciler in Host Service walks this set on startup and brings the runtimes up that should be up.

A unified deployment-profile.json that combines these (plus gateway routes and config defaults) is target state — see the runtime-environment-multi-instance workstream.

Pages

  • Desired state — what the Host should be running, today versus target state
  • Runtime instances — the runtime record shape
  • Mounts — how a runtime's actor mounts are decided
  • Gateway routes — how --serve runtimes show up under /apps/<appName>/
  • Config — how per-runtime environment files compose with package config defaults
  • Verification — proving the desired state matches the actual state

Pre-baked profiles in the legacy docs

projects/matrix-3/packages/docs/content/operations/deployment-profiles.md documents four named profiles:

  1. Standalone — laptop, single user, embedded NATS.
  2. Federated client — multi-device, external NATS at HiveCast.
  3. Container worker — agent in a container, scoped under a user's root.
  4. HiveCast Edge — public-facing, multi-user OAuth.

These are illustrative profile shapes. The current code does not read a single "profile" file; it reads host.json plus the per- runtime records described above. The conceptual map between the legacy doc's profile shape and today's per-runtime files is:

Profile fieldToday's location
nameImplicit; encoded in the Host home
natshost.json:transport.nats
runtime.roothost.json:transport.root, plus per-runtime env file
http.porthost.json:http.port
packages.startupThe set of runtimes/*.json records with startup: "auto"

See also