Skip to main content

Overview

This guide will help you get Temporal Server up and running on your local machine in just a few minutes. Temporal is a durable execution platform that enables you to build scalable applications without sacrificing productivity or reliability.

Prerequisites

Before starting, ensure you have the following installed:
  • Temporal CLI: Required for running and interacting with the server
  • Go 1.26.0 or later: Only required if building from source

Quick Start with Temporal CLI

The fastest way to get started is using the Temporal CLI with the development server.
1

Install Temporal CLI

Install the Temporal CLI using Homebrew:
brew install temporal
For other installation methods, visit the Temporal CLI documentation.
2

Start the Development Server

Start a local Temporal Server with an in-memory SQLite database:
temporal server start-dev
This command starts all Temporal services (frontend, history, matching, and worker) with default settings.
The development server uses SQLite with in-memory storage by default. All data will be lost when the server stops.
3

Verify Server is Running

The server will start on the default ports:
  • gRPC: localhost:7233 (for SDK connections)
  • HTTP: localhost:7243 (for API access)
  • Web UI: localhost:8233 (if using Temporal UI)
Check server status with:
temporal operator namespace list
4

Create a Namespace

Create a default namespace for your workflows:
temporal operator namespace create default
While you can use any name for a namespace, using default is recommended when learning, as many samples assume this namespace exists.

Access the Web UI

If you have the Temporal Web UI running (via Docker or standalone), you can access it at:
http://localhost:8233
The Web UI allows you to:
  • View running and completed workflows
  • Inspect workflow execution history
  • Debug workflow failures
  • Monitor system health

Running Sample Workflows

Once your server is running, try executing sample workflows in your preferred language:
# Clone the Go samples repository
git clone https://github.com/temporalio/samples-go.git
cd samples-go/helloworld

# Run the worker
go run worker/main.go

# In a new terminal, run the starter
go run starter/main.go

Common CLI Commands

Here are some useful commands for interacting with your local Temporal Server:
# List all namespaces
temporal operator namespace list

# List workflows
temporal workflow list

# Show workflow execution details
temporal workflow show --workflow-id <workflow-id>

# Describe a workflow execution
temporal workflow describe --workflow-id <workflow-id>

# Terminate a workflow
temporal workflow terminate --workflow-id <workflow-id>

Server Configuration

The development server starts with sensible defaults:
  • Persistence: SQLite in-memory database
  • Frontend gRPC: Port 7233
  • Frontend HTTP: Port 7243
  • History Service: Port 7234
  • Matching Service: Port 7235
  • Worker Service: Port 7239
  • Metrics: Port 8000 (Prometheus format)
The in-memory SQLite database does not persist data between restarts. For persistent storage, see the Installation Guide.

Stopping the Server

To stop the development server, press Ctrl+C in the terminal where it’s running.

Next Steps

Installation Guide

Learn how to install Temporal Server with different databases and configurations

Build from Source

Build and run Temporal Server from source code

Temporal Documentation

Explore comprehensive Temporal documentation

Temporal 101 Course

Take the free Temporal 101 course

Troubleshooting

Port Already in Use

If you see an error about ports already in use, ensure no other Temporal Server instances are running:
# Check if port 7233 is in use
lsof -i :7233

# Kill the process if needed
kill -9 <PID>

Permission Denied Errors

Ensure you have the necessary permissions to bind to network ports. On some systems, you may need to run with elevated privileges or use ports above 1024.

Database Connection Issues

If using external databases, verify:
  • Database service is running
  • Connection credentials are correct
  • Network connectivity to the database
  • Required schemas are installed

Build docs developers (and LLMs) love