version: '3' services: # requires $PWD/conf/traefik.yml and $PWD/conf/acme.json # $PWD/conf/acme.json must be an empty file with 600 perms traefik: image: traefik:v2.1 container_name: traefik restart: unless-stopped security_opt: - no-new-privileges:true ports: - 80:80 - 443:443 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - $PWD/conf/traefik.yml:/traefik.yml:ro - $PWD/conf/acme.json:/acme.json labels: - "traefik.enable=true" - "traefik.http.routers.traefik.entrypoints=http" - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.traefik.middlewares=traefik-https-redirect" - "traefik.http.routers.traefik-secure.entrypoints=https" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.routers.traefik-secure.tls.certresolver=http" - "traefik.http.routers.traefik-secure.service=api@internal" - "traefik.http.routers.traefik-secure.rule=Host(`traefik.c.uy`)" - "traefik.http.routers.traefik.rule=Host(`traefik.c.uy`)" app: image: nginx:alpine expose: - 80 restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.r-app.entrypoints=http" - "traefik.http.routers.r-app.rule=Host(`r.c.uy`)" - "traefik.http.middlewares.r-app-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.r-app.middlewares=r-app-https-redirect" - "traefik.http.routers.r-app-secure.entrypoints=https" - "traefik.http.routers.r-app-secure.rule=Host(`r.c.uy`)" - "traefik.http.routers.r-app-secure.tls=true" - "traefik.http.routers.r-app-secure.tls.certresolver=http" - "traefik.http.routers.r-app-secure.service=r-app" - "traefik.http.services.r-app.loadbalancer.server.port=80" ---- traefik.yml ---- #debug: "true" #logLevel: "DEBUG" api: dashboard: true entryPoints: http: address: ":80" https: address: ":443" providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false certificatesResolvers: http: acme: email: r@c.uy storage: acme.json httpChallenge: entryPoint: http