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.
Package | Version | License |
---|---|---|
temporal | 1.22.4 | MIT License |
temporalio/ui | 2.22.3 | MIT License |
temporalio/admin-tools | 1.22.4 | MIT License |
temporalio/auto-setup | 1.22.4 | MIT License |
postgres | 13 | MIT License |
elasticsearch | 7.16.2 | Elastic License |
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.
In addition to creating a Droplet from the Temporal 1-Click App using the control panel, you can also use the DigitalOcean 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) to an environment variable or substitute it in the command below.
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"
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.
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
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. 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.