A self-hosted CI/CD engine that runs pipelines defined in config files in containers, with extensibility through plugins.
semaphoreui/semaphore
Web UI and API for running Ansible playbooks, Terraform/OpenTofu code and Bash or PowerShell scripts from a shared dashboard.
Open-source alternative to:Ansible Tower
Terraform Cloud
- Stars
- 14,295
- Forks
- 1,337
- Open issues
- 1,044
- Last commit
- 19 hours ago
What is it?
Semaphore UI is a self-hosted web interface for running DevOps automation tools. Teams that outgrow running Ansible playbooks or Terraform code from a terminal can use it to launch, schedule and review those jobs from a browser.
The project organizes work into projects, task templates, inventories and variable groups. Templates can be run on demand or on a schedule, each run produces a task record with its output, and failed tasks can trigger notifications. Access to the deployment system is controlled through user and permission management.
Semaphore is distributed as a Docker image, a binary, Debian or RPM packages, a Snap, and as images for several cloud marketplaces. It is written in Go and includes an API for automating its own resources.
Key features
- 01Runs Ansible playbooks, Terraform and OpenTofu code, and Bash or PowerShell scripts.
- 02Schedules task templates to run at set times or intervals.
- 03Sends notifications when tasks fail.
- 04Groups resources into projects with inventories and variable groups for secrets.
- 05Provides a REST API and Postman collection for automation.
Use cases
- Letting a team run shared Ansible deployments without giving everyone shell access to servers.
- Running scheduled Terraform plans or applies from a central web dashboard.
- Auditing which automation jobs ran and what their output was.
Quick start
- 1
Run Semaphore with Docker using SQLite and an admin account
docker run -p 3000:3000 --name semaphore -e SEMAPHORE_DB_DIALECT=sqlite -e SEMAPHORE_ADMIN=admin -e SEMAPHORE_ADMIN_PASSWORD=changeme -e SEMAPHORE_ADMIN_NAME=Admin -e SEMAPHORE_ADMIN_EMAIL=admin@localhost -d semaphoreui/semaphore:latest
Things to know
- The quick start uses a default admin password, which must be changed before real use.
- Other installs such as the binary, Snap, or package routes require following the external installation guide.
Topics
FAQ
- What is semaphore?
- Web UI and API for running Ansible playbooks, Terraform/OpenTofu code and Bash or PowerShell scripts from a shared dashboard. Semaphore UI is a self-hosted web interface for running DevOps automation tools. Teams that outgrow running Ansible playbooks or Terraform code from a terminal can use it to launch, schedule and review those jobs from a browser.
- Is semaphore free to use? What license does it have?
- semaphore is open source under the MIT license. Check the license terms before using it in commercial products.
- Is semaphore still maintained?
- Actively maintained. The last commit to semaphore was on Oct 22, 2026.
- What can I use semaphore for?
- Letting a team run shared Ansible deployments without giving everyone shell access to servers. Running scheduled Terraform plans or applies from a central web dashboard. Auditing which automation jobs ran and what their output was.
- How do I install semaphore?
- Run Semaphore with Docker using SQLite and an admin account: docker run -p 3000:3000 --name semaphore -e SEMAPHORE_DB_DIALECT=sqlite -e SEMAPHORE_ADMIN=admin -e SEMAPHORE_ADMIN_PASSWORD=changeme -e SEMAPHORE_ADMIN_NAME=Admin -e SEMAPHORE_ADMIN_EMAIL=admin@localhost -d semaphoreui/semaphore:latest
- Where can I get semaphore?
- The source code and installation instructions are on GitHub: https://github.com/semaphoreui/semaphore
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source IaC orchestration that runs Terraform and OpenTofu inside your existing CI pipeline, with plan and apply driven from pull request comments.
A CLI that runs your GitHub Actions workflows locally in Docker, so you can test changes without committing and pushing.
Agentless IT automation platform that uses SSH to configure systems, deploy applications, and manage cloud and network resources with plain-language playbooks.
Open source runbook automation service with a web console, CLI and WebAPI for running standardized operational tasks across nodes.
Jenkins is an open-source automation server for building, testing, and deploying software, extensible through over 2,000 plugins.