template.yaml 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. ---
  2. kind: compose
  3. metadata:
  4. name: Traefik
  5. description: >
  6. Traefik is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy.
  7. This template sets up Traefik with automatic HTTPS using Let's Encrypt and can be integrated with Authentik for SSO.
  8. Project: https://traefik.io/
  9. Documentation: https://doc.traefik.io/traefik/
  10. version: v3.2
  11. author: "Christian Lempa"
  12. date: "2025-10-02"
  13. tags:
  14. - traefik
  15. - reverse-proxy
  16. - load-balancer
  17. - edge-router
  18. spec:
  19. general:
  20. title: "General"
  21. required: true
  22. vars:
  23. accesslog_enabled:
  24. type: "bool"
  25. description: "Enable Traefik access log"
  26. default: false
  27. traefik:
  28. title: "Traefik Settings"
  29. description: "Configure Traefik as a reverse proxy"
  30. required: true
  31. traefik_tls:
  32. title: "Traefik TLS Settings"
  33. description: "Configure TLS/SSL with Let's Encrypt ACME"
  34. needs: "traefik"
  35. vars:
  36. traefik_tls_enabled:
  37. type: "bool"
  38. description: "Enable HTTPS/TLS with ACME"
  39. default: false
  40. traefik_tls_acme_provider:
  41. type: "enum"
  42. description: "ACME DNS challenge provider"
  43. default: "cloudflare"
  44. options:
  45. - "cloudflare"
  46. extra: "DNS provider for domain validation"
  47. traefik_tls_acme_token:
  48. type: "str"
  49. description: "DNS provider API token"
  50. default: "your-api-token-here"
  51. sensitive: true
  52. extra: "For Cloudflare, create an API token with Zone:DNS:Edit permissions"
  53. traefik_tls_acme_email:
  54. type: "str"
  55. description: "Email address for ACME (Let's Encrypt) registration"
  56. default: "admin@example.com"
  57. extra: "Required for Let's Encrypt certificate requests"
  58. traefik_tls_redirect:
  59. type: "bool"
  60. description: "Redirect all HTTP traffic to HTTPS"
  61. default: true
  62. ports:
  63. name: "Ports"
  64. prompt: "Expose ports via 'ports' mapping?"
  65. toggle: "ports_enabled"
  66. vars:
  67. ports_enabled:
  68. type: "bool"
  69. description: "Expose ports via 'ports' mapping"
  70. default: true
  71. traefik_dashboard_enabled:
  72. type: "bool"
  73. description: "Enable Traefik dashboard (don't use in production)"
  74. default: false
  75. extra: "Exposes dashboard on port 8080 in insecure mode"
  76. network:
  77. vars:
  78. network_enabled:
  79. default: true
  80. network_name:
  81. default: "proxy"
  82. authentik:
  83. title: Authentik Middleware
  84. description: Enable Authentik SSO integration for Traefik
  85. vars:
  86. authentik_outpost_url:
  87. type: "url"
  88. description: "Authentik outpost URL (e.g., http://authentik-outpost:9000)"
  89. default: "http://authentik-outpost:9000"
  90. traefik_authentik_middleware_name:
  91. type: "str"
  92. description: "Name of the Authentik middleware"
  93. default: "authentik"
  94. extra: "Reference this in router labels as '{name}@file'"