template.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. ---
  2. kind: compose
  3. metadata:
  4. icon:
  5. provider: selfh
  6. id: homer
  7. name: Homer
  8. description: 'A very simple static homepage for your server to keep your services on hand, from a simple yaml configuration
  9. file.
  10. Project: https://github.com/bastienwirtz/homer
  11. Documentation: https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md
  12. '
  13. version: v25.11.1
  14. author: Christian Lempa
  15. date: '2025-12-11'
  16. tags:
  17. - traefik
  18. - swarm
  19. - authentik
  20. draft: true
  21. next_steps: "1. Start the Homer dashboard:\n docker compose up -d\n\n2. Customize your dashboard:\n - Edit assets/config.yml\
  22. \ to add your services\n - Organize services into groups (Applications, Monitoring, etc.)\n - Add links to the navbar\
  23. \ for quick access\n\n3. Optional: Add a logo:\n - Place your logo.png file in the assets/ directory\n - Or update\
  24. \ the logo path in assets/config.yml\n - Supported formats: PNG, SVG, JPG\n\n4. Optional: Customize the theme:\n -\
  25. \ Uncomment and modify the colors section in config.yml\n - Available themes: default, sui\n - See documentation for\
  26. \ advanced theming options\n\n5. Access your dashboard:\n {% if traefik_enabled -%}\n - Via Traefik: https://{{ traefik_host\
  27. \ }}\n {% if not traefik_enabled and network_mode == 'bridge' %}- Direct access: http://localhost:{{ ports_http }}{%\
  28. \ endif %}\n {%- else -%}\n - Open http://localhost:{{ ports_http }} in your browser\n {%- endif %}\n\nFor more\
  29. \ information, visit: https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md\n"
  30. schema: '1.2'
  31. spec:
  32. general:
  33. vars:
  34. service_name:
  35. default: homer
  36. container_name:
  37. default: homer
  38. container_timezone:
  39. type: str
  40. restart_policy:
  41. type: enum
  42. options:
  43. - unless-stopped
  44. - always
  45. - on-failure
  46. - 'no'
  47. default: unless-stopped
  48. required: true
  49. homer_title:
  50. description: Dashboard title
  51. type: str
  52. default: My Dashboard
  53. homer_subtitle:
  54. description: Dashboard subtitle
  55. type: str
  56. default: Homer
  57. homer_logo:
  58. description: Logo file path (relative to assets/)
  59. type: str
  60. default: logo.png
  61. ports:
  62. vars:
  63. ports_http:
  64. description: Host port for HTTP (8080)
  65. type: int
  66. default: 8080
  67. traefik:
  68. toggle: traefik_enabled
  69. vars:
  70. traefik_enabled:
  71. type: bool
  72. default: false
  73. description: Enable Traefik integration
  74. traefik_entrypoint:
  75. description: The Traefik entrypoint
  76. type: str
  77. required: true
  78. default: web
  79. traefik_host:
  80. default: homepage
  81. traefik_network:
  82. default: traefik
  83. type: str
  84. required: true
  85. traefik_domain:
  86. default: home.arpa
  87. type: str
  88. required: true
  89. traefik_tls:
  90. toggle: traefik_tls_enabled
  91. vars:
  92. traefik_tls_enabled:
  93. description: Enable Traefik TLS
  94. type: bool
  95. default: false
  96. traefik_tls_entrypoint:
  97. description: The Traefik TLS entrypoint
  98. type: str
  99. default: websecure
  100. required: true
  101. traefik_tls_certresolver:
  102. type: str
  103. required: true
  104. default: cloudflare
  105. swarm:
  106. vars:
  107. swarm_placement_mode:
  108. type: enum
  109. options:
  110. - replicated
  111. - global
  112. default: replicated
  113. required: true
  114. swarm_replicas:
  115. type: int
  116. default: 1
  117. needs:
  118. - swarm_placement_mode=replicated
  119. required: true
  120. swarm_placement_host:
  121. type: str
  122. default: ''
  123. needs:
  124. - swarm_placement_mode=replicated
  125. extra: Constrains service to run on specific node by hostname
  126. swarm_enabled:
  127. type: bool
  128. default: false
  129. description: Enable Docker Swarm mode
  130. authentik:
  131. vars:
  132. authentik_traefik_middleware:
  133. type: str
  134. default: authentik-middleware@file
  135. needs:
  136. - traefik_enabled=true
  137. required: true
  138. authentik_client_id:
  139. type: str
  140. default: ''
  141. description: The Authentik client ID
  142. authentik_client_secret:
  143. type: str
  144. default: ''
  145. description: The Authentik client secret
  146. authentik_enabled:
  147. type: bool
  148. default: false
  149. description: Enable Authentik SSO integration
  150. authentik_slug:
  151. type: str
  152. default: ''
  153. description: The Authentik application slug
  154. authentik_url:
  155. type: str
  156. default: ''
  157. description: The Authentik URL