Semaphore UI
A web UI and API for running Ansible, Terraform, OpenTofu, Terragrunt, PowerShell and Bash from a shared, access-controlled place, with scheduling and notifications.
- GitHub stars
- 14k
- Last commit
- yesterday
- Latest release
- v2.19.12
- Licence
- MIT
- Self-hosted
- Yes

Semaphore UI is a web interface for managing DevOps tooling when running commands from a terminal no longer scales. It lets teams run Ansible playbooks, Terraform and OpenTofu code, and Bash and PowerShell scripts from a shared place with controlled access and notifications about failed tasks.
Work is organized into projects, with reusable task templates that can be run on demand or on a schedule. Inventories describe the target hosts, and variable groups hold environment variables and secrets for tasks to use. An API allows automation, and a Postman collection plus documentation are provided. Its repository topics place it in the same space as AWX and Jenkins.
Semaphore is written in Go and licensed under MIT. The most common installation method is Docker, but it is also available as a Snap, as Debian or RPM packages, as a plain binary, or as a pre-built virtual machine from marketplaces such as AWS, DigitalOcean and Vultr. An online demo is available for trying it out.
Key features
- Run Ansible playbooks from a web UI
- Terraform, OpenTofu and Terragrunt support
- Bash and PowerShell script execution
- Reusable task templates and schedules
- Inventories and secret variable groups
- Failure notifications and access control
- API for automation
Pricing: Community is free and self-hosted. Pro is $490 per year for a 4-user, 4-runner package (1 and 10 user packages also exist), with a 30-day trial; Enterprise is custom.

