docker-compose-proxy.yml 2.3 KB

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