explaingit

semaphoreui/semaphore

13,597GoAudience · ops devopsComplexity · 3/5LicenseSetup · easy

TLDR

A browser-based dashboard for running Ansible, Terraform, and other DevOps automation tasks on demand or on a schedule, replacing manual terminal commands with a visual interface, task history, and team access controls.

Mindmap

mindmap
  root((semaphore))
    What It Does
      DevOps web dashboard
      Task automation UI
      Replaces terminal commands
    Supported Tools
      Ansible
      Terraform
      OpenTofu
      PowerShell
    Key Concepts
      Projects
      Task Templates
      Inventories
      Variable Groups
    Deployment
      Docker image
      Binary package
      Cloud VM options
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Trigger Ansible playbooks from a browser and view the full output log in real time, without SSH-ing into any server.

USE CASE 2

Schedule recurring Terraform apply jobs and track each run's history and status in the Semaphore dashboard.

USE CASE 3

Give a team of admins access to run pre-approved automation tasks without sharing SSH keys or terminal access.

USE CASE 4

Control Semaphore programmatically from scripts or a Terraform provider using its REST API.

Tech stack

GoAnsibleTerraformDockerPowerShell

Getting it running

Difficulty · easy Time to first run · 30min

Docker is the recommended install path and requires a single command to start, an online demo is available before installing.

MIT, use, copy, modify, and distribute freely for any purpose including commercial use.

In plain English

Semaphore UI is a web-based dashboard for running and managing automation tasks across popular DevOps tools including Ansible, Terraform, OpenTofu, Terragrunt, and PowerShell scripts. Rather than typing commands directly into a terminal, you can trigger and monitor deployments and operations from a browser. The project targets teams whose infrastructure has grown to the point where running things by hand in a terminal is no longer practical. Inside Semaphore UI, everything is organized around a few key concepts. A Project groups together the resources, configurations, and tasks that belong to one area of your infrastructure. Task Templates are reusable job definitions that can run on demand or on a schedule. Each time a template runs, it creates a Task, which represents one specific execution. An Inventory holds the list of target machines (servers, containers, virtual machines) that your tasks will act on. Variable Groups store sensitive values like passwords and API keys so they can be shared across tasks without being typed in each time. You can install Semaphore UI in several ways: via a pre-built Docker image, as a binary package, as a Snap package, or by deploying a ready-made virtual machine on AWS, DigitalOcean, Vultr, or Yandex Cloud. The Docker route is the most common starting point and takes only a single command. There is also an online demo available if you want to explore the interface before installing anything. The project includes a REST API and Postman collection for anyone who wants to control Semaphore programmatically. Third-party extensions exist in the ecosystem too, including a Terraform provider for managing Semaphore resources as code and a PowerShell module for scripting against the API. The source code is written in Go and released under the MIT license. The project is actively maintained with a public roadmap on GitHub and a Discord community for questions and support.

Copy-paste prompts

Prompt 1
Walk me through installing Semaphore UI with Docker and connecting it to an existing Ansible inventory so I can trigger playbooks from the browser.
Prompt 2
How do I create a Task Template in Semaphore UI for a Terraform plan and apply workflow, with a Variable Group storing my cloud provider API keys?
Prompt 3
Set up a scheduled Semaphore task that runs an Ansible playbook every night at 2AM.
Prompt 4
How do I use the Semaphore REST API to trigger a task template and poll until it reports success or failure?
Open on GitHub → Explain another repo

← semaphoreui on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.