--- version: "3.9" networks: default: driver: bridge t2_proxy: name: t2_proxy driver: bridge ipam: config: - subnet: 192.168.90.0/24 x-environment: TZ: $TZ PUID: $PUID PGID: $PGID x-common-keys-core: networks: - t2_proxy security_opt: - no-new-privileges:true restart: always x-common-keys-apps: networks: - t2_proxy security_opt: - no-new-privileges:true restart: unless-stopped x-common-keys-media: networks: - t2_proxy security_opt: - no-new-privileges:true restart: no services: traefik: networks: t2_proxy: ipv4_address: 192.168.90.254 security_opt: - no-new-privileges:true restart: always container_name: traefik image: traefik:2.7 command: - --global.checkNewVersion=true - --global.sendAnonymousUsage=true - --entryPoints.http.address=:80 - --entryPoints.https.address=:443 - --entrypoints.https.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22 - --entryPoints.traefik.address=:8080 - --api=true - --api.dashboard=true - --log=true - --log.filePath=/logs/traefik.log - --log.level=DEBUG - --accessLog=true - --accessLog.filePath=/logs/access.log - --accessLog.bufferingSize=100 - --accessLog.filters.statusCodes=204-299,400-499,500-599 - --providers.docker=true - --providers.docker.endpoint=unix:///var/run/docker.sock - --providers.docker.exposedByDefault=false - --entrypoints.https.http.tls.options=tls-opts@file - --entrypoints.https.http.tls.certresolver=dns-cloudflare - --entrypoints.https.http.tls.domains[0].main=$DOMAINNAME_CLOUD_SERVER - --entrypoints.https.http.tls.domains[0].sans=*.$DOMAINNAME_CLOUD_SERVER - --providers.docker.network=t2_proxy - --providers.docker.swarmMode=false - --providers.file.directory=/rules - --providers.file.watch=true - --certificatesResolvers.dns-cloudflare.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory - --certificatesResolvers.dns-cloudflare.acme.email=$CLOUDFLARE_EMAIL - --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers=1.1.1.1:53,1.0.0.1:53 - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck=90 ports: - target: 80 published: 80 protocol: tcp mode: host - target: 443 published: 443 protocol: tcp mode: host environment: - CF_API_EMAIL=$CLOUDFLARE_EMAIL - CF_API_KEY=$CLOUDFLARE_API_KEY - DOMAINNAME_CLOUD_SERVER volumes: - $DOCKERDIR/appdata/traefik2/rules/cloudserver:/rules - /var/run/docker.sock:/var/run/docker.sock:ro - $DOCKERDIR/appdata/traefik2/acme/acme.json:/acme.json - $DOCKERDIR/logs/cloudserver/traefik:/logs - $DOCKERDIR/shared:/shared labels: - traefik.enable=true - traefik.http.routers.http-catchall.entrypoints=http - traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`) - traefik.http.routers.http-catchall.middlewares=redirect-to-https - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https - traefik.http.routers.traefik-rtr.entrypoints=https - traefik.http.routers.traefik-rtr.rule=Host(`traefik.$DOMAINNAME_CLOUD_SERVER`) - traefik.http.routers.traefik-rtr.tls=true - traefik.http.routers.traefik-rtr.tls.certresolver=dns-cloudflare - traefik.http.routers.traefik-rtr.tls.domains[0].main=$DOMAINNAME_CLOUD_SERVER - traefik.http.routers.traefik-rtr.tls.domains[0].sans=*.$DOMAINNAME_CLOUD_SERVER - traefik.http.routers.traefik-rtr.service=api@internal - traefik.http.routers.traefik-rtr.middlewares=chain-basic-auth@file - traefik.http.routers.traefik-rtr.middlewares=middlewares-basic-auth@file