# Temporal Generated on 2 Jan 2026 from [the Temporal catalog page](https://marketplace.digitalocean.com/apps/temporal) An abstraction for building simple, sophisticated, resilient applications Developing your application on the Temporal platform gives you a secret weapon **—durable execution—** which guarantees that your code runs to completion no matter what. The result? Bulletproof applications that are faster to develop and easier to support. ## Software Included | Package | Version | License | |---|---|---| | temporal | 1.29.1 | [MIT License](https://github.com/temporalio/temporal/blob/main/LICENSE) | | temporalio/ui | 2.34.0 | [MIT License](https://github.com/temporalio/temporal/blob/main/LICENSE) | | temporalio/admin-tools | 1.29 | [MIT License](https://github.com/temporalio/temporal/blob/main/LICENSE) | | temporalio/auto-setup | 1.29.1 | [MIT License](https://github.com/temporalio/temporal/blob/main/LICENSE) | | postgres | 16 | [MIT License](https://opensource.org/license/postgresql/) | | elasticsearch | 7.17.27 | [Elastic License](https://www.elastic.co/licensing/elastic-license) | ## Creating an App using the Control Panel Click the **Deploy to DigitalOcean** button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account. [![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/droplets/new?image=temporal) ## Creating an App using the API In addition to creating a Droplet from the Temporal 1-Click App using the control panel, you can also use the [DigitalOcean API](https://docs.digitalocean.com/reference/api). As an example, to create a 4GB Temporal Droplet in the SFO2 region, you can use the following `curl` command. You need to either save your [API access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) to an environment variable or substitute it in the command below. ```shell curl -X POST -H 'Content-Type: application/json' \ -H 'Authorization: Bearer '$TOKEN'' -d \ '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image":"temporal"}' \ "https://api.digitalocean.com/v2/droplets" ``` ## Getting Started After Deploying Temporal **1. Finishing setup** After installation you need to login to the droplet and finish setup process, it will generate required certificates. After setup process is over, the app will be fully functional in 5-10 minutes. **2. Temporal UI** By default UI is not accessible because authentication is missing. To open UI in a browser just run this command: `ssh -i %PATH_TO_YOUR_SSH_KEY% -L 8080:127.0.0.1:8080 -N -f root@%DROPLET_IP_ADDRESS%` Where %PATH\_TO\_YOUR\_SSH\_KEY% is the path to the ssh key used in the droplet creation process, %DROPLET\_IP\_ADDRESS% - the droplet IP address. Note: If droplet was created with root password port forwarding can be applied using this command: `ssh -L 8080:127.0.0.1:8080 -N -f root@%DROPLET_IP_ADDRESS%` After the command is executed Temporal UI will be accessible in a browser with URL [http://127.0.0.1:8080](http://127.0.0.1:8080). Temporal UI also can be configured to use thirdparty authorisation. Take a look at the article: [https://github.com/temporalio/web?tab=readme-ov-file#configuring-authentication-optional](https://github.com/temporalio/web?tab=readme-ov-file#configuring-authentication-optional) Note: to share temporal UI, the droplet’s `/srv/temporal/docker-compose.yml` should be updated: ``` temporal-ui: container_name: temporal-ui depends_on: - temporal .... ports: - "8080:8080" ``` **3. Using Temporal in development process** Files `/srv/temporal/certs/client.pem` and `/srv/temporal/certs/client.key` should be copied to the local machine and they should be used to access the temporal service. For example, lets run GO lang samples from this repository: [https://github.com/temporalio/samples-go/tree/main/helloworldmtls](https://github.com/temporalio/samples-go/tree/main/helloworldmtls). To start the worker use this command ``` go run ./helloworldmtls/worker -target-host %DROPLET_IP_ADDRESS%:7233 -namespace default -client-cert ./helloworldmtls/client.pem -client-key ./helloworldmtls/client.key ``` To execute workflow use this: ``` go run ./helloworldmtls/starter -target-host %DROPLET_IP_ADDRESS%:7233 -namespace default -client-cert ./helloworldmtls/client.pem -client-key ./helloworldmtls/client.key ``` `client.pem` and `client.key` should be copied from the droplet, it was mentioned before. Accessing temporal using other programming languages is similar.