docker-compose-proxy.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. volumes:
  2. traefik-letsencrypt:
  3. traefik-tmp:
  4. services:
  5. traefik:
  6. image: traefik:3
  7. container_name: traefik
  8. restart: unless-stopped
  9. logging:
  10. options:
  11. max-size: 10m
  12. ports:
  13. - 80:80
  14. - 443:443
  15. volumes:
  16. - /var/run/docker.sock:/var/run/docker.sock:ro
  17. - traefik-tmp:/tmp
  18. - traefik-letsencrypt:/etc/traefik/acme
  19. - ./traefik/tls.yaml:/etc/traefik/tls.yaml:ro
  20. command:
  21. - --global.sendAnonymousUsage
  22. - --accesslog=true
  23. - --api=false
  24. - --providers.docker=true
  25. - --providers.docker.exposedByDefault=false
  26. - --log.level=INFO
  27. - --entryPoints.http.address=:80
  28. - --entryPoints.https.address=:443
  29. - --entryPoints.http.http.redirections.entryPoint.to=https
  30. - --entryPoints.http.http.redirections.entryPoint.scheme=https
  31. - --certificatesResolvers.letsEncrypt.acme.storage=/etc/traefik/acme/acme.json
  32. - --certificatesResolvers.letsEncrypt.acme.email=${ADMIN_EMAIL}
  33. - --certificatesResolvers.letsEncrypt.acme.tlsChallenge=true
  34. - --providers.file.filename=/etc/traefik/tls.yaml
  35. labels:
  36. - traefik.enable=false
  37. freshrss:
  38. environment:
  39. TRUSTED_PROXY: 172.16.0.1/12
  40. labels:
  41. - traefik.enable=true
  42. - traefik.http.middlewares.freshrssM1.compress=true
  43. - traefik.http.middlewares.freshrssM2.headers.browserXssFilter=true
  44. - traefik.http.middlewares.freshrssM2.headers.forceSTSHeader=true
  45. - traefik.http.middlewares.freshrssM2.headers.frameDeny=true
  46. - traefik.http.middlewares.freshrssM2.headers.referrerPolicy=no-referrer-when-downgrade
  47. - traefik.http.middlewares.freshrssM2.headers.stsSeconds=31536000
  48. - traefik.http.routers.freshrss.entryPoints=https
  49. - traefik.http.routers.freshrss.tls.certResolver=letsEncrypt
  50. - traefik.http.routers.freshrss.tls=true
  51. # Option 1: server FreshRSS as sub-domain
  52. - traefik.http.routers.freshrss.middlewares=freshrssM1,freshrssM2
  53. - traefik.http.routers.freshrss.rule=Host(`${SERVER_DNS}`)
  54. # # Option 2: serve FreshRSS as sub-path
  55. # - traefik.http.middlewares.freshrssM3.stripprefix.prefixes=/freshrss
  56. # - traefik.http.routers.freshrss.middlewares=freshrssM1,freshrssM2,freshrssM3
  57. # - traefik.http.routers.freshrss.rule=PathPrefix(`/freshrss`)