Advertisement
Guest User

Untitled

a guest
Dec 25th, 2024
132
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 1 0
  1. #version: '3.8'
  2.  
  3. #docker network create traefik
  4.  
  5. #Traefik creates an acme.json file with 755 and then promptly complains about too wide permissions
  6. #Hence need for below janky fixing permissions
  7. #Need a chmod 600 on the acme.json
  8.  
  9. #Traefik reverse proxy creates the SSL cert with 755 and then bombs with an error because the permissions are too open.
  10.  
  11. services:
  12. fixpermissions:
  13. container_name: take-ownership
  14. image: traefik:v3.2.3
  15. command: >
  16. chmod -R 600 ./ssl_cert/
  17. volumes:
  18. - ./ssl_cert/:/ssl_cert/
  19.  
  20. traefik:
  21. image: traefik:v3.2.3
  22. container_name: traefik
  23. depends_on:
  24. fixpermissions:
  25. condition: service_completed_successfully
  26. command:
  27. # - --log.level=DEBUG
  28. - --api.insecure=true
  29. - --providers.docker
  30. - --entrypoints.web.address=:80
  31. - --entrypoints.websecure.address=:443
  32. - --certificatesresolvers.cloudflare.acme.dnschallenge=true
  33. - --certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare
  34. - --certificatesresolvers.cloudflare.acme.email=
  35. - --certificatesresolvers.cloudflare.acme.storage=/ssl_cert/acme.json
  36. #Staging server:
  37. #- --certificatesresolvers.cloudflare.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
  38.  
  39. environment:
  40. - DOMAINNAME=example.com
  41. - CLOUDFLARE_DNS_API_TOKEN=
  42. - CLOUDFLARE_ZONE_API_TOKEN=
  43. restart: always
  44. security_opt:
  45. - no-new-privileges:true
  46. ports:
  47. - "80:80"
  48. - "443:443"
  49. volumes:
  50. - /var/run/docker.sock:/var/run/docker.sock
  51. - ./ssl_cert/:/ssl_cert/
  52. networks:
  53. - traefik
  54. labels:
  55. - "traefik.enable=true"
  56. - "traefik.http.routers.dashboard.rule=Host(`traefik.example.com`)"
  57. - "traefik.http.routers.dashboard.service=api@internal"
  58. - "traefik.http.routers.dashboard.tls=true"
  59. - "traefik.http.routers.dashboard.tls.certresolver=cloudflare"
  60.  
  61. # Configure the Cloudflare DNS challenge
  62. #- "traefik.http.middlewares.secure-headers.headers.sslredirect=true"
  63. #- "entryPoints.web.http.redirections.entrypoint.permanent=true"
  64. # - "traefik.http.middlewares.secure-headers.headers.stsseconds=31536000"
  65. # - "traefik.http.middlewares.secure-headers.headers.stsincludesubdomains=true"
  66. # - "traefik.http.middlewares.secure-headers.headers.stspreload=true"
  67. # - "traefik.http.middlewares.secure-headers.headers.forceSTSHeader=true"
  68.  
  69. # Enable HTTPS redirection
  70. - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
  71. - "traefik.http.routers.http-catchall.entrypoints=web"
  72. - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
  73. - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
  74. - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
  75.  
  76. - "traefik.enable=true"
  77. - 'traefik.http.routers.wildcard-certs.tls.certresolver=cloudflare'
  78. - 'traefik.http.routers.wildcard-certs.tls.domains[0].main=example.com'
  79. - 'traefik.http.routers.wildcard-certs.tls.domains[0].sans=*.example.com'
  80.  
  81. whoami:
  82. image: "traefik/whoami"
  83. container_name: "simple-service"
  84. networks:
  85. - traefik
  86. labels:
  87. - "traefik.enable=true"
  88. - "traefik.http.routers.whoami.rule=Host(`whoami.example.com`)"
  89. - "traefik.http.routers.whoami.entrypoints=websecure"
  90. - "traefik.http.routers.whoami.tls=true"
  91. - "traefik.http.routers.whoami.tls.certresolver=cloudflare"
  92.  
  93.  
  94. networks:
  95. traefik:
  96. external: true
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement