Community Apps

Semaphore UI

By OrcVole

Web interface for running Ansible playbooks, inventories and schedules

2.19.8 1024MB Updated 21 Aug 2026
ansible automation devops playbooks infrastructure
Install this app
In your Cloudron dashboard, open the App Store, choose "Community apps" and paste this URL:
https://raw.githubusercontent.com/OrcVole/semaphore-cloudron/main/CloudronVersions.json

Description

Semaphore UI is a web interface for Ansible. It gives playbooks, inventories, repositories and schedules a browser front end, so routine automation can be run and reviewed by people who are not sitting at a terminal.

It is not Semaphore CI — the name is shared by an unrelated continuous-integration product.

  • Run Ansible playbooks from a browser, with live output and a full task history
  • Keep inventories, repositories and environments as first-class, versioned objects
  • Store SSH keys, passwords and API tokens encrypted at rest
  • Schedule recurring runs, and trigger them over a webhook or the REST interface
  • Give each project its own members and permissions

This package stores credentials under an encryption keyring that it generates itself on first run, and never ships a fixed key.

Screenshot

Recent Changes

  • [1.0.9]

  • Remove the post-install checklist. Both entries were standing advice rather than one-time

  • actions, so they showed as permanently outstanding on a correctly configured install. The same

  • guidance is in the post-install message, which is where advice belongs.

  • [1.0.8]

  • Create an administrator on first run and write the credential to /app/data/.initial-admin.

  • Single sign-on users arrive as external non-administrators and upstream forbids non-admins from

  • creating projects, so a fresh install previously had no usable account at all.

  • [1.0.7]

  • Cap concurrent task execution at 10. Upstream defaults to 9999, which makes the memory limit

  • unenforceable in principle since every task forks its own Ansible process.

  • [1.0.6]

  • Ship /etc/ansible/ansible.cfg. Task execution uses a sanitised environment, so the temporary

  • paths must come from package-owned config rather than exported variables.

  • [1.0.5]

  • Set the Ansible target-side temporary path. Without it every module transfer failed against

  • the read-only home, so any playbook gathering facts or running a real module was unreachable.

  • [1.0.4]

  • Take ownership of the whole data volume at startup. A platform restore returns it with a

  • foreign uid, which made every existing project repository unusable (git dubious ownership).

  • [1.0.3]

  • Create $HOME/.ssh with mode 700 so outbound SSH to managed hosts can write known_hosts.

  • [1.0.0]

  • First release, packaging Semaphore UI 2.19.8.

  • PostgreSQL for storage; the database is provisioned by the platform.

  • The encryption keyring is generated on first run at /app/data/keys and is never overwritten.

  • Session secrets are generated once and persisted, so restarts do not sign users out.