template.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. ## References
  9. - **Project:** https://traefik.io/
  10. - **Documentation:** https://doc.traefik.io/traefik/
  11. - **GitHub:** https://github.com/traefik/traefik
  12. version: v3.6.5
  13. author: Christian Lempa
  14. date: '2025-12-17'
  15. tags:
  16. - swarm
  17. - volume
  18. icon:
  19. provider: simpleicons
  20. id: traefikproxy
  21. draft: false
  22. spec:
  23. general:
  24. vars:
  25. service_name:
  26. default: traefik
  27. ports:
  28. vars:
  29. ports_dashboard:
  30. description: Dashboard port (external)
  31. type: int
  32. default: 8080
  33. required: true
  34. needs: [dashboard_enabled=true]
  35. extra: Only used when dashboard is enabled
  36. ports_http:
  37. default: 80
  38. extra: Maps to entrypoint 'web'
  39. ports_https:
  40. default: 443
  41. extra: Maps to entrypoint 'websecure'
  42. traefik:
  43. title: Settings
  44. vars:
  45. accesslog_enabled:
  46. description: Enable Traefik access log
  47. type: bool
  48. default: false
  49. dashboard_enabled:
  50. description: Enable Traefik dashboard
  51. type: bool
  52. default: false
  53. extra: 'WARNING: Don''t use in production!'
  54. prometheus_enabled:
  55. description: Enable Prometheus metrics
  56. type: bool
  57. default: false
  58. security_enabled:
  59. description: Create production-ready security headers middleware
  60. type: bool
  61. default: true
  62. extra: Enables HSTS, XSS protection, frame denial, etc.
  63. traefik_network:
  64. extra: Network that Traefik uses to connect to services
  65. traefik_network_external:
  66. description: Use existing Docker network (external)
  67. type: bool
  68. default: false
  69. traefik_tls:
  70. title: TLS Settings
  71. vars:
  72. traefik_tls_acme_email:
  73. description: Email address for ACME
  74. type: str
  75. required: true
  76. traefik_tls_acme_region:
  77. description: AWS Region
  78. type: str
  79. default: us-east-1
  80. required: true
  81. needs: [traefik_tls_certresolver=route53]
  82. traefik_tls_acme_resource_group:
  83. description: Azure Resource Group
  84. type: str
  85. required: true
  86. needs: [traefik_tls_certresolver=azure]
  87. traefik_tls_acme_secret_key:
  88. description: DNS provider secret key
  89. type: secret
  90. required: true
  91. needs: ['traefik_tls_certresolver=azure,godaddy,porkbun,route53']
  92. extra: AZURE_CLIENT_SECRET, GODADDY_API_SECRET, PORKBUN_SECRET_API_KEY, or AWS_SECRET_ACCESS_KEY
  93. traefik_tls_acme_subscription_id:
  94. description: Azure Subscription ID
  95. type: str
  96. required: true
  97. needs: [traefik_tls_certresolver=azure]
  98. traefik_tls_acme_tenant_id:
  99. description: Azure Tenant ID
  100. type: str
  101. required: true
  102. needs: [traefik_tls_certresolver=azure]
  103. traefik_tls_acme_token:
  104. description: DNS provider API token
  105. type: secret
  106. required: true
  107. needs: ['traefik_tls_certresolver=cloudflare,digitalocean,godaddy,namecheap,porkbun']
  108. extra: CF_DNS_API_TOKEN, DO_AUTH_TOKEN, GODADDY_API_KEY, NAMECHEAP_API_KEY, or PORKBUN_API_KEY
  109. traefik_tls_acme_username:
  110. description: Namecheap API username
  111. type: str
  112. required: true
  113. needs: [traefik_tls_certresolver=namecheap]
  114. traefik_tls_certresolver:
  115. description: ACME DNS challenge provider
  116. config:
  117. options: [cloudflare, porkbun, godaddy, digitalocean, route53, azure, namecheap]
  118. extra: DNS provider for domain validation
  119. traefik_tls_enabled:
  120. description: Enable HTTPS/TLS with ACME
  121. default: false
  122. traefik_tls_min_version:
  123. description: Minimum TLS version
  124. type: enum
  125. config:
  126. options: [VersionTLS12, VersionTLS13]
  127. extra: TLS 1.2 is recommended for compatibility, TLS 1.3 for maximum security
  128. traefik_tls_redirect:
  129. description: Redirect all HTTP traffic to HTTPS
  130. type: bool
  131. default: true
  132. traefik_tls_secure_ciphers:
  133. description: Enable strict cipher suites (recommended)
  134. type: bool
  135. extra: Enforces modern, secure cipher suites
  136. traefik_tls_skipverify:
  137. description: Skip TLS verification for backend servers
  138. type: bool
  139. extra: 'WARNING: Only enable for self-signed certificates in trusted environments'