Core concepts

Deployments & environments

Environments are isolated contexts in which your services run; deployments are the running instances of those services. Together they take a design from your laptop to production.

Environments

An environmentis an isolated context for running a project's services — for example a local environment for development and a remote one for production. Each environment holds its own configuration and its own set of deployments, so the same design can run in several places at once without interference.

Deployments

A deployment represents a running instance of a service in an environment. Deployments track:

  • Status — one of PENDING, RUNNING, FAILED, STOPPED, or STOPPING.
  • Logs — output captured as the deployment starts and runs.
  • Outputs — values a service produces once it is up, such as a connection string or a public URL.
  • Environment variables — the configuration injected into the running service.

Outputs flow between services

A deployment's outputs can be referenced by other services. A database deployment can publish its connection URL, and a web app deployment can consume it — resolved at deploy time through the Dreambase API.

Environment variables

A deployment's environment variables are computed from two sources, which Dreambase merges into a single effective set at deploy time and whenever an input changes:

  • Connector-derived — when a service depends on another (a connectorfrom the dependent to the dependency), the dependency's outputs are mapped onto variable names. A web app connected to a database can receive a DATABASE_URLfrom the database's connection-string output automatically.
  • User-provided (service-scoped)— variables you set directly on a service. These are defined per service, in addition to the design/environment variables, and are managed from the service's Env Vars tab in the node details panel.

User-provided variables override connectors

When the same key comes from both sources, the user-provided value wins. This lets you pin or override a connector-derived variable — for example, point DATABASE_URL at an external database for one environment while leaving the connector in place.

Service-scoped variables behave just like design/environment variables, with two switches:

  • Single value — the same value in every environment, versus a distinct value set per environment.
  • Sensitive — the value is encrypted at rest and masked in the UI and API responses.

A value can be a literal or a reference to a design/environment variable written as {{env.KEY}}, which is resolved for the deployment's environment when the effective set is computed. Whenever these variables change, Dreambase re-computes the effective set for the running deployment and emits a DEPLOYMENT_ENV_CHANGED event so the hosting service can apply the update.

Local vs. remote

Running a project locally deploys its services on your own machine — Docker-image services through Docker, codebase services from their repositories. Publishing to a remote environment hands each service to the appropriate platform service, which provisions and runs it in the cloud.

Insight at a glance

Whichever environment a deployment lives in, the app gives you quick insight into health, logs, and metricsacross all of a project's services. Health is kept current by the Monitoring service, which checks each deployment on a schedule and reports the result back into Dreambase.

Lifecycle events

Deployments emit events that platform services react to: DEPLOYMENT_CREATED and DEPLOYMENT_DELETED to provision or tear down infrastructure, DEPLOYMENT_STATUS_CHANGEDwhen a deployment's status changes (for example, an older deployment is marked STOPPED when a new one supersedes it), and DEPLOYMENT_ENV_CHANGED when its environment variables change — such as when a dependency publishes new outputs — so the service can apply them.