Semaphore UI is a modern, open-source web UI and API for running automation with Ansible, Terraform/OpenTofu, PowerShell, Shell/Bash, and Python.
Semaphore is written in Go (lightweight, fast) and runs on Windows, macOS, and Linux. It supports SQLite, MySQL, and PostgreSQL.
-
I’m installing or operating Semaphore (admins/operators)
-
I’m using Semaphore day-to-day (teams/users)
-
I’m here for a specific tool
First run checklist (from zero to first task)
Use this as a simple “happy path” to get productive quickly:
- Install Semaphore using your preferred method: Installation
- Run initial setup (config + first admin user): Interactive setup
- Create a project to isolate work (teams, infra, apps): Projects
- Connect what Semaphore needs
- Create a task template and run it
- Automate & operationalize
If you’re new, these terms show up everywhere in the UI:
- Project: the main unit of separation (teams/infrastructures/applications) — Projects
- Repository: where your playbooks/modules/scripts live — Repositories
- Inventory: hosts/groups/connection settings for Ansible-style runs — Inventory
- Variable Group (Environment): reusable variables and configuration per project — Variable Groups
- Key Store: encrypted credentials (SSH keys, tokens, passwords) — Key Store
- Task / Task template: the definition and the run of automation — Tasks
- Runner: where tasks execute (local or remote) — Runners
- CI/CD in Semaphore: build, deploy, and rollback — CI/CD
- Run at scale: distribute execution using runners — Runners
- Programmatic automation: integrate Semaphore into your pipelines — API
- Manage via CLI: setup, users, runners, migrations — CLI
Get help, report issues, or contribute
If something isn’t working as expected, start here: Troubleshooting FAQ