Skip to main content

All the ways to run a Temporal Cluster for development

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.

  1. Clone the temporalio/docker-compose repository.
    git clone https://github.com/temporalio/docker-compose.git
  2. Change to the directory for the project.
    cd docker-compose
  3. 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.

  1. Build from source by using go install.
    go install github.com/temporalio/temporalite/cmd/temporalite@latest
  2. Start Temporalite by using the start command.
    temporalite start --namespace default
    Replace 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.