
Semaphore
Web UI for running Ansible, Terraform/OpenTofu and other DevOps scripts with a team-friendly interface.
- Stars
- 14.4k
- Forks
- 1.3k
- Licence
- MIT
- Language
- Go
- Last update
- 4 days ago
- Type
- App
What it is
Semaphore UI is a web interface for running DevOps tools such as Ansible playbooks, Terraform and OpenTofu code, and Bash or PowerShell scripts. Instead of running these from a terminal, teams can start them from a browser, schedule them, and get notified when tasks fail. It also lets you control who has access to the deployment system.
- Run an Ansible playbook against a set of inventory hosts from a browser
- Schedule a Terraform or OpenTofu task to run at set times
- Get notified when a deployment task fails
- Store environment variables and secrets in variable groups for task runs
Great for
- Teams that have outgrown running Ansible or Terraform from a personal terminal
- Operations staff who want scheduled, repeatable deployment runs
- Groups that need access control over who can run deployment tasks
Not ideal for
- Solo users who are happy with the command line, since the UI adds a server to maintain
- Teams not using Ansible, Terraform/OpenTofu, Terragrunt, Bash or PowerShell, since those are the tools it runs
- Anyone needing a managed service without installing anything, as the README mentions a SaaS option only in a commented-out section
How to get it
- 1
Run with Docker
You'll need: Docker
Run Semaphore with Docker (SQLite, 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 - 2
Run it
- Run the Docker command from the README.
- Open the web interface on port 3000 in your browser.
- Log in with the admin account set in the environment variables.
- Change the default password before using it beyond testing.
- Create a project, then add task templates and inventory.
- 3
Get the most out of it
- Use the Container Configurator on the project site to get a Docker setup suited to your needs
- Store sensitive values in variable groups rather than in task definitions
- Use schedules to automate recurring Ansible or Terraform runs
- Configure failure notifications so teams hear about broken tasks
- Use the API reference to integrate Semaphore with other tools
Downloads
Strengths
- Provides a web UI and API over existing DevOps tools
- Supports scheduling and failure notifications
- Includes access control for the deployment system
Trade-offs
- Requires running and maintaining a server, with a choice of install methods the README describes only briefly
- The README is truncated and gives few details on advanced configuration or security setup
- Its main value depends on already using the supported DevOps tools
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| semaphore (this) | 14.4k | App | intermediate | 4 days ago | Teams that have outgrown running Ansible or Terraform from a personal terminal |
| jenkins | 26.7k | App | intermediate | 4 days ago | Development teams that want to automate builds and tests |
| Jenkins-Zero-To-Hero | 10.1k | Learning resource | beginner | 1.7 years ago | Beginners who want a guided first install of Jenkins on a cloud VM |
| dokku | 32.2k | App | intermediate | 4 days ago | Developers who want Heroku-style deployment on a server they control |
| act | 72.5k | Dev tool | intermediate | 5 days ago | Developers who edit .github/workflows files and want faster feedback than commit-and-push cycles |
| floci | 27.7k | Dev tool | beginner | 4 days ago | Developers who want to test AWS code locally without cloud costs |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.