---
title: Charmhub | Deploy Temporal Server using Charmhub - The Open Operator Collection
description: Deploy the latest version of Temporal Server as a Kubernetes Operator
  on any cloud.
url: https://charmhub.io/temporal-k8s/docs/t-deploy-server
---

# Temporal Server

[Workflows Charmers](https://charmhub.io/publisher/workflows-charmers "View all packages from Workflows Charmers")

* [Workflows Charmers](https://charmhub.io/publisher/workflows-charmers "View all packages from Workflows Charmers")

Platform:

1.23/stable 60

```
juju deploy temporal-k8s --channel 1.23/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://github.com/canonical/temporal-k8s-operator)

---

#### Contacts

##### Maintainers

+ [Commercial Systems](mailto:jaas-crew@lists.canonical.com)

* [Submit a bug](https://github.com/canonical/temporal-k8s-operator/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Deploy Temporal Server

This is part of the
[Charmed Temporal Tutorial](https://charmhub.io/temporal-k8s/docs/t-introduction).
Please refer to this page for more information and the overview of the content.

The [Temporal server](https://docs.temporal.io/clusters#temporal-server) is a
group of four independently scalable services (frontend, history, matching and
worker). It is responsible for state management and task synchronization among
other functionalities.

## [Requirements](https://charmhub.io/temporal-k8s/docs/t-deploy-server#p-27499-requirements)

* You have completed [Environment Setup](https://charmhub.io/temporal-k8s/docs/t-setup-environment).

## [Deploy](https://charmhub.io/temporal-k8s/docs/t-deploy-server#p-27499-deploy)

To deploy Charmed Temporal K8s, all you need to do is run the following command,
which will fetch the charm from [Charmhub](https://charmhub.io/temporal-k8s) and
deploy it to your model:

```
juju deploy temporal-k8s --channel 1.23/stable --base ubuntu@24.04 --config num-history-shards=4
```

**About `num-history-shards`.** The value must be a **power of two** (1, 2, 4, 8, 16, …) and is **deployment-time-only**, it cannot be changed after the charm is deployed without a fresh deployment and data migration. `4` is a reasonable default for development; production deployments typically pick a higher power of two based on expected workflow throughput.

For more information about history shards, see the [official Temporal documentation](https://docs.temporal.io/temporal-service/temporal-server#history-shard).

## [Check status](https://charmhub.io/temporal-k8s/docs/t-deploy-server#p-27499-check-status)

Monitor the model while the application starts up:

```
juju status --watch 1s
```

Wait until the application stabilizes. At this point, it should be blocked, waiting for a database:

```
App           Version  Status   Scale  Charm         Channel       Rev  Address         Exposed  Message
temporal-k8s           blocked      1  temporal-k8s  1.23/stable   68   10.152.183.120  no       database relation not ready

Unit             Workload  Agent  Address     Ports  Message
temporal-k8s/0*  blocked   idle   10.1.0.152         database relation not ready
```

Press Ctrl+C to exit the watch.

> **See next:
> [Deploy PostgreSQL Database](https://charmhub.io/temporal-k8s/docs/t-deploy-db)**

---
