template.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. kind: compose
  2. metadata:
  3. icon:
  4. provider: selfh
  5. id: semaphore-ui
  6. name: Semaphore UI
  7. description: 'Modern UI for Ansible automation with task scheduling and web-based
  8. management.
  9. Semaphore provides a beautiful web interface to run Ansible playbooks, manage
  10. inventories, and schedule automated tasks. Perfect for teams who want a
  11. user-friendly way to execute and monitor Ansible automation.
  12. ## Prerequisites
  13. - :info: SemaphoreUI supports multiple database backends. You can choose between
  14. SQLite (default),
  15. PostgreSQL, or MySQL. SQLite is suitable for small deployments, while PostgreSQL
  16. and MySQL
  17. are recommended for larger installations.
  18. ## References
  19. - **Project:** https://www.semaphoreui.com/
  20. - **Documentation:** https://docs.semaphoreui.com/
  21. - **GitHub:** https://github.com/semaphoreui/semaphore'
  22. version: v2.17.2
  23. author: Christian Lempa
  24. date: '2026-02-15'
  25. tags:
  26. - traefik
  27. - database
  28. next_steps: 'Log in with your initial admin user:
  29. ```bash
  30. Username: {{ admin_user }}
  31. Password: {{ admin_pass }}
  32. ```'
  33. schema: '1.2'
  34. spec:
  35. general:
  36. vars:
  37. service_name:
  38. default: semaphoreui
  39. container_name:
  40. default: semaphoreui
  41. restart_policy:
  42. type: enum
  43. options:
  44. - unless-stopped
  45. - always
  46. - on-failure
  47. - 'no'
  48. default: unless-stopped
  49. required: true
  50. secret_key:
  51. description: Secret key for encrypting access keys
  52. type: str
  53. sensitive: true
  54. autogenerated: true
  55. required: true
  56. admin_user:
  57. description: Administrator username
  58. type: str
  59. required: true
  60. default: admin
  61. admin_name:
  62. description: Administrator full name
  63. type: str
  64. required: true
  65. default: Administrator
  66. admin_email:
  67. description: Administrator email address
  68. type: str
  69. required: true
  70. default: admin@home.arpa
  71. admin_pass:
  72. description: Administrator password
  73. type: str
  74. sensitive: true
  75. autogenerated: true
  76. required: true
  77. ansible_host_key_checking:
  78. description: Enable Ansible SSH host key checking
  79. type: bool
  80. ports:
  81. vars:
  82. ports_http:
  83. default: 3000
  84. traefik:
  85. vars:
  86. traefik_host:
  87. default: semaphoreui
  88. traefik_network:
  89. default: traefik
  90. type: str
  91. required: true
  92. traefik_domain:
  93. default: home.arpa
  94. type: str
  95. required: true
  96. traefik_enabled:
  97. type: bool
  98. default: false
  99. description: Enable Traefik integration
  100. toggle: traefik_enabled
  101. title: Traefik
  102. description: Configure Traefik reverse proxy integration
  103. traefik_tls:
  104. vars:
  105. traefik_tls_certresolver:
  106. type: str
  107. default: cloudflare
  108. required: true
  109. traefik_tls_enabled:
  110. type: bool
  111. default: false
  112. description: Enable Traefik TLS
  113. toggle: traefik_tls_enabled
  114. title: Traefik TLS
  115. description: Configure Traefik TLS/SSL certificates
  116. needs: traefik
  117. database:
  118. vars:
  119. database_type:
  120. options:
  121. - postgres
  122. - mysql
  123. default: mysql
  124. database_name:
  125. default: semaphore
  126. database_user:
  127. default: semaphore
  128. database_host:
  129. type: str
  130. default: postgres
  131. required: true
  132. needs:
  133. - database_external=true
  134. database_password:
  135. type: str
  136. sensitive: true
  137. autogenerated: true
  138. required: true
  139. database_external:
  140. type: bool
  141. default: false
  142. description: Use external database