| title | Semaphore UI Documentation |
|---|---|
| sidebar_label | Home |
| hide_table_of_contents | true |
Semaphore UI is a self-hosted web UI and API for running Ansible, Terraform/OpenTofu, Shell, PowerShell, and Python automation. It gives your team one place to run playbooks and scripts, keep credentials encrypted, schedule jobs, and see who ran what and when.
It ships as a single Go binary or Docker image, runs on Linux, macOS, and Windows, and stores data in SQLite, MySQL, or PostgreSQL.
:::tip[Quick start]
Run Semaphore with SQLite in one command, then open http://localhost:3000 and log in as admin / changeme.
docker run -d -p 3000:3000 \
-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 \
-v semaphore-data:/var/lib/semaphore \
semaphoreui/semaphore:latestFor production, see Installation for Docker Compose, packages, Kubernetes, and binary installs. Then follow Getting Started to run your first task.
:::
Get a server running and connect it to your database, identity provider, and network.
Organize work into projects, connect repositories and credentials, and run tasks on demand or on a schedule.
Distribute execution, run redundantly, and keep the service observable and up to date.
Exact options and endpoints when you already know what you are looking for.
- Questions: ask on Discord.
- Bugs and feature requests: open an issue on GitHub.
- Source code: github.com/semaphoreui/semaphore.
- Pro and Enterprise: License activation.