Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools.
Go to file
2024-11-26 06:56:54 +00:00
.devcontainer ci(testing): add e2e testing for dev container 2024-10-21 06:50:14 +00:00
.dredd Fix foreign key on build template with postgresql 2024-11-21 15:13:41 -05:00
.github chore(deps): update postgres docker tag to v12.22 2024-11-25 10:19:08 +00:00
.vscode fix(sec): clear env vars 2024-10-21 11:03:12 +00:00
api Merge pull request #2553 from Omicron7/improve-rest-api-and-docs 2024-11-26 01:13:09 +05:00
cli feat(be): ansible-semaphore -> semaphoreui 2024-10-26 12:56:17 +00:00
db feat(be): disable refs for schedules 2024-11-26 06:56:54 +00:00
db_lib fix(ui): flags 2024-11-25 00:16:56 +05:00
deployment Merge pull request #2503 from semaphoreui/change_default_package 2024-10-26 20:27:09 +00:00
examples fix(exmaples): env var 2024-06-01 16:07:02 +02:00
hook_helpers fix(be): move goodman import to separate package to fix tests 2021-08-27 11:58:31 +05:00
pkg feat(be): ansible-semaphore -> semaphoreui 2024-10-26 12:56:17 +00:00
services test: fix test 2024-11-25 00:37:08 +05:00
util docs(config): add method docs 2024-11-23 15:27:25 +05:00
web Merge pull request #2573 from semaphoreui/renovate/moment-2.x-lockfile 2024-11-26 02:19:14 +05:00
.codacy.yml ci: add codacy config file and exclude dredd tests 2024-09-28 16:30:39 +05:00
.dockerignore chore: add initial dockeringore config 2024-04-28 00:10:30 +02:00
.gitignore ci: add python3 venv 2024-10-11 14:17:39 +00:00
.goreleaser.yml docs: semui.co to semaphoreui.com 2024-11-19 15:53:36 +05:00
api-docs.yml Set example values so boltdb tests pass 2024-11-21 16:04:30 -05:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2024-09-26 23:39:36 +05:00
CONTRIBUTING.md feat(be): ansible-semaphore -> semaphoreui 2024-10-26 12:56:17 +00:00
go.mod fix(deps): update module github.com/go-sql-driver/mysql to v1.8.1 2024-11-25 21:21:17 +00:00
go.sum fix(deps): update module github.com/go-sql-driver/mysql to v1.8.1 2024-11-25 21:21:17 +00:00
LICENSE feat(schedule): change column order 2024-06-25 01:26:21 +05:00
README.md Update README.md 2024-10-21 18:07:35 +05:00
renovate.json Add renovate.json 2024-10-20 20:26:22 +00:00
Taskfile.yml feat(be): ansible-semaphore -> semaphoreui 2024-10-26 12:56:17 +00:00

Semaphore UI

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

telegram youtube

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.

Live Demo

Try the latest version of Semaphore at https://cloud.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. Each project allows you to organize and manage your automation efforts in one place, defining the scope of tasks such as deploying applications, running scripts, or orchestrating cloud resources. Projects help group resources, inventories, task templates, and environments for streamlined automation workflows.
  2. Task Templates are reusable definitions of tasks that can be executed on demand or scheduled. A template specifies what actions should be performed, such as running Ansible playbooks, Terraform configurations, or other automation tasks. By using templates, you can standardize tasks and easily re-execute them with minimal effort, ensuring consistent results across different environments.
  3. Task is a specific instance of a job or operation executed by Semaphore. It refers to running a predefined action (like an Ansible playbook or a script) using a task template. Tasks can be initiated manually or automatically through schedules and are tracked to give you detailed feedback on the execution, including success, failure, and logs.
  4. Schedules allow you to automate task execution at specified times or intervals. This feature is useful for running periodic maintenance tasks, backups, or deployments without manual intervention. You can configure recurring schedules to ensure important automation tasks are performed regularly and on time.
  5. Inventory is a collection of target hosts (servers, virtual machines, containers, etc.) on which tasks will be executed. The inventory includes details about the managed nodes such as IP addresses, SSH credentials, and grouping information. It allows for dynamic control over which environments and hosts your automation will interact with.
  6. Environment refers to a configuration context that holds sensitive information such as environment variables and secrets used by tasks during execution. It separates sensitive data from task templates and allows you to switch between different setups while running the same task template across different environments securely.

Getting Started

You can install Semaphore using the following methods:

  • Docker
  • SaaS (Semaphore Cloud)
  • Deploy a VM from a marketplace (AWS, DigitalOcean, etc.)
  • Snap
  • Binary file
  • Debian or RPM package

Docker

The most popular way to install Semaphore is via Docker.

docker run -p 3000:3000 --name semaphore \
	-e SEMAPHORE_DB_DIALECT=bolt \
	-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.

Deploy VM from Marketplace

Supported cloud providers:

Other Installation Methods

For more installation options, visit our Installation page.

Documentation

Contribution

License

MIT © Denis Gukov

sponsor ko-fi patreon