---
title: "Deploy Semaphore UI"
description: "Semaphore UI 2.19 web UI for Ansible, Terraform, OpenTofu and scripts."
category: "Automation"
url: https://railway.com/deploy/semaphore-ui
---

# Deploy Semaphore UI

Semaphore UI 2.19 web UI for Ansible, Terraform, OpenTofu and scripts.

**[Deploy Semaphore UI on Railway](https://railway.com/template/semaphore-ui)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/semaphore-ui/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Automation

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### semaphore https://raw.githubusercontent.com/semaphoreui/semaphore/v2.19.14/web/public/favicon.png

- **Image:** semaphoreui/semaphore:v2.19.14
- **Health check:** /api/ping
- **Public domain:** Yes

## Documentation

# Deploy and Host Semaphore UI on Railway

Semaphore UI is a modern web interface for running Ansible playbooks, Terraform and OpenTofu, PowerShell and shell scripts. Teams store inventories, keys and repositories in projects, launch tasks from templates, schedule them, review live output and history, and control access with roles, without giving everyone SSH access to production.

## About Hosting Semaphore UI

This template deploys Semaphore UI v2.19.14 from the official image, which includes Ansible, with a Railway Postgres database. The admin account is created from environment variables, and access keys stored in projects are encrypted with a generated key. The configuration is regenerated from environment variables on every start, so the service needs no volume. Semaphore clones repositories from Git and runs tasks inside its own container, reaching your servers over SSH or cloud APIs. It fits the Hobby plan for small teams. Back up Postgres regularly. Tasks run inside the Semaphore container, so give it enough memory for large playbooks.

## Common Use Cases

- Running Ansible playbooks against servers from a shared web UI
- Scheduled Terraform or OpenTofu plans and applies with history
- Giving a team controlled, audited access to operational scripts

## Dependencies for Semaphore UI Hosting

- `semaphoreui/semaphore:v2.19.14` (official image)
- Railway Postgres (`ghcr.io/railwayapp-templates/postgres-ssl:18`) with a volume

### Deployment Dependencies

- [Semaphore UI documentation](https://docs.semaphoreui.com/)
- [Semaphore UI v2.19.14 release](https://github.com/semaphoreui/semaphore/releases/tag/v2.19.14)
- [Docker configuration](https://docs.semaphoreui.com/administration-guide/installation/docker/)
- [Railway private networking](https://docs.railway.com/reference/private-networking)

### Implementation Details

| Service | Image | Networking | Storage |
| --- | --- | --- | --- |
| semaphore | `semaphoreui/semaphore:v2.19.14` | public domain on 3000 | none (state in Postgres) |
| Postgres | Railway Postgres 18 | private only | volume |

| Variable | Default | Purpose |
| --- | --- | --- |
| `SEMAPHORE_ADMIN` / `SEMAPHORE_ADMIN_PASSWORD` | `admin` / generated | Admin login |
| `SEMAPHORE_ACCESS_KEY_ENCRYPTION` | generated | Encrypts stored keys; never change it |
| `SEMAPHORE_WEB_ROOT` | `https://` | Public URL |
| `SEMAPHORE_DB_*` | Postgres references | Database |

Notes:

- Store playbooks in a Git repository; files placed in the container are lost on redeploy.
- `SEMAPHORE_ACCESS_KEY_ENCRYPTION` must be base64 for 32 bytes; the template generates 43 characters plus `=`.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by the Semaphore UI project or its maintainers.

## Why Deploy Semaphore UI on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Semaphore UI on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/semaphore-ui
