| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- ---
- 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: 2.16.18
- author: Christian Lempa
- date: '2025-10-02'
- tags:
- - ansible
- - automation
- - devops
- - infrastructure
- 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
|