networks: ssankur: external: "true" services: traefik-dmz: configs: - source: "config" target: "/etc/traefik/config.yaml" - source: "traefik" target: "/etc/traefik/traefik.yaml" container_name: "traefik-dmz" environment: - "TZ=Asia/Dhaka" image: "traefik:latest" networks: - "ssankur" ports: - "10.1.4.2:80:80/tcp" - "10.1.4.2:443:443/tcp" - "10.1.4.2:8081:8080/tcp" restart: "on-failure" volumes: - "./mounts/letsencrypt:/etc/letsencrypt" configs: config: content: | http: routers: files: rule: "Host(`files.ssankur.com`)" service: "files" gitea: rule: "Host(`gitea.ssankur.com`)" service: "gitea" gotify: rule: "Host(`gotify.ssankur.com`)" service: "gotify" hunt: rule: "Host(`hunt.ssankur.com`)" service: "hunt" jellyfin: rule: "Host(`jellyfin.ssankur.com`)" service: "jellyfin" mirotalk: rule: "Host(`mirotalk.ssankur.com`)" service: "mirotalk" openspeedtest: rule: "Host(`openspeedtest.ssankur.com`)" service: "openspeedtest" speedtest: rule: "Host(`speedtest.ssankur.com`)" service: "speedtest" services: files: loadBalancer: servers: - url: "http://pingvin-share:3000" gitea: loadBalancer: servers: - url: "http://gitea:3000" gotify: loadBalancer: servers: - url: "http://gotify:80" hunt: loadBalancer: servers: - url: "http://nginx:80" jellyfin: loadBalancer: servers: - url: "http://jellyfin:8096" mirotalk: loadBalancer: servers: - url: "https://mirotalk:3010" openspeedtest: loadBalancer: servers: - url: "https://openspeedtest:3001" speedtest: loadBalancer: servers: - url: "https://librespeed:443" traefik: content: | api: disableDashboardAd: "true" insecure: "true" certificatesResolvers: letsencrypt: acme: email: "ankur7914@gmail.com" httpChallenge: entryPoint: "http" storage: "/etc/letsencrypt/acme.json" entryPoints: http: address: ":80" http: redirections: entryPoint: to: "https" https: address: ":443" asDefault: "true" forwardedHeaders: trustedIPs: - "172.18.0.0/16" http: tls: certResolver: "letsencrypt" log: level: "INFO" providers: file: filename: "/etc/traefik/config.yaml" serversTransport: insecureSkipVerify: "true"