Skip to content

Deployment

Deployment overview

A Lightspeed deployment combines the agent runtime with durable infrastructure and, optionally, the Platform web app. The runtime executes sessions, bots, and channel workflows. Temporal coordinates that work, PostgreSQL stores the product’s records, and the Platform handles people, universe membership, and the browser interface.

The first deployment can run all runtime roles in one process. Separate those roles when you need to scale or operate them independently.

The components

Component Responsibility Needed for
lightspeed-server JSON-RPC gateway, environment gateway, and Temporal workers for sessions, bots, and channels Every hosted Lightspeed installation
Temporal Durable workflow execution and coordination The hosted runtime
Runtime PostgreSQL database Session events, blobs, workspaces, credentials, profiles, bots, channels, and environment records The hosted runtime
Platform server and web app Sign-in, users, memberships, universe management, and browser access to the runtime The full web product
Platform PostgreSQL database Authentication and Platform-owned records The Platform
S3-compatible object storage Stores blobs larger than the 64 KiB inline limit Required for larger payloads; small blobs remain in PostgreSQL
Configurator MCP Exposes Lightspeed management operations to an MCP client Managing Lightspeed through MCP
Connector host Telegram and WhatsApp transport connections Those chat channels
Environment daemon and providers Filesystem/process access and, with a provider, machine lifecycle Agent tasks requiring compute

The two Lightspeed databases can live on the same PostgreSQL server, but they have separate schemas and migration histories. Temporal has its own persistence requirements, managed as part of the Temporal deployment.

flowchart TD
  Browser[Browser] --> Edge[HTTPS reverse proxy]
  Edge --> Platform[Platform server and web app]
  Platform --> PlatformDB[(Platform PostgreSQL)]
  Platform --> Runtime[Private Lightspeed runtime]
  Runtime <--> Temporal[Temporal service]
  Runtime --> RuntimeDB[(Runtime PostgreSQL)]
  Runtime --> Models[Model providers and MCP servers]
  Runtime --> Objects[(Optional object storage)]
  Daemon[Registered environment daemon] --> Edge
  Edge -->|public daemon routes| Runtime

The Platform sends authenticated, universe-scoped requests to the private runtime. Registered machines use separate public daemon routes. The reverse proxy must preserve that distinction.

Choose the client and authentication boundary

For the full web product, run the runtime in trusted-header mode. The Platform authenticates the user, checks access, and supplies the universe header. That header is trusted because the caller is the Platform. Exposing that runtime’s /rpc endpoint directly would let untrusted callers choose tenant headers and invoke deployment-level operator methods. Operator calls are available without a universe header on this listener. Keep it on the private service network.

A deployment with its own client or management plane can use the runtime without the Platform. The available gateway modes are:

Mode How requests are scoped Deployment use
trusted-header An authenticating upstream supplies a universe header and optional principal Platform or a custom trusted management plane
api-key A Lightspeed bearer key identifies a universe and principal Direct API clients; operator methods are unavailable on this listener
single One configured universe serves all requests Local development or a separately protected dedicated deployment

Each universe isolates its resources from other universes. Runtime API keys and tenant scoping do not add per-user resource policy inside a universe. The access guide explains setup and permissions; Multitenancy describes isolation and shared infrastructure.

Runtime roles and scaling

One lightspeed-server executable supplies five roles:

Role Work it owns
gateway JSON-RPC, OAuth callbacks, and bot webhook ingestion
environment-gateway Worker routes to environments, outbound daemon connections, environment lifecycle reconciliation, and idle power management
sessions Session workflows and activities, plus session and blob retention work
bots Bot controllers, trigger work, and bot activities
channels Chat conversation workflows and core channel activities

By default, all five run in one process. Worker roles use their own task queues, and a role can be split further into workflow and activity workers. Cross-component work reaches other workflows through starts and signals.

Run exactly one environment-gateway process per deployment. It owns live daemon connections, and worker requests for those daemons must reach that process. Other roles can have multiple workers. If you share a Temporal namespace between deployments, assign distinct session, bot, and channel task queues to each deployment.

Persistence determines what survives

The runtime database holds Lightspeed’s session history and domain records; Temporal persistence holds the workflow execution history. Both are necessary to continue durable work. A successful worker restart does not replace a backup and recovery procedure for those stores.

Keep the runtime secrets master key stable and backed up with appropriate access controls. It encrypts stored credentials. The Platform has its own authentication secret and database. If object storage is enabled, include its objects in the recovery plan as well. Each execution environment’s files and processes have a separate lifecycle from these stores.

The first self-hosted installation

The self-hosting guide installs the full web product on one Linux x86_64 application host, using release images built from a pinned source revision and existing PostgreSQL and Temporal services. It uses PostgreSQL for blobs up to 64 KiB initially. Configure object storage before using larger payloads. External integrations and compute can be added as needed.

That is a single application-host topology. High availability also requires planning the infrastructure, public edge, and the current singleton environment gateway. The local dev.sh stack has different defaults and is intended for development.

Continue with Configuration for service settings, Operations for monitoring and scaling, and Upgrades and recovery for maintenance. Use Troubleshooting to follow failures across components.