Deploy Semaphore UI
Semaphore UI 2.19 web UI for Ansible, Terraform, OpenTofu and scripts.
Just deployed
/var/lib/postgresql/data
semaphore
Just deployed
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
- Semaphore UI v2.19.14 release
- Docker configuration
- Railway 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_ENCRYPTIONmust 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.
Template Content