--- kind: compose metadata: name: Semaphore UI description: > Modern UI for Ansible automation with task scheduling and web-based management. Semaphore provides a beautiful web interface to run Ansible playbooks, manage inventories, and schedule automated tasks. Perfect for teams who want a user-friendly way to execute and monitor Ansible automation. Project: https://www.semaphoreui.com/ Documentation: https://docs.semaphoreui.com/ GitHub: https://github.com/semaphoreui/semaphore version: v2.16.34 author: Christian Lempa date: '2025-10-10' tags: - automation - ansible - terraform - python next_steps: | 1. Start Semaphore UI: docker compose up -d 2. Access the web interface: {% if traefik_enabled -%} - Via Traefik: https://{{ traefik_host }} {% if ports_enabled %}- Direct access: http://localhost:{{ ports_http }}{% endif %} {%- else -%} - Open http://localhost:{{ ports_http }} in your browser {%- endif %} 3. Login with your admin credentials: - Username: {{ semaphore_admin_name }} - Email: {{ semaphore_admin_email }} - Password: {{ semaphore_admin_password }} 4. Getting started: - Add SSH keys for accessing your managed hosts - Create your first project and link it to a Git repository - Add inventories (static or dynamic) - Create task templates from your Ansible playbooks - Schedule or run tasks on-demand 5. Security recommendations: - Change the admin password after first login - Enable two-factor authentication in user settings - Review user permissions and create additional users - Use SSH key authentication for Ansible connections For more information, visit: https://docs.semaphoreui.com/ spec: general: vars: service_name: default: "semaphore" container_name: default: "semaphore" database: required: true vars: database_type: default: "mysql" database_name: default: "semaphore" database_user: default: "semaphore" ports: vars: ports_http: description: "Host port for web interface" type: int default: 3000 traefik: vars: traefik_host: default: semaphoreui.home.arpa semaphore: description: "Configure Ansible Semaphore application settings" required: true vars: semaphore_admin_name: description: "Initial admin username" type: str default: "admin" semaphore_admin_email: description: "Admin email address" type: str default: "admin@home.arpa" semaphore_admin_password: description: "Initial admin password" extra: "Leave empty for auto-generated 20-character secure password" type: str default: "" sensitive: true autogenerated: true semaphore_access_key_encryption: description: "Encryption key for access keys storage" extra: "Leave empty for auto-generated 32-character secure key" type: str default: "" sensitive: true autogenerated: true semaphore_playbook_path: description: "Path for temporary playbook execution" type: str default: "/tmp/semaphore/" ansible_host_key_checking: description: "Enable Ansible SSH host key checking" type: bool default: false