Deploy and manage modern applications.
Self-hosted Ansible/Terraform web dashboard — no CLI, embedded SQLite.
In validation
Automatic installation for this solution is ready and currently going through our tests on a real server. Ordering will open as soon as validation is complete.
Semaphore UI is an open-source web interface for Ansible, Terraform and OpenTofu that replaces the terminal for DevOps teams who want visibility and access control. It stores state in an embedded SQLite database — no PostgreSQL, no Redis, no separate process to maintain. Spin up the container, point it at your inventory, and every team member can trigger playbooks, inspect logs, and schedule recurring jobs from a browser.
Each project in Semaphore maps to a Git repository: playbooks and roles are pulled directly from source control at runtime. Environment variables and secret keys are stored as named key stores and injected at execution time, keeping credentials out of your YAML files. Role-based access control lets you decide who can view logs, trigger tasks or manage the project configuration.
On a ServOrbit VPS, Semaphore runs as a single Docker container on Ubuntu 24.04. The admin account and access-key encryption secret are generated by ServOrbit and shown in your credential vault — no manual database setup or post-install initialisation required.
Replace ad-hoc ansible-playbook commands with a shared dashboard. Every team member sees which playbook ran, what changed, and whether it succeeded — without SSH access to the control node.
Define recurring tasks — nightly patches, weekly backups, daily certificate renewals — and let Semaphore run them on schedule. Failures surface immediately in the dashboard and can trigger notifications.
Point Semaphore at a Terraform repository and use it as a lightweight CI for infrastructure changes. Plan and apply from the UI, review output before approving, and keep a full audit trail of who triggered each run.
Guide optimized for ServOrbit Cloud VPS.
A 1 GB RAM VPS on Ubuntu 24.04 is enough for Semaphore UI with a small fleet. Choose 2 GB if you manage more than 20 hosts concurrently or run long playbooks. The Semaphore UI template is available in the deployment category of the marketplace.
Semaphore UI does not require a domain name. Open an SSH tunnel from your local machine: ssh -L 3000:127.0.0.1:{{ expose_port }} root@<your-vps-ip> then open http://localhost:3000 in your browser. For permanent HTTPS access, attach a domain from your ServOrbit dashboard or use the free {app}.{dns_slug}.servorbit-dns.com subdomain included with every VPS.
ServOrbit generates an admin password at provisioning time and stores it in your credential vault. Log in as admin with that password. Change it immediately after your first login from Profile → Change Password.
Go to Projects → New Project, enter a name, and add a Git repository URL pointing to your Ansible or Terraform codebase. If the repository is private, add an SSH key or personal access token to the Key Store first, then reference it in the project settings.
Under Inventory, create an entry listing your target hosts (static list or dynamic script). Then go to Task Templates, define a task referencing a playbook and the inventory you just created, and click Run. Watch the execution log in real time.
ssh -L 3000:127.0.0.1:{{ expose_port }} root@<vps-ip> then visit http://localhost:3000. For permanent HTTPS access attach a domain from your ServOrbit dashboard or use the free {app}.{dns_slug}.servorbit-dns.com subdomain.Automate your workflows across applications without code. Over 400 integrations, 100% self-hosted on your VPS.
Automation & WorkflowsCode-first self-hosted automation platform: turn Python, TypeScript, Go or Bash scripts into workflows, internal APIs and UIs — 17k ⭐, AGPLv3.
Application Deployment & DevOpsDeploy your applications from Git in seconds. Self-hosted, with no vendor lock-in, and automatic SSL.
Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.
Message us on WhatsAppopens in a new tab