Repolode
semaphoreui

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 TowerTerraform 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. 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