version: "3" services: traefik: image: "traefik:v2.2" container_name: traefik restart: always command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.tls-resolver.acme.httpchallenge=true" - "--certificatesresolvers.tls-resolver.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.tls-resolver.acme.email=contact@schnittfest.gmbh" - "--certificatesresolvers.tls-resolver.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /root/schnittfest/letsencrypt:/letsencrypt labels: - "traefik.enable=true" # Global redirection: http to https - 'traefik.http.routers.http-catchall.rule=HostRegexp(`{host:(www\.)?.+}`)' - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.middlewares=wwwtohttps" # Global redirection: https (www.) to https - 'traefik.http.routers.wwwsecure-catchall.rule=HostRegexp(`{host:(www\.).+}`)' - "traefik.http.routers.wwwsecure-catchall.entrypoints=websecure" - "traefik.http.routers.wwwsecure-catchall.tls=true" - "traefik.http.routers.wwwsecure-catchall.middlewares=wwwtohttps" # middleware: http(s)://(www.) to https:// - 'traefik.http.middlewares.wwwtohttps.redirectregex.regex=^https?://(?:www\.)?(.+)' - 'traefik.http.middlewares.wwwtohttps.redirectregex.replacement=https://$${1}' - 'traefik.http.middlewares.wwwtohttps.redirectregex.permanent=true' schnittfest: image: kugel/schnittfest container_name: schnittfest restart: always depends_on: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.schnittfest.rule=Host(`schnittfest.gmbh`) || Host(`www.schnittfest.gmbh`)" - "traefik.http.routers.schnittfest.entrypoints=websecure" - "traefik.http.routers.schnittfest.tls=true" - "traefik.http.routers.schnittfest.tls.certresolver=tls-resolver"