template.yaml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. ---
  2. kind: compose
  3. metadata:
  4. name: Authentik
  5. description: 'Integrate Authentik Single Sign-On (SSO) for secure and streamlined user authentication.
  6. Authentik is an open-source identity provider that supports various authentication protocols.
  7. This configuration enables OAuth-based SSO, allowing users to log in using their Authentik
  8. credentials, enhancing security and user experience.
  9. ## Prerequisites
  10. - :warning: The `authentik_secret_key` must be generated using the following command
  11. according to the official documentation.
  12. ```bash
  13. echo "$(openssl rand -base64 60 | tr -d ''\n'')"
  14. ```
  15. ## References
  16. * **Project:** https://goauthentik.io/
  17. * **Documentation:** https://goauthentik.io/docs/
  18. * **GitHub:** https://github.com/goauthentik/authentik'
  19. icon:
  20. provider: selfh
  21. id: authentik
  22. next_steps: 'Log in with your initial admin user:
  23. ```bash
  24. Username: akadmin
  25. Password: {{ authentik_admin_password }}
  26. ```'
  27. version: 2025.10.3
  28. author: Christian Lempa
  29. date: '2025-12-16'
  30. tags:
  31. - traefik
  32. - volume
  33. schema: '1.2'
  34. spec:
  35. general:
  36. vars:
  37. service_name:
  38. default: authentik
  39. restart_policy:
  40. type: enum
  41. options:
  42. - unless-stopped
  43. - always
  44. - on-failure
  45. - 'no'
  46. default: unless-stopped
  47. required: true
  48. database:
  49. vars:
  50. database_password:
  51. description: Database password
  52. type: str
  53. sensitive: true
  54. required: true
  55. database_user:
  56. type: str
  57. default: ''
  58. description: The database user
  59. database_name:
  60. type: str
  61. default: ''
  62. description: The database name
  63. database_external:
  64. type: bool
  65. default: false
  66. description: Use external database
  67. ports:
  68. vars:
  69. ports_http:
  70. default: 8000
  71. ports_https:
  72. default: 8443
  73. traefik:
  74. vars:
  75. traefik_host:
  76. default: authentik
  77. traefik_network:
  78. default: traefik
  79. type: str
  80. required: true
  81. traefik_domain:
  82. default: home.arpa
  83. type: str
  84. required: true
  85. traefik_enabled:
  86. type: bool
  87. default: false
  88. description: Enable Traefik integration
  89. authentik:
  90. description: Configure Authentik application settings
  91. required: true
  92. vars:
  93. authentik_secret_key:
  94. description: Secret Key
  95. extra: Used for cookie signing and unique user IDs
  96. type: str
  97. sensitive: true
  98. required: true
  99. authentik_admin_password:
  100. description: Initial admin user password
  101. type: str
  102. sensitive: true
  103. autogenerated: true
  104. authentik_error_reporting:
  105. description: Enable error reporting to Authentik developers
  106. type: bool
  107. traefik_tls:
  108. vars:
  109. traefik_tls_certresolver:
  110. type: str
  111. default: cloudflare
  112. required: true
  113. traefik_tls_enabled:
  114. type: bool
  115. default: false
  116. description: Enable Traefik TLS
  117. volume:
  118. vars:
  119. volume_mode:
  120. type: enum
  121. options:
  122. - local
  123. - mount
  124. - nfs
  125. default: local
  126. required: true
  127. volume_mount_path:
  128. type: str
  129. default: /mnt/storage
  130. needs:
  131. - volume_mode=mount
  132. required: true
  133. volume_nfs_server:
  134. type: str
  135. default: 192.168.1.1
  136. needs:
  137. - volume_mode=nfs
  138. required: true
  139. volume_nfs_path:
  140. type: str
  141. default: /export
  142. needs:
  143. - volume_mode=nfs
  144. required: true
  145. volume_nfs_options:
  146. type: str
  147. default: rw,nolock,soft
  148. needs:
  149. - volume_mode=nfs
  150. required: true
  151. email:
  152. vars:
  153. email_host:
  154. description: SMTP server hostname
  155. type: str
  156. required: true
  157. email_port:
  158. description: SMTP server port
  159. type: int
  160. default: 25
  161. required: true
  162. email_username:
  163. description: SMTP username
  164. type: str
  165. required: true
  166. email_password:
  167. description: SMTP password
  168. type: str
  169. sensitive: true
  170. required: true
  171. email_from:
  172. description: From email address
  173. type: str
  174. required: true
  175. email_enabled:
  176. type: bool
  177. default: false
  178. description: Enable email integration
  179. email_encryption:
  180. type: str
  181. default: tls
  182. description: The email encryption type