You can run a Temporal Cluster for development and testing purposes in various ways. This article aims to maintain a comprehensive list of them.
- Docker: Using Docker Compose simplifies developing your Temporal Application.
- Gitpod: One-click deployments are available for Go and TypeScript.
- Helm charts: Deploying a Cluster to Kubernetes is an easy way to test the system and develop Temporal Applications.
- Render: Our temporalio/docker-compose experience has been translated to Render's Blueprint format for an alternative cloud connection.
- Temporalite: This distribution of Temporal runs as a single process with zero runtime dependencies.
For information on deploying a production environment, see the Temporal Cloud documentation.
Docker Compose
Use Docker Compose and Temporal Cluster Docker images to quickly install and run a Temporal Cluster locally.
Prerequisites
Install Docker and Docker Compose.
Clone the repo and run Docker Compose
The following steps start and run a Temporal Cluster using the default configuration.
- Clone the temporalio/docker-compose repository.
git clone https://github.com/temporalio/docker-compose.git
- Change to the directory for the project.
cd docker-compose
- From your project directory, start your application.
docker-compose up
Results: You should have Temporal Cluster running at http://127.0.0.1:7233
and the Temporal Web UI at http://127.0.0.1:8080
.
To try other configurations (different dependencies and databases), or to try a custom Docker image, follow the temporalio/docker-compose README.
Gitpod
You can run a Temporal Cluster and develop Temporal Applications in your browser using Gitpod.
One-click deployments are available for the temporalio/samples-go repo and the temporalio/samples-typescript repo.
A one-click deployment starts a Temporal Cluster using a Temporal Cluster Docker image, starts a Worker Process, and starts one of the application's sample Workflows.
A one-click deployment can take up to a full minute to get fully up and running. When it is running, you can customize the application samples.
Helm charts
Use Temporal Helm charts to deploy the Temporal Server to a Kubernetes cluster.
Deploying the Temporal Cluster with Helm is not recommended for a production environment, but it is a great way to test the system while developing Workflows.
Render
temporal-render-simple translates our docker-compose to Render by using the Auto-Setup Docker image. We do not recommend using this technique for production because all four Temporal internal services (Frontend, Matching, History, and Worker) are run in one process, but the benefit is one-click deployments.
Temporalite
Temporalite is a distribution of Temporal that runs as a single process with zero runtime dependencies. It supports persistence to disk and in-memory mode through SQLite.
Prerequisites
Temporalite requires Go 1.18 or later.
Build and start Temporalite
The following steps start and run a Temporal Cluster.
- Build from source by using
go install
.go install github.com/temporalio/temporalite/cmd/temporalite@latest
- Start Temporalite by using the
start
command.Replacetemporalite start --namespace default
default
with your Namespace Name.
Results: You should have Temporal Cluster running at http://127.0.0.1:7233
and the Temporal Web UI at http://127.0.0.1:8233
.