What you’re deploying
An Output deployment consists of two core services, with an optional third for remote tracing:
The API is a lightweight HTTP server that accepts workflow execution requests, routes them to the Temporal backend, and returns results. It ships as a pre-built Docker image so there’s no custom code to maintain.
The Worker is the core of your deployment — it contains your workflow code and connects to the Temporal backend for orchestration. Workers scale horizontally; you can add more instances to handle increased load without changing your workflow code.
These guides assume you’re using Temporal Cloud for workflow orchestration. If you need help setting up Temporal Cloud, see the Temporal Cloud documentation.
Prerequisites
Before deploying to any platform, ensure you have:- A Temporal backend with a dedicated namespace (e.g. Temporal Cloud)
- Your workflow repository on GitHub
- API keys for any services your workflows use (Anthropic, OpenAI, etc.)
- The
WorkspaceIdsearch attribute registered on that namespace (see below)
Register the WorkspaceId search attribute
The API attaches aWorkspaceId search attribute to a workflow start whenever its input includes a workspaceId string, so runs for a workspace can be found without knowing individual workflow IDs. ./run.sh dev and ./run.sh prod register it automatically against the local Temporal server. Every other environment — staging, Temporal Cloud, or any namespace not started by this repo’s Docker Compose files — needs it registered once, manually, by whoever administers that namespace:
Platform guides
Choose your deployment platform:Railway
Railway. Simple Docker-based deployments with automatic scaling.
Render
Render. Infrastructure-as-code deployments with a single render.yaml Blueprint.
Advanced
Advanced. Remote tracing with Redis and S3 for production debugging.
Next steps
Tracing
Tracing. Configure production tracing and S3 storage.
Error Handling
Error Handling. Handle failures gracefully in production.