semaphore

GitHub

Modern UI and powerful API for Ansible, Terraform/OpenTofu/Terragrunt, PowerShell and other DevOps tools.

AI Prompts & Endpoints
Agent Skills View CodeWiki Knowledge Base

Repository: semaphoreui/semaphore


Stars: 13498

README.md

Semaphore UI

Modern UI for Ansible, Terraform/OpenTofu/Terragrunt, PowerShell and other DevOps tools.

![roadmap](https://github.com/orgs/semaphoreui/projects/11)
![telegram](https://discord.gg/5R6k7hNGcH)
![youtube](https://www.youtube.com/@semaphoreui)
<!-- ![docker](https://semaphoreui.com/install/docker/) -->

!responsive-ui-phone1

If your project has grown and deploying from the terminal is no longer feasible, then Semaphore UI is the tool you need.

Demo

Try Semaphore UI online

<!--

Live Demo

Try the latest version of Semaphore at https://portal.semaphoreui.com.
-->

What is Semaphore UI?

Semaphore UI is a modern web interface for managing popular DevOps tools.

Semaphore UI allows you to:
* Easily run Ansible playbooks, Terraform and OpenTofu code, as well as Bash and PowerShell scripts.
* Receive notifications about failed tasks.
* Control access to your deployment system.

Key Concepts

1. Projects is a collection of related resources, configurations, and tasks.
2. Task Templates are reusable definitions of tasks that can be executed on demand or scheduled.
3. Task is a specific instance of a job or operation executed by Semaphore.
4. Schedules allow you to automate task execution at specified times or intervals.
5. Inventory is a collection of target hosts (servers, virtual machines, containers, etc.) on which tasks will be executed.
6. Variable Group refers to a configuration context that holds sensitive information such as environment variables and secrets used by tasks during execution.

Getting Started

You can install Semaphore using the following methods:
* Docker
* Deploy a VM from a marketplace:
* AWS
* DigitalOcean
* Vultr
* Yandex Cloud
* Snap
* Binary file
* Debian or RPM package

Docker

The most popular way to install Semaphore is via Docker.

text
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

We recommend using the Container Configurator to get the ideal Docker configuration for Semaphore.

<!--

SaaS

We offer a SaaS solution for using Semaphore UI without installation. Check it out at Semaphore Cloud.
-->

Other Installation Methods

For more installation options, visit our Installation page.

Documentation

* User Guide
* API Reference
* Postman Collection

Awesome Semaphore

A curated list of awesome things related to Semaphore UI.

* Ebdruplab — Ansible Collections &mdash; Ansible modules and a role for managing Semaphore.
* SemaphoreUI MCP Server &mdash; A Model Context Protocol (MCP) server that provides AI assistants with powerful automation capabilities for SemaphoreUI.
* Terraform SemaphoreUI Provider &mdash; Manage Semaphore UI resources using Terraform.
* PSSemaphore &mdash; A PowerShell module designed to work against the Ansible Semaphore REST API.

[//]: # (* [Ansible UI Semaphore]&#40;https://github.com/morbidick/ansible-role-semaphore&#41; &mdash; Ansible role to install and configure the Ansible UI Semaphore.)

Contribution

* Contribution Guide
* Dev Container (default user admin / changeme)

License

MIT © Denis Gukov