template.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. vars:
  69. traefik_enabled:
  70. type: bool
  71. default: false
  72. description: Enable Traefik integration
  73. traefik_entrypoint:
  74. description: The Traefik entrypoint
  75. type: str
  76. required: true
  77. default: web
  78. traefik_host:
  79. default: homepage
  80. traefik_network:
  81. default: traefik
  82. type: str
  83. required: true
  84. traefik_domain:
  85. default: home.arpa
  86. type: str
  87. required: true
  88. traefik_tls:
  89. vars:
  90. traefik_tls_enabled:
  91. description: Enable Traefik TLS
  92. type: bool
  93. default: false
  94. traefik_tls_entrypoint:
  95. description: The Traefik TLS entrypoint
  96. type: str
  97. default: websecure
  98. required: true
  99. traefik_tls_certresolver:
  100. type: str
  101. required: true
  102. default: cloudflare
  103. swarm:
  104. vars:
  105. swarm_placement_mode:
  106. type: enum
  107. options:
  108. - replicated
  109. - global
  110. default: replicated
  111. required: true
  112. swarm_replicas:
  113. type: int
  114. default: 1
  115. needs:
  116. - swarm_placement_mode=replicated
  117. required: true
  118. swarm_placement_host:
  119. type: str
  120. default: ''
  121. needs:
  122. - swarm_placement_mode=replicated
  123. extra: Constrains service to run on specific node by hostname
  124. swarm_enabled:
  125. type: bool
  126. default: false
  127. description: Enable Docker Swarm mode
  128. authentik:
  129. vars:
  130. authentik_traefik_middleware:
  131. type: str
  132. default: authentik-middleware@file
  133. needs:
  134. - traefik_enabled=true
  135. required: true
  136. authentik_client_id:
  137. type: str
  138. default: ''
  139. description: The Authentik client ID
  140. authentik_client_secret:
  141. type: str
  142. default: ''
  143. description: The Authentik client secret
  144. authentik_enabled:
  145. type: bool
  146. default: false
  147. description: Enable Authentik SSO integration
  148. authentik_slug:
  149. type: str
  150. default: ''
  151. description: The Authentik application slug
  152. authentik_url:
  153. type: str
  154. default: ''
  155. description: The Authentik URL