---
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-setup-environment
---

# 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/)

# Environment Setup

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.

## [Minimum Requirements](https://charmhub.io/temporal-k8s/docs/t-setup-environment#p-27498-minimum-requirements)

Before we start, make sure your machine meets the following requirements:

* A machine running Ubuntu 22.04 (Jammy) or later. Machines running other
  operating systems may opt for the use of
  [Multipass](https://multipass.run/docs). A simple set of instructions to set
  up Multipass can be found
  [here](https://juju.is/docs/sdk/set-up-your-development-environment#heading--set-up-an-ubuntu-vm-with-multipass).
* 8GB of RAM.
* 2 CPU threads.
* At least 20GB of available storage.
* Access to the internet for downloading the required snaps and charms.

## [Install Canonical Kubernetes](https://charmhub.io/temporal-k8s/docs/t-setup-environment#p-27498-install-canonical-kubernetes)

On your machine, install and configure Canonical Kubernetes (K8s):

```
sudo snap install k8s --classic

sudo k8s bootstrap
```

Wait until the `k8s` cluster is in `Ready` state. You can check it as follows:

```
sudo k8s status --wait-ready
```

Install kubectl and write `kubeconfig` for the current user:

```
sudo snap install kubectl --classic
mkdir -p ~/.kube
sudo k8s config > ~/.kube/config
```

## [Set up Juju](https://charmhub.io/temporal-k8s/docs/t-setup-environment#p-27498-set-up-juju)

Install Juju as follows:

```
sudo snap install juju --channel=latest/stable
```

Register your Canonical K8s cluster with Juju as a cloud named `ck8s`:

```
juju add-k8s ck8s
```

Confirm the new cloud entry is present:

```
juju clouds
# >>> Cloud      Regions  Default    Type  Credentials  Source    Description
# >>> ck8s       0                   k8s   1            local     A Kubernetes Cluster
# >>> k8s        0                   k8s   0            built-in  A local Kubernetes context
# >>> localhost  1        localhost  lxd   0            built-in  LXD Container Hypervisor
```

Install a Juju controller into your `ck8s` cloud. You can name it `temporal-controller`:

```
juju bootstrap ck8s temporal-controller
```

Create a workspace, or ‘model’, on this controller. You can name it `temporal-model`:

```
juju add-model temporal-model
```

You can check it’s status as follows:

```
juju status
# >>> Model           Controller           Cloud/Region  Version  SLA          Timestamp
# >>> temporal-model  temporal-controller  ck8s          3.6.8    unsupported  06:26:34-06:00
# >>>
# >>> Model "admin/temporal-model" is empty.
```

> **See next:
> [Deploying Temporal Server](https://charmhub.io/temporal-k8s/docs/t-deploy-server)**

---
