Skip to main content

Applications

An application is the tool a task template runs. Semaphore ships with seven built-in applications; administrators can switch them on and off and register their own.

ApplicationIDWhat a template runsGuide
Ansible Playbookansibleansible-playbook with the selected inventoryAnsible
Terraform Codeterraformterraform in the selected subdirectory and workspaceTerraform/OpenTofu
OpenTofu Codetofutofu, same options as TerraformTerraform/OpenTofu
Terragrunt Codeterragruntterragrunt wrapping Terraform or OpenTofuTerragrunt
Bash Scriptbasha shell script with /bin/bashShell
PowerShell Scriptpowershella .ps1 script with pwshPowerShell
Python Scriptpythona .py script with python3Python

The tool itself must be installed on the machine that executes tasks: the Semaphore server or the runner. The official Docker image contains Ansible, Terraform, OpenTofu, Bash, and Python.

Managing applications

Administrators open Applications from the account menu at the bottom of the sidebar.

Applications page

The switch in every row enables or disables the application. A disabled application is not offered in the template form, existing templates keep working. Only enabled applications appear when creating a template, so disable the tools that are not installed on your server.

Click an application to change its title, icon, binary path, and priority (the order in the template form).

Custom applications

New App registers any command line tool as an application:

FieldDescription
IDShort identifier used in the API and in templates, for example pulumi.
IconIcon shown next to the name.
NameTitle shown in the template form.
PathPath to the executable on the server or runner.
PriorityPosition in the application list.
ActiveWhether the application is offered in templates.

A template of a custom application runs the executable with the script file from the repository as the argument and receives variable groups as environment variables, the same way as Bash templates.

Applications can also be predefined in the server configuration, see the apps section in Configuration.