Semaphore UI
Semaphore UI is an open source web interface and API for running Ansible, Terraform, OpenTofu, Bash, and PowerShell — a lightweight, self-hosted alternative to Ansible Automation Platform and Terraform Cloud for teams that want to trigger and schedule automation from one place.
What is Semaphore UI?
Semaphore UI is an open source web interface and API for running infrastructure automation — Ansible playbooks, Terraform and OpenTofu code, Terragrunt, and Bash, Python, and PowerShell scripts. It gives a team one dashboard to trigger, schedule, and monitor those runs instead of executing them by hand from a terminal. It was previously called Ansible Semaphore.
What is Semaphore UI best for?
Small and mid-sized teams that already write Ansible or Terraform and want a shared control plane without the weight of Red Hat’s Ansible Automation Platform. Written in Go and shipped as a single binary using roughly 50 MB of RAM at idle, it suits homelabs, MSPs, and ops teams that need scheduled runs, stored secrets, and access control without standing up Kubernetes.
What can Semaphore UI do?
- Run Ansible, Terraform, OpenTofu, Terragrunt, Bash, Python, and PowerShell from one UI and API
- Schedule tasks or trigger them on demand, with full execution history and logs
- Store SSH keys, passwords, and environment variables as reusable secrets and variable groups
- Manage inventories, host groups, and reusable task templates
- Control access with team-based roles (admin, task runner, viewer)
- Expose a full OpenAPI/Swagger-documented REST API for scripting and integrations
- Send notifications (Slack, Telegram, email, webhooks) on task results
Where does Semaphore UI fall short?
Its access control and audit tooling are deliberately simple — a handful of built-in roles rather than the fine-grained RBAC, credential scoping, and detailed audit logging that Red Hat AAP offers, which matters for regulated or large multi-team environments. Several production features are gated behind paid tiers: isolated runners, HashiCorp Vault integration, active-active high availability, and custom roles are Pro or Enterprise, not part of the free MIT build. And it is an execution and scheduling layer, not a full CI/CD system — for building and testing application code on every commit you still want Jenkins, GitLab CI, or similar.
Is Semaphore UI free?
Yes — the Community edition is free and MIT-licensed, with the full UI, API, execution history, and community support, and no cap on what you self-host. Semaphore also sells paid tiers on top: Pro is $490/year and adds isolated runners, task summaries, Vault secrets, up to 500 managed nodes, and a 48-hour support SLA; Enterprise (custom pricing) adds high availability, custom roles, air-gapped licensing, and priority support.
What does Semaphore UI replace?
Semaphore UI stands in for commercial automation control planes. It’s an Ansible Automation Platform alternative (and to the open source AWX it grew out of), a lighter Terraform Cloud alternative for teams that want to run OpenTofu and Terraform themselves, and a self-hosted Spacelift alternative for infrastructure-as-code orchestration. It also overlaps with Rundeck as a general runbook and job scheduler.
FAQ
Is Semaphore UI open source? Yes. The core (Community edition) is fully open source under the permissive MIT license, with the source on GitHub. Some advanced features — isolated runners, Vault integration, HA — are reserved for the paid Pro and Enterprise tiers.
Can I self-host Semaphore UI for free? Yes. The Community edition is free to self-host with no node limit. It ships as a single Go binary and runs via Docker, Helm, a package manager, or a downloaded binary, backed by SQLite, BoltDB, MySQL, or PostgreSQL.
Is Semaphore UI a good Ansible Tower / AWX alternative? For most small-to-mid teams, yes — it’s far lighter to run than AWX (which now effectively requires Kubernetes) and, unlike Ansible-only tools, also runs Terraform, OpenTofu, and scripts. Large enterprises needing granular RBAC and deep audit logging may still prefer AAP.
What do I need to run Semaphore UI? A host with Docker or the ability to run a single Go binary, plus a database — SQLite works out of the box for small setups, with MySQL or PostgreSQL for larger ones. Memory needs are modest, around 50 MB at idle.